There was a bug in the asn1c/libffasn1c APER patch that caused
constrained integer ranges to be decoded incorrectly. Add a test
case for that to avoid people falling into that trap...
Our version of asn1c/libasn1c used to have an INTEGER encoding but,
where the encoding of integers of > 2 bytes length was broken.
Add a test case to what we expect with the updated/fixed libasn1c.
If your compilation breaks, please upate to libasn1c with related
fix commited a few minutes ago.
Allow the *caller* of ranap_new_msg_rab_assign_data() to make the decision for
using 32 bit or longer IP addresses in RAB Assignment Request messages.
This requires a follow-up change in openbsc branch sysmocom/iu.
Fix log typo 'REGSITER' and add some comments on UE Register with TMSI.
The container_pair struct starts with 'list', so passing the container_pair
pointer is equivalent to passing the list; but instead, explicitly mention the
list member to avoid confusion.
To test CSCN, I want dummy-cn to listen on 127.0.0.2 and mock IuPS instead of
the hardcoded 127.0.0.1 to mock IuCS.
Add commandline option parsing and the --bind option to set the local bind
address.
As soon as possible, clarify that slink is an osmo_sua_link*. Immediately
obtain the priv as hnbgw_cnlink and pass that to all the static functions.
Thus remove code dup and clarify argument typing.
Allow Iu Release Command decoding and freeing.
Add Paging decoding and freeing.
These are all needed by hnb-test, which still uses the CN parsing functions,
still to be fixed, as commented in the code.
Add the Security Mode Command procedure code to cn_ranap_rx_initiating_msg_co()
and cn_ranap_free_initiating_msg_co(), for hnb-test (see comments in the code).
Adding the Security Mode Control command would break the current scheme of
callbacks across layers. This brought to my attention that the scheme is indeed
unnecessarily complex, so simplify it.
Instead of passing callbacks, call functions directly. Add hnb-test-layers.h to
declare those functions that cross from main to rua, to ranap and back to main
and remove the callback type definitions.
Instead of copying the NAS PDU to a newly allocated msgb, pass the data and len
directly to hnb_test_nas_rx_dtap().
Instead of repeatedly checking the gsm48_hdr length, just pass the struct
gsm48_hdr* and len around and assume the basic header length has been checked.
In some places, rename 'length' to 'len' for cosmetic consistency.
Previously the SRES was hardcoded, but the CN changed to generate the SRES.
So now, generate the SRES while still using the hardcoded Ki.
Fixes the Authentication Response message when testing IuCS Location Update.
Fix the ranap_parse_lai() part that decodes the MNC: place the *10 at the
proper MNC digit.
Add a comprehensive test for ranap_parse_lai() in test-helpers.c. Because
ranap_parse_lai() logs things, add test_common.c to test-helpers compilation
and an expected stderr output to test-helpers' testsuite.at def.
Rewrite ranap_common.h include path in ranap_ies_defs.h as well
Don't move ranap_ies_defs.h to the install directory, but move it inside
the source tree
When we use call-back function pointers with ranap_cn_rx_c{o,l}()
functions, we can (soon) migrate it into libosmo-ranap without an
application having to provide 'magic symbols' that the library expects
to be able to call.
A bit hacky: the ranap_ies_defs.h is generated together with the
ranap_encoder.c and ranap_decoder.c. See comments in src/Makefile.am and
include/osmocom/ranap/Makefile.am.
Add asn1tostruct.py as dependency for the targets that use it, so that any
modification to the asn1tostruct.py regenerates everything related
automatically.
Do all remaining changes necessary for a working build.
Add Makefile.am files in include/... subdirs.
Remove noinst_HEADERS directives from src/*/Makefile.am, but keep the headers
list to feed to move-asn1-header-files.sh.
Adjust all #includes in src/*_common.h and elsewhere. In hnbap_common.h,
separate the ASN.1 "primitive" headers from the others, and include them
without a subdir path, as before.
Add move-asn1-header-files.sh to do header file moving and sed'ding the include
statements. The file moving part is disabled until a later commit, to make
reading the diffs easier.
Call shell script from src/{hnbap,ranap,rua}/Makefile.am regen targets.
Add convenience regen target to src/Makefile.am, calling regen in the three subdirs.
This change is split over several commits to ease diff reading. Subsequent
commits show, in steps:
- the "unmoved" effect of sed,
- header moves,
- adjust build system and include statements.