Commit Graph

206 Commits

Author SHA1 Message Date
Pablo Neira Ayuso dc35dbee95 write_queue: use full path of includes in osmocom/core/write_queue.h 2011-03-28 20:00:45 +02:00
Pablo Neira Ayuso 36bdf2cb73 bitvec: add bitvec_find_first_bit_pos() from gsm/rxlev_stat.c
This patch adds bitvec_find_bit_pos() to bitvec.c where it really
belongs to. Before this patch used to be part of gsm/rxlev_stat.c
2011-03-28 20:00:45 +02:00
Sylvain Munaut d6643d5fcf core/bits: Make sbit_t a signed type (so that the math works)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-03-27 11:35:40 +02:00
Pablo Neira Ayuso 8341934844 include: reorganize headers file to include/osmocom/[gsm|core]
This patch moves all GSM-specific definitions to include/osmocom/gsm.
Moreover, the headers in include/osmocore/ have been moved to
include/osmocom/core.

This has been proposed by Harald Welte and Sylvain Munaunt.

Tested with `make distcheck'.

Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2011-03-23 18:09:28 +01:00
Pablo Neira Ayuso fba495e5f6 This patch moves the GSM-specific functions to the new library
libosmogsm which is provided by libosmocore.

I have also moved generate_backtrace() to backtrace.c instead
of gsm_utils.c, otherwise the timer and msgfile tests depend on
libosmogsm.

Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2011-03-23 18:08:08 +01:00
Pablo Neira Ayuso 04139f14b6 vty: integration with logging framework
The logging categories are registered by the applications, like
osmo-nitb, during startup. Thus, the VTY have to provide the logging
commands according to the logging categories that the application
has registered.

Before this patch, the VTY contained the logging categories
hardcoded. Thus, any change in the logging categories by the
application would not be shown by the VTY.

So far, this was not a problem because all applications used the
same logging categories. However, according to what Harald told
me, this may be a problem in the future.

This patch resolve the lack of integration between the logging
framework and the VTY by generating the VTY logging commands
from the logging categories registered.

Since this patch changes one function of the libosmocore API,
it follows another patch for the openbsc application to get in
sync with the new function layout.

I have reworked and renamed the functions:

 * log_vty_category_string()
 * log_vty_level_string()

to provide the new ones that generate the exact output that VTY
requires.

This patch does not release the memory allocated by
talloc_zero_size() to store the VTY strings for the commands
and the description. I found no exit function that can clean
up resources that were allocated.
2011-03-19 18:33:48 -03:00
Harald Welte 63196de6d8 TLV: Add tv_fixed_put() and msgb_tv_fixed_put()
This is for a Tag-Value type with fixed-length value (len > 1)
2011-03-05 14:32:50 +01:00
Harald Welte a62648b0b0 LOGGING: remove duplicated code between vty-logging and cfg-logging 2011-02-18 21:03:27 +01:00
Harald Welte 2822296ddb LOGGING: configure logging from the vty
We can now configure logging to (multiple) files, stderr and syslog
from the vty command line in a persistent way (config file)
2011-02-18 20:37:04 +01:00
Harald Welte 46cfd77f75 LOGGING: Add syslog log target 2011-02-17 15:56:56 +01:00
Harald Welte 76e72abe32 LOGGING: Pass the log level down to the log target output function
This will be required for mapping osmocore log levels to syslog priorities.
2011-02-17 15:52:39 +01:00
Harald Welte b05552b14c [utils] introduce ubit_dump to dump buffers of unpacked bits 2011-02-08 16:56:23 +01:00
Harald Welte 3d0ac5e446 [utils] add 'bitdump' function for bitfields 2011-02-08 16:55:03 +01:00
Holger Hans Peter Freyther e750908367 gsmtap: The TETRA_AACH was defined twice, remove one, renumber
The GSMTAP_TETRA_AACH was defined twice. On the tetra list we
decided to remove the second entry and renumber the list as no
one is using this yet.
2011-01-28 10:13:41 +01:00
Christian Vogel c7f84e91b7 ubit2pbit flushes at the wrong moment, added one note to bits.h
(e.g. input2[] test sequence from testra/crc_test
 decodes incorrectly to packed bits: 90 b0 3e 80 03 87 53 bd 6f 08,
 this patch fixes it)
2011-01-22 22:48:37 +01:00
Sylvain Munaut aeb1077051 bits: Add extended options version of pbit2ubit and ubit2pbit
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-01-21 12:22:30 +01:00
Harald Welte 2230c133a6 [BITS] introduce new packed/unpacked bit conversion routines 2011-01-19 10:10:16 +01:00
Harald Welte c035ec63f5 [gsmtap] extend GSMTAP for TETRA 2011-01-19 09:40:59 +01:00
Harald Welte dba8478222 gsmtap.h: Add some more comments 2011-01-18 21:38:12 +01:00
Holger Hans Peter Freyther 5853f084a0 msgb: Make sure at compile time that headroom is smaller than size
All current code is using constants to allocate the msgb with
headroom. Use a static_assert to make sure that the headroom
is smaller than the size. This makes API misusage unlikely to
happen.
2011-01-16 20:29:48 +01:00
Holger Hans Peter Freyther 52c07ca6c5 misc: Move the static_assert from logging to the utils
This is just an ordinary macro, no specific reason to
have it in logging.h. This was compile tested with code
from our osmo family.
2011-01-16 20:29:48 +01:00
Alex Badea d126ab988b gsm 03.41: fix GSM341_MSG_CODE macro argument
One usage of the "ms" argument is typoed as "msg".  Fix it to prevent
subtle future failures.  Also paranthesize the macro argument for good
measure.

Signed-off-by: Alex Badea <vamposdecampos@gmail.com>
2011-01-15 23:41:00 +01:00
Holger Hans Peter Freyther 9c559147c7 smscb: Add definition of a warning message 2010-12-29 22:51:45 +01:00
Holger Hans Peter Freyther a1e8bf71fe smscb: Mention 23.041 and fix the size of the update number 2010-12-29 22:51:45 +01:00
Holger Hans Peter Freyther e05c7dfa8e smscb: Add some simple decoding routines for SMSCB. 2010-12-29 22:51:45 +01:00
Alex Badea ab1246e0b5 protocol: introduce gsm_03_41.h
This currently contains definitions for the BTS->MS SMSCB message.

Signed-off-by: Alex Badea <vamposdecampos@gmail.com>
2010-11-28 15:08:32 +01:00
Alex Badea 8493018f24 gsm_08_58: add struct and constants for RSL_IE_CB_CMD_TYPE
Signed-off-by: Alex Badea <vamposdecampos@gmail.com>
2010-11-28 15:06:13 +01:00
Alex Badea 3ba0a2bea0 gsm_04_12: fix 04.13 typos
There are two occurrences of "413" in the 04.12 header file.
These are probably typos; correct them to "412".

Signed-off-by: Alex Badea <vamposdecampos@gmail.com>
2010-11-28 15:05:01 +01:00
Harald Welte fe851ffc57 gsmtap.h: Add GSMTAP_TYPE_SIM 2010-11-18 23:54:20 +01:00
Sylvain Munaut 7f6615a37d Move the generate backtrace call from MSGB_ABORT to osmo_panic handler
This has two benefits:
 - All people calling osmo_panic() will have the backtrace
 - It makes the thing build in 'target' mode in osmocom-bb

And one downside:
 - The osmo_panic handler is now in the backtrace
(I can live with that :)

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-13 22:47:47 +01:00
Sylvain Munaut c91d17b3d5 panic: Fix type warning - osmo_panic_handler_t is already a pointer ...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-13 18:00:25 +01:00
Sylvain Munaut 2a471ee25d gsm_utils: Define 4 upper bits as "flags" and mask them out in utility functions
This way those function don't care about the flags they don't know about

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-13 17:51:37 +01:00
Harald Welte dab0287b3f msgb: fix printing of msgb pointer during MSGB_ABORT() 2010-11-09 13:42:26 +01:00
Harald Welte 46a45a6c4f msgb: don't compare unsigned int with int (fix lcr build) 2010-11-09 13:41:48 +01:00
Harald Welte be6cb17228 msgb_abort(): better formatting 2010-11-05 07:52:22 +01:00
Harald Welte 088e68aff4 generate backtrace in msgb_abort()
This helps us to debug where we encounter insufficient headroom...
2010-11-05 07:52:22 +01:00
Harald Welte 929d8870d2 Change msgb_abort() function in MSGB_ABORT argument with variable arguments
This enables callers to provide format string and arguments to it

Also, put conditionals into the macro, and remove them from the caller
site.
2010-11-05 07:52:22 +01:00
Holger Hans Peter Freyther af270a41e3 gsm0808: Move the clear request from bsc_msc_ip to here
This method should use the msgb_tlv_put routines instead
of the stuff it is doing. This will be cleaned up.
2010-11-04 12:42:50 +01:00
Holger Hans Peter Freyther c25c668106 gsm0808: Add a method to create a new DTAP message with a msgb 2010-11-04 12:27:48 +01:00
Holger Hans Peter Freyther a3f05d8609 gsm0808: Add a method to create a clear command message.
Use the msgb_tv_put functions for putting the data into
the message. Do not support the extended error reports.
2010-10-27 11:53:23 +02:00
Sylvain Munaut a1094c801f codec: Fix bit order table definition for GSM HR
There is two tables: one for unvoiced frames and one for voiced frames.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-10-24 21:13:40 +02:00
Sylvain Munaut b99b9309b2 codec: Add the missing bits for include to install and pkgconfig to work
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-10-24 18:23:10 +02:00
Holger Hans Peter Freyther acffb60c1a msgb: Add non-inlined helper functions to ease with language bindings
It is easier from languages that dlopen libosmocore to have a function
to access this data than to poke at the bytes of the struct directly. Add
copyright for this method and the reset method I did earlier this year.
2010-10-18 18:22:31 +02:00
Holger Hans Peter Freyther c64970ede5 gsm0480: Add method create own number response 2010-10-18 17:04:49 +02:00
Sylvain Munaut 1a4ea5b436 codec: Add bit ordering tables from specs for HR,FR,EFR & AMR
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-10-15 09:45:04 +02:00
Holger Hans Peter Freyther daa653fc22 ussd: Add a test case, switch parsing to use a gsm48_hdr and len
The current USSD code is not doing any size checks, add a test
case to find out how easily we access the data out of bounds.
Begin to use the length in some places.
2010-10-11 09:25:14 +02:00
Holger Hans Peter Freyther 00cb5700e6 gsm0480: Move the USSD parsing code to libosmocore
- Change u_int8 to uint8
- Change DEBUGP to LOGP
- Change fprintf(stderr, to LOGP(0, LOGL_DEBUG
- We should define log areas used inside libosmocore
2010-10-09 01:49:11 +08:00
Holger Hans Peter Freyther c87f266522 msgfile: Add a file parser for a simple file format
This file format will be used to store per country code,
per network code messages. This will be used for various
things ranging from access control, to messages...
2010-10-08 19:23:18 +08:00
Holger Hans Peter Freyther 55aea5099c gsm0480: Add USSD format functions to libosmocore
These routines come from OpenBSC, the msgb_wrap_* functions
belong to Mike Haben, the rest is mine. The msgb allocation
is compatible to the GSM48 allocation in OpenBSC.
2010-09-30 19:00:58 +08:00
Sylvain Munaut 77b6f6c536 protocol/gsm_04_08: Fix cr field position in gsm48_cip_mode_cmd
Thanks to Dieter for pointing this out.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-09-17 13:56:31 +02:00
Holger Hans Peter Freyther 08aaded3b8 vty: Add functions to access index and node
It is easier to call these two functions from bindings than
wrapping the vty structure and figuring out the alignment of
the enum on all different ABIs.
2010-09-14 02:24:03 +08:00
Andreas Eversberg fa832012d0 Add handover and frequency redefiniton message headers
This simply add some TS 04.08 related structures for frequency
redefinition and handover.
2010-09-01 23:37:07 +02:00
Holger Hans Peter Freyther 4aaccd76f2 vty: Make the talloc ctx extern void* to avoid duplicate symbols 2010-08-31 17:09:44 +08:00
Holger Hans Peter Freyther 8f09f01380 vty: Add a new callback to let code decide if it is a config node or not 2010-08-26 15:00:52 +08:00
Harald Welte 5ea4498c28 add header file for osmo_daemonize() 2010-08-25 19:25:37 +02:00
Harald Welte 72d0c536e9 logging: add missing include file changes for last commit (logfile) 2010-08-25 19:24:00 +02:00
Harald Welte 0083cd381c logging: rename tgt_stdout to tgt_file 2010-08-25 18:10:19 +02:00
Harald Welte 1523d7039d Import gsm48_decode_freq_list() from osmocom-bb/layer23
This will enable us to use this function from OpenBSC / ipaccess-config
2010-08-04 11:46:44 +02:00
Holger Hans Peter Freyther 18e6298e88 vty: Forward delcare the logging command. 2010-08-04 06:34:06 +08:00
Harald Welte dee47cd14d add new hexdump_nospc() function 2010-07-30 11:47:50 +02:00
Harald Welte 40481e8954 move hexdump() from logging.c to utils.c 2010-07-30 11:40:32 +02:00
Harald Welte 3eba991b3d Import 'hexparse' function from OpenBSC 2010-07-30 10:37:29 +02:00
Sylvain Munaut 7459d6cfd1 core/msgb: Use the new osmo_panic call to handle errors
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-07-25 18:09:28 +02:00
Sylvain Munaut ac3e61a7a6 core: Add some generic panic handling
This also includes an option for a minimal 'infinite loop' type
panic that could be required for embedded target that don't have
abort() or fprintf()

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-07-25 18:08:54 +02:00
Sylvain Munaut 27af075e1e osmocore: Add utility function rsl_chan_nr_str to RSL
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-07-25 12:27:44 +02:00
Holger Hans Peter Freyther 5e84a86937 msgb: Avoid warnings that the string might contain %s or such.. 2010-07-23 19:22:23 +08:00
Holger Hans Peter Freyther b60a4b3b97 gsm0808: Why should there be a lchan in the parameter... 2010-07-23 18:35:59 +08:00
Holger Hans Peter Freyther 06f795c56f gsm0808: Import unaligned mem access fix from on-waves/bsc-master 2010-07-23 18:20:02 +08:00
Holger Hans Peter Freyther dd02a47234 gsm_utils: Move the gsm_7bit_alphabet into the impl and make it static 2010-07-23 16:36:05 +08:00
Harald Welte 652a72385c msgb: Check for available headroom/tailroom and abort() if we violate it 2010-07-22 21:56:10 +02:00
Holger Hans Peter Freyther 0d60aa2ad7 gsm_04_12.h: Add beginning of structs for SMS CB
I am trying to understand the RSL and GSM 04.12
spec to implement CBS for OpenBSC...
2010-07-21 05:02:33 +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
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 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
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
Andreas Eversberg 816e24cb42 [RSL] Added special RSL message types for mobile side
- suspension DL
    - resume DL
    - re-establish DL
2010-06-25 02:50:56 +02:00
Andreas Eversberg 93364fc8e0 [gsm48] fix typo in struct gsm48_req_ref 2010-06-25 02:50:06 +02:00
Harald Welte 639f74bdf4 [GSM 04.08] add more RR IEIs 2010-06-15 09:32:14 +02:00
Sylvain Munaut d005eabe16 gsm48: Add authentication response message
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-06-10 13:30:50 +02:00
Sylvain Munaut 4f585491b9 gsm_utils: Add a fn to test A5(x) support given a classmark2
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-06-09 13:40:36 +02:00
Holger Hans Peter Freyther dd19527cd2 vty: Mark app info strings as const char*. 2010-06-08 16:12:58 +08: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 4c053013c9 [VTY] Remove all application specific VTY node definitions from enum 2010-05-31 16:01:59 +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 ab1b819930 make sure we actually install the vty headers 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
Holger Hans Peter Freyther 75bd69bc91 rate_ctr: Make the struct rate_ctr_group_desc members const 2010-05-23 21:14:32 +08: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 5dcef3c8b1 gsm48: Add paging response header 2010-05-15 22:35:25 +08:00
Harald Welte cf734784b0 [rate_ctr] Rename group_prefix_fmt to group_name_prefix 2010-05-13 12:53:35 +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