summaryrefslogtreecommitdiffstats
path: root/src/gsm
Commit message (Collapse)AuthorAgeFilesLines
* misc: Fix make distcheck, add the new libosmogsm.map file to the tarballHolger Hans Peter Freyther2012-04-051-0/+2
|
* lapdm: fix RSL message format in RLL ERROR INDICATIONHarald Welte2012-04-051-1/+0
| | | | | | In rsl_rll_error() we don't need to re-set the msg->l2h as that would corrupt the message. The recipient would interpret any cause value as 0.
* libosmogsm: Introduce explicit list of exported symbolsHarald Welte2012-04-043-3/+233
| | | | | | | | There is now a "libosmogsm.map" file containing an explicit list of to-be-exported symbols. This should prevent us from leaking non-static symbols into the global namespace. A similar scheme should be adopted by all other osmocom libraries
* auth_milenage/osmo-auc-gen: compute OPC in case only OP is knownHarald Welte2012-03-211-2/+13
|
* milenage: Add function to compute OPC from OP and KHarald Welte2012-03-212-0/+17
|
* lapd: Remove unused variable t200_start in lapd_acknowledge.Holger Hans Peter Freyther2012-03-161-2/+1
| | | | | lapd_core.c: In function 'lapd_acknowledge': lapd_core.c:710:38: warning: variable 't200_start' set but not used [-Wunused-but-set-variable]
* gsm/a5: Rewrite equation doc with proper numberingSylvain Munaut2012-03-021-4/+4
| | | | | | | No idea where I copied the original from but here we use the other notation. (matches wikipedia and sources) Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* GSM 08.08: change gsm0808_create_classmark_update() prototypeHarald Welte2012-01-261-3/+6
| | | | | The caller explicitly specifies CM2 and CM3, rather than one blob containing both.
* GSM 08.08: Cleanup the code, remove lots of magic hard-coded numbersHarald Welte2012-01-261-116/+60
| | | | | | | Rather than manually hard-coding numbers and using byte-arrays, we use the msgb_*_{push,put}() function family of libosmocore/libosmogsm. This is currently untested.
* lapdm: Make sure that the msgb_l3len(msg) == length...Holger Hans Peter Freyther2012-01-121-4/+4
| | | | | | | | | | This code should not play with the internals of the msgb like this, this code got introduced in af48bed55607931307 and is breaking the osmo-bts usecase of forwarding an RSL message. Add a test case that fails without the new code. I would prefer if we could get rid of the manipulating the msgb like this, it is prone to errors like this one.
* lapd: Warn if someone attempts to send an empty messageHolger Hans Peter Freyther2012-01-121-0/+7
| | | | | | DATA REQ with a msgb_l3len(msg) == 0 message does not make any sense, log an error and return immediately before attempting to send an empty I frame in lapd_send_i.
* lapd: Mention the L3 size of the payload being sentHolger Hans Peter Freyther2012-01-121-1/+2
|
* libosmocore/lapd: Fixed handling of sequence errors at lapd_core.cAndreas.Eversberg2012-01-101-3/+21
| | | | | | | | | | | | | | | If a sequence error is received, the N(R) variable must still be used to acknowledge previously transmitted frames. If there are two subsequent sequence errors received, ignore it. (Ignore every second subsequent error.) This happens if our reply with the REJ is too slow, so the remote gets a T200 timeout and sends another frame with a sequence error. Test showed that replying with two subsequent REJ messages could the remote L2 process to abort. Replying too slow shouldn't happen, but may happen over serial link between BB and LAPD. Written-by: Andreas.Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* Fix generation of GPRS Routing Area in case of 3-digit MNCGus Bourg2011-12-141-1/+1
| | | | | This fixes a simple typo that causes erroneous GPRS Routing Area encoding if you use 3-digit MNCs.
* auth_core: add missing string.h include to reduce warningsHarald Welte2011-12-071-0/+1
|
* auth_core: don't use anonymous unions to make certain gcc versions happyHarald Welte2011-12-072-7/+7
|
* auth_milenage: we now copy RAND in auth_core, no need to do it twiceHarald Welte2011-12-071-1/+0
|
* auth_core: Make sure we always save the RAND in the vectorHarald Welte2011-12-071-1/+8
|
* auth_core: add functions for parsing algorithm namesHarald Welte2011-12-071-0/+20
|
* add milenage internal headers to ensure 'make dist' worksHarald Welte2011-12-071-0/+5
|
* Auth: Import milenage implementation from hostap (Jouni Malinen)Harald Welte2011-12-0614-3/+1659
| | | | ... and add integration into the osmo_auth core.
* Add a generic abstraction for GSM/3G authentication algorithmsHarald Welte2011-12-063-1/+141
| | | | | Indiidual algorithms can be implemented as plugins. libosmogsm itself only provides COMP128v1 via this generic interface.
* comp128: mark ki and srand as 'const' input parametersHarald Welte2011-12-061-1/+1
|
* increment LIBVERSION of libosmocore for new apiHarald Welte2011-12-011-1/+1
|
* SMS: export gsm411_bcdify() and gsm411_unbcdify() functionsHarald Welte2011-12-011-20/+20
| | | | | The same functions are e.g. required by the NITZ code in 04.08, and we don't want copy+paste.
* gsm/lapd_core: Make sure rc is initialize in lapd_rx_uSylvain Munaut2011-11-201-1/+1
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/a5: Bit faster way to compute parity ...Sylvain Munaut2011-11-201-3/+2
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/a5: Add documentationSylvain Munaut2011-11-171-0/+68
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/a5: Rewrite A5/2 algo to avoid the delayed bitSylvain Munaut2011-11-171-23/+12
| | | | | | It's just clearer that way ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/a5: Add const qualifier on the keySylvain Munaut2011-11-171-3/+3
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/gsm0411_smc: Fix typoSylvain Munaut2011-11-121-1/+1
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* include/gsm_04_11: Fix compatibility issue with GSM411_TMR_TC1ASylvain Munaut2011-11-121-1/+1
| | | | | | We need to keep the old one for compatibility ! Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/sms: Rewrite of SMR process, extracted from OpenBSCAndreas Eversberg2011-11-122-1/+452
| | | | | | | | | | | The SMR process is used to transfer SMS TPDUs. It is now extracted from OpenBSC. It includes a real state machine now for easier debugging. Also it implements the TR1M and TR2M timers. The memory notification procedure is missing, but not required for network side. Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/sms: Rewrite of SMC process, extracted from OpenBSCAndreas Eversberg2011-11-122-1/+540
| | | | | | | | The SMC process is used to transfer RP frames. It is now extracted from OpenBSC. It includes a real state machine now for easier debugging. Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/sms: Moved utility functions of SMS processing to new gsm0411_utils.cAndreas.Eversberg2011-11-122-0/+308
| | | | | Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/lapdm: Display SAPI in debug message for easier debugAndreas.Eversberg2011-11-121-2/+2
| | | | | Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/lapdm: Fix UI frames from BTS->MS have length (B4 format)Andreas.Eversberg2011-11-121-7/+11
| | | | | | | | | | This is part of a set of commit to fix LAPDm to handle datalink connection on ACCH (SAPI 3) This is required to transfer SMS on SACCH of TCH/f or SDCCH/8 (4). Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/lapdm: Fix TA and power level handling in the ACCH headerAndreas.Eversberg2011-11-121-6/+14
| | | | | | | | | | | | | Timing advance and power level indicated by MS (measurement reports) and BTS (SI 5/6) are now stored for use at ACCH data link connection. This is part of a set of commit to fix LAPDm to handle datalink connection on ACCH (SAPI 3) This is required to transfer SMS on SACCH of TCH/f or SDCCH/8 (4). Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/lapdm: Set N201 depending on the frame typeAndreas.Eversberg2011-11-121-5/+5
| | | | | | | | | | This is part of a set of commit to fix LAPDm to handle datalink connection on ACCH (SAPI 3) This is required to transfer SMS on SACCH of TCH/f or SDCCH/8 (4). Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/lapdm: Make T200 timer depends on the link type (SACCH is slower)Andreas.Eversberg2011-11-121-5/+6
| | | | | | | | | | This is part of a set of commit to fix LAPDm to handle datalink connection on ACCH (SAPI 3) This is required to transfer SMS on SACCH of TCH/f or SDCCH/8 (4). Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm/lapdm: Add missing msgb_free in rslms_rx_rll error casesAndreas.Eversberg2011-11-121-0/+2
| | | | | Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* lapd: Fixed possible double free buf in lapd_core.cAndreas Eversberg2011-11-121-2/+3
| | | | | Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* update LIBVERSION to reflect new API additionsHarald Welte2011-10-101-1/+1
|
* Added defines to use primitive/operation tuples in switch/case statementsAndreas Eversberg2011-10-101-58/+20
|
* LAPD: Moved timer handling into seperate functionsAndreas Eversberg2011-10-101-72/+87
|
* Split of LAPDm into a core part and a GSM specific partroot2011-10-103-1621/+2456
| | | | | | | | | | | | | | Instead of mixing together the GSM layer 1 interface and RSL interface with the implementation of LAPD, the core function of LAPD is now extracted from LAPDm. The core implementation is now in lapd_core.c and lapd_core.h respectively. The lapd_core.c implements exactly one datalink instance for one SAP. The surrounding implementation "lapdm.c" codes/decodes the layer 2 headers and handles multiplexing and datalink instances, as well as translates primitives from/to RSL layer. lapd_core.c can now be used for other LAPD implementations. (ISDN/ABIS)
* LAPDm: Fix encoding of RLL ERROR IEHarald Welte2011-09-031-1/+0
|
* gsm/gsm48_ie: Fix other range format decodingAndreas.Eversberg2011-09-021-66/+63
| | | | | | | | As it turns out, the other range were affected too, so Anreas wrote the fix for them as well. Written-by: Andreas.Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* RSL: add rsl_ipac_msg_name() for ipa specific RSL extension namesHarald Welte2011-09-021-0/+36
|
* gsm/gsm48_ie: Fix Range 256 format decodingSylvain Munaut2011-09-011-20/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From the mail: --- appended is another patch for fixing a bug in the calculation of the frequency lists. This time the patch is for the "Range 256 format". The problem is that the operand for the "smod" operation might be negative, in this case the simplified version won't work as expected. In the patch I introduced a separate function for "smod" which takes care of the sign. I have not yet checked if the other formats are also affected, this would be the case if the "smod" operand can be negative. There might be other solutions to fix the problem without the need for a separate function, however I have not thought further about it. A test vector is the following frequency list ("Range 256 format", first byte is the length): 09 8b 1c 83 8c 15 ef 02 2d 30 The correct ARFCNs are 569 571 576 578 586 608 712 715 719 The uncorrected version would instead return: 444 457 460 464 569 576 578 586 608 This means four ARFCNs are wrong which will cause problems if for example the frequency list contains the ARFCNs for hopping. ---- Written-by: Dieter Spaar <spaar@mirider.augusta.de> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>