Commit Graph

6307 Commits

Author SHA1 Message Date
Harald Welte 06f3d5ae8b gbproxy_test: Fix test expectations of gprs_ns_rcvmsg()
gprs_ns_rcvmsg() in old libosmocore returns "number of bytes transmitted
by any response PDU we sent as a result of the received message", while
modern libosmocore simply retunrs '0' for any successfully received
message.  Let's make sure any non-negative responses lead to a
reproducible test output with both old and new libosmocore.

Change-Id: I7a48d14aed19825b87a02ccf9ee9cbfe0853342c
2019-02-26 22:37:57 +01:00
Max ed7723a7c6 GMM: permit VLR_ANSWERED event in attach FSM
This fixes following error:
DMM gprs_gmm.c:1126
    GMM_ATTACH_REQ_FSM(gb_gmm_req)[0x5589e78dded0]{WaitAttachComplete}:
	Event VLR answered not permitted

There seems to be a race condition in FSM when MS establishes MM context
which isn't immediately followed up by PDP context (for example when no
APN is configured in MS).

This does not affect actual functionality because in this case MS won't
be able to use GPRS anyway but it's still nice to get our FSM fixed even
in this corner case.

Change-Id: I14d234632224e20faf865d2273c83cfff31abf61
2019-02-14 11:07:48 +00:00
Max 101cd7f6e7 Improve 'show subscriber cache' vty command
* don't use spaces when printing hex data like RAND, SRES etc to
  increase the chance that it'll fit onto single line which will improve
  readability

* don't print non-existent QoS value

Change-Id: I0a09063f30c1116803994117f49df9d02bcc9181
2019-02-13 14:11:29 +01:00
Harald Welte e250eaaf2e Bump version: 1.3.0.120-88220-dirty → 1.4.0
Change-Id: I9d37bb897d34ad973e93706003bdecc0cf6be816
2019-01-23 18:32:41 +01:00
Stefan Sperling 48417d9387 make gsup ipa name configurable in osmo-sgsn.cfg
Add a 'gsup ipa-name' VTY command which overrides the default
IPA name used by the SGSN on the GSUP link towards the HLR.
This is required for GSUP routing in multi-SGSN networks.

The 'gsup ipa-name' option can only be set via the config file
because changing the IPA name at run-time conflicts with active
GSUP connections and routes configured in the HLR. The osmo-sgsn
program must be restarted if its IPA name needs to change.

Related: OS#3356

Change-Id: Ib2f65fed9f56b9718e8a9647e3f01dce69870c1f
2018-12-20 16:13:00 +01:00
Stefan Sperling ddba099a98 remove pointless declaration of struct gsm_network
We were passing a NULL pointer of type struct gsm_network * to
ctrl_interface_setup_dynip(). Remove the pointless declaration
of this struct. Also, replace the sgsn_controlif_setup() helper
function with a direct call to ctrl_interface_setup_dynip().
The helper fnuction was just a thin wrapper around the latter.

Change-Id: Ib4151afa5bff01e63b462cca517fb60ac0503759
Related: OS#3356
2018-12-12 17:39:17 +01:00
Max bc1d4f04ef Use explicit parameter for sgsn_auth_init()
This is necessary to properly test ACLs in follow-up patches.

Change-Id: Ibeba371234680f33ad35afbfffce9dca185228c1
2018-12-11 11:27:53 +01:00
Max be621a6c69 Use explicit length check
Use OSMO_MIN macro to check for MSISDN length. This makes the code
cleaner and will, hopefully, aid static analysis tools.

Change-Id: Ic0fbeb8d248c74e54bfb51ba2cdea55c4f386ac7
Fixes: CID57879
2018-12-10 18:06:08 +00:00
Max d53a215d24 Drop unused osmo-sgsn.pc
We do not install any libraries so we don't need it: most likely it's a
forgotten leftover from pre-split repo time.

Change-Id: Ifabb26d1e6384659789061bc2abe23cb5ceca4cb
2018-12-10 18:05:58 +00:00
Max 9758191b00 Constify sgsn_acl_lookup() parameter
This requires I414e67a3de733fab407161b3264d3b89070ba537 in libosmocore
to avoid warning about discarded const.

Change-Id: Ie92637dd900b0f9eba891d5aad0b4ba0ee69c08c
2018-12-10 18:17:21 +01:00
Max 7aefd567f0 Remove misleading comment
The code which has been used for 4 years is hardly temporary.

Change-Id: Ibe9c62e0beb89eecced941b8831d49ca266c7330
2018-12-10 17:07:05 +00:00
Oliver Smith 7c48f3ed85 contrib: fix makedistcheck with disabled systemd
EXTRA_DIST files need to be distributed, no matter if the systemd option
is configured or not.

Change-Id: I4b1973a4796ccddce930a130be00c15b09572c16
2018-12-06 13:54:53 +01:00
Oliver Smith d13baf694e contrib/jenkins.sh: build and publish manuals
Add new environment variables WITH_MANUALS and PUBLISH to control if
the manuals should be built and uploaded. Describe all environment vars
on top of the file.

When WITH_MANUALS is set, install osmo-gsm-manuals like any other
dependency and add --enable-manuals to the configure flags (for "make"
and "make distcheck"). Add the bin subdir of the installed files to
PATH, so osmo-gsm-manuals-check-depends can be used by ./configure.

Related: OS#3385
Change-Id: Ic45322c809f9f65d0fd24b828dab0cd929fa6267
2018-12-05 13:18:47 +01:00
Oliver Smith 0abeea2c24 Fix DISTCHECK_CONFIGURE_FLAGS override
Set AM_DISTCHECK_CONFIGURE_FLAGS in Makefile.am instead of
DISTCHECK_CONFIGURE_FLAGS. This is the recommended way from the
automake manual, as otherwise the flag can't be changed by the user
anymore.

Related: OS#3718
Change-Id: I5bf96adcf06f1844ffc888d8690d2cc0df48e3f9
2018-12-04 15:34:16 +01:00
Oliver Smith 4a1d805431 build manuals moved here from osmo-gsm-manuals.git
Moved to doc/manuals/, with full commit history, in preceding merge commit.
Now incorporate in the build system.

Build with:

$ autoreconf -fi
$ ./configure --enable-manuals
$ make

Shared files from osmo-gsm-manuals.git are found automatically if
- the repository is checked out in ../osmo-gsm-manuals; or
- if it osmo-gsm-manuals was installed with "make install"; or
- OSMO_GSM_MANUALS_DIR is set.

Related: OS#3385
Change-Id: I0477d7c871413bd90b365d3064bac3cba23a0883
2018-11-27 18:10:43 +01:00
Neels Hofmeyr 1e0333f398 Merge history from osmo-gsm-manuals.git
Change-Id: I284bfe2fc61167986cf784eabdd57151d4981e7a
2018-11-27 18:10:31 +01:00
Neels Hofmeyr 4ca244ab33 sgsn: update vty reference
Change-Id: I64d775efa6791aca025d116905e951e10ffa5d04
2018-11-27 18:10:00 +01:00
Harald Welte b8f9560658 vty-ref: Update URI of docbook 5.0 schema
... to match the /etc/xml/catalog file on debian (no "www" in hostname)

Change-Id: Id9f3579c7f2bc3af13fe30b5268f249b6f59ed0d
2018-11-27 18:10:00 +01:00
Neels Hofmeyr fb0ca14889 OsmoSGSN: update VTY reference
This is the first update since the libosmocore changes to the 'show
online-help' generated output. Hence the produced document now benefits from
the structural improvements:
- not repeating common commands for every node;
- using section names that match the VTY prompt.

Drop most of the sgsn_vty_additions.xml -- they merely repeat what the online
VTY doc already explains. Many of these more verbose explanations have been
absorbed into the VTY online doc in osmo-sgsn.git change-id
I35984014424412e91437b7ed71576aef3819cb1e.

Adjust remaining sgsn_vty_additions.xml to match the new node ID scheme.

Change-Id: I71863e5056ad369d2055e9882a52a00fa999ab04
2018-11-27 18:10:00 +01:00
Pau Espin 0b81a2f293 OsmoSGSN: overview: Fix typo and reference OpenGGSN->OsmoGGSN
Change-Id: I94cc362a4f52e6bd9f93299665e73dc4fd75a2c6
2018-11-27 18:10:00 +01:00
Harald Welte 2e0d1b0a08 share chapters/gsup.adoc from OsmoSGSN to OsmoMSC + OsmoHLR
Since the NITB split, GSUP is used in all three network elements, so
make the protocol a shared chapter

Change-Id: Id2d7c27ef16eb0ebe5f60d625a1fcf42f1603f4f
2018-11-27 18:10:00 +01:00
Alexander Couzens a6e189f639 OsmoSGSN: add rate counter documentation
Change-Id: I4c5d5744f961a92bc7c8888ca739d1e8a8a0be9c
2018-11-27 18:10:00 +01:00
Pau Espin 54828cdd79 OsmoSGSN: configuration: Document CDR CTRL interface
Change-Id: Ib729e2fc4898c20d27e95fc0f13abe9c0656dda5
2018-11-27 18:10:00 +01:00
Pau Espin 04da5fe0e6 OsmoSGSN: configuration: Add missing pdp-periodic event
Change-Id: I2d8b11496e75abd23a42efab8eabba2b5b0912e9
2018-11-27 18:10:00 +01:00
Pau Espin 817911f7c1 OsmoSGSN: configuration: Move pdp ctx specific CDR fields to its own table
Change-Id: I056f278b64ab426b9455b6a667abf2fe7fc94022
2018-11-27 18:10:00 +01:00
Neels Hofmeyr 471be2cd6f refactor Makefile build rules, don't use the FORCE
The initial goal was to make sure we don't have overall FORCE rules causing
unnecessary rebuilds -- annoying while writing documentation. As I looked
through possible dependencies, I finally understood what's going on here.

Remove code dup and nicely sort which belongs where in build/Makefile.*.inc. In
each, describe in a top comment how to use it, and also unify how they are
used:

- Rename Makefile.inc to Makefile.docbook.inc and refactor
- Add Makefile.vty-reference.inc
- Add Makefile.common.inc

Make sure that we accurately pick up all dependencies.

Drop use of the macro called 'command', that silenced the actual command lines
invoked and replaced them with short strings: it obscures what is actually
going on and makes the Makefiles hard to read and understand.

Each manual's makefile is greatly reduced to few definitions and a Makefile
include, e.g. one for asciidoc, one for VTY reference.

Move common/bsc_vty_additions.xml to OsmoBSC/vty/libbsc_vty_additions.xml, link
from OsmoNITB. It applies only to OsmoBSC and OsmoNITB.

Add a script that combines a VTY reference file with *all* additions files
found in a manual's vty/ dir. Call this from Makefile.vty-reference.inc.

Change-Id: I9758e04162a480e28c7dc83475b514cf7fd25ec0
2018-11-27 18:10:00 +01:00
Pau Espin 202a39e1d7 Allow easily disabling GFDL references
All parts referencing GFDL can be easily disabled by removing the
'gfdl-enabled' attribute from the document.

Change-Id: I2489726ad2e90301bceadfada926e31ae0f85986
2018-11-27 18:10:00 +01:00
Holger Hans Peter Freyther 19ee301b16 sgsn: Add charging characteristics to GSUP
Reserve a new IE for the charging characteristics. We need to handle
them as a GGSN might otherwise reject the PDP context creation. For
the SGSN it is enough to send the two octets as it.

Pick the 0x1X range for the IEs as it is used with the PDP contexts.

Change-Id: I1d7423582e154728a240cf15c32772a06822f4ad
2018-11-27 18:10:00 +01:00
Holger Hans Peter Freyther 29980b7ccb sgsn: Fix numbering of QoS and add basic description for APN
QoS was supposed to be 13 as 12 has been used for the APN. Fix that
and document the APN.

Change-Id: Ib6113aa7c59841aada424e2cafd94ed88c7badc7
2018-11-27 18:10:00 +01:00
Philipp Maier 0f63651adf osmo-sgsn: fix arrow tips in flow diagrams
The arrow style used to desribe the flowcharts in gsup.adoc does not match
the arrow style used in the protocol descriptions which are included from
the common directory (gb.adoc, control_if.adoc, oap.adoc). This patch changes
the arrow style to match the already existing common parts.

Change-Id: I7faa0c97ee3705a64289a47bc63f311d05f988b3
2018-11-27 18:10:00 +01:00
Philipp Maier e4e901186b osmo-sgsn: Explain TCP/IP header compression
The does not mention TCP/IP header compression yet. This
commit adds some info about it

Change-Id: I98408e72020a474d378e39263a933eb7567de146
2018-11-27 18:10:00 +01:00
Philipp Maier ed17106f01 osmo-sgsn: improve auth-policy explaination
The explaination of the access policy is a bit unclear. Users
that come from osmo-nitb might have trouble to grasp the functionality
of the access control list based approack correctly.

Change-Id: Iaae3035c4de3cb082f097441eff99289ee6dfc53
2018-11-27 18:10:00 +01:00
Philipp Maier 5783c0fc32 osmo-sgsn: Update VTY command reference
Change-Id: I6585144addd8501226572eda6f55db19d0e31c54
2018-11-27 18:10:00 +01:00
ikostov c520c3b2f4 GSUP, OAP: fix AUTS length to 14, not 16
https://gerrit.osmocom.org/1731

Change-Id: Id33d300c4985be5f2602703a6d4dc83032f0a926
2018-11-27 18:10:00 +01:00
ikostov aa6629f8a0 SGSN: add Auth. policy, NS Statistics and BSSGP state examples, tweaks
Add semicoli in fig-gprs-pcubts digraph.

Remove section from GMM Implementation about non-existence of HLR.
The SGSN can access osmo-hlr via GSUP (and will have to do so in the
libvlr future).

Change-Id: I0164f418e453672321eed00bbc454c1e223ea158
2018-11-27 18:10:00 +01:00
Neels Hofmeyr 8343572e2d fix 'make clean': shell glob, ignore failure
Unfortunately a glob like osmo-x__*.{svg,png} doesn't work, so have the
suffixes in separate globs.

Add dashes to indicate that failure should be ignored.

Change-Id: I6bc4d9ea72b43a573acbc860c23397f748de2c7b
2018-11-27 18:10:00 +01:00
Neels Hofmeyr 235b0db2eb add 'make check' target
Generate *.check files from asciidoc output and grep for WARNINGs.
Add *.check files to gitignore and to 'make clean'.

Change-Id: Ibccc83a3415930a528f2e8e4e4dda3b81c6d0b64
2018-11-27 18:10:00 +01:00
Harald Welte 779ba70905 GSUP: Add ladder diagrams for protocol transactions / procedures 2018-11-27 18:10:00 +01:00
Harald Welte ed9c53d575 Update GSUP chapter regarding UMTS AKA and other recent changes
The GSUP protocol has been enhanced with
* Support for UMTS AKA in 'Auth Tuple' / SAI operations
* Authentication Failure Report
* CN Domain indicator

Let's update the documentation accordingly.
2018-11-27 18:10:00 +01:00
Max 2b6d272549 Add OsmoSGSN control interface description 2018-11-27 18:10:00 +01:00
Jonathan Brielmaier 5530c91d3d fix various typos across all manuals 2018-11-27 18:10:00 +01:00
Harald Welte 36dea397ba OsmoSGSN: Fix formatting/cross reference in CDR section 2018-11-27 18:10:00 +01:00
Harald Welte aad1bf5207 Add link to Asciidoc source code of manual 2018-11-27 18:10:00 +01:00
Harald Welte 9f1331b103 initial checkin of manuals to public repo
The manuals existed in different form for several years in an internal
sysmocom repository.  However, since they had just recently been
converted from docboox-xml to asciidoc and all files have been
re-shuffled for enabling the public release, there's not much point in
keeping the history with git-filter-branch.
2018-11-27 18:10:00 +01:00
Neels Hofmeyr b2ee85da69 Importing history from osmo-gsm-manuals.git
Change-Id: I5dae23d0c9526aec3ee8f0b4b8baf2b6f919e43e
2018-11-27 18:09:36 +01:00
Pau Espin 7d4dab8d1f gbproxy: flush_stored_messages: Get rid of msg param
Log line actually makes more sense out of the function where IMSI acq is
resolved. We can then get rid of msg param which may cause confusion and
add complexitiy to code for no good reason.

Change-Id: I6716a260e12a3cf36af0501ce611c6c1e608f537
2018-11-26 10:49:15 +00:00
Pau Espin 2f9b381246 gbproxy: flush_stored_messages: Log and route using stored_msg info
It makes no sense to print every stored_msg with BVCI from msg, same for
routing. This will allow getting rid of "msg" completelly in next
commit.

Change-Id: I95eafbf41012be3e02c68fc996773dd02b174fe6
2018-11-26 10:49:15 +00:00
Pau Espin f05b174cda gbproxy: flush_stored_messages: Move comment to func description
Change-Id: I14a90d1957a2cbd8fd53002b035fe481ab3abbbf
2018-11-26 10:49:15 +00:00
Pau Espin badb7ab42d gbproxy: Remove unneeded parse_ctx param
The only use inside the function is only to log information which should
actually be provided by tmp_parse_ctx of each stored msg.

Change-Id: Ic186b92fa9bd0a2b853a0cf525c6f6feb9493897
2018-11-26 10:49:15 +00:00
Pau Espin 362612de66 gbproxy: Fix abort during APN patch
gbproxy process was aborted with following message during APN patching:
<000e> gb_proxy_patch.c:129 Patching ACT_PDP_REQ to SGSN: Replacing APN 'foo' -> 'bar'
msgb(0x5555558797d0): Sub area is not fully contained in the msg data

During osmo-sgsn 107fb59e84b12bbf6bdfdd4fc241dbcda7332706 old copy of
gprs_msgb_resize_area was replaced by more modern libosmocore version
called msgb_resize_area. They are mostly identical but the later has
some extra verification asserts. One of this asserts was triggering the
process abort, but the bug has always been there as far as I could see
in git history.

The assert triggers because the bssgp buffer and parse_ctx point to
"stored_msg", while the data buffer comes from a different msbg "msg",
which is clearly wrong behavior.

In the modified line, "msg" (the one which provided the imsi now already
stored in link_info through gbproxy_update_link_state_ul()->gbproxy_assign_imsi())
is really not needed anymore, and we want to patch the stored msg going
to be forwarded.

Related: SYS#4397
Change-Id: I7226fc5bcfbf58c349431d0a39cdb904fefd9e9c
2018-11-26 10:47:35 +00:00