aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-07-25MSC,SGSN: use OSMO_GSUP_PORT == 4222 instead of 2222vlr_3GNeels Hofmeyr3-2/+6
In SGSN, actually place the port in the SGSN config by default, so that the gsup port may now be omitted in the VTY config (the IP address suffices). Adjust the osmo-sgsn.cfg example. Depends: I4222e21686c823985be8ff1f16b1182be8ad6175 (libosmocore) Change-Id: I50f2040e2eb0baacb43849e93cfed10cbc2fc156
2017-05-11examples/sgsn: Use osmo-hlr with auth-policy remote by defaultDaniel Willmann1-0/+3
Change-Id: I28502ab88cb73d407c8b503d8b28491e909ad194
2017-05-11contrib: Change systemd requirements so the services connect properlyDaniel Willmann2-2/+6
Change-Id: Id5bfbcd0d906d1aa9c2de9cb7a0e7d0053ea2375
2017-05-10examples: Change IP address of config filesDaniel Willmann3-7/+7
This helps in providing 3G software packages for the sysmoNITB hardware. Change-Id: I99ba316be1088c10496025325dfe03035892d394
2017-05-10contrib: Add osmo-msc service fileDaniel Willmann1-0/+13
Change-Id: I60b1b134beec741c50df4c32d44ed51b720e12c9
2017-05-09temporary dev: set debug log level almost everywhereNeels Hofmeyr1-17/+17
Change-Id: I0d5a36560e7edde27497de57e579f5b1d00eb525
2017-05-09log protocol discriminators and message types by nameNeels Hofmeyr11-907/+923
Depends: libosmocore change-id I0fca8e95ed5c2148b1a7440eff3fc9c7583898df Change-Id: If1c49faf6e1757cb16b383dd2db87b48bc94eee6
2017-05-09mgcp: hack RAB success from nano3G: patch first RTP payloadNeels Hofmeyr2-0/+8
The ip.access nano3G needs the first RTP payload's first two bytes to read hex 'e400', or it will reject the RAB assignment. Add flag patched_first_rtp_payload to mgcp_rtp_state to detect the first RTP payload on a stream, and overwrite its first bytes with e400. This should probably be configurable, but seems to not harm other femto cells (as long as we patch only the first RTP payload in each stream). Only do this when sending to the BTS side. Change-Id: I31a4475f42d59fd5704d52ee6e473e270db6d779
2017-05-09Implement IuCS (large refactoring and addition)Neels Hofmeyr103-3100/+4774
osmo-nitb becomes osmo-msc add DIUCS debug log constant add iucs.[hc] add msc vty, remove nitb vty add libiudummy, to avoid linking Iu deps in tests Use new msc_tx_dtap() instead of gsm0808_submit_dtap() libmgcp: add mgcpgw client API bridge calls via mgcpgw mgcp: hack RAB success from nano3G: patch first RTP payload The ip.access nano3G needs the first RTP payload's first two bytes to read hex 'e400', or it will reject the RAB assignment. Add flag patched_first_rtp_payload to mgcp_rtp_state to detect the first RTP payload on a stream, and overwrite its first bytes with e400. This should probably be configurable, but seems to not harm other femto cells (as long as we patch only the first RTP payload in each stream). Only do this when sending to the BTS side. Change-Id: Ie13ff348117e892d41b8355ab6c24915301eaeaf
2017-05-08mscsplit: various preparations to separate MSC from BSCNeels Hofmeyr28-268/+446
Disable large parts of the code that depend on BSC presence. Don't set msg->lchan nor msg->dst. Don't use lchan in libmsc. Decouple lac from bts. Prepare entry/exit point for MSC -> BSC and MSC -> RNC communication: Add msc_ifaces.[hc], a_iface.c, with a general msc_tx_dtap() to redirect to different interfaces depending on the actual subscriber connection. While iu_tx() is going to be functional fairly soon, the a_tx() is going to be just a dummy for some time (see comment). Add Iu specific fields in gsm_subscriber_connection: the UE connection pointer and an indicator for the Integrity Protection status on Iu (to be fully implemented in later commits). Add lac member to gsm_subscriber_connection, to allow decoupling from bts->location_area_code. The conn->lac will actually be set in iu.c in an upcoming commit ("add iucs.[hc]"). move to libcommon-cs: gsm48_extract_mi(), gsm48_paging_extract_mi(). libmsc: duplicate gsm0808 / gsm48 functions (towards BSC). In osmo-nitb, libmsc would directly call the functions on the BSC level, not always via the bsc_api. When separating libmsc from libbsc, some functions are missing from the linkage. Hence duplicate these functions to libmsc, add an msc_ prefix for clarity, also add a _tx to gsm0808_cipher_mode(): * add msc_gsm0808_tx_cipher_mode() (dummy/stub) * add msc_gsm48_tx_mm_serv_ack() * add msc_gsm48_tx_mm_serv_rej() Call these from libmsc instead of * gsm0808_cipher_mode() * gsm48_tx_mm_serv_ack() * gsm48_tx_mm_serv_rej() Also add a comment related to msc_gsm0808_tx_cipher_mode() in two places. Temporarily disable all paging to be able to link libmsc without libbsc. Skip the paging part of channel_test because the paging is now disabled. In osmo-nitb, paging is done on BSC level and MSC level "at the same time". When the new MSC is fully operational, paging will be controlled separately on the MSC level, and the BSC (RNC) level will be instructed over an IuCS or A-interface to negotiate paging with the MS (UE). This MSC level paging does not yet exist and will be added in subsequent commits. msc_compl_l3(): publish in .h, tweak return value. Use new libmsc enum values for return val, to avoid dependency on libbsc headers. Make callable from other scopes: publish in osmo_msc.h and remove 'static' in osmo_msc.c add gsm_encr to subscr_conn move subscr_request to gsm_subscriber.h subscr_request_channel() -> subscr_request_conn() move to libmsc: osmo_stats_vty_add_cmds() gsm_04_08: remove apply_codec_restrictions() gsm0408_test: use NULL for root ctx move to libbsc: gsm_bts_neighbor() move to libbsc: lchan_next_meas_rep() move vty config for t3212 to network level (periodic lu) remove unneccessary linking from some tests remove handle_abisip_signal() abis_rsl.c: don't use libvlr from libbsc Change-Id: I9cf80f9c2c8a53a29e42f000029e680a9922cb41
2017-05-08IuPS adjustmentsHarald Welte5-23/+46
SGSN: Don't indicate GERAN in Iu mode PDP CTX ACT REQ to GGSN sgsn_ranap_iu_event: handle some events without valid MM context sgsn init: pass sgsn_config pointer to sgsn_vty_init(), not sgsn_parse_config IuPS: cosmetic: explicitly check RAN type; move comment Change-Id: I8375ba42dd47d7ccd9ce9290767d6f8653a23b94
2017-05-08osmo-nitb: change default config file name to osmo-nitb.cfgvlr_2GNeels Hofmeyr1-1/+1
Since the VLR development marks a move away from the 'openbsc' name, now is a good opportunity to also change the default config file name to the more accurate and obvious 'osmo-nitb.cfg'. Change-Id: I47658dad59ec38c39be59415db5f648c9e4c79f2
2017-05-08osmo-nitb: change default db name to sms.dbNeels Hofmeyr1-1/+1
libvlr now delegates subscriber management to osmo-hlr, so the database no longer represents a HLR. It basically only stores SMS, so reflect that fact in the default database name. Change-Id: Ibf766d9f7f67aae17f76988d6279da20ad18e4bc
2017-05-08SI3: indicate R99+ MSC to GSM MS to enable UMTS AKANeels Hofmeyr1-0/+3
Change-Id: Iaf11218327f139e8cabfbc5f9916505c66eadbd8
2017-05-08Add msc_vlr test suite for MSC+VLR end-to-end testsNeels Hofmeyr34-2/+15304
Change-Id: Ic073f3a069a7f5e7e421e0e56140f069ee9b10b8
2017-05-08Use libvlr in libmsc (large refactoring)Harald Welte66-3825/+2140
Original libvlr code is by Harald Welte <laforge@gnumonks.org>, polished and tweaked by Neels Hofmeyr <nhofmeyr@sysmocom.de>. This is a long series of development collapsed in one patch. The original history may still be available as branch neels/vlr_orig. TODO: This commit may be split in several smaller changes before merging to master. SMS: The SQL based lookup of SMS for attached subscribers no longer works since the SQL database no longer has the subscriber data. Replace with a round-robin on the SMS recipient MSISDNs paired with a VLR subscriber RAM lookup whether the subscriber is currently attached. If there are many SMS for not-attached subscribers in the SMS database, this will become inefficient: a DB hit returns a pending SMS, the RAM lookup will reveal that the subscriber is not attached, after which the DB is hit for the next SMS. It would become more efficient e.g. by having an MSISDN based hash list for the VLR subscribers and by marking non-attached SMS recipients in the SMS database so that they can be excluded with the SQL query already. There is a sanity limit to do at most 100 db hits per attempt to find a pending SMS. So if there are more than 100 stored SMS waiting for their recipients to actually attach to the MSC, it may take more than one SMS queue trigger to deliver SMS for subscribers that are actually attached. This is not very beautiful, but is merely intended to carry us over to a time when we have a proper separate SMSC entity. Introduce gsm_subscriber_connection ref-counting in libmsc. Related: OS#1592 Change-Id: I702ba504ce2de93507312c28eca8d11f09f4ee8b
2017-05-08Add libvlr implementationHarald Welte17-0/+5440
Original libvlr code is by Harald Welte <laforge@gnumonks.org>, polished and tweaked by Neels Hofmeyr <nhofmeyr@sysmocom.de>. This is a long series of development collapsed in one patch. The original history may still be available as branch neels/vlr_orig. Related: OS#1592 Change-Id: I3f75de5f0cc2ff77f276fd39832dd3621309c4b9
2017-05-08logging: auth request: use hexdump without spaces for RAND, AUTNNeels Hofmeyr1-2/+2
Change-Id: I656d8619a1adc93e2f627f4e1ba21512a7374279
2017-05-08gsup_client: allow passing a unit id to identify with HLRNeels Hofmeyr4-7/+21
Before, each GSUP client would contact the HLR with an identical unit id, i.e. "SGSN-00-00-00-00-00-00", with the result that some messages were sucked off by the wrong client. Pass explicit unit name from each gsup client user, so that OsmoMSC is "MSC" and OsmoSGSN is "SGSN". Hence the HLR can properly route the messages. Todo: also set some values instead of the zeros. Unrelated cosmetic change while editing the arguments: gsup_client_create()'s definition's oap client config arg name mismatched the one used in the declaration. Use oapc_config in both. Change-Id: I3f8d6dd47c7013920e2a4bde006ed77afd974e80
2017-05-08GPRS/IuPS: remove all 3G authentication dev hacksNeels Hofmeyr2-44/+2
UMTS auth works now with the external OsmoHLR. Change-Id: I1204f388cf1311ec98b3eaf7505d7e18e73f03d0
2017-05-08Use ipa.py for ctrl testsMax1-16/+8
Remove duplicated code and make sure that python code is actively used as part of test harness Change-Id: I676390abe2f179df6004cdd33d0eaaf60e18df03
2017-05-05Gb: use textual representation for parse logMax1-3/+2
Use textual representation for message type and protocol descriminator in case of Gb parsing errors. Change-Id: Ida925258be119619d8705361730c554a130b75bc Related: SYS#3610
2017-05-04deb: install python scripts from contrib/Max1-0/+1
Add .py scripts from contrib/ to osmo-nitb.deb package. Change-Id: I852815f348ae330980b186e1ddbc78f18f4f42b5 Related: SYS#3028
2017-05-04ctrl: remove boilerplate codeMax2-24/+2
Define subscriber-list-active-v1 ctrl command as RO and remove unnecessary functions. Change-Id: I88fe905c22cf7563415d470b88cb43fca0d52a7f
2017-05-02Fix vty warnings for GEA0Max1-10/+11
Previously vty always used additional checks even for GEA0 (no encryption) which resulted in misleading warnings. Fix this by adding explicit check for GEA0. Related: SYS#3610 Change-Id: I1ee468ab3298076d4cb5c7b1f6293c07e272417b
2017-05-02Make pcap dependency optionalMax2-2/+9
Previously we required pcap.h unconditionally which causes embedded build failure because it's not included in current version of out poky toolchain. We can add it to toolchain but it's only necessary for utils/osmo-meas-pcap2db which is not built for sysmobts anyway so it's easier to just make this dependency optional and build osmo-meas-pcap2db only if it's available - similar to the way we build osmo-meas-udp2db. Related: SYS#3610 Change-Id: I77a5f7eafe0282abedacffad6a9bcb0a8f2b5caa
2017-04-28Add gsm_bts_type_variant to gsm_bts structMax1-0/+1
Previously it was only in gsm_bts_model which is not initialized on BTS side. It's more convenient to have it in the struct which is available to BTS as well. Change-Id: I54fde8c4ccd5d994af08074f5864446e79a93a25 Related: OS#1614
2017-04-28Prepare for extended SI2quater supportMax7-61/+60
Supporting SI2quater as per 3GPP TS 44.018 will require chnages to the way System Information is stored because it uses 1:n instead of 1:1 mapping between SI type and generated SI content. This should not affect other SI types though. To facilitate this transition: * convert the code to always use GSM_BTS_SI helper instead of accessing buffer directly * make helper more robust by adding extra parenthesis * add similar helper for gsm_lchan * add function estimating number of SI2quater message to hold configured number of (U|E)ARFCNs * add SI2q index/count fields and pass them to rest_octets generator explicitly * internalize buffer access in generate_si* functions Change-Id: I74e4e3cb86364cec869a1472a41b4a95af0d50dd Related: RT#8792
2017-04-28Save PCU version reported by BTSMax1-13/+9
When BTS reports PCU disconnect - clear it. Change-Id: Idb32c73036413ee912f633604150ee17b611cfa7 Related: OS#1615
2017-04-27deb: install openbsc.pcMax1-0/+1
Previously openbsc.pc was generated but not installed as part of openbsc-dev. Change-Id: I5472a8fe74a81b98598fbdb688db778cb7d09e62
2017-04-26gbproxy: add example .serviceMax1-0/+12
Change-Id: Ic8144777a77efce4bad44abf6c6abde12fc5149c Related: SYS#3610
2017-04-26Remove libs from openbsc.pcMax1-1/+0
OpenBSC does not produce any installable libraries, only header files so this section is unnecessary. Change-Id: I4c563d775a84f41f82404e0eaba1a25fdbaac1a5
2017-04-26Fix MS TO measurement representationMax6-13/+22
* set proper flag when saving MS Timing Offset * use gsm_subscriber's IMSI or lchan's name if bsc_subscriber is unknown * add comments with spec reference * store/display MS Timing Offset instead of raw Timing Offset field from RSL * Compute MS Timing Offset [-63; 192] from Timing Offset field [0; 255], adjust structure gsm_meas_rep with proper type to store it Change-Id: I7e003d23a6edb714c5f17688fd6a8edac131161d Related: OS#1574
2017-04-12nat: Fix initial buffer size parameter for getlinePau Espin Pedrol1-1/+1
According to man, lineptr must be set to null AND n to 0. Change-Id: I36683884106b97ef697264716de13813c00da9bc
2017-04-12nat: Use equal func in bsc_sccpPau Espin Pedrol1-6/+4
It is defined in the file and used twice in there, so let's use it for all of them which makes code smaller and more clear. Change-Id: I9fac7cabedff74f8f6293ad8b54420229b80aa71
2017-04-10build: iu: use libosmo-sccp tag 'old_sua'Neels Hofmeyr1-1/+5
libosmo-sccp master is moving ahead, openbsc --enable-iu needs an older version. Change-Id: Id74a802fd2ca65f4b6c2079550fbb6b0af3e8340
2017-04-10gsm_bts: add version and variant detailsMax9-18/+38
* add version string to gsm_bts * add PCU version string to gsm_bts * rename GSM_BTS_TYPE_OSMO_SYSMO -> GSM_BTS_OSMOBTS to avoid confusion between BTS model and variant * add variant enum to gsm_bts_model using enum with variants for each hw vendor of OsmoBTS * show connected PCU version (if available) in vty via 'show bts' This will come in handy when logging details regarding particular BTS reported via OML, see: Related: OS#1614 Change-Id: I6710d53115f34634a7b70969cc05fd5c72ff8ab2
2017-04-08abis: log known ACKs and unknown messagesMax1-1/+18
Log expected ACK messages and unhandled messages to aid in troubleshooting. Change-Id: Id3afaaa76e24f63076ae0e6fd2322e4a7fa29b45 Related: OS#1614
2017-04-05python: fix Null loggerMax1-3/+3
Change-Id: Ie120273eabbc670e9f19ba365508688a810a2773 Related: SYS#3028
2017-04-03VTY: add the dyn_ts_allow_tch_f optionVadim Yanitskiy4-14/+29
This option allows to enable or disable TCH/F allocation on the TCH/F_TCH/H_PDCH timeslots. Until now, source code modification was required to enable this feature. Related: OS#1778 Change-Id: Id18cab25844dc854a66b4e2713e90c3f43afa712
2017-03-31jenkins.sh: Iu: use libosmo-sccp,-netif masterNeels Hofmeyr1-7/+2
The iu specific branches of libosmo-sccp and libosmo-netif have recently been merged to master. Change-Id: I9465d7b956c3bd65d6e8a387e6710235672352e8
2017-03-31LU counters: count completion and failure, not messages sentNeels Hofmeyr3-20/+38
From a human admin viewpoint it doesn't make sense to count the messages sent: When we use TMSIs, we first send a LU Accept with a new TMSI, and then expect the MS to respond with a TMSI Realloc Complete message. When that fails to come through, the LU actually ends in failure, even though a LU Accept was sent. If a conn breaks/vanishes during LU, we cancel the LU without sending any reply at all, so the failed LU would not be counted. Instead, count Location Updating results, i.e. completion and failures. (With the new VLR developments, LU counters need to be triggered in completely different places, and this patch prepares for that by providing sensible counters.) Change-Id: I03f14c6a2f7ec5e1d3ba401e32082476fc7b0cc6
2017-03-23Handle PCU version received via OML alertMax1-30/+90
Explicitly check for and log PCU version received from BTS via OML alert message. Change-Id: I3c88663d4e2887a4038b4c3f1387128295b8934e Related: OS#1614
2017-03-23Add simple CTRL2SOAP proxyMax1-0/+188
Add python client which converts TRAP messages into SOAP requests and perform corresponding actions. It can be used as follows ./soap.py -d -w http://example.com/soapservice/htdocs/wsdl/test.wsdl See ./soap.py -h for additional options. Change-Id: I82844ec7a302bac30d6daee9ebca2188fd48ca46 Related: SYS#3028
2017-03-23libbsc: add rsl_ericsson_imm_assign_cmd() which reply with a confirmation ↵Alexander Couzens2-1/+27
message ericsson can handle a reference at the end of a imm assign command which is used in the confirm response. The confirm response is only sent if the trailer is present. Change-Id: I88560291b5a3a3d7a0bac4d3c089b45f1f6b297f
2017-03-23RBS2000 RSL: Support for sending RSL PAGING CMD for GPRSHarald Welte3-3/+9
Change-Id: I66541f9b20e7fd67fbec329283fc3c821c970a56
2017-03-23RBS2000: Add the P-GSL Timer IE to RSL CHAN ACT for PDCHHarald Welte1-0/+7
This seems to be mandatory when an Ericsson RBS2000 uses a SuperChannel as back-haul. Change-Id: I793e7d62df1ca9f9c38d39e22d3868064d446c8d
2017-03-23abis_om2k: protect MO FSMs by NULL checkAlexander Couzens1-1/+17
Also set MO FSMs to NULL after freeing them. Change-Id: I30df0b9ab8bc47ba9756c8388e977deed0e40200
2017-03-23OM2000: Send ALTCRQ for SuperChannel after receiving IS Enable Req AckHarald Welte3-0/+32
When the BTS is configured to use a SuperChannel and it is using a unix domain socket based transport towards the L2TP daemon, then we must instruct the L2TP daemon to instruct the SIU to change the Abis Lower Transport Mode using the ALTCRQ / ALTCRP L2TP signalling. Change-Id: I672bfaa09c42fbeb0c8459f24b2222b952de954b
2017-03-21twisted_ipa.py: make debug logging more robustMax1-23/+32
Do not print anything to stdout directly - use proper logger object instead: either the one supplied by IPAFactory user or default to NO-OP NullHandler logger. Change-Id: Ic3417095a6e8848f0acabb46a9e64c0197b736e2 Related: SYS#3028