summaryrefslogtreecommitdiffstats
path: root/openbsc/src/gprs
AgeCommit message (Collapse)AuthorFilesLines
2016-05-01RAB Assignment Response: Handle TEID changesHarald Welte1-2/+16
When the RNC confirms the RAB Assignment, it can each time indicate a new TEID for the GTP-U endpoint on the RNC side. We need to update our information about the PDP context and include that in the UPDATE PDP CONTEXT that we're sending towards the GGSN. This is similar to updating the RNC-side IP address of the GTP endpoint.
2016-05-01Identify PDP context by RAB ID, not TEIHarald Welte2-19/+2
When receiving an RAB-Assignment response from the RNC, we should use the RAB ID (=NSAPI) to resolve the PDP context. We cannot use the TEID, as the TEID chosen by the RNC for this RAB has no relationship to the TEID we were using for the RAB-Assignment request. TEIDs are local to each of the peer, like UDP port numbers.
2016-05-01SGSN: Use PDP Context NSAPI as RAB IDHarald Welte3-14/+2
As Dieter has pointed out, the RANAP spec requires the RAB ID to be equal to the NSAPI of the PDP context for which it is established.
2016-04-25RAB parameters: apply use_x213_nsap parameter additionNeels Hofmeyr2-2/+2
Add use_x213_nsap parameter to iu_rab_act_ps(), pass the new parameter from two callers as 1 such that there is no functional change.
2016-04-20cosmetic: auth tuple memcpy: rather use target's sizeof()Neels Hofmeyr1-3/+3
2016-04-20tweak tmp_rand[] type to avoid compiler warningsNeels Hofmeyr1-2/+2
2016-04-20gprs_gmm.c: include openssl/rand.h against RAND_bytes() compiler warningNeels Hofmeyr1-0/+2
2016-04-19Iu RANAP event: add IU_EVENT_LINK_INVALIDATEDNeels Hofmeyr1-2/+2
See in-code comment...
2016-04-19gprs: Activate RABs from RoutingArea update request as wellDaniel Willmann1-8/+9
2016-04-19gprs: Keep track of key negotiation and set the key status flag in sec_mod_cmdDaniel Willmann2-30/+7
2016-04-12gprs: Change auth key for every new Iu connectionDaniel Willmann1-9/+57
2016-04-08sgsn: Reset mm ctx state in service request and after authorizationDaniel Willmann1-0/+4
2016-04-08sgsn: Don't send the pdp context accept every time the RAB activatesDaniel Willmann1-1/+4
2016-04-08gprs: Save integrity protection status inside ue ctx, not mm ctxDaniel Willmann1-3/+2
2016-04-08gprs: Use different RAB IDs for activationDaniel Willmann3-9/+27
2016-04-08sgsn: Pass RAB ID to iu_rab_act_ps() functionDaniel Willmann2-2/+2
2016-03-31Merge branch 'master' into sysmocom/iuNeels Hofmeyr1-1/+1
Conflicts: openbsc/src/libmsc/auth.c openbsc/src/libmsc/gsm_04_08.c openbsc/src/osmo-bsc/osmo_bsc_vty.c openbsc/tests/Makefile.am
2016-03-22fix various compiler warningsNeels Hofmeyr1-0/+2
sgsn_libgtp.c: missing include, for asn1str_to_u32() iu_cs.c: missing include, for subscr_name() osmo_bsc_vty.c: int/pointer conversions (note: this was discussed on the list to be solved by passing a pointer instead. Until then...) iudummy.c: opaque struct declarations
2016-03-22iu_tx_sec_mode_cmd(): add send_ck flag parameterNeels Hofmeyr1-1/+1
In this way the caller can distinguish between sending an IK or an IK+CK Security Mode Command.
2016-03-22fix build: match Iu event cb enum argument type from declarationNeels Hofmeyr2-2/+2
2016-03-21debug log fixesNeels Hofmeyr1-1/+1
gprs_gmm.c: remove extraneous debug print arg. iu_cs.c: increment should not be in debug statement. Fixes at least one coverity warning.
2016-03-18gprs_gmm: Call gsm48_gmm_authorize from RA upd requestDaniel Willmann1-1/+8
In Iu mode the RA upd request can be called from a new Iu connection so we might need to reauthenticate the connection as well as turn on integrity protection.
2016-03-18libiu: Change gprs_transp_upd_key to be useful for CS as wellDaniel Willmann1-4/+6
gprs_transp_upd_key only sends a security mode command which is needed for CS as well so change it. Make sure it is called after the UE is authenticated in Iu mode.
2016-03-16gprs_gmm: Fix RA UPD handling for IU modeDaniel Willmann1-2/+7
2016-03-16Move event callback to gprs_gmmDaniel Willmann2-29/+37
2016-03-16libiu: Replace RAB assignment response callback with a general oneDaniel Willmann2-4/+29
The new iu event callback will now be called for RAB assignment response, IU release and security mode complete
2016-03-1504.08: apply new transaction id inline functionsNeels Hofmeyr1-4/+4
libosmocore recently added inline functions to relieve callers from applying bitmasks and bit shifts to access the transaction id of a GSM 04.08 header. Apply these functions.
2016-03-1504.08: apply new bitmask functions, fix bitmask useNeels Hofmeyr3-6/+13
Replace hardcoded protocol discriminator and message type bitmasks with function calls recently introduced in libosmocore. Note that the release 98 bitmasks slightly differ from the release 99 bitmasks. This patch uses the "default" gsm48_hdr_msg_type invocation, thus it depends on libosmocore whether 98 or 99 bitmasks are used. In some places, use of the bitmask was erratic. Fix these implicitly by employing the bitmask functions: * silent_call.c: silent_call_reroute(): add missing bitmask for MM. * bsc_msg_filter.c: bsc_msg_filter_initial(): RR vs. MM messages. * osmo_bsc_filter.c: bsc_find_msc() and bsc_scan_bts_msg(): RR vs. MM messages. * bsc_nat_rewrite.c: bsc_nat_rewrite_msg(): SMS vs. CC messages. * bsc_ussd.c: no bitmask is applicable for the message types used here. * gb_proxy.c: gbproxy_imsi_acquisition(): missing bit mask for pdisc. In gprs_gb_parse.c: gprs_gb_parse_dtap(), add a log notice for unexpected message types.
2016-03-1504.08: apply new transaction id inline functionsNeels Hofmeyr1-4/+4
libosmocore recently added inline functions to relieve callers from applying bitmasks and bit shifts to access the transaction id of a GSM 04.08 header. Apply these functions.
2016-03-1504.08: apply new bitmask functions, fix bitmask useNeels Hofmeyr3-6/+13
Replace hardcoded protocol discriminator and message type bitmasks with function calls recently introduced in libosmocore. Note that the release 98 bitmasks slightly differ from the release 99 bitmasks. This patch uses the "default" gsm48_hdr_msg_type invocation, thus it depends on libosmocore whether 98 or 99 bitmasks are used. In some places, use of the bitmask was erratic. Fix these implicitly by employing the bitmask functions: * silent_call.c: silent_call_reroute(): add missing bitmask for MM. * bsc_msg_filter.c: bsc_msg_filter_initial(): RR vs. MM messages. * osmo_bsc_filter.c: bsc_find_msc() and bsc_scan_bts_msg(): RR vs. MM messages. * bsc_nat_rewrite.c: bsc_nat_rewrite_msg(): SMS vs. CC messages. * bsc_ussd.c: no bitmask is applicable for the message types used here. * gb_proxy.c: gbproxy_imsi_acquisition(): missing bit mask for pdisc. In gprs_gb_parse.c: gprs_gb_parse_dtap(), add a log notice for unexpected message types.
2016-03-03WIP: gprs_gmm: Get mm ctx from RA update in Iu modeDaniel Willmann1-1/+13
Iu mode doesn't have tlli, so look up according to p-tmsi
2016-03-03WIP: Try and activate RABs after service requestDaniel Willmann1-1/+14
2016-03-03gprs_gmm: Log service request if not receieved from Iu modeDaniel Willmann1-1/+3
2016-03-03gprs_gmm: Send gmm_service_accept from gsm48_gmm_authorize()Daniel Willmann1-51/+54
2016-03-03gprs: Update ue ctx from msgDaniel Willmann1-0/+1
In case a Iu connection is reconnected we need to update the ue ctx
2016-03-03gprs_gmm: Fix mmctx tlli member rename after mergeDaniel Willmann1-1/+1
2016-03-03gprs: Handle GMM service request (Iu mode only)Daniel Willmann2-0/+166
Iu mode has a GMM service request message which a UE in PMM-IDLE mode can use to switch back to PMM-CONNECTED mode.
2016-03-03sgsn: fix use of opaque RANAP_RAB_SetupOrModifiedItemIEs_s declDaniel Willmann1-1/+1
2016-03-03libui: Don't assume gsm_network and gsm_subscriber_conncetion in libiuDaniel Willmann1-1/+1
The sgsn uses other data structs so don't require them inside libiu. Instead keep a private list of ue contexts and iterate through that. This commit reverts the libui changes of commit d03faa4bacd4d2a8b9155faf5219a948b73f481c
2016-03-03gprs/sgsn: Use RAB assignment response cb in PDP context activationDaniel Willmann2-9/+48
2016-03-03sgsn_libgtp: Update rab (de)act function names to libui versionDaniel Willmann1-3/+2
2016-03-03sgsn_iu/libgtp: Update pdp context with new IP address after RAB assignDaniel Willmann1-7/+4
In the IU case the RNC and ggsn communicate directly on the user plane. Since the IP address of the RNC is not known in our case (it sits behind the hnbgw) we need to update the PDP context with the new IP address after receiving the RAB assignment response (which includes the IP address).
2016-03-03sgsn: Add a function to return the pdp ctx for an mm ctx and teiDaniel Willmann1-1/+15
2016-03-03sgsn: Get gtp ip and teid from pdp context in gprs_iu_rab_act()Daniel Willmann1-5/+2
2016-03-03gprs_gmm: Apply the auth hack only for UTRAN_Iu RAN typeDaniel Willmann1-6/+7
Try to limit the effect 3G support has on the remaining code base. The sgsn test still fails, but at a later test.
2016-03-03sgsn_libgtp: Use the address provided by the GGSN for RAB activationDaniel Willmann1-1/+3
2016-03-03gprs: Fix some misleading commentsDaniel Willmann1-1/+1
2016-03-03WIP: Wait for radio bearer before sending pdp context acceptDaniel Willmann1-10/+19
2016-03-03gprs_gmm: Fix bit mask when determining update/attach typeDaniel Willmann1-2/+6
Bit 4 is reserved in 3GPP TS 04.08 so exclude it from the type. In 3GPP TS 24.008 it indicates if a follow-on request is pending by the MS, but only in Iu mode. According to the spec it is not required to react to that request with a follow-on proceed so this field can be ignored for now. See 3GPP TS 24.008 Ch. 4.4: "Unless it has specific permission from the network (follow-on proceed) the mobile station side should await the release of the RR connection used for a MM specific procedure before a new MM specific procedure or MM connection establishment is started." as well as Ch. 4.4.4.6: "If the network wishes to prolong the RR connection to allow the mobile station to initiate MM connection establishment (for example if the mobile station has indicated in the LOCATION UPDATING REQUEST that it has a follow-on request pending) the network shall send "follow on proceed" in the LOCATION UPDATING ACCEPT and start timer T3255."
2016-03-03mscsplit: remove bts and lchan pointers from libmscNeels Hofmeyr1-1/+1
The diff between this and master will probably need a lot of review and fixes. The current state does compile, but I expect pretty much everything to be broken now. Future development will reinstate proper functionality piecemeal. The first goal is to get basic signalling to work, then SMS. The voice control (RTP) is completely disabled now (see "#if BEFORE_MSCSPLIT") and will be fixed last AFAICT.