Commit Graph

5455 Commits

Author SHA1 Message Date
Daniel Willmann
4f143e52b6 libiu: Use custom setupormodifieditemies function
The one generated by the python script doesn't really do what we want.
Instead of futzing around with the script again just write our own
version.
2016-03-03 16:19:11 +01:00
Daniel Willmann
e3407f8884 libiu: Indicate in log where we don't handle a specific message 2016-03-03 16:19:11 +01:00
Daniel Willmann
7d1b6b1c79 libui: Don't assume gsm_network and gsm_subscriber_conncetion in libiu
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-03 16:19:11 +01:00
Neels Hofmeyr
656d7cd0b4 iu.c: avoid warning by declaring ranap_free_rab_setupormodifieditemies() 2016-03-03 16:19:11 +01:00
Neels Hofmeyr
553d2a8ceb add tests/libiudummy 2016-03-03 16:19:11 +01:00
Neels Hofmeyr
23f22b1183 msc: define extern iu_tx() 2016-03-03 16:19:11 +01:00
Neels Hofmeyr
090aabe052 gsm0408_rcvmsg_iucs: remove unused link_id arg. 2016-03-03 16:19:11 +01:00
Neels Hofmeyr
be37fbd85d msc: implicitly link to iu_tx, don't have callbacks.
This is more akin to the way openbsc do, as well as less code.
2016-03-03 16:19:11 +01:00
Daniel Willmann
3cc0836b1a gprs/sgsn: Use RAB assignment response cb in PDP context activation 2016-03-03 16:19:11 +01:00
Daniel Willmann
8cd32937da osmo-cscn: Add dummy function for RAB assignment response 2016-03-03 16:19:11 +01:00
Daniel Willmann
377a9f5dea libiu: Add support for RAB assignment response callback 2016-03-03 16:19:11 +01:00
Daniel Willmann
b8df4d5318 sgsn_libgtp: Update rab (de)act function names to libui version 2016-03-03 16:19:11 +01:00
Daniel Willmann
daa0652d3f sgsn_test: Make sgsn_test compile again after libui change 2016-03-03 16:19:11 +01:00
Daniel Willmann
f7436b22b3 sgsn_iu/libgtp: Update pdp context with new IP address after RAB assign
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-03 16:19:11 +01:00
Daniel Willmann
711333c113 sgsn_iu: Parse the RAB assignemnt response and get pdp ctx form it
The RAB assignment response includes the gtp teid that we sent along in
the assignment request. Retrieve the correct pdp context from there and
activate it.
2016-03-03 16:19:10 +01:00
Daniel Willmann
91f04dfe3a sgsn: Add a function to return the pdp ctx for an mm ctx and tei 2016-03-03 16:19:10 +01:00
Daniel Willmann
4371ff8cce sgsn: Get gtp ip and teid from pdp context in gprs_iu_rab_act() 2016-03-03 16:19:10 +01:00
Daniel Willmann
92223cc32e gprs_gmm: Apply the auth hack only for UTRAN_Iu RAN type
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-03 16:19:10 +01:00
Daniel Willmann
2f5cc8abe0 tests/sgsn: Fix compilation of sgsn_test
The sgsn test still fails, but at least it is compiling again..
2016-03-03 16:19:10 +01:00
Daniel Willmann
ba47b525ff sgsn_libgtp: Use the address provided by the GGSN for RAB activation 2016-03-03 16:19:10 +01:00
Daniel Willmann
cf1707af7f gprs: Fix some misleading comments 2016-03-03 16:19:10 +01:00
Daniel Willmann
d6d0d8b86f WIP: Wait for radio bearer before sending pdp context accept 2016-03-03 16:19:10 +01:00
Daniel Willmann
38137e84f7 HACK: ranap_decode_rab_setupormodifieditemies crashes so disable it 2016-03-03 16:19:10 +01:00
Daniel Willmann
82724653e7 sgsn_iu: RABAssignment response is an Outcome, not a Successful one 2016-03-03 16:19:10 +01:00
Daniel Willmann
da8d9bc355 gprs_gmm: Fix bit mask when determining update/attach type
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-03 16:19:10 +01:00
Neels Hofmeyr
c59e52a6aa doc: rename nitb graph to bsc, add msc graph
NITB is already gone from this branch. We may even resurrect it, but I prefer
to name the realms 'libmsc' and 'libbsc', hence the nitb graph is the BSC graph
now. Also add a libmsc graph.
2016-03-03 16:19:10 +01:00
Neels Hofmeyr
24c4af1d82 doc: add lists to nitb graph 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
f918920d65 cscn: use iu_tx for msc_ifaces.iu_cs. some #include cosmetics. 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
292f1ce533 mscsplit: fix compilation and comments. move msc_api.h. 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
23e7f28c5c mscsplit: getting grips on header scopes 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
243c7cb044 msc: clarify msc_api and msc_ifaces scopes 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
cf2591f6fc rename IFACE_IUCS to IFACE_IU 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
6a2d8985bf cscn: rename msc_api 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
c6794eed1d cscn: some file moves/renames 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
7a70a4f52a cscn wip: direct dtap responses to IuCS 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
c6172a320b cscn: fix missing network backpointer 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
5280ed558c cscn: own talloc root and gsm_network instance; misc.
Heading towards a sovereign CSCN.
2016-03-03 16:19:10 +01:00
Neels Hofmeyr
b36b910366 mscsplit: exclude some more vty nodes 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
b47e52c958 cosmetic: remove unused extern. 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
267f6c7e0d introduce vty CSCN_NODE, cosmetically. 2016-03-03 16:19:10 +01:00
Neels Hofmeyr
5e47b1a1d3 mscplit: try to clarify root talloc ctx and global gsm_network.
The aim is to allow osmo-cscn to pass its own root talloc context and
global gsm_network struct instance cleanly. This may stir up some old and
dusty globals, but I hope it's for the better, since not all is a BSC.

To ensure that a global gsm_network pointer for the bsc_vty is set, have it as
argument to bsc_vty_init(). The vty configuration commands are added only after
bsc_vty_init(), which are needed to configure the network struct. So split up
the bsc_bootstrap_network() function into bsc_network_init() to allocate a
gsm_struct, and bsc_network_configure() to read the config file once the vty
commands are in place. In this way, no global bsc_gsmnet pointer is needed for
the bsc vty. The atomic super glue is dissolved and osmo-cscn will be allowed
to have a different name for it.

Admitted, it's still called the bsc_vty, but a split thereof is probably coming
soon, because the CSCN doesn't want any of the BSC nor BTS specific vty
commands.
2016-03-03 16:19:09 +01:00
Neels Hofmeyr
b9e5403ef4 mscsplit: remove bts and lchan pointers from libmsc
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.
2016-03-03 16:19:09 +01:00
Neels Hofmeyr
b6769b99de cosmetics: link_id=42, s/Iu-CS/IuCS, debug logs.
Until I get the proper link id from the SUA SAP, make sure we recognise it
as hardcoded by setting it to 42.
2016-03-03 16:19:09 +01:00
Neels Hofmeyr
39daffd7a5 cscn: allocate IuCS conn, properly return rc. 2016-03-03 16:19:09 +01:00
Neels Hofmeyr
71d1e17e5e cscn: call msc_compl_l3() from subscr_conn_allocate_iu()
Pubish msc_compl_l3() decl in new file libmsc/msc_api.h (but see comment).

Call msc_compl_l3() when establishing a subscriber connection for IuCS.

Remove bts from subscr_conn_allocate_iu() signature, use network, link_id and
conn_id instead.

Move subscr_conn_allocate_iu() to the top of the file, because it semantically
belongs before subscr_conn_lookup_iu().
2016-03-03 16:19:09 +01:00
Neels Hofmeyr
2c9e65051c cscn: default to osmo-cscn.cfg, not opencscn.cfg 2016-03-03 16:19:09 +01:00
Neels Hofmeyr
a2ce4aa615 cscn: move gsm0408_rcvmsg_iucs() decl to proper place.
Add noinst-header iu_cs.h and move the gsm0408_rcvmsg_iucs() declaration
there.
2016-03-03 16:19:09 +01:00
Neels Hofmeyr
ee1541d504 put Iu-common and Iu-CS stuff in proper places
Add libiu to contain the parts used by both Iu-CS (in osmo-cscn) and Iu-PS (in
gprs) into libiu. It's rather thin and may make sense to move to osmo-iuh
altogether, eventually.

iu.c is half moved to libiu/, and half to osmo-cscn/iu_cs.c.
2016-03-03 16:19:09 +01:00
Neels Hofmeyr
9dcae17866 wip 2016-03-03 16:19:09 +01:00
Neels Hofmeyr
c2c5176328 todo / #if 0 2016-03-03 16:19:09 +01:00