summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* msgb: Add non-inlined helper functions to ease with language bindingsHolger Hans Peter Freyther2010-10-181-0/+11
| | | | | | 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.
* gsm0480: Add method create own number responseHolger Hans Peter Freyther2010-10-181-0/+50
|
* codec: Add bit ordering tables from specs for HR,FR,EFR & AMRSylvain Munaut2010-10-156-1/+1033
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* ussd: gsm_7bit_decode will null terminate the stringHolger Hans Peter Freyther2010-10-111-2/+0
|
* ussd: Make sure that we at least have 8 bytes when decoding the stringHolger Hans Peter Freyther2010-10-111-0/+6
| | | | | The actual gsm_7bit_decode can still cause a buffer overrun but at least we are safe until this point.
* ussd: Add size checks to the parse_ss_invoke callsHolger Hans Peter Freyther2010-10-111-0/+9
| | | | Make sure that the mandatory and optional part fits.
* ussd: Make sure the component fits.Holger Hans Peter Freyther2010-10-111-2/+8
| | | | | | Use a while() {} to check offset +2 <= length on the first iteration of the loop. Once we have the component length check that it is going to fit into the given length.
* ussd: Work with uint16_t for the lengthHolger Hans Peter Freyther2010-10-111-6/+6
| | | | Work with uint16_t for the length all the way.
* ussd: Check the structure of the IE.Holger Hans Peter Freyther2010-10-111-0/+9
| | | | | This is fixing the current crashes. Next we will need to manipulate the content...
* ussd: Add a test case, switch parsing to use a gsm48_hdr and lenHolger Hans Peter Freyther2010-10-111-20/+25
| | | | | | 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.
* gsm0480: Move the USSD parsing code to libosmocoreHolger Hans Peter Freyther2010-10-091-0/+188
| | | | | | | - 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
* msgfile: Add a file parser for a simple file formatHolger Hans Peter Freyther2010-10-082-0/+122
| | | | | | 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...
* gsm0480: Add USSD format functions to libosmocoreHolger Hans Peter Freyther2010-09-302-1/+191
| | | | | | 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.
* gsm48: Fix gsm48_encode_called - Set no extension bitSylvain Munaut2010-09-201-1/+2
| | | | | | | | The highest bit must be set as "No extension byte" marker, so that the next byte is considered to be the BCD number and not some more control stuff Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm0808: Fix the TLV definition of CIC and Service HandoverHolger Hans Peter Freyther2010-09-201-2/+2
| | | | | | | The nat code stumbled over the CIC bug as it was detecting timeslot 0x1 as a new CIC and we were patching the data outside the actual packet... The TLV parser needs some better size checking too.
* Make sure we don't user std{err,in,out} if they don't exist.Sylvain Munaut2010-09-172-4/+8
| | | | | | This is required for target build in libosmocore Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* vty: Add functions to access index and nodeHolger Hans Peter Freyther2010-09-141-0/+9
| | | | | | 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.
* vty: Use the copyright string from the app_info.Holger Hans Peter Freyther2010-09-111-3/+6
|
* vty: Link osmovty to osmocore as it is using the symbolsHolger Hans Peter Freyther2010-09-112-1/+2
| | | | | Use SUBDIRS to build src first and the src/vty. We will need to find the right way add the dependencies.
* vty: Everything <= CONFIG_NODE is not a child of configHolger Hans Peter Freyther2010-09-041-2/+2
| | | | | | | The method should be renamed to is child of config node as it was comparing if vty->node > CONFIG_NODE. This is fixing an assert in go_to_parent as we tried to find a parent for the CONFIG_NODE.
* plugin: Blind build fix for OSX...Holger Hans Peter Freyther2010-08-311-0/+1
| | | | According to a internet search PATH_MAX is in limits.h on OSX.
* vty: Handle nodes part of the lib in the lib, for the rest call the callbackHolger Hans Peter Freyther2010-08-261-5/+7
|
* vty: Add a new callback to let code decide if it is a config node or notHolger Hans Peter Freyther2010-08-261-0/+4
|
* vty: Move the assumption of the config nodes into a functionHolger Hans Peter Freyther2010-08-261-3/+9
| | | | | | Move the assumption that something is a child of the CONFIG_NODE into a new function. The next step will be to use something else for that.
* Add helper function 'osmo_daemonize()' to convert process into daemonHarald Welte2010-08-252-1/+72
|
* logging: add log target logging into text file and log target destroy functionHarald Welte2010-08-251-0/+50
|
* logging: rename tgt_stdout to tgt_fileHarald Welte2010-08-251-5/+5
|
* bsc_fd: Add a build option to be able to debug fd list corruptionHolger Hans Peter Freyther2010-08-061-0/+12
| | | | | | | bsc_register_fd on an already registered fd can corrupt the list in a heavy way and make the select end in an infinite loop, this code will workaround the issue and provide a way to set a breakpoint at the right position in the code.
* gsm0808: Add some more TLV definitions coming from the cellmgr_ngHolger Hans Peter Freyther2010-08-041-0/+2
|
* Import gsm48_decode_freq_list() from osmocom-bb/layer23Harald Welte2010-08-041-0/+435
| | | | This will enable us to use this function from OpenBSC / ipaccess-config
* logging: Make sure we don't use "end of color" code if colors are turned offHarald Welte2010-07-301-1/+2
|
* add new hexdump_nospc() functionHarald Welte2010-07-301-2/+12
|
* move hexdump() from logging.c to utils.cHarald Welte2010-07-303-19/+20
|
* Import 'hexparse' function from OpenBSCHarald Welte2010-07-301-0/+27
|
* core: Add some generic panic handlingSylvain Munaut2010-07-252-1/+72
| | | | | | | | 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>
* osmocore: Add utility function rsl_chan_nr_str to RSLSylvain Munaut2010-07-251-0/+26
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm0808: Why should there be a lchan in the parameter...Holger Hans Peter Freyther2010-07-231-1/+1
|
* gsm0808: Import unaligned mem access fix from on-waves/bsc-masterHolger Hans Peter Freyther2010-07-231-4/+9
|
* gsm_utils: Move the gsm_7bit_alphabet into the impl and make it staticHolger Hans Peter Freyther2010-07-231-0/+27
|
* gsm_7bit_decode: rtext does not hold a null byte, reduce the sizeHolger Hans Peter Freyther2010-07-211-1/+1
| | | | | I have added the + 1 as I thought rtext will hold a terminating null byte but it will not.
* tests: don't hardcode length values of expected encoding gsm_7bit_encode:Nico Golde2010-07-211-4/+6
| | | | | | | | | 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.
* gsm_7bit_decode: Handle the case of the last charachter being an escapeHolger Hans Peter Freyther2010-07-201-1/+1
| | | | | 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.
* * rewrite GSM 7bit default encoding/decoding based on a lookup table as the ↵Nico Golde2010-07-201-20/+79
| | | | previous code produced wrong encodings for certain characters.
* Added crc16 from linux kernel.Ingo Albrecht2010-07-152-1/+63
|
* [VTY] add support for numeric ranges with negative numbersAndreas Eversberg2010-07-131-31/+67
| | | | This enables us to do something like <-128-127> as a numeric range.
* [RSL] split rsl_rll_push_l3() L3 LV pushign and rsl_rll_push_hdr()Harald Welte2010-07-131-10/+25
| | | | | This allows us to generate RSLms messages that have some non-standard IEs between the RSL/RLL common header and the L3 INFO IE.
* Add 3-digit MNC support to gsm48_generate_lai()Andreas Eversberg2010-07-121-7/+7
|
* Added new IE definitions to gsm_04_08.h of libosmocore.Andreas Eversberg2010-07-121-1/+63
| | | | | | Also added RR and MM TLV tables to gsm48.c [import from accidential commit to osmocom-bb.git]
* Added single octet TV (type + value) to libosmocore.Andreas Eversberg2010-07-121-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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:
* gsm_utils: Fix typo in gsm band nameSylvain Munaut2010-07-041-1/+1
| | | | | | thanks to horizon for noticing :p Signed-off-by: Sylvain Munaut <tnt@246tNt.com>