Commit Graph

1032 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther f8a342c350 gsm_7bit_decode: rtext does not hold a null byte, reduce the size
I have added the + 1 as I thought rtext will hold a terminating
null byte but it will not.
2010-07-21 03:14:01 +08:00
Nico Golde c0ce9aa20d tests: don't hardcode length values of expected encoding gsm_7bit_encode:
make sure to return the number of actually written bytes gsm_7bit_decode:
calculate length of resulting septets from input length before decoding

The input length to gsm_7bit_decode reflects the number of encoded bytes
to be decoded. As the decoding is done on the input in septetes we need
to take this into account and recalculate the length.
2010-07-21 02:43:58 +08:00
Holger Hans Peter Freyther 446bf37698 gsm_7bit_decode: Handle the case of the last charachter being an escape
If i + 1 == length and it is an escape charachter we would try
to read rtext[length] which is one after the field we have allocated.
2010-07-20 02:54:54 +08:00
Nico Golde 28de05336b * rewrite GSM 7bit default encoding/decoding based on a lookup table as the previous code produced wrong encodings for certain characters. 2010-07-20 02:48:17 +08:00
Ingo Albrecht 383134b5ac Added crc16 from linux kernel. 2010-07-15 22:43:52 +02:00
Andreas Eversberg 33f0fc3c95 [VTY] add support for numeric ranges with negative numbers
This enables us to do something like <-128-127> as a numeric range.
2010-07-13 13:50:39 +02:00
Harald Welte 6eb7d6c887 [RSL] split rsl_rll_push_l3() L3 LV pushign and rsl_rll_push_hdr()
This allows us to generate RSLms messages that have some non-standard
IEs between the RSL/RLL common header and the L3 INFO IE.
2010-07-13 13:48:13 +02:00
Andreas Eversberg ed00fe4449 Add 3-digit MNC support to gsm48_generate_lai() 2010-07-12 09:12:46 +02:00
Andreas Eversberg 014cb8725c Added new IE definitions to gsm_04_08.h of libosmocore.
Also added RR and MM TLV tables to gsm48.c

[import from accidential commit to osmocom-bb.git]
2010-07-12 09:11:00 +02:00
Andreas Eversberg cd2a74bd43 Added single octet TV (type + value) to libosmocore.
In case of a single octet, the upper nibble is the type, the lower nibble
carries the value.

[import from accidentially committed changes to osmocom-bb.git]
diff --git a/src/shared/libosmocore/include/osmocore/tlv.h b/src/shared/libosmocore/include/osmocore/tlv.h
index c733dbc..4cfce87 100644
--- a/src/shared/libosmocore/include/osmocore/tlv.h
+++ b/src/shared/libosmocore/include/osmocore/tlv.h
@@ -212,6 +212,7 @@ enum tlv_type {
 	TLV_TYPE_TLV,
 	TLV_TYPE_TL16V,
 	TLV_TYPE_TvLV,
+	TLV_TYPE_SINGLE_TV
 };

 struct tlv_def {
diff --git a/src/shared/libosmocore/src/tlv_parser.c b/src/shared/libosmocore/src/tlv_parser.c
index 407e57a..bbef7a9 100644
--- a/src/shared/libosmocore/src/tlv_parser.c
+++ b/src/shared/libosmocore/src/tlv_parser.c
@@ -36,6 +36,14 @@ int tlv_parse_one(uint8_t *o_tag, uint16_t *o_len, const uint8_t **o_val,
 	tag = *buf;
 	*o_tag = tag;

+	/* single octet TV IE */
+	if (def->def[tag & 0xf0].type == TLV_TYPE_SINGLE_TV) {
+		*o_tag = tag & 0xf0;
+		*o_val = buf;
+		*o_len = 1;
+		return 1;
+	}
+
 	/* FIXME: use tables for knwon IEI */
 	switch (def->def[tag].type) {
 	case TLV_TYPE_T:
2010-07-12 08:55:14 +02:00
Sylvain Munaut e10ae5b083 gsm_utils: Fix typo in gsm band name
thanks to horizon for noticing :p

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-07-04 11:41:36 +02:00
Harald Welte e335b91ccd GPRS: Add 'input' generator functions for GPRS cipher algorithm 2010-06-30 19:50:14 +02:00
Harald Welte b9ce51c5fd Add support for plugins (and specifically GPRS encryption plugins) 2010-06-30 19:43:11 +02:00
Harald Welte e34a940542 [gsmtap] add new gsmtap_makemsg() function
This generates a gsmtap message without actually enqueueing to a
bsc_select style queue.
2010-06-29 22:31:21 +02:00
Harald Welte e779c364ac Add gsmtap utility functions to libosmocore
This is imported from OsmocomBB/Layer23
2010-06-29 21:57:25 +02:00
Harald Welte 7b4913662a Merge remote branch 'origin/master' 2010-06-01 21:21:20 +02:00
Harald Welte c226317c9c add new new gprs_tmsi2tlli() function 2010-06-01 10:47:07 +02:00
Harald Welte 544037700c add configure option '--disable-vty' to prevent building libosmovty 2010-05-29 11:49:51 +02:00
Harald Welte 237f6241f2 [VTY] Introduce "struct vty_app_info" for vty_init() function 2010-05-25 23:38:19 +02:00
Harald Welte 4ebdf74728 rename log_info to osmo_log_info to avoid namespace clash with app 2010-05-25 22:28:40 +02:00
Harald Welte 93cf5a38eb fix typo resultin in dist/distcheck problem 2010-05-25 22:28:40 +02:00
Harald Welte 3fb0b6f26e Create libosmovty as library from OpenBSC VTY functions 2010-05-25 22:28:39 +02:00
Andreas.Eversberg 0ebd688746 Added some "get"-functions to bitvec of libosmocore.
- Getting Low or High value from current postion
- Getting unsigned interger from current postion
2010-05-19 18:14:01 +02:00
Holger Hans Peter Freyther 9a3dec0c01 gsm0808: Add API to wrap a GSM48 msg with a BSSMAP/DTAP msg. 2010-05-16 08:15:40 +08:00
Holger Hans Peter Freyther 102bcafb58 gsm0808: Add TLV entries for types used by the Compl Layer3 Information 2010-05-14 07:25:01 +08:00
Harald Welte d2dce6df04 [rate_ctr] always 'overflow' in next larger inetrval when interval ends
If a second ends, we add the number of events in that just-ended second
to the number of events in the currently running minute.  The same happens
at the end of a minute: We add the number of events in that just-ended
minute into the number of events of the still-running hour, etc.

This gives a much more meaningful numbers and we don't end up with
"12 events per second, but 0 events per minute" kind of situations
anymore.
2010-05-13 13:28:12 +02:00
Harald Welte dd178b2dc9 rate_counters: Remove group-name-sprintf-with-idx string 2010-05-13 12:50:44 +02:00
Harald Welte 087fcff9a5 rate_ctr: Store the numeric index as part of 'rate_ctr_group' 2010-05-13 12:16:17 +02:00
Harald Welte 7b45d60887 Add new 'rate counter' implementation to libosmocore
A 'rate counter' is a counter that counts events but also keeps
track of the rate of events (per second, minute, hour and day).

'rate counters' are generally abstracted in 'rate counter groups',
which are instances of a 'rate counter group description'.  This
way we can have e.g. a description describing what kind of counters
a BTS (or TRX) has - and we can then create one instance of that
group for every BTS or TRX that exists.
2010-05-13 11:35:30 +02:00
Harald Welte 7638af95fd logging: add log_vty_{level,category}_string() 2010-05-11 16:39:22 +02:00
Harald Welte 9ac2225ff4 logging: introuduce log_level_str() to obtain the name of a log level 2010-05-11 11:19:40 +02:00
Harald Welte 95df5c0179 msgb: initialize cb[] to zero during msgb_reset() 2010-05-01 23:53:26 +02:00
Harald Welte 35a939463e Import gsm48_construct_ra() from openbsc 2010-05-01 14:25:22 +02:00
Harald Welte a1c4f765ec import gsm48_parse_ra() and gprs_tlli_type() from openbsc 2010-05-01 12:00:21 +02:00
Harald Welte bb77c9d6cc msgb: remove smsh, llch, tlli and gmmh
This is a lot of GSM/GPRS specific stuff in struct msgb which we want
to avoid.  The 'control buffer' will replace them.
2010-04-30 14:26:12 +02:00
Harald Welte 3120ac3f78 remove the unneeded bts_link pointer from msgb 2010-04-30 14:19:48 +02:00
Sylvain Munaut a074ec4b89 gsm 08.08: Fix some u_int8_t -> uint8_t
This breaks the ARM build in osmocom-bb. Besides uint??_t seems to
be the preferred type in osmocore. (coming from stdint.h vs sys/types.h)

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-28 10:05:29 +02:00
Holger Hans Peter Freyther ba6172a7fd gsm0808: Port asiggnment_complete msg creation to libosmocore. 2010-04-17 06:21:49 +02:00
Holger Hans Peter Freyther 81716d5fa8 gsm0808: Port cipher_complete to be part of libosmocore. 2010-04-17 06:16:35 +02:00
Holger Hans Peter Freyther 7daa01c434 gsm0808: Add the TLV definition for some of the 0808 IEs 2010-04-17 05:14:36 +02:00
Holger Hans Peter Freyther 280cd5153f Add GSM0808 utilities to Osmocore.
The code is coming from the on-waves/bsc-master branch.
2010-04-15 10:10:39 +02:00
Holger Hans Peter Freyther 23ba4747d1 select.c: Make the ugly hacker uglier...
Right now I'm seeing crashes when removing a link and deleting
it and I need this hack to make it not crash. We will have to
understand if llist_for_each_entry_safe has a bug or if we are
doing something bad with the list (anchors not properly initialized).
2010-04-11 17:34:52 +02:00
Harald Welte 163d0ea85b remove references to u_int*_t and use uint*_t instead 2010-04-09 07:57:40 +02:00
Andreas Eversberg 1ef041ff1e gsm48: introduce MM_CONNECTION_PEND state 2010-04-09 07:52:12 +02:00
Harald Welte b1ac2b96f8 gsm48-ie.c: Fix year in copyright message 2010-04-09 07:51:03 +02:00
Holger Hans Peter Freyther 4052c811a9 write_queue: Add callback for exceptions as well. 2010-04-08 10:58:20 +02:00
Harald Welte 9bb553ee40 import gsm48_mi_to_string() from OpenBSC 2010-03-28 18:14:50 +08:00
Harald Welte a3b844cf45 logging: only compile stderr target if we actualy have stderr 2010-03-27 00:04:40 +08:00
Harald Welte 01fd5cb3f0 only include strings.h if it is actually preent 2010-03-26 23:51:31 +08:00
Harald Welte cc6313cc69 logging: fix default initialization of per-category loglevels
Before this patch, there was a bug in the code caused by a memcpy
from one data structure to another. unfortuantely the data structures
were not the same, so we have to explicitly iterate over the array
and assign the structure members manually.
2010-03-26 22:04:03 +08:00
Harald Welte 3ae2758fba rename 'debug' interface to 'logging' interface
It's not really about debugging, but about generic logging...
2010-03-26 21:26:01 +08:00
Harald Welte faadfe2b93 debug: remove unneeded 'number' member of 'struct debug_info_cat'
As the debug subsystem number is used as index into the debug_info_cat
array, there is no need to store the number explicitly inside the
structure again.
2010-03-26 21:26:01 +08:00
Harald Welte d788f6688c debug.c: fix no-color-printing in case .color = NULL 2010-03-26 21:26:01 +08:00
Harald Welte 4a2bb9e38b Import 'debug' support from OpenBSC into libosmocore 2010-03-26 21:26:01 +08:00
Holger Hans Peter Freyther 99a263ff20 write_queue: Add a method to clear the queue. 2010-03-26 09:22:38 +01:00
Harald Welte 52b4abdcb3 replace rsl_rlm_cause_strs with rsl_rlm_cause_name() 2010-03-25 12:11:38 +08:00
Harald Welte 9eb6d88d64 replace gsm48_cc_msg_names[] with gsm48_cc_msg_name()
and implement the backend using value_string
2010-03-25 12:00:54 +08:00
Harald Welte e9e190a8d8 use more value_string in gsm48 and rsl 2010-03-25 11:46:46 +08:00
Harald Welte b59f9350f8 get_value_string(): return "unknown 0x..." instead of "unknown" 2010-03-25 11:46:46 +08:00
Harald Welte cbc8062ef8 fix compiler warnings (itsme <itsme@xs4all.nl>)
* added several 'const' for strings.
 * added 'extern' to declarations of rsl_rlm_cause_strs
2010-03-22 08:28:44 +08:00
Holger Hans Peter Freyther a49951fed7 write_queue: Make the bfd cb public so it can be used in a different context
* I'm doing a nonblocking connect and for this I need to select
  on writable and the first thing I need to do is to check the
  SOL_SOCKET SO_ERROR state. I realize this by setting a different
  cb on the embedded bfd during setup and then go back to the real
  implementation.
2010-03-08 14:32:39 +01:00
Harald Welte 1e9086684f import GSM04.08 encode/decode functions and mncc.h from openbsc 2010-03-07 23:39:54 +01:00
Harald Welte cbb29f7c94 add --disable-talloc option to build without talloc support 2010-03-07 20:24:30 +01:00
Harald Welte d3ff15fc81 use strtol instead of atoi 2010-03-07 18:23:47 +01:00
Harald Welte 622b718195 import some gsm band/arfcn/time related utilities from OsmocomBB 2010-03-07 17:50:21 +01:00
Harald Welte 63d3e396e7 introduce RxLev statistics module, an efficient way for power scan data 2010-03-06 11:34:27 +01:00
Harald Welte d9abf01436 mark some occasions of bitvec as 'const' as appropriate 2010-03-06 11:28:49 +01:00
Harald Welte 6fec514d7b fix CCCH parsing 2010-03-04 14:30:15 +01:00
Harald Welte ecf9dd0d96 add new rsl_dec_chan_nr() function 2010-03-04 14:27:48 +01:00
Harald Welte 61e2bfc5f4 import gsm48 utility functions from OpenBSC
* gsm48_generate_lai() gsm48_generate_mid_from_tmsi() gsm48_generate_mid_from_imsi()
* gsm48_cc_msg_names[]
2010-03-04 10:53:03 +01:00
Harald Welte a73e2f9acb import bcd2char() and char2bcd() from OpenBSC 2010-03-04 10:50:32 +01:00
Harald Welte aebe08c71f import gsm_band_name() and gsm_band_parse() from OpenBSC 2010-03-04 10:39:17 +01:00
Harald Welte eb8bf3915c add 'transparent' argument to rsl_rll_push_l3() and rsl_rll_push_l3()
this is required to make those functions useful for OpenBSC, nut just
OsmocomBB
2010-03-04 10:32:09 +01:00
Harald Welte 098cd4b503 fix rsl_enc_chan_nr() for SDCCH4 2010-03-04 10:12:50 +01:00
Harald Welte 4fb20757c6 import some GSM 04.08 utility code from OpenBSC 2010-03-02 23:17:33 +01:00
Harald Welte f08eabf234 add two new RSL utility functions 2010-03-02 21:59:20 +01:00
Harald Welte d284cd9f43 Import value_string utilities and some RSL stuff from OpenBSC 2010-03-01 21:58:31 +01:00
Holger Hans Peter Freyther 8df932a7fd [write_queue] Add a generic write queue class
The write queue can be a dropin replacement for the bsc_fd. It
is featuring two callbacks. One for ready read and one for ready
write. Whenever there is a message in the queue the write_queue
will set the BSC_FD_WRITE flag and then call the write callback.

It will make sure to delete the msgb after the write function
has been called. This class is intended to be be used in the
osmocom, layer2, bsc_msc_ip, bsc_hack and other applications.
2010-02-26 20:30:32 +01:00
Sylvain Munaut 17a5a28202 msgb.c: Style cleanup in initialization
Don't assign the same var twice & init all from the same source.
2010-02-24 22:57:46 +01:00
Harald Welte 5484480211 fix select.c build (config.h) 2010-02-20 22:23:08 +01:00
Harald Welte 3cae0398ea add missing automake / autoconf files 2010-02-20 21:09:24 +01:00
Harald Welte ec8b4501c7 intial checkin of the libosmocore project 2010-02-20 20:34:29 +01:00