Compare commits

...

287 Commits

Author SHA1 Message Date
Harald Welte 977d3b666c ranap_common: Implement support for missing procedures
Both the RAN and the CN side of ranap_common were missing support for
decoding requests and/or responses for a number of RANAP procedures.

This patch adds all of them a of TS 25.413 Release 12 except those
related to MBMS or SRVCC.

Related: SYS#6885
Change-Id: I7dea74102da8b610ff2a310c5814f5c89f08e7a6
2024-05-15 17:09:28 +02:00
Oliver Smith cd318cc032 contrib: remove rpm spec file
Related: https://osmocom.org/news/255
Related: OS#6446
Change-Id: I703e115a426ac1012c80d2e1576ee6dcfbe191a5
2024-05-08 14:40:59 +02:00
Harald Welte fc08927fd2 hnbap_common: Make error message more verbose (which type failed)
Change-Id: I3d263a2a50afbe1a2a99e52b16e983e0aae22edf
2024-03-27 21:43:50 +01:00
Harald Welte c16281f5e7 constify {hnbap_rua}_cause_str() argument
ranap_cause_str() already had a const input argument, but the
HNBAP and RUA equivalents for some reason had a non-const input.

Change-Id: I7db92b51847c282d23d568970dfd2bedecdea486
2024-03-27 12:44:46 +01:00
Harald Welte da6d72b47a ranap_common: fix pointer type in ranap_decode_rab_releaseitemies_fromlist()
This looked like a copy+paste mistake in Change-Id I4fc88402a863bc1482947985f759d3a26eea4164

Related: OS#5152
Change-Id: I16286c6f13dc4e8d5c6a7f0efacd22bafe04b0a5
2024-03-15 20:37:38 +01:00
Harald Welte 6c1857a113 Add ranap_decode_rab_releaseditemies_fromlist()
This function is analogous to existing ranap_decode_*_itemies_fromlist()
which we already had.

This is needed in an upcoming osmo-hnbgw patchset where we need to parse
the ReleasedItems in order to track RAB release progess in order to
gather KPIs on RAB release.

Change-Id: I328819c650fc6cefe735093a846277b4f03e6b29
2024-03-15 20:36:34 +01:00
Harald Welte 50a0675cde Fix license headers: Should have been AGPLv3+, not GPLv2+
I'm not sure why one files (written by Philipp)
did contain a GPLv2+ header, instead of the AGPLv3+ which is the
actual overall project license.  I consider it a mistake.

In any case, any copyrightable contribution to those files was done by
sysmocom employees, so I as managing directory can legally make a
license change, whther or not it was a mistake early on or not.

Change-Id: Ie28c32022a9cbc42b55195f7dbb513228857a3cd
2024-02-17 10:28:29 +01:00
Vadim Yanitskiy a251647639 build: include git-version-gen into the release tarball
Change-Id: I2e8e1b186ee35ae7ff761a98ddb601f1f1292337
2024-01-26 23:34:19 +07:00
Oliver Smith 06daf81a92 Bump version: 1.5.0.3-a99b → 1.5.1
Change-Id: I01d1cebfe4fdd0bce53260d69e3f037068194ea8
2023-12-15 15:14:19 +01:00
Daniel Willmann a99b82b82c iu_client: Handle empty CR and InitialUE Message in DATA.ind
Related: OS#6307
Change-Id: I749ede737b9ac15bca37bbb16f3988b0db1125c1
2023-12-13 18:01:37 +01:00
Daniel Willmann 2c909d1e8b iu_client: Use local variable to track conn_id
Change-Id: I967a311e2ad5af585c032426cc6b0680c3313b0f
2023-12-13 15:22:56 +01:00
Pau Espin 5484d958c6 ranap_transp_layer_addr_decode2(): Fix decoding X.213 IPv4 address len=7
It was found in the field that some peers sends an X.213 IP address
consisting of 7 bytes (1byte IDP/AFI, 2byte ICP, 4 byte IPv4 address) insetad
of 20 bytes.

This is indeed possible when reading ITU Rec X.213 A.5.2.3, where it
states that Table A5 defining the 17 bytes DSP len for IANA ICP
"gives the maximum length of the DSP". So smaller values are still
possible/acceptable.

Related: SYS#6623
Change-Id: I507fb1605d976bd8573162e4fa81721245330184
2023-11-03 17:57:32 +01:00
Pau Espin 20b9eeb310 Bump version: 1.4.0.10-801d-dirty → 1.5.0
Change-Id: I11b3737b2d5447f1c35693a2cf37ab59adff57d3
2023-09-12 14:14:07 +02:00
Harald Welte 801d8b0e73 hnb-test.c: Update to libosmocore osmo_auth_gen_vec2
libosmogsm has recently deprecated the use of osmo_auth_gen_vec
and the osmo_sub_auth_data structure in favor of newer versions
of this API. Let's migrate to it

Change-Id: I8646caf14783833c4ebea041339c3056e4ac2dea
Depends: libosmocore.git Ie775fedba4a3fa12314c0f7c8a369662ef6a40df
2023-06-21 11:03:57 +00:00
Vadim Yanitskiy d6bde3f6a6 copyright: fix typo: sysmocom s/s.m.f.c./s.f.m.c./ GmbH
Change-Id: I3476791a3a6a429f89df92db209acacd2ba5c79d
2023-05-18 17:22:26 +07:00
Pau Espin 0ded29a701 Move testdir src/tests/ -> tests/
Move tests to usual directory in most projects.

Change-Id: Ib9ca59d1dffbbb13fcb9ae2e597b3f114f77524e
2023-05-15 10:01:45 +00:00
Neels Hofmeyr 520c406b85 add ranap_new_msg_reset2() with GlobalRNC-ID
So far we are omitting the GlobalRNC-ID from all of our RANAP RESET
messages, because clearly, in 3GPP TS 25.413 9.1.39, the Global RNC-ID
is listed as optional.

OTOH, section 8.26.2.1 says
"The RNC shall include the Global RNC-ID IE in the RESET message."
Apparently an RNC must include this ID, while a CN omits it.

Related: SYS#6441
Change-Id: Iec70c3054333f01bc27ca0e69bfa325bbe36edd0
2023-05-11 22:26:07 +02:00
Neels Hofmeyr d90552df8a fix leak in ranap_new_transp_layer_addr()
Like BIT_STRING_fromBuf(), free any buffer previously kept in the target
BIT_STRING_t.

Context: osmo-hnbgw calls ranap_new_transp_layer_addr() to replace an
address in a decoded message, before re-encoding it. So far doing so
leaked the previous buffer.

Change-Id: Ic92fa317644c3a1f2be9badf455d34fe0b8ea2a4
2023-05-05 00:26:02 +02:00
Neels Hofmeyr a33955ce8f asn1tostruct.py: fix leak in error paths of iesDefs
Related: SYS#6297
Change-Id: I424c4ea2681f5c9a5eec99396502615de5eab841
2023-04-27 16:41:49 +00:00
Neels Hofmeyr 29d7e780fc fix PDU leaks in rua_generate_*() functions
Related: SYS#6297
Change-Id: I04eb1455e1fd43c239f352470bf971b73eb8b205
2023-04-27 16:41:49 +00:00
Oliver Smith be0b55e047 debian: set compat level to 10
Related: OS#5958
Change-Id: If00d77a3b83fa7ba000a346f087a6baf1966fdff
2023-04-25 16:48:29 +02:00
Oliver Smith c61a74f6c4 test-ranap: don't use libosmocore's tall_msgb_ctx
Use msgb_ctx from test_common.c instead, which is the same pointer after
test_common_init() ran. tall_msgb_ctx from libosmocore is no longer
getting exported since I13169c00a59fb59513dfc598de5a71d094492422.

Fix for:
  /usr/bin/ld: test-ranap.o: in function `main':
  /build/src/tests/test-ranap.c:201: undefined reference to `tall_msgb_ctx'
  /usr/bin/ld: /build/src/tests/test-ranap.c:201: undefined reference to `tall_msgb_ctx'

Change-Id: I7d0b3068760c2cd7067e2a5d929f03c7e7d1decb
2023-02-28 10:19:58 +00:00
arehbein 409d497eea Transition to use of 'telnet_init_default'
Related: OS#5809
Change-Id: Icc57c68337d55c6594c1c36e9bf41624d11dab0a
2023-02-25 17:48:58 +01:00
Pau Espin f0b84cc200 Bump version: 1.3.0.16-a319-dirty → 1.4.0
Change-Id: I1fa8e30166bb9dce402b636d20985946dee159aa
2023-02-07 16:39:50 +01:00
Oliver Smith a3193e4daa contrib/jenkins.sh: werror with WITH_MANUALS too
Change-Id: I6f1bbbc8d3ac04e8a82fb954c59ec30d6be46c13
2022-12-21 16:21:05 +01:00
Oliver Smith 69bb2fab2b asn1tostruct: don't use f-strings
Make the script work with python < 3.6 again by not using f-strings.

Fix for:
  SyntaxError: invalid syntax
    File "../../git/asn1/utils/asn1tostruct.py", line 94
      f" IE {ie}. Found another entry in ies {ie_other}" \
      ^

Fixes: 1d19c8e2 ("asn1tostruct: fix defines getting redefined")
Change-Id: I3a19b8a1147532b41d3ed7b802de595302ff8f44
2022-11-16 10:27:52 +01:00
Oliver Smith bee7ce3f6f contrib/jenkins.sh: use --enable-werror
Change-Id: Idf0ecd012071b5786773643fc71cc44ec070aa05
2022-11-15 11:16:40 +01:00
Oliver Smith 1d19c8e21e asn1tostruct: fix defines getting redefined
Do not write the same define twice for two files in a struct, e.g.:

  #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT                   (1 << 0)
  #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT                   (1 << 1)
  #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_RAB_SETUPLIST_ENHANCEDRELOCCOMPLETEREQ_PRESENT (1 << 2)

  typedef struct RANAP_EnhancedRelocationCompleteRequestIEs_s {
      uint16_t                                 presenceMask;
      RANAP_IuSignallingConnectionIdentifier_t oldIuSigConId;
      RANAP_IuSignallingConnectionIdentifier_t iuSigConId;
      RANAP_GlobalRNC_ID_t                     relocation_SourceRNC_ID;
      RANAP_ExtendedRNC_ID_t                   relocation_SourceExtendedRNC_ID; ///< Optional field
      RANAP_GlobalRNC_ID_t                     relocation_TargetRNC_ID;
      RANAP_ExtendedRNC_ID_t                   relocation_TargetExtendedRNC_ID; ///< Optional field
      RANAP_RAB_SetupList_EnhancedRelocCompleteReq_t raB_SetupList_EnhancedRelocCompleteReq; ///< Optional field
  } RANAP_EnhancedRelocationCompleteRequestIEs_t;

The problem is that the type is used and it may not be unique inside a
struct. Change the code to use the name of the field if the type is not
unique. Keep using the type otherwise so existing code doesn't need to
be modified a lot to fix this.

Fix for:
../include/osmocom/ranap/ranap_ies_defs.h:514: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT" redefined

Change-Id: I2ecae6789899952d1dc5691ab76907abeaa71c12
2022-11-15 11:16:38 +01:00
Oliver Smith 8d3f18888b hnbap_common: hnbap_cause_str: handle nothing val
Fix for:
../../../src/osmo-iuh/src/hnbap_common.c:85:9: error: enumeration value ‘HNBAP_Cause_PR_NOTHING’ not handled in switch [-Werror=switch]

Change-Id: Icab3052e27d1951129e3809e61357ee23c4cb588
2022-11-15 11:16:22 +01:00
Oliver Smith 8073e5195c test-hnbap: fix defined but not used error
../../../../src/osmo-iuh/src/tests/test-hnbap.c:53:28: error: ‘hnbap_reg_acc’ defined but not used [-Werror=unused-const-variable=]
   53 | static const unsigned char hnbap_reg_acc[] = {
      |                            ^~~~~~~~~~~~~

Change-Id: I1fda405af9d4f1f43377ee0a81710e6e2668da13
2022-11-15 11:16:22 +01:00
Oliver Smith b3a8345189 tests/hnb-test-rua: fix incompat pointer type
Adjust the first argument of hnb_test_rua_dt_handle_ranap and
hnb_test_rua_cl_handle_ranap to be "void *priv", as it is private user
data.

Fix for:
../../../../src/osmo-iuh/src/tests/hnb-test-rua.c:19:29: error: passing argument 1 of ‘ranap_cn_rx_co’ from incompatible pointer type [-Werror=incompatible-pointer-types]
   19 |         rc = ranap_cn_rx_co(hnb_test_rua_dt_handle_ranap, hnb, ies.ranaP_Message.buf, ies.ranaP_Message.size);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                             |
      |                             void (*)(struct hnb_test *, struct ranap_message_s *)

Change-Id: Id930a7f0d3d05cfcc8ba9734dd922de885853c8c
2022-11-15 11:16:22 +01:00
Oliver Smith 05bb6ad563 ranap_common_cn: rename ctx -> priv
Rename the "ctx" argument of ranap_cn_rx_co and ranap_cn_rx_cl to "priv"
as it is private user data passed to the callback.

Change-Id: I929548e9224298be94f7d3ed4cdca0580147721d
2022-11-15 11:16:21 +01:00
Oliver Smith 8b6dad3331 ranap_common_cn: remove unused ctx args
ranap_cn_rx_co and ranap_cn_rx_cl both have a void *ctx argument, that
gets passed to:
* a callback function and
* to various decode functions in the same file.

As it is named "ctx", it looks like a talloc context. But the decode
functions don't use ctx at all and so in reality it is private userdata
for the callback. It is used as such by test/hnb-test-rua and in
osmo-msc.

Start cleaning this up by removing the unused ctx args, a future patch
will rename it to priv and yet another patch will fix a compiler warning
in test/hnb-test-rua by properly using it as userdata arg.

Change-Id: I8936197d7ae7ffddbe8ee99d909d74ac5b3ab227
2022-11-15 11:14:56 +01:00
Oliver Smith 3de4055839 tests/test-ranap: fix missing (void **) cast
Use the function like everywhere else in the code.

Fix for:
  tests/test-ranap.c:73:49: error: passing argument 3 of ‘aper_decode’ from incompatible pointer type [-Werror=incompati
ble-pointer-types]

Change-Id: I9d8a3ab70accc6a1401fe11a6d2ceef96d3b8c22
2022-11-14 09:52:31 +01:00
Oliver Smith 535ada7cff tests/test-hnbap: add missing include
Fix for:
  test-hnbap.c:174:9: error: implicit declaration of function ‘ranap_set_log_area’

Change-Id: I57fe460b511bccd14e0d0d110104511292963525
2022-11-14 09:52:31 +01:00
Oliver Smith 0b19040eb0 tests/hnb-test-rua: add missing include
Fix for:
  error: implicit declaration of function ‘ranap_cn_rx_co’ [-Werror=implicit-function-declaration]

Change-Id: I3dbadb63058edc990b49ec803a123292e5eea10f
2022-11-14 09:52:31 +01:00
Oliver Smith 48c038d399 asn1: fix visibility warnings from generated code
Fix warnings from generated asn1 code in order to build osmo-iuh with
werror in a future patch:

../../include/osmocom/hnbap/HNBAP_CriticalityDiagnostics-IE-List.h:29:23: error: ‘struct HNBAP_CriticalityDiagnostics_IE_List__Member’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror]

These visibility warnings come from "SEQUENCE … OF SEQUENCE" definitions
in the asn1 source files, as described in detail here:
https://github.com/vlm/asn1c/issues/430

It is not possible to tell gcc to just ignore these warnings since they
don't have their own type (unlike e.g. -Wuninitialized). Also it seems
like a huge effort to patch this in asn1c.

So work around the problem the same way the author of the issue worked
around it by rewriting the lines to "SEQUENCE … OF …-Value" and adding
a "…-Value ::= SEQUENCE" line below. Add a script in
asn1/utils/asn1_restructure_sequence_of_sequence.py for the
transformation and apply it.

Related: OS#4462
Change-Id: If84445ed2e0df604b581684dcf83f8520b7da84c
2022-11-14 09:52:14 +01:00
Oliver Smith 0c04a7e03f move-asn1-header-files: error for wrong asn1c
Add a helpful error message if the user doesn't have the expected asn1c
version installed. Link to a new wiki page that explains which branch
one needs to build.

Without this patch, it just complains that HNBAP_Criticality.h can't be
moved.

Change-Id: I11980bf868055bccc05c5338ea330b70022cd874
2022-11-11 17:40:13 +01:00
Vadim Yanitskiy a9c380afae libosmo-{hnbap,ranap,rua,sabp}: add -no-undefined to *_la_LDFLAGS
Make sure that there is no undefined references in shared libraries.

Change-Id: I659d277049173e8fc86934140d552f6a494971a1
2022-08-04 05:32:55 +07:00
Vadim Yanitskiy c62adff36b libosmo-rua: fix copy-pasted -version-info: {HNBAP->RUA}_LIBVERSION
Change-Id: I71b859d3c9ecfaf9bffa6341291267ddef071448
2022-08-04 05:31:41 +07:00
Pau Espin f5a5e01feb Bump version: 1.2.0.24-de3c-dirty → 1.3.0
Change-Id: I7da0cc95d7b1a7198f1ae5ad5a4c0174dfd7381d
2022-06-28 18:59:56 +02:00
Harald Welte de3c2e54f1 README.md: remove obsolete notice from 7 years ago
Change-Id: If6e08325ae9e7b681d1cbb4ea0e13e5eea0a251f
2022-06-18 14:01:45 +02:00
Harald Welte 23f9c3701d update git URLs (git -> https; gitea)
Change-Id: Ifc796c7d3f6ee5e4878618f2f236024d1caeb9d4
2022-06-18 14:01:45 +02:00
Neels Hofmeyr 3ae6e812f1 move new_transp_layer_addr to public API
osmo-hnbgw will use this function in
Ic9bc30f322c4c6c6e82462d1da50cb15b336c63a.

Related: SYS#5859
Change-Id: Icc61620b4d11c4ba6823b40abc7c300f0533c058
2022-06-10 14:15:20 +02:00
Pau Espin 753a48141e Make logging message about received RANAP message more meaningful
The message being used previously seemed to indicate something was
wrong with the message. The reality is that we are simply not handling
most of them, and they will end up being forwarded as they come in
osmo-hnbgw.

Related: SYS#5573
Change-Id: If63d942496491f1e9ee454034ec97d25764fde65
2022-06-08 14:36:10 +02:00
Philipp Maier c6e118af7a ranap_common: log decoder errors to LOGL_ERROR
Some of the custom ranap decoders use RANAP_DEBUG to log decoding
errors. This is a problem since decoder errors usually mean that a RANAP
message was somehow incompatible or wrongly formatted, which is a
serious problem. Lets log those messages to LOGL_ERROR instead.

Change-Id: Ic94cbba65719df7618c650a394e53cc59ab4e0b9
Related: OS#5152
2022-02-14 16:52:39 +01:00
Philipp Maier 55e573ca33 ranap_common: add decoder for RAB-ReleaseList
There is currently no decoder to decode RAB-ReleaseList objects properly.
Lets add one.

Change-Id: I4fc88402a863bc1482947985f759d3a26eea4164
Related: OS#5152
2022-02-14 16:44:20 +01:00
Philipp Maier 7755801cf5 ranap_common: add decoder for RAB-FailedList
There is currently no decoder to decode RAB-FailedList objects properly.
Lets add one.

Change-Id: I0f42487968f2a39f2425068c001950509a3bd28f
Related: OS#5152
2022-02-14 16:44:20 +01:00
Philipp Maier d97f94a7ea ranap_msg_factory: add missing apidoc
The functions ranap_new_msg_iu_rel_req and ranap_new_msg_rab_rel_req
lack apidoc strings.

Change-Id: I7484413980acdf17fde9ed0f97cf7f97e0ef3ae4
2022-02-10 10:47:25 +01:00
Philipp Maier 63a0cfe04e ranap_common_ran: add decoder for CN/MSC originated messages
Lets add a counterpart for ranap_common_cn that works the same, but
decodes CN/MSC originated messages.

Change-Id: Iad4c2743d4d1ddf8ad49002d1fe6866f22eb9e98
Related: OS#5152
2022-01-31 17:40:49 +01:00
Philipp Maier ca6054ef8c ranap_common_cn: add functions for direct access to decoder
The message encoder functions that decode a message to a struct
ranap_message are only accessible via a callback function that is passed
to ranap_cn_rx_cx The decoded ranap_message only lives inside the callback
since it is freed by ranap_cn_rx_cx when the callback is done. In some
situations this might make using the decoder incredibly difficult since
it is not possible to keep the decoding results for an extended amount
of time. Lets put the decoding into a separate function and use this
function in ranap_cn_rx_cx. Then lets make the decoder and the free
function public so that the decoder can be used in a more open way.

Change-Id: I14d2ed8e597a5d12024a6a6c72ff011dbeb2549d
Related: OS#5152
2022-01-28 13:21:40 +01:00
Philipp Maier fb58a448b1 test-ranap: put message gen tests into function
This unit test generats a lot of ranap messages for test, but the code
for that is in the main() function. Lets seperate this test code into
its own function like we do it in all other unit tests.

Change-Id: I7021e48b051afb6f13fdd54843d4cd92a499de2a
2022-01-13 17:20:30 +00:00
Pau Espin fd410172bf iu_client: Fix incorrect access to null pointer
Fixes: adec82f3b1
Closes: Coverity CID#243765
Related: OS#5398
Change-Id: Ib435b053241c294619c3478fe3b6450d8d181888
2022-01-13 10:41:12 +01:00
Philipp Maier bc518cf152 test_common: use osmo_init_logging2 instead of osmo_init_logging
osmo_init_logging is deprecated, lets use osmo_init_logging2

Change-Id: I00ff05e27a89f515f0ce874d6f130b2937b8f1cc
2022-01-12 13:48:19 +01:00
Pau Espin adec82f3b1 iu_client: Prevent crash if msgb passed to ranap_iu_tx has no dst
Related: OS#5398
Change-Id: I64beecd2c492d6312f60a1cf016ef022cda5252d
2022-01-11 17:08:45 +00:00
Philipp Maier c0a0b2562b iu_helpers: add function ranap_transp_layer_addr_decode2
Add ranap_transp_layer_addr_decode2 as AF agnostic version of
ranap_transp_layer_addr_decode.

Change-Id: Ia60e0ab671fc4185815a880377ab88fcf1b30ac9
2022-01-11 13:16:54 +00:00
Philipp Maier 45631aa04f add unittest for ranap_transp_layer_addr_decode()
The function ranap_transp_layer_addr_decode() lacks a unit test. Lets
add one.

Change-Id: I6d7427dc07c858a8dd76c1fb536ec3df3d96f1b1
2022-01-11 13:16:54 +00:00
Pau Espin 75f77e257a jenkins.sh: osmo-iuh no longer has doc/manuals/ make target
the doc/manuals directory was dropped together with osmo-hnbgw binary
when it was moved to a separate repository recently.

Change-Id: Iceefc4e477ab516c5dc08e6c5b859c48d92a1b61
2022-01-11 13:16:08 +00:00
Philipp Maier f3ab579e99 iu_helpers: check length before accessing buf
in ranap_transp_layer_addr_decode() we access the buffer buf before
checking the length field. This can lead to a segfault when the buffer
has a length of 0.

Change-Id: I983f6e5e4cee47b3f5719829e1310b8e2e33ffaf
2022-01-10 16:05:10 +01:00
Philipp Maier ed1537e9cb iu_helpers: make new_transp_info_(rtp|gtp) public
The functions new_transp_info_rtp and new_transp_info_gtp are needed to
generate the transport layer information struct. The functions are currently
not public since they are only used in ranap_msg_factory.c but to
reqwrite the RANAP RAB AssignmentReqtest / AssignmentResponse messages we
can reuse this code, so lets make them public.

Change-Id: I1e369718de8c4c7db1f1af1e6864562164ada6cf
Related: OS#5152
2022-01-10 14:00:29 +00:00
Philipp Maier 48b8af2bde cosmetic: don't use 4 speaces instead of tabs
Change-Id: Ie9ac6e363420d1cbe4f16049740493f6edbbe36a
2022-01-09 10:04:35 +00:00
Philipp Maier 6ce5684fba ranap_common: add decoder for RAB SetupOrModifyItemFirst
The RAB SetupOrModifyItemFirst is contained in the RAB Assignment
Request. We currently have no decoder for it, so lets add one.

Change-Id: Id7293c1035cf6de34b7a416fa9265a5a32ed3216
Related: OS#5152
2022-01-09 10:04:30 +00:00
Pau Espin 0ac9844c92 Drop no longer needed systemd config in build system
It was only used to install osmo-hnbgw, which is no longer there.

Change-Id: Idae258d895d8b25dbbfb5e9bb4386997475a71dd
2022-01-07 13:39:53 +00:00
Philipp Maier 52ceee7c90 test-hnbap: cosmetic: fix sourcecode formatting
Change-Id: I1ea0d93dafed0deeb17f0788983169ed56cf7d0f
2022-01-06 13:31:22 +01:00
Philipp Maier 48612cee44 test-hnbap: remove unused variable rc
Change-Id: I8da53e0ea50ae2d6d768223b3c2070a39bf7bc1b
2022-01-06 13:31:22 +01:00
Pau Espin 140c631e50 Bump version: 1.1.0.5-a3c2 → 1.2.0
This version is basically 1.1.0 with osmo-hnbgw dropped, which was moved
to osmo-hnbgw.git and released as 1.2.0 there.

Change-Id: I63afc9d98cfc1d478ff2853adf5224e5f383186c
2022-01-05 12:26:51 +01:00
Pau Espin a3c221728a tests/dummy_cn_sua.c: Drop no longer existing include
This one was unspotted during last patches dropping hnbgw since this
file is actually not compiled currently.

Change-Id: I94ed20c42bcc9619d80757c6ff4a661c360bfb4f
2022-01-05 12:24:56 +01:00
Pau Espin e91b57d963 Drop osmo-hnbgw
OsmoHNBGW is now available in its own repository osmo-hnbgw.git.

Change-Id: I4e17c578b432f0c997ea4e13b1c468b112278854
2022-01-04 18:59:46 +01:00
Pau Espin 1562225332 Introduce dynamic log category for libosmo-rua/hnbap
Same as already done for libosmo-ranap.
This allows applications setting the cateogy dynamically, and will allow
untangling library tests using hnbgw log categories in this repo.

Change-Id: I5d09b67b115ad8938e5162a23accfcbafab139d4
2022-01-04 18:57:22 +01:00
Pau Espin 53052963c1 tests/tests_common.c: Add missing header
The header is probably indirectly added by osmocom/iuh/hnbgw.h, but once
that's dropped, really weird stuff happens, like talloc crashing in
talloc_total_blocks() because the compiled code incorrectly fills
msgb_ctx variable in return of msgb_talloc_ctx_init.

Change-Id: I7dab8d18d316632989406a9f22917e00a7fd68bf
2022-01-04 18:51:51 +01:00
Oliver Smith 9b4de3f401 treewide: remove FSF address
Remove the paragraph about writing to the Free Software Foundation's
mailing address. The FSF has changed addresses in the past, and may do
so again. In 2021 this is not useful, let's rather have a bit less
boilerplate at the start of source files.

Change-Id: I340ab63093138ada6e80edf322e401e9fbfef4ed
2021-12-14 12:16:45 +01:00
Pau Espin 1bc3fb4dd9 Bump version: 0.8.0.1-d5ce4 → 1.1.0
Bump version to overcome a previous out-of-master tag 1.0.0 which is
messing some builds and creating confusion. Let's have a new 1.1.0
release tag on master.

Change-Id: I53c25e74ece6fe22c6e29bf2dd4e223e49491888
2021-11-17 11:56:26 +01:00
Pau Espin d5ce4e7d2b gitignore: Ignore libsmo-{hnbap,rua}.pc
Change-Id: Ib66ca43017447f23ea041b466a2bf122a0a4946e
2021-11-16 17:47:34 +01:00
Pau Espin ef1b61fc6c Bump version: 0.7.0.27-f8ed-dirty → 0.8.0
Change-Id: Ibbef3cc3bf1f468309e73f5dda497dca1a03c815
2021-11-16 17:13:10 +01:00
Oliver Smith f8ed10a323 Cosmetic: put asn1c parameters in separate lines
Change-Id: Id1425753f9b4cbce172a1b875a680aa189bb5737
2021-11-12 13:44:34 +01:00
Oliver Smith e321f0f77f contrib/osmo-iuh.spec: fix missing ldconfig lines
Fix build failure on various openSUSE distributions in OBS, where
rpmlint runs after the build and complains about these missing
post/postun scriptlets.

Fix for:
  libosmo-hnbap0.x86_64: E: library-without-ldconfig-postin (Badness: 300) /usr/lib64/libosmo-hnbap.so.0.0.0
  ...
  (none): E: badness 1200 exceeds threshold 1000, aborting.

Related: SYS#5516
Change-Id: I898aa67dbc7deaa9a8235f508a34dd29cc83b385
2021-11-03 09:22:54 +01:00
Pau Espin df5fb9adf2 hnb-test: Fix memleak in hnb_read_cb
Change-Id: I6ecbce6aab11e1382ff9f71d901e1c6ac145f835
2021-11-02 13:33:56 +00:00
Pau Espin 1ddedcfa46 ranap: Use asn1c flag -fcompound-names to avoid name collisions with other libs
Change-Id: Iba106dcc18e3d429b4b9808610a44ac29b798172
2021-10-27 17:22:50 +02:00
Pau Espin 52eabf3a55 sabp: Use asn1c flag -fcompound-names to avoid name collisions with other libs
Change-Id: I10ce4a9414768cdcf850feeca4088296e339919f
2021-10-27 17:17:43 +02:00
Pau Espin c72d654cec rua: Use asn1c flag -fcompound-names to avoid name collisions with other libs
Change-Id: Id4e337cdc82c26922b7ca7f0fe8af523e9a0945c
2021-10-27 16:53:37 +02:00
Pau Espin 41fefdb12d hnbap: Use asn1c flag -fcompound-names to avoid name collisions with other libs
Change-Id: I1bcbe047d233684647d6ffe9febb14a12c579696
2021-10-27 16:51:18 +02:00
Pau Espin 02de780ceb hnbap: Drop no longer existing asn1c param -fnative-types
This is an option enabled by default and not existent as cmdline param
since asn1c 0.9.26.

For some reason, when dropping it, asn1c generates different description
comment section on related files. In any case, this makes hnbap look
like other libraries which already got this param removed and hence also
generateds code looks the same.

Change-Id: Iccf81539a5045416185e619d24c3d542204437e6
2021-10-27 16:32:58 +02:00
Pau Espin bc7c69d170 hnbap: Use specific prefix for HNBAP generated code
Other libraries already use ASN1C_PREFIX except the HNBAP one. Let's use
it here to avoid collisions.

All new include/osmocom/hnbap/HNBAP_*.h and src/hnbap/HNBAP_*.c are
generated using the updated src/hnbap/Makefile.am.
Files such as src/*.c, test/* and include/osmocom/hnbap/hnbap_common.h
are modified manually to update structs/enums to new prefix.

Related: SYS#5516
Change-Id: I6c062f631527ae42811bfec134933671c05ecba6
2021-10-26 16:42:07 +02:00
Pau Espin 651ff175d5 Update generated .c/.h after using asn1c -R param
Change-Id: Ib7a03973d43828f47ff59b561d9ddce43186f8af
2021-10-26 16:42:07 +02:00
Pau Espin b292db8923 src/*/Makefile.am: Use asn1c -R to avoid generating runtime code
Change-Id: I5666a6dc1ec9e56fe133642fb0054e913265c081
2021-10-26 16:42:07 +02:00
Pau Espin 861d9d2ebf src/*/Makefile.am: Copy back to srcdir the generated .c files from ASN
Change-Id: I203a25a8059218bb9fd6d10cbc028a296d347382
2021-10-26 16:41:31 +02:00
Pau Espin e395b75619 hnb-test: Fix rc var may be used uninitialized
Warning observed compiling with gcc 11.1.0.

Change-Id: I6ca53dd57572338f15971633441da895843a164d
2021-10-26 14:31:33 +02:00
Pau Espin 6334953f1c hnbgw_cn.c: Use proper type struct
Change-Id: Icc8b90866a8edce9d10c87f4ced7137edf1c46f0
2021-10-26 14:15:49 +02:00
Pau Espin 5310f5458e hnbgw_rua.c: Use proper type struct
Change-Id: I9e21b504e4fac072d8481d0a699bc58d1b94a12d
2021-10-26 13:50:36 +02:00
Oliver Smith 6a77d1ffa5 contrib/osmo-iuh.spec.in: fix header packaging
Fix the conflict from having %{_includedir}/* in multiple packages by
replacing it with the correct subdir path.

Fix for:
  found conflict of libosmo-hnbap-devel-0.7.0.11.b110.202110260026-1.1.armv7hl with libosmo-ranap-devel-0.7.0.11.b110.202110260026-1.1.armv7hl:
    - /usr/include/osmocom/hnbap/Access-stratum-release-indicator.h
    - /usr/include/osmocom/hnbap/AccessResult.h
    - /usr/include/osmocom/hnbap/AdditionalNeighbourInfoList.h
  ...

I've verified that it builds again in my own OBS namespace.

Related: SYS#5516
Fixes: 35f2bd ("Provide libosmo-hnbap as a public shared library")
Fixes: dba8b0 ("Provide libosmo-rua as a public shared library")
Change-Id: Ia401caf01fa9ea351f811d7c22a04ccff556d6bc
2021-10-26 09:21:02 +02:00
Pau Espin b1103fc8e3 README.md: Document how to re-generate code from ASN1 files
Change-Id: Ie3e5b7fb88caf2a795fccdcf214f559f9683070c
2021-10-22 23:19:06 +02:00
Pau Espin 44481e435e move-asn1-header-files.sh: Replace original asn file path in generated asn1 header files
This makes builds reproducible and keep the existing relative path.
This should have been done in a previous commit changing the paths being
passed to asn1c to be absolute (top_srcdir).

Fixes: f67803684f
Change-Id: I19537f136cbb654950172ee532027920d353a556
2021-10-22 23:15:31 +02:00
Pau Espin dba8b0c334 Provide libosmo-rua as a public shared library
It is needed by the new osmo-hnodeb project.

Related: SYS#5516
Change-Id: I8b800baacbfe3a3c424c51b418b5ac2e2848b3ba
2021-10-22 15:43:17 +02:00
Pau Espin 35f2bd60ae Provide libosmo-hnbap as a public shared library
It is needed by the new osmo-hnodeb project.

Related: SYS#5516
Change-Id: I0d0862e9d59d3b206f3f7dfae4b39ae4032bb762
2021-10-22 15:42:27 +02:00
Pau Espin 2127a71515 src/*/Makefile.am: Fix trailing whitespace
Change-Id: Ie22df146cfaf6aaf9c7cef884a964e6a3dfcc8ad
2021-10-22 15:42:05 +02:00
Pau Espin 40c1729c61 src/tests/Makefile.am: Drop reference to non-existent RANAP_FILES var
It was no longer needed since .la was used.

Change-Id: I3f196d5c2bb35826709bfc32d10e6b3683b552ee
2021-10-21 15:06:03 +02:00
Pau Espin 6f1de40430 cosmetic: src/ranap/Makefile.am: Drop trailing whitespace
Change-Id: I934b7be7ca1fac05410df6640428ee8e9c70c3e7
2021-10-21 14:57:37 +02:00
Pau Espin 1f6c117d07 hnb-test: Fix typo in vty cmd description
Change-Id: Id33e2e8caa37dc359d564188747cd4c1b8bc4064
2021-07-05 12:18:47 +02:00
Pau Espin 7fcd33df8c ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result
This allows the SGSN always having feedback on the resolution of the
release, hence being able to stay in PMM CONNECTED state until the
resolution is received, then moving to PMM IDLE.

Related: SYS#5389
Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0
2021-04-14 17:45:12 +02:00
Pau Espin 68a796ebc5 iu_client: Log event sent to upper layer callback
Change-Id: I2233df2b09ae46f28dd99d7540d71fee8e47b6ff
2021-04-13 17:36:49 +02:00
Harald Welte 09d635ce9b hnbgw: Add missing break statement
We don't want to print usage information after the VTY reference XML.

Change-Id: Ia729134a8f18d53274bbc063aa39508c7dcc1f72
2021-02-24 09:00:01 +01:00
Pau Espin c1385f2986 Bump version: 0.6.0.49-356f-dirty → 0.7.0
Change-Id: I3b592c39646a77681efde5debb5ac2a844208949
2021-02-23 20:11:59 +01:00
Harald Welte 356f49e723 manuals: generate vty reference xml at build time
Remove hnbgw_vty_reference from the source tree.

In manuals/Makefile.am use the new BUILT_REFERENCE_XML feature recently added
to osmo-gsm-manuals, and add a build target to generate the XML using the new
osmo-hnbgw --vty-ref-xml cmdline switch.

Change-Id: Ia1e978ad9139c41368cd2720c339e1738d345c4a
Depends: I613d692328050a036d05b49a436ab495fc2087ba
Related: OS#5041
2021-02-23 19:55:03 +01:00
Pau Espin ff8c223440 Workaround ASan report memleak during call to --vty-ref-xml
For some unknown reason, using size=0 instead of 1 makes LeakSanitizer
report a leak when calling osmo-hnbgw --vty-ref-xml:
"""
==19857==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x7f083b4d0d28 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1d28)
    #1 0x7f083a8e5661 in talloc_named_const (/usr/lib/x86_64-linux-gnu/libtalloc.so.2+0x6661)
"""

It seems iu_client.c is already using size=1.

Change-Id: I383653c981e68a053babd33dee1f0df8731752b0
2021-02-23 19:55:03 +01:00
Pau Espin 79d001fcb6 hnbgw: Avoid re-defining same global variable twice
This global variable is already defined in iu_client.c provided by
libosmo-ranap (and used by libasn1c).
Fixes ASan warning at starutp.

Change-Id: I7dbae83ce0dc4ac25dc10879e223280414f7b561
2021-02-23 19:08:48 +01:00
Harald Welte d24839fea0 main: add --vty-ref-mode, use vty_dump_xml_ref_mode()
Change-Id: If07b00e928fbecc596a7f75fc55e811bd9199b72
Depends: Ie2022a7f9e167e5ceacf15350c037dd43768ff40
Relates: OS#5041
2021-02-23 17:44:47 +01:00
Pau Espin a94752e684 tests: Replace deprecated API log_set_print_filename
Change-Id: Ic53a0a9afb8038759bb3ab1d4c5970f23632e84e
2021-02-19 13:19:01 +01:00
Pau Espin 2c6aed38bd tests: Explicitly drop category from log
Let's disable category here since we don't care about its formatting here.

In any case, every test relying on logging output validation should
always explicitly state the config to avoid issues in the future if
default values change.

Change-Id: Ia633cae0a26f294e276b431a82256abb1b57ebba
Related: OS#5034
2021-02-19 13:18:42 +01:00
Harald Welte e8299eb745 ranap_msg_factory: Fix LOGP statements
The related compiler warnings were overlooked as due to the
asn1c-generated code there always are tons of warnings printed compiling
this project :(

Change-Id: I40b1265ba696501cc72e674f3ef4146c47aacf1b
2021-02-11 10:15:37 +01:00
Harald Welte e3f707b8c6 ranap_msg_factory: Allow detailed control over UEA/UIA algorithm encoded
Change-Id: I6d2d033b0427bdc84fee61e0f3cb7b29935214bf
Closes: OS#4143
2021-02-08 18:34:02 +01:00
Harald Welte f05c5bf6cd hnbgw: Use LOGHNB() to add log context information to log lines
So far we don't really have any way of matching a given log message
to a specific hNB.  Let's use the newly-introduced LOGHNB() macro.

Change-Id: Ia16eed4ca5e9ef231259e94c65105f7586f366bc
2021-02-03 08:45:04 +00:00
Oliver Smith dee13c345f configure.ac: set -std=gnu11
Change-Id: I4bf2f1cb724bc3e3c56d5a5c1270bb152b0e6e0a
2021-01-28 09:28:31 +00:00
Pau Espin e6342e1cab tests/hnb-test: Disable building unsued code
Change-Id: I17f20cea8aa63ed79168653292b99c90b8c03caf
2021-01-14 11:31:32 +01:00
Pau Espin 8653233b57 tests/hnb-test: Initialize logging with existing struct log_info
Change-Id: Ic92e60dda41a9e4d139294b1e851fff5c4f26143
2021-01-14 11:29:47 +01:00
Pau Espin 4c928485ba tests/hnb-test: Fix signedness of assigned pointer
Change-Id: I320ad86b83b0308b43489e8d95f63d6ed55821b5
2021-01-14 11:27:34 +01:00
Pau Espin 84c3e8649a tests/hnb-test: Fix uninitialized use of rc variable
Change-Id: I168e4f7cd48cbaa387e6b05868107250795a0f0c
2021-01-14 11:26:15 +01:00
Pau Espin 634fd81f3d tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode
Change-Id: If8b799777598377048512c338f6384560b445ba3
2021-01-14 11:26:15 +01:00
Pau Espin 101fba211a tests/hnb-test-ranap: Fix incorrect signedness in pointer
Change-Id: I04b1c0446124d66dae1e8fb99d9b82782d12bde7
2021-01-14 11:26:15 +01:00
Pau Espin 96a94bc482 tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties
gcc warns about set but not used variable otherwise.

Change-Id: Ia49b7e88a66a4a744c2b14db6331cc0de431f60b
2021-01-14 11:26:15 +01:00
Pau Espin b4ff1f42b8 tests/hnb-test: Fix signedness of imsi_buf
Change-Id: I3b0a6218ac6242d03642972d5b244815ce9d97a0
2021-01-14 11:26:15 +01:00
Pau Espin 89f4c80541 tests/hnb-test: Drop unused variables
Change-Id: I12870a1cf2462b7cc2868a54f58416e03a856084
2021-01-14 11:24:31 +01:00
Pau Espin 825a1e40a8 tests/hnb-test-ranap: Fix incorrect pointer type cast
osmo_hexdump expect it to be a const unsigned char*, and gcc warns about
incorrect signedness.

Change-Id: I7e0622f502a4442d700340b0f1c2f8cd01e90ecd
2021-01-14 11:10:08 +01:00
Oliver Smith 220f0e2d94 contrib/jenkins: don't build osmo-gsm-manuals
Related: OS#4912
Change-Id: I339cc37a259e30b131fadbdaebd413c54b04f0a0
2021-01-13 13:11:33 +01:00
Harald Welte d37d3c8181 configure.ac: Ensure netinet/sctp.h is present
we unconditionally depend on this header file, yet nothing
in configure.ac ensures its presence.  Building on a clean
Debian 10 with all existing dependencies installed passes
configure but fails at compilation time.

Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0
2021-01-07 13:56:26 +01:00
Harald Welte 3f70fcd417 debian: Actually build manuals; add osmo-hnbgw-doc package
for some strange reason we didn't yet build the manual in the debian
package build.

Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e
2021-01-07 13:56:26 +01:00
Harald Welte c6d93452b2 hnbgw: Introduce LOGHNB() macro for log context information
So far we don't really have any way of matching a given log message
to a specific hNB.  Let's introduce a new log macro, together with
a configuration directive to select whether the hNB-ID or the
UMTS CellID shall be used.

Change-Id: I6113925216c6f88add2c6d27bdf47ccbb017f293
2020-12-30 14:23:54 +01:00
Harald Welte dc529f3d78 hnbgw: use OSMO_STRLCPY_ARRAY() instead of open coding it
Change-Id: I4c539168597187408c31b906fd57844e0f165c9b
2020-12-30 14:23:54 +01:00
Pau Espin 294610160d contrib/jenkins: Enable parallel make in make distcheck
Change-Id: I38f59aec482d3a8e2690913bc55728a96399659e
Related: OS#4421
2020-10-13 08:21:51 +00:00
Pau Espin 4875f09f85 hnbgw: Mark SCTP conn as NODELAY
We don't want messages to be sent being delayed.

Related: OS#4499
Change-Id: I333e7f868e426f7d7ebb328ea2a441d769ea8ebd
2020-10-12 16:04:18 +02:00
Vadim Yanitskiy 83417696da vty: use install_lib_element() and install_lib_element_ve()
See https://lists.osmocom.org/pipermail/openbsc/2020-October/013278.html.

Change-Id: I5c0a1efc21a5cc085b701be24dbcca1aaae15ee6
Depends: I8baf31ace93c536421893c2aa4e3d9d298dcbcc6
Related: SYS#4937
2020-10-04 16:48:47 +07:00
Pau Espin 9074d91451 Change default SCTP conn NULL->127.0.0.1 to localhost->localhost
"127.0.0.1" is changed to "localhost" to let local NSS decide whether to
use IPv4 or IPv6. In newish systems, IPv6 ::1 will be selected since
IPv6 takes precedence over IPv4.

Similarly, the default source addr needs to be changed from NULL to "localhost"
since for some yet unknwon reason, getaddrinfo(AF_UNSPEC, NULL) returns
first IPv4 "0.0.0.0" and later "::", which is inconsistent with
getaddrinfo("localhost") result, resulting in src=IPv4(0.0.0.0) and
dst=IPv6(::1), which is incompatible and will fail. In any case, since
the default remote address is a local one and it's the client side,
there's no real logical change since the kernel would anyway should have
taken a local address anyway.

Change-Id: I3c07e6aa0c87b752c9ea22eb4936f6993de6571f
2020-08-21 18:07:26 +02:00
Vadim Yanitskiy 9922e083ea debian/control: change maintainer to the Osmocom team / mailing list
Change-Id: If6e115ca23ae29696edf74ae010035e85aaa085c
2020-08-13 16:09:02 +07:00
Harald Welte 4f18ce1ecc Provide more context when logging "Error in ANY_fromType_aper"
Let's add the type name whose encoding failed to give us some kind
of a clue what's happening in those situations.

Change-Id: I802677ba7164a4d3382d4bc00f5e1c7ab7067d89
2020-07-29 20:11:36 +02:00
Oliver Smith c879975742 Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in
Change-Id: I8573098cc7dd2d8920914f93490c5ddf978418b0
2020-05-22 13:41:00 +02:00
Oliver Smith 70abda0ab2 contrib: integrate RPM spec
Remove OpenSUSE bug report link, set version to @VERSION@, make it build
with CentOS 8 etc.

Related: OS#4550
Change-Id: Ibec1a22952ecfb0578bb4611e65ad819f5984fd8
2020-05-20 08:50:55 +00:00
Pau Espin 4f35665b9f Fix OneDefinitionRule Asan violation in tests and osmo-hnbgw
With new gcc 10.1.0, tests failed at runtime when built with ASAN
enabled, since some global variables where defined multiple times.
See OS#4556 for a sample Asan error.

Fixes: OS#4556
Change-Id: I12a667ea8a9f16404c13c9218b246d2e3acfe3e8
2020-05-19 20:32:58 +00:00
Pau Espin 6f66feb42d tests: Fix trailing whitespace
Change-Id: I3ef7a3f1c3247615619a0d01c92d8f80572b0dfe
2020-05-19 20:32:58 +00:00
Oliver Smith 0e3a02776c contrib: import RPM spec
Copy the RPM spec file from:
https://build.opensuse.org/project/show/home:mnhauke:osmocom:nightly

Related: OS#4550
Change-Id: Ic3f146c1eb5b5d02277ec869516a1ec95987d4cd
2020-05-14 11:46:12 +02:00
Harald Welte 7712808e07 Fix compilation with gcc-10
/usr/bin/ld: test_common.o:(.bss+0x0): multiple definition of `talloc_asn1_ctx'; test-helpers.o:(.bss+0x0): first defined here

See also https://alioth-lists.debian.net/pipermail/debian-mobcom-maintainers/Week-of-Mon-20200413/000652.html

Change-Id: I4ce41158bb27e6b9242613106f226fc86995c53c
2020-04-20 20:01:53 +02:00
Philipp Maier 554dbf4fb7 hnbgw: do not use LOGL_DEBUG as default loglevel
The hnbgw application uses LOGL_DEBUG for all its log categories. This
is way to verbose, lets set LOGL_NOTICE as default loglevel instead.

Change-Id: If3dbed88307814764bab9e7f1821e1dc0d8be43b
Related: OS#2577
2020-04-14 13:19:52 +00:00
Eric Wild 8d88271570 configure.ac: fix libtool issue with clang and sanitizer
As pointed out at https://github.com/libexpat/libexpat/issues/312
libtool does not play nice with clang sanitizer builds at all.
For those builds LD shoud be set to clang too (and LDFLAGS needs the
sanitizer flags as well), because the clang compiler driver knows how
linking to the sanitizer libs works, but then at a later stage libtool
fails to actually produce the shared libraries and the build fails. This
is fixed by this patch.

Addtionally LD_LIBRARY_PATH has no effect on conftest runs during
configure time, so the rpath needs to be set to the asan library path to
ensure the configure run does not fail due to a missing asan library,
i.e.:

SANS='-fsanitize=memory -fsanitize-recover=all -shared-libsan'
export CC=clang-10
ASANPATH=$(dirname `$CC -print-file-name=libclang_rt.asan-x86_64.so`)
export LDFLAGS="-Wl,-rpath,$ASANPATH $SANS $LDFLAGS"

Change-Id: I74cdca5c8bd5a32b6fb05906280cc1cdd64e9369
2020-04-11 01:18:34 +02:00
Vadim Yanitskiy 065c192475 tests/test-ranap: cosmetic: remove unused variable 'rc'
Change-Id: Ie931d11efd7bb083558852a7f329c984c17fec62
2020-04-07 21:11:13 +07:00
Vadim Yanitskiy 81fd48d741 tests/test-helpers: fix endianness: do not print uint32_t as raw bytes
This unit test would not pass on big-endian machines.

Change-Id: I60dbcaa89b031c9a81c35e1dd0d9c963d486014c
2020-04-07 21:05:37 +07:00
Vadim Yanitskiy 89062aeb21 tests/test-helpers: fix some -Wpointer-sign warnings reported by GCC
Change-Id: I7ebc99fe919fe7ba515c9d8ba601dceb820bf11f
2020-04-07 21:01:12 +07:00
Neels Hofmeyr a959dd90d2 manual: link to new common cs7-config.adoc
Related: OS#2767
Depends: Ia2508d4c7b0fef9cdc57e7e122799a480e340bf7 (osmo-gsm-manuals)
Change-Id: I531b272f49edcbf4194603e554b535b83a1e5780
2020-03-30 18:19:33 +02:00
Neels Hofmeyr 50865f8a6f manual: add "Configuring Primary Links" and "Multiple instances"
Change-Id: I0919392b716e2812ff19d7efa5d1ba535b08eb91
2020-03-30 18:19:30 +02:00
Pau Espin 35e2058348 hnbgw_vty.c: Drop unusued variables
Change-Id: Ic7f730c9f51384006e471b5e8452f5821b458bbf
2020-03-20 20:35:06 +01:00
Pau Espin a008b17f2e Fix compiler warning on signedness of char ptr using OCTET_STRING_fromBuf()
rua_msg_factory.c:19:48: warning: pointer targets in passing argument 2 of ‘OCTET_STRING_fromBuf’ differ in signedness [-Wpointer-sign]

Change-Id: Ie0a2e8e11902dc56720ff8121edde0e148fa587a
2020-03-20 20:32:26 +01:00
Pau Espin ca74126d54 tests/test-ranap.c: Fix wrong printf format
Caught by compiler:
test-ranap.c:54:30: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘RANAP_MaxBitrate_t’ {aka ‘long int’} [-Wformat=]
test-ranap.c:78:30: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘RANAP_CauseMisc_t’ {aka ‘long int’} [-Wformat=]

Change-Id: Icc4e81beaa35e13aea3adfed983016c78b730061
2020-03-20 20:23:04 +01:00
Pau Espin 4ab00db868 tests/hnb-test-ranap.c: Fix wrong printf format
Catched by compiler:
hnb-test-ranap.c:76:44: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘RANAP_CN_DomainIndicator_t’ {aka ‘long int’} [-Wformat=]

Change-Id: Ie4cd6a36fd0e9a871a1815d600e8a321a3d2a208
2020-03-20 20:19:49 +01:00
Martin Hauke c593da5d45 tests: Missing return statement
Change-Id: I4fae9f84a83af280846b07eaa139ff4a05784a2e
2020-02-15 23:01:39 +01:00
Pau Espin 67d32a0386 Bump version: 0.5.0.23-11a1 → 0.6.0
Change-Id: I5f42c0ad1a930004415f097d984e1fd1b2d277e6
2020-01-03 17:04:15 +01:00
Pau Espin d5d3efb546 debian: Split libosmo-sabp from libosmo-ranap package
Related: OS#4342
Change-Id: I936220e95a3334d8052bb2c52fbf335a8a5c3711
2020-01-03 14:46:22 +01:00
Pau Espin d48430d4fb debian/rules: Fix dbg pacakges
Related: OS#4342
Change-Id: I5e0e13a1d4fa7db373807d72d293da6933966452
2020-01-03 14:44:12 +01:00
Vadim Yanitskiy 11a1639b2d osmo-hnbgw: make sure osmo_ss7_init() executed successfully
Change-Id: Ia9ecf903e79b282aa4fa88a291424681d0fe9d89
Fixes: CID#206089
2020-01-01 14:05:57 +01:00
Oliver Smith 16441ffbb3 debian, asn1tostruct.py: switch to python3
Make build work with python3 and drop the python2 dependency.

Related: OS#2819
Change-Id: Idb9d7a349ddb7619c784823f740648c7956bae5e
2019-12-11 11:37:21 +01:00
Oliver Smith 08699f6636 gitignore: add gen_sabp.stamp
Change-Id: I107d2c0e8c82523a8fb38f128bb81e32e437bdd8
2019-12-11 09:23:58 +01:00
Harald Welte cc0914d018 exit(2) on unsupported positional arguments on command line
Change-Id: Id33caf93325074f9e5b2b322ac497b1c21c3f406
2019-12-03 21:53:08 +01:00
Harald Welte 6d839f5354 Initial minimal OsmoHNBGW user manual
This adds a very basic OsmoHNBGW user manual with an "overview" and
"running" chapter.  It still misses any information on configuration.

Change-Id: I54825a4ce5a457f87b0618332347eed8ea54afcb
Closes: OS#2588
2019-12-01 14:21:01 +01:00
Alexander Couzens 9fb8cac6dc iu_client: ranap_iu_tx_release() change default cause code to Success
The cause code no remaining rab should be only used when closing the
Iu connection on this specific reason. Change default to NAS Success
Release which is a usual release.

Change-Id: Icf3f06b0de7dcda9f967ae29863054ef813c75e5
2019-10-08 13:02:11 +02:00
Alexander Couzens a6eb09d6db iu_client: pass return value of osmo_sccp_user_sap_down() towards the caller
osmo_sccp_user_sap_down return 0 on success, negative values on failure

Change-Id: I3b7c2296eb8b26f0881cee643b834336daab86ea
2019-10-03 20:30:31 +02:00
Harald Welte e844bf7828 sabp: Generate C/H files for SABP; create libosmo-sabp
This uses the (modified) Osmocom asn1c on the (modified) SABP ASN.1
syntax to generate C code + header files for SABP parsing/encoding.

It also adds some helper code for message encoding and decoding as well
as a new libosmo-sabp shared library which can be used by programs to
implement SABP related functionality.

Change-Id: Ib9580d1af96354398da4c9f97b28a0e23d56e275
2019-09-23 20:23:51 +02:00
Harald Welte 7095c7ed0c sabp: Add Procedure Codes and IEI constants to CommonDataTypes
... this is what's required for asn1c to generate nice C language
enums for it.  Conversion was performed semi-automatically by use
of asn1enum.pl

Change-Id: I0cd78a102ec6e31c696efc2cc6a4f08a0ba6d89e
2019-09-21 09:41:46 +02:00
Harald Welte f7f85ef092 sabp: fixup SABP ASN.1 to avoid IOC (which are not supported by our toolchain)
Change-Id: I8211bc334b325e8950edcd769917f164a65591ba
2019-09-21 09:41:46 +02:00
Harald Welte d673facccd sabp: Initial import of SABP ASN.1 from 3GPP TS 25.419 V11.1.0 (2013-03)
They cannot immediately be consumed by our (ancient, hacked) asn1c
toolchain, so we have to massage them into the supported format
in follow-up commits.

Change-Id: I9fa05d14493889e0a23354938b04a335a117f242
2019-09-21 09:41:34 +02:00
Harald Welte 175cc0f710 asn1enum.pl: Make compatible with modern perl
This fixes the following error message:
Experimental keys on scalar is now forbidden at ./asn1enum.pl line 25.

Change-Id: I4680627acfd8f3ed73d32324fe0a54b554268f3b
2019-09-20 22:10:50 +00:00
Pau Espin 965d53348e hnbgw: Add libosmoctrl's VTY CTRL command initialization
Otherwise, the "ctrl" VTY node is not available and CTRL ip address
cannot be set.

Change-Id: I73f64b951690ec23f829c4855b2caeefa66ad35d
2019-09-20 17:21:23 +02:00
Alexander Couzens 32fc82a803 iu_client: introduce UE field free_on_release
Allow to free UE ctx when receiving a Iu Release Complete.
In preparation of ranap_iu_tx_release_free() it requires
a field to free the Iu ctx on it's own without depending
on the upstream user.

Change-Id: Iac41cd3cce3232d01b2f7ede0cc46226c2cfb6c0
2019-09-16 13:57:50 +00:00
Alexander Couzens ff79699b48 iu_client: introduce ranap_iu_tx_release_free()
ranap_iu_tx_release_free is a fire and forget function to release
gracefully if possible. It first sends a Iu Release Command. After
a certain timeout the connection will be released.

Change-Id: I349e2c61ba0131e233b7ab927dfced0bd461dd8f
2019-09-15 20:42:30 +02:00
Alexander Couzens 8e2a0ee8e2 iu_client: allow to control the notifications
The iu_client is informing the library user about global event.
In prepration to the tx_iu_release_free() call allow to
disable upstream notificatiosn

Change-Id: Ic93ef6fd54c995405e9c37a5e0c53f81a89850b7
2019-09-12 01:34:37 +02:00
Alexander Couzens 790212fcaf iu_client: introduce a guard around global_iu_event_cb
As preparation to enable and disable notifications for a specific ue connection,
add a slim proxy before calling global_iu_event_cb

Change-Id: I49a3402a871d6dccd343cda49f8a7f82bffe150b
2019-09-10 19:10:50 +02:00
Alexander Couzens efdd80dc0a iu_client: emit RANAP_IU_EVENT_LINK_INVALIDATED on SCCP disconnect indication
Change-Id: I168b5c67336c4d1cb9fcebb9c26a7cf2fc46e420
2019-09-03 18:44:34 +02:00
Alexander Couzens 609994d146 iu_client: introduce ranap_iu_free_ue() to free the UE connections
When freeing the UE connection object, disconnect the SCCP connection.

Change-Id: I6812edb4da487507ccf9f483de801c1c65c4b72b
2019-09-03 18:44:27 +02:00
Alexander Couzens 4ae261b89b iu_client: sccp_sap_up: don't decode empty disconnect indications
Change-Id: I1fea8f19433d908583de71d8d2401bbb8c0c7900
2019-09-03 18:40:57 +02:00
Alexander Couzens 87482b335c iu_client: ensure UE is not NULL on CO primitives
When ue_conn_ctx_find() can not find a UE it returns NULL.

Change-Id: I63222fda6778417b1c986cb05772fecc51c43bb5
2019-09-03 16:42:07 +02:00
Alexander Couzens 80307924f1 iu_client: sccp_sap_up: set rc early
Allows to skip assignment later.

Change-Id: Idd803774612719df144bef569fb734289aa31282
2019-09-03 16:42:06 +02:00
Vadim Yanitskiy dab16ff3f5 hnbgw_vty.c: fix: properly pass pointer to g_hnb_gw
Otherwise the process hangs if the user enters:

  $ show hnb NAME

hnbgw_vty.c: In function ‘show_one_hnb’:
hnbgw_vty.c:234:2: warning: passing argument 1 of
                   ‘hnb_context_by_identity_info’
		   from incompatible pointer type
		   [enabled by default]
iuh/hnbgw.h:154:21: note: expected ‘struct hnb_gw *’
                    but argument is of type ‘struct hnb_gw **’

Change-Id: I42fdb10af5f6427886b5797325830dfc212af30f
2019-08-23 00:30:40 +02:00
Pau Espin 505fa9eae7 Bump version: 0.4.0.14-92ea-dirty → 0.5.0
Change-Id: I53c1743eda203bf075f93f891e336ca4ec6866a8
2019-08-07 21:23:57 +02:00
Pau Espin 92ea15a53f Remove undefined param passed to {logging,osmo_stats}_vty_add_cmds
Since March 15th 2017, libosmocore API logging_vty_add_cmds() had its
parameter removed (c65c5b4ea075ef6cef11fff9442ae0b15c1d6af7). However,
definition in C file doesn't contain "(void)", which means number of
parameters is undefined and thus compiler doesn't complain. Let's remove
parameters from all callers before enforcing "(void)" on it.

Change-Id: I31a286bebe3229671d9960ae32a753d260a26b1d
Related: OS#4138
2019-08-05 14:49:35 +02:00
Daniel Willmann d4a0a77319 jenkins: Enable manual publishing and building
Related: OS#2589
Change-Id: Ic7437daeab0b07d16fd71ca3881cb31bab7b1925
2019-07-30 11:28:51 +02:00
Daniel Willmann dc468e6442 Add VTY reference manual
Fixes: OS#2589
Change-Id: I042734fa9979b598d5471839e408cbf39bba57b5
2019-07-29 12:11:22 +02:00
Oliver Smith 30301f263c osmo-hnbgw.cfg: set local-ip to 0.0.0.0
Make the config work out of the box for anyone.

Related: OS#3369
Change-Id: I354140f014854f1755b649e40a65e5d88b99c0ec
2019-07-17 14:04:48 +02:00
Thorsten Alteholz 445bdccffa spelling stuff found by lintian
Change-Id: I8434640701746d5db8707472d1d26c313e0814e9
2019-07-16 21:48:47 +02:00
Oliver Smith 89ccf5517c contrib/jenkins.sh: run "make maintainer-clean"
Related: OS#3047
Change-Id: I6f9274efeb2fdda54feaa54eb299f7aafaaec1eb
2019-07-10 12:29:06 +02:00
Harald Welte 11b1ddee21 ranap_msg_factory: Fix criticality of PDUs
Seveal of our RANAP messages were using criticality values at the
PDU level differing from what RANAP_PDU_Descriptions.asn states
for the respective procedures.  Let's fix that.

This was discovered while working on the initial IuCS TTCN3 tests,
where the receive templates require the criticality to match.

Change-Id: I98eec0bdc0d0cb1b9284bd5d042b1f4403abef95
2019-04-20 22:53:49 +02:00
Harald Welte 8fa35b840c iu_client: Implement transmission of ResetAcknowledge
When receiving an Iu Reset, respond with Iu ResetAcknowledge.

Closes: OS#3944
Change-Id: Ia09752983a7e2a952aa144635924edbffd894058
2019-04-20 21:13:12 +02:00
Oliver Smith f601526970 tests: use -no-install libtool flag to avoid ./lt-* scripts
This ensures that the rpath of the generated binaries is set to use only
the just-compiled so-files and not any system-wide installed libraries
while avoiding the ugly shell script wrapper.

Change-Id: I92c7391631becc09d277981179c23f2e4dba3b54
2019-03-19 13:46:08 +01:00
Neels Hofmeyr e22027ae2a osmo-hnbgw: reply with RESET ACK when receiving a RESET
Rationale: current osmo-msc refactoring introduces RESET handling on IuCS.

In particular, it makes osmo-hnbgw be able to operate with an (upcoming)
osmo-msc that has strict RESET handling: it will send a RESET and require a
RESET ACK if it sees a new IuCS peer sending messages without prior RESET.

Even though a workaround to ignore missing RESET messages on IuCS will also be
in place in the new osmo-msc, this is a first small step towards more sane
RESET handling in osmo-hnbgw.

Related: OS#3820
Change-Id: I02bc74ef9fef61f4490b4d4dc3ce6c0a6d965909
2019-03-08 05:10:48 +01:00
Neels Hofmeyr 39d7b5c646 osmo-hnbgw: logging tweaks
Log about:
- sending RESET messages to CN;
- accepting a new hNodeB peer on HNBAP.

Change-Id: I317831dbc6c463e4d4dcde9e6716431e026c4398
2019-03-08 05:10:48 +01:00
Neels Hofmeyr f8d5f37c20 osmo-hnbgw: set a proper talloc ctx for logging
Change-Id: I006103d8d7fb15e2612fff619879940d8405e045
2019-03-04 22:41:14 +01:00
Neels Hofmeyr 3c839966b6 osmo-hnbgw: fix cmdline: do not force-disable colored logging
Un-jam the commandline option to disable color: it is so far stuck in
--disable-color and overrides everything so that we never see any colored
logging from osmo-hnbgw, whichever cmdline or cfg we pass.

Change-Id: I00400b626925fa9da707ad6679d8448941dbfa98
2019-03-04 22:38:59 +01:00
Neels Hofmeyr 04b5b662db ranap_msg_factory.h: fix enum def within function signature
Include RANAP_KeyStatus.h so that we use the global enum RANAP_KeyStatus
instead of defining another only within the ranap_new_msg_sec_mod_cmd()
function declaration.

Change-Id: Ifefaab32afa962dacdaa738a5419cce0a65a4b22
2019-01-22 01:49:10 +01:00
Harald Welte 92a88ee73f Bump version: 0.3.0.10-9e66-dirty → 0.4.0
Change-Id: Ib2943b7fd0a1f7ca79f761116cba30aa3aa29b88
2019-01-20 21:46:06 +01:00
Oliver Smith 456964fc41 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: I8e1615793bc89fdc3b0549c150cc10d848e56645
2018-12-06 13:43:26 +01:00
Oliver Smith e9fd1ed4b5 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: I3cfc4ccf799108ee2f411be443069c88a013df5b
2018-12-04 15:31:13 +01:00
Stefan Sperling 319c28581e add a VTY command which shows a specific HNB
Add the 'show hnb NAME' VTY command which displays just
one specific HNB, addressed by its identity string.
This augments the functionality provided by 'show hnb all'.

Change-Id: Iab12aa4ab090b72c472358b84daf6919b30747f6
Related: OS#2774
2018-10-31 12:18:02 +01:00
Harald Welte 9aad185151 hnbgw_tx_hnb_register_rej(): Missing return statement
Change-Id: I0bdee8ede9ffdc16c16a4f5723acb7b4bceb2158
Fixes: Coverity CID#188869
2018-10-21 11:46:14 +02:00
Neels Hofmeyr a770f6967b fix transport layer addr again, for nano3g
The nano3G sends the RAB Assignment Response's Transport Layer Address in X.213
NSAP padded to 20 bytes (160bit). Do not interpret it as 4-byte IP address,
which currently breaks nano3G voice calls (wrong RTP IP address).

Recent commit I2cd1b2d8e1c1ae707cfc0dc7961a2b31ecdf29e0 fixed decoding of X.213
NSAP that is exactly seven bytes, but broke decoding of the padded version from
the nano3G.

A proper X.213 NSAP decoding would still be more welcome than this patching
back and forth, but this is (another) quick fix without spending too much time
on it.

Related: OS#3420
Change-Id: I0ad8bce6fcfd3829394c39490058c1ab85cdfde3
2018-09-30 23:35:35 +02:00
Neels Hofmeyr b876b421e3 hnbgw: vty: add SCCP related vty commands
Depends: I214ea51fc6bfa2a9a4dd7c34b43add0c77ffe22e (libosmo-sccp)
Change-Id: I2f81e078d7a26dd39f8ff9d0f9273ee1a3434232
2018-09-27 03:35:15 +02:00
Pau Espin 37c1ffdadf Install sample cfg file to /etc/osmocom
Change-Id: I7476a1db470d3bc3a833e7657ad29f266df51667
2018-09-12 18:07:50 +02:00
Pau Espin a68b6828c8 Install systemd services with autotools
Change-Id: I90f1efc4433ec641a28931d5c19e2301a67cf1e9
2018-09-10 16:10:03 +02:00
Pau Espin b69c902fe0 debian: package osmo-hnbgw.service
Change-Id: I7b488ddb07916952adab921415ca373aa7c5c1e8
2018-09-06 14:16:01 +02:00
Neels Hofmeyr 236d1d4865 fix decoding of incoming X.213 NSAP addr
Fix ranap_transp_layer_addr_decode() to test == 7 instead of > 7: If a femto
cell sends its Transport Layer Address as X.213 NSAP IPv4, we receive 3 header
bytes and four IP-address bytes, so the length is exactly 7.

This function is very vague on numerous other decoding details, but this patch
only fixes the vital length check that makes 3G usable with X.213 NSAP.

Related: OS#3420
Change-Id: I2cd1b2d8e1c1ae707cfc0dc7961a2b31ecdf29e0
2018-08-20 17:31:58 +02:00
Harald Welte 2d3fae7e36 debian/rules: Don't overwrite .tarball-version
The .tarball-version file should contain the *source version* uniquely
identifying the git commit, and not the Debian package name.

With https://gerrit.osmocom.org/#/c/osmo-ci/+/10343/ there is a correct
.tarball-version file in the .tar.xz of the nightly source packages.

Change-Id: I08fa724a9a70e024845f683fb3f5d245a0bd9aa3
Related: OS#3449
2018-08-06 11:16:08 +02:00
Alexander Couzens ad4ea3b10e hnbgw: remove close_cb() to fix a crash when releasing a hnbgw
The read callback should catch all errors already.
Previous when a read fails it:

* hnb_context_release() -> osmo_stream_srv_destroy() -> hnb_context_release()
On the second hnb_context_release() the hnbgw will crash because calling
llist_del() twice on the same object.

Fixes: OS#3416
Change-Id: Ic84b2184b7fc850c0de2acacf179e86771e17510
2018-07-24 19:08:19 +02:00
Bernhard M. Wiedemann 7a97fcafed asn1tostruct: allow to override build date
in order to make builds reproducible.
See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.

Also do not record build user name to not have it vary.

Change-Id: I5cfa465cc82f009f28dd7f12ced0e72a05fda842
2018-05-30 13:21:57 +02:00
Pau Espin ba941e553d Bump version: 0.2.0.57-cf5f-dirty → 0.3.0
Change-Id: Id5d2f749bca46e8b81cc2934447707e3db80ea18
2018-05-03 18:29:14 +02:00
Pau Espin 2b88cc40eb debian/changelog: set prev releases to unstable
Otherwise it fools osmo-release.mk

Change-Id: I6c05bb7f5bb2b3e78283a5eae6ccf95ce86838f8
2018-05-03 18:28:12 +02:00
Neels Hofmeyr cf5fbea78f cosmetic: use osmo_plmn_id instead of mcc,mnc
It's cosmetic since the MCC and MNC in the PLMN aren't actually used,
currently. It makes sense to do it properly anyway, while I'm still in the
3-digit MNC topic, for the future.

Change-Id: I29ebcddd45fe3079f8883589a83cc7216a535475
2018-03-21 15:55:18 +01:00
Neels Hofmeyr 666121a9d9 configure: add --enable-werror
Provide a sane means of adding the -Werror compiler flag.

Currently, some of our jenkins.sh add -Werror by passing 'CFLAGS="-Werror"',
but that actually *overwrites* all the other CFLAGS we might want to have set.

Maintain these exceptions from -Werror:
a) deprecation (allow upstream to mark deprecation without breaking builds);
b) "#warning" pragmas (allow to remind ourselves of errors without breaking
   builds)

As a last configure step before generating the output files, print the complete
CFLAGS and CPPFLAGS by means of AC_MSG_RESULT.

Change-Id: Id659512d2d9fb3f28584ec5f071907f6b6e72e0d
2018-03-05 20:43:10 +01:00
Neels Hofmeyr 3050864b73 hnb-test: log accurate three-digit MNC with leading zeros
Depends: Id2240f7f518494c9df6c8bda52c0d5092f90f221 (libosmocore)
Change-Id: Ie3dd206bca2f38a0ef7ee7f9d3b6bf2eacc899a4
2018-02-28 19:26:07 +01:00
Stefan Sperling c964a2cfa1 ensure unique CellIDs in HNB-GW
If we receive a HNB-REGISTER-REQ with a cell ID which is already used
by another registered NNB, log an error and send HNB-REGISTER-REJECT.

Tested manually by running two 'hnb-test' programs concurrently (they
need to listen on different telnet ports; this port is hard-coded so
I compiled two different hnb-test binaries).
Then I issued the 'hnbap hnb register' command on the telnet interface
of each, and verified that the correct action is logged by osmo-hnbgw.
Both hnb-test programs can connect, but only one of them can register
at a time. Killing a registered 'hnb-test' program terminates its
connection and allows the previously rejected one to register.

The new rejection log message looks like this:
 hnbgw_hnbap.c:429 rejecting HNB-REGISTER-REQ with duplicate cell
 identity MCC=901,MNC=99,LAC=49406,RAC=66,SAC=43947,CID=182250155
 from (r=127.0.0.1:42828<->l=127.0.0.1:29169)

This change depends on a new API in libosmo-netif, which is added in
https://gerrit.osmocom.org/#/c/6844/

Change-Id: Iffd441eb2b6b75dfbe001b49b01bea015ca6e11c
Depends: I8ed78fe39c463e9018756700d13ee5ebe003b57f
Related: OS#2789
2018-02-22 20:29:06 +00:00
Pau Espin e1c01a0262 contrib: jenkins.sh: Disable doxygen in libosmocore build
Change-Id: I12d995c0c993483ed940fc173904d6e686fbe0ab
2018-02-20 20:22:24 +01:00
Pau Espin aec91ab347 configure.ac: Enable -Wall flag
Change-Id: Ib05f7862081708d578d8f0302d926aab42897dc2
2018-01-22 19:03:37 +01:00
Neels Hofmeyr 2293df070c hnbap: log errors on decoding/encoding HNB-REGISTER msgs
Change-Id: I3c039267fa2cc047c5678bcfe4a603f70c21cdd1
2018-01-18 19:01:09 +01:00
Neels Hofmeyr 8a2b6e2b6f cosmetic: hnbgw: hnbap: log rx of unsuccessful outcome
HNBAP isn't really that important to osmo-hnbgw operation, all we do is service
the few requests so that the other side is happy and uses our Iuh.
Nevertheless, could at least log if an UnsuccessfulOutcome was received.

Change-Id: I3f309dc2d3436798e9e76bcc2ebd82403ea538a1
2018-01-15 23:40:38 +01:00
Neels Hofmeyr 02296af07d hnbgw_hnbap: fix missing return in rx [un]successful outcome
Fixes: CID#57732 CID#57733
Change-Id: Iddf76d23c2c7d5824e82708f7da013c88411e832
2018-01-15 23:30:57 +01:00
Neels Hofmeyr e3644ac476 hnbgw_cn: rx ranap: set rc in all cases
There don't seem to be any evaluations of the rc, nevertheless return
well-defined values.

Fixes: CID#181968
Change-Id: I59295388564e5d270da32db6e7488755231f8a11
2018-01-15 23:28:08 +01:00
Neels Hofmeyr 6814d22d5f hnbgw_rua: fix dereference of unset pointer
In the UNITDATA case, there is no map, so a) initialize map as NULL and b)
print the RUA ctx id directly from local var context_id instead.

Fixes: CID#181969
Change-Id: I73f508b719b61a389e10cbad1bafad1650634abe
2018-01-15 23:28:08 +01:00
Neels Hofmeyr 70d3ece487 hnbgw_rua.c: log: fix integer format for cN_DomainIndicator
Fixes: CID#135219
Change-Id: I32c11100c87a59f34d7c1fefd2f0037e5d63f0e0
2018-01-15 23:28:00 +01:00
Pau Espin e9b4c390b4 iu_client.c: Remove unusued variable
Change-Id: If841d403010a73722ff69617a51719421febab56
2018-01-08 11:07:26 +01:00
Max 9d60ce6107 Enable sanitize for CI tests
Change-Id: I90ca756691e4f644d93af519ed5d54d794d1d401
2018-01-02 07:22:12 +00:00
Max bfeea6713b Expand ctrl interface
Add commands to get number of connected HNBs and identity string of
connected HNB based on Cell ID.

Change-Id: I3a2d6fa3d6d0829ccee4ecc0998d9299c97820e9
2017-12-31 11:02:07 +00:00
Max ef727410b2 Add control interface
* add libosmoctrl dependency
* bind control interface

Change-Id: I4637e88da00bac1ab0237c29ac73806d024863ba
2017-12-31 11:02:07 +00:00
Max 1e57ba503e Use proper package version
Use actual application version instead of hardcoded "0".

Change-Id: I8711b9d819454d810291d57b97119d9fe4a47f8e
2017-12-28 12:27:41 +01:00
Harald Welte f8b73b15c0 hnbgw_vty.c: Fix "-Werror=format-security" failure in vty_out()
We have to use a format string, we cannot directly print "name".

Fixes a build error on our OBS builds:
hnbgw_vty.c:156:5: error: format not a string literal and no format arguments [-Werror=format-security]
which was introduced in Change-Id I3c937306a011715e163a40bc8ef8ec7e8d4e5d08
about one week ago.

Change-Id: I042989c2b7b379284b2ee5fea3bd8f8ce406b09e
2017-12-26 21:41:16 +01:00
Harald Welte 8e88d37cec hnbgw_vty.c: cosmetic: Fix non-tab-indented code
This was introduced a week ago in Change-Id
I3c937306a011715e163a40bc8ef8ec7e8d4e5d08 and is now cleaned up.

Change-Id: Iaadf941aa7f1c5ae05eb02b51cc646b7b5587ba3
2017-12-26 21:41:16 +01:00
Neels Hofmeyr 3bd8a55661 vty typo: 'show hnb': SCTP stream, not SCCP stream
Change-Id: Iceb29af9f4ef6b4b4ed9778bdd683d30c201371d
2017-12-25 15:24:33 +01:00
Neels Hofmeyr 23f3fdc6b2 comments: hnbgw_rua.c: remove obsolete fixmes for asn1 free
The comments are all right above the line that does the proper asn1 free step.

Change-Id: I60e3be8c56ecc75c22e76f9e9dce8c72753e153b
2017-12-25 00:46:12 +01:00
Neels Hofmeyr 4e2681df26 osmo-hnbgw: startup: log the RNC-Id that is going to be used
Change-Id: I8aeb93fe8037e5fdc0784f5fc3bdb527de3b76bd
2017-12-25 00:46:12 +01:00
Neels Hofmeyr da58d26cbc osmo-hnbgw config: add 'rnc-id' config item
So far, the RNC-Id is hard-coded as 23. Still use 23 as default, but allow
configuring by config file. Hence make it possible to run multiple osmo-hnbgw
with differing RNC-Id each.

Change-Id: I374f558cc4bb36055f39efe9c58ae1b9bd49da46
2017-12-25 00:46:12 +01:00
Neels Hofmeyr e045da0261 cosmetic: context_map_tmr_cb(): fix comment
Change-Id: I4dd07a4d09d3cd4dc2a08e42ee48344967e5e3a6
2017-12-25 00:46:12 +01:00
Neels Hofmeyr 1e9f4f5432 rua_to_scu(): don't create a context map for UNITDATA
UNITDATA is connection-less, and as can be observed further below, the 'map'
doesn't get used in the N_UNIDATA case.

Related: OS#2776
Change-Id: Ic35562e6d7bfa54b6be859860657f9a235ad5a50
2017-12-25 00:46:12 +01:00
Neels Hofmeyr b10e2937d9 rua: discard context maps on id-Disconnect
When an id-Disconnect is received, the RUA to SCCP user context becomes unused.
Mark the context map as inactive in that case. It will be cleaned up by the
context map garbage collector.

Related: OS#2776
Change-Id: I9616f72bfa566de081098ee13e720ff0f5266c77
2017-12-25 00:46:12 +01:00
Neels Hofmeyr aa3e9ebcb4 segfault: context_map gc: use llist_for_each_entry_safe()
The context map garbage collector removes entries from the list, hence it must
use llist_for_each_entry_safe().

We haven't hit this before since nothing is yet flagging context maps to be
discarded.

Related: OS#2776
Change-Id: I9d5899923054d1bf862d542fec862fb1e6f07dce
2017-12-25 00:46:12 +01:00
Neels Hofmeyr f33d16404d compiler warning: asn1tostruct.py: return 0 at end of *_free_*()
Part of the resulting diff in the generated code:

--- /tmp/hnbap_decoder.c	2017-12-24 17:06:50.983979866 +0100
+++ /tmp/hnbap_decoder.c	2017-12-24 17:07:10.760223354 +0100
@@ -1179,6 +1179,7 @@
     TNLUpdateResponseIEs_t *tnlUpdateResponseIEs) {

     ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_Context_ID, &tnlUpdateResponseIEs->context_ID);
+    return 0;
 }

 int hnbap_free_tnlupdaterequesties(
@@ -1187,6 +1188,7 @@
     ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_Context_ID, &tnlUpdateRequestIEs->context_ID);
     ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RABList, &tnlUpdateRequestIEs->rabList);
     ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_Update_cause, &tnlUpdateRequestIEs->update_cause);
+    return 0;
 }

 int hnbap_free_errorindicationies(
@@ -1197,12 +1199,14 @@
     if ((errorIndicationIEs->presenceMask & ERRORINDICATIONIES_CRITICALITYDIAGNOSTICS_PRESENT)
         == ERRORINDICATIONIES_CRITICALITYDIAGNOSTICS_PRESENT)
         ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_CriticalityDiagnostics, &errorIndicationIEs->criticalityDiagnostics);
+    return 0;
 }

 int hnbap_free_hnbconfigtransferrequesties(
     HNBConfigTransferRequestIEs_t *hnbConfigTransferRequestIEs) {

     ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NeighbourInfoRequestList, &hnbConfigTransferRequestIEs->neighbourInfoRequestList);
+    return 0;
 }

 int hnbap_free_tnlupdatefailureies(

[etc.]

Related: OS#2670
Change-Id: Ieba12c09c33a81da964bf88a858714d922ced8c0
2017-12-25 00:46:12 +01:00
Neels Hofmeyr 9e17e054e4 osmo-hnbgw: vty: revamp output of context maps on 'show hnb'
Instead of listing each and every context map, rather output a summary of
context counts.

Rationale: in a list of a hundred HNBs, I don't want to also see a dozen (or
potentially thousands of) context map lines for each. Furthermore, the conn IDs
aren't necessarily useful on network traces either.

For example, what was shown as SUA Id is incidentally the SCCP Reference, but
this is not a hard requirement and may change. Also, the reference is shown in
wireshark as a hex in mismatching byte order ... so rather don't bother.

The result now looks like

  OsmoHNBGW> show hnb all
  HNB (r=192.168.0.124:29169<->l=192.168.0.9:29169) "000295-0000152614@ap.ipaccess.com"
      MCC 901 MNC 70 LAC 14357 RAC 11 SAC 1 CID 8595638 SCCP-stream:HNBAP=0,RUA=0
      IuCS: 1 contexts: inactive-reserved:1
      IuPS: 1 contexts: active:1
  1 HNB connected

Related: OS#2772 OS#2773
Change-Id: Iae76b68e85863c8663bb5c508b85534c00e1d2c9
2017-12-25 00:46:12 +01:00
Neels Hofmeyr 140f38c55e vty: tweak / improve HNB and cnlink introspection
Add 'show cnlink' (uses new osmo_sccp_user_name(), see 'Depends' below).

Tweak 'show hnb all'.

The result looks something like:

  OsmoHNBGW> show cnlink
  IuCS: OsmoHNBGW:RI=SSN_PC,PC=0.23.5,SSN=RANAP <-> RI=SSN_PC,PC=0.23.1,SSN=RANAP
        SS7 route: pc=0=0.0.0 mask=0x0=0.0.0 via AS as-clnt-OsmoHNBGW proto=m3ua ASP asp-clnt-OsmoHNBGW (r=127.0.0.1:2905<->l=127.0.0.1:37699)
  IuPS: OsmoHNBGW:RI=SSN_PC,PC=0.23.5,SSN=RANAP <-> RI=SSN_PC,PC=0.23.4,SSN=RANAP
        SS7 route: pc=0=0.0.0 mask=0x0=0.0.0 via AS as-clnt-OsmoHNBGW proto=m3ua ASP asp-clnt-OsmoHNBGW (r=127.0.0.1:2905<->l=127.0.0.1:37699)

  OsmoHNBGW> show hnb all
  No HNB connected

  OsmoHNBGW> show hnb all
  HNB (r=192.168.0.124:29169<->l=192.168.0.9:29169) "000295-0000152614@ap.ipaccess.com"
      MCC 901 MNC 70 LAC 14357 RAC 11 SAC 1 CID 8595638 SCCP-stream:HNBAP=0,RUA=0
      IuCS 24->1002 (RUA->SUA) state=1
      IuPS 24->1003 (RUA->SUA) state=1
  HNB (r=192.168.0.15:29169<->l=192.168.0.9:29169) "000295-0000154153@ap.ipaccess.com"
      MCC 901 MNC 70 LAC 24358 RAC 22 SAC 65535 CID 1048575 SCCP-stream:HNBAP=0,RUA=0
      IuCS 23->1000 (RUA->SUA) state=1
      IuPS 23->1001 (RUA->SUA) state=1
  2 HNB connected

Related: OS#2772 OS#2773
Depends: Ib7abf69cfcf4c56273223054b280458451e6c2f6 (libosmo-sccp)
         Ia0d15a2814b08bc3f052a1ed12dbb68bade55309 (libosmo-sccp)
Change-Id: I3c937306a011715e163a40bc8ef8ec7e8d4e5d08
2017-12-25 00:43:28 +01:00
Neels Hofmeyr 6eeef115a9 hnbap,rua,ranap decode: fix segfault on decode error
Looking at hnbap_decode_hnbregisterrequesties(), I noticed a segfault if
decoding the HNB Register Request PDU fails, which is due to an unchecked
return value in code generated by asn1tostruct.py.

Add return value and NULL pointer checks and hence fix null dereference on
erratic PDUs across HNBAP, RUA and RANAP protocols. Similar checks exist in
other places, this one was simply missing.

Since the result of asn1tostruct.py is not committed, here is an example diff
of the resulting change, of which there are 128 instances in total:

@@ -304,7 +329,12 @@
     memset(hnbRegisterRequestIEs, 0, sizeof(HNBRegisterRequestIEs_t));
     HNBAP_DEBUG("Decoding message HNBRegisterRequestIEs (%s:%d)\n", __FILE__, __LINE__);

-    ANY_to_type_aper(any_p, &asn_DEF_HNBRegisterRequest, (void**)&hNBRegisterRequest_p);
+    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBRegisterRequest, (void**)&hNBRegisterRequest_p);
+
+    if (tempDecoded < 0 || hNBRegisterRequest_p == NULL) {
+        HNBAP_DEBUG("Decoding of message HNBRegisterRequestIEs failed\n");
+        return -1;
+    }

     for (i = 0; i < hNBRegisterRequest_p->hnbRegisterRequest_ies.list.count; i++) {
         IE_t *ie_p;

Change-Id: I6cb9cc9a88d22f03befa43f0968a874476fa079d
2017-12-20 23:31:45 +01:00
Neels Hofmeyr 66d6d760aa hnbgw: hnb info: record MCC, MNC, show on 'show hnb'
Before, MCC and MNC were always reported as zero, now the output of 'show hnb all' looks like:

  OsmoHNBGW> show hnb all
  HNB "000295-0000154153@ap.ipaccess.com" MCC 901 MNC 70 LAC 11111 RAC 99 SAC 65535 CID 1048575
     HNBAP ID 0 RUA ID 0

Change-Id: Iae094b36fa1cf18e07ed33914b9425368d7cd34b
2017-12-20 23:17:57 +01:00
Philipp Maier aa8d48cbe0 ranap_msg_factory: remove unusued variable
remove variable i in ranap_new_msg_sec_mod_compl() as it is not
used (compiler warning)

Change-Id: I93d9e95109fb78bc6cc161745b9e14de8b623d4f
2017-12-20 16:03:19 +00:00
Philipp Maier 1eb19cf690 ranap_msg_factory: check IE encoder return codes
in many functions, the returncode (rc) from the IE encoder functions
is not checked.

Add a return code check and log error message (like it is already
done in the functions which already check the return code)

Change-Id: I592c0794a94c50fde5c574b1e9bc581eb28af4ae
2017-12-20 16:03:19 +00:00
Philipp Maier ee03876dd1 iu: iu_helpers: add functions to decode ip/port from rab-ass
add ranap_transp_assoc_decode() to decode the port information from
an  RANAP_IuTransportAssociation_t field.

add ranap_transp_layer_addr_decode() to decode the ip-address from
an RANAP_TransportLayerAddress_t field.

Change-Id: I3c1a0455c5f25cae41ee19229d6daf299e023062
2017-12-20 16:03:19 +00:00
Neels Hofmeyr ade7e8b19b hnbgw: use proper talloc ctx for vty telnet init
Change-Id: I355c6e5489f24566612528cd679c5cab21eed008
2017-12-20 16:00:11 +00:00
Neels Hofmeyr f898d6bc10 fix 3 compiler warnings in ranap_common.c
ranap_common.c:282 col 45: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 4 has type ‘RANAP_CauseNon_Standard_t {aka const long int}’ [-Wformat=]
ranap_common.c:527 col 15: warning: implicit declaration of function ‘asn1str_to_u16’; did you mean ‘asn_strtol’? [-Wimplicit-function-declaration]
ranap_common.c:546 col 11: warning: unused variable ‘addr’ [-Wunused-variable]

Change-Id: I0b399e78fa7b202a36e5e4be86f338c0ceb9823e
2017-12-20 15:55:14 +00:00
Neels Hofmeyr 2c56f6d454 hnbgw: use proper VTY port number defined in libosmocore (4261)
We used to have hardcoded 2323 from early development, use the proper
libosmocore definition instead.

Depends: Ife52a968a41cb286f640006587877971ff66c1a4 (libosmocore)
Change-Id: Id67d89695ebdc6288f507338c15ad773b8adf6e4
2017-12-20 13:57:54 +00:00
Neels Hofmeyr 69888c86ed iu client: store multiple LAC,RAC per RNC = fix paging for multiple RNC
Introduce a list of LAC+RAC entries for each RNC, hence allow serving more than
one LAC per OsmoHNBGW.

iu_client is used by OsmoMSC and OsmoSGSN, both will be able to page
successfully in a setup with multiple LACs (read: multiple hNodeB) connected to
an OsmoHNBGW.

Ensure that each LAC,RAC is registered with at most one RNC Id. If a LAC,RAC
shows up on a different RNC Id than before, move it over to the new RNC Id.

Future patches should probably add:

* timeouts of RNC Id / LAC,RAC validity, to remove unused entries.
* VTY/CTRL commands to introspect which RNCs and LAC,RACs are listed.
* VTY/CTRL commands to remove RNC Id / LAC,RAC entries.

Change-Id: I189f8e2663353276b1c615d2f78455dafe568045
2017-12-19 03:20:18 +01:00
Neels Hofmeyr accb78000b osmo-hnbgw: don't configure specific local IP address for STP connection
It's not necessary to set a local IP to connect to OsmoSTP with, 'any' is as
good as any.

Related: OS#2663
Change-Id: If5d0a1500de5e2c4b80acf025761d0264a8a51a0
2017-12-04 15:39:17 +01:00
Neels Hofmeyr b593969dd7 cosmetic: osmo-hnbgw: log remote SCCP addresses on startup
Change-Id: I6395dcde35359617cae52ff59d4eb53930097c7d
2017-11-24 04:35:41 +01:00
Neels Hofmeyr 2af648f443 osmo-hnbgw: auto-config local and remote PCs if omitted
The current default point-code for OsmoMSC is 0.23.1 and for OsmoSGSN 0.23.4.
See https://osmocom.org/projects/cellular-infrastructure/wiki/Point_Codes.

Before this patch, osmo-hnbgw requires a cs7 config and explicit point-codes
for MSC and SGSN as well as a local one. Provide default config if none is
provided:

Use above default point-codes if no MSC and/or SGSN address are provided. Also
create a default cs7 instance with local PC 0.23.5.

This allows completely omitting cs7 instance and SCCP addresses from
osmo-hnbgw.cfg in a single-box setup.

Change-Id: I056547f26858d3ad52e66a15f7a4273dcc300e97
2017-11-24 04:35:05 +01:00
Neels Hofmeyr c6ed1c3ae8 test_common: fix compiler warning: include ranap_common.h
test_common.c:85:2: warning: implicit declaration of function ‘ranap_set_log_area’

Change-Id: Ice192e1f7f1bdafe0941160f43e573349aaceb75
2017-11-22 03:11:40 +01:00
Neels Hofmeyr 54df0a1095 ranap_msg_factory: sanitize: memcpy instead of unaligned int copy
The sanitize build complains about writing to a uint32_t that is not 4-byte
aligned. Instead, write the uint32_t by memcpy.

For that, move the common ntohl() to the top and store in a local uint32_t,
memcpy() from that in both code paths.

Change-Id: Iacdd15421f824dd009448a96355b533dff28258b
2017-11-22 03:11:40 +01:00
Neels Hofmeyr d9cb19a8fb tests: sanitize: fix mem leaks, clean after tests
Fix various mem leaks in the testing code.

Add test_common_cleanup() in test_common.c, to free talloc contexts; call in
test-{helpers,hnbap,ranap}.c. Upon talloc ctx cleanup, ensure that they are
actually empty, in order to catch newly introduced mem leaks.

If non-empty, print talloc context reports.

Change-Id: Ic66c005f2a264774e18bb54e58b87bef5944511c
2017-11-22 03:11:40 +01:00
Harald Welte da86fe5ae3 Fix various compiler warnings in hnb-gw code
Since we finally started to use -Wall, the related warnings became
visible.

Change-Id: I516700eab2aa7c3412dd62775c4960aed9d4b682
2017-11-21 11:08:56 +00:00
Harald Welte ffc2093858 sccp_sap_up(): Fix never-hit "default" case in switch
As the default was called "defualt", it became a standard C label
and was never actually performing any default catch-all behavior.

As we didn't use -Wall, gcc never warned us about it so far :/

Change-Id: I9dbad21e75a55ad91b12d3d3ee8bd6dfb5326c3e
2017-11-21 08:25:52 +01:00
Harald Welte ee69470da6 hnbgw.c: Remove dead code creating libsctp linker dependency
Since I8ac15fa2fd25bedb26297177e416976a5389b573 in July 2017 we are
not using sctp_*() functions directly anymore but go via
libosmo-sigtran.  However, some dead code remained in hnbgw.c, which
means that linkage will fail if compiled without any optimization,
i.e. without -O present.

Change-Id: Ifbcb21d43e17bf512bc7b219e590410e06c434ca
2017-11-21 08:25:52 +01:00
Harald Welte 47bba70cec Add "-Wall" to the compile rules of the non-asn1c-generated source code
This is actually default in all other osmocom projects, and it's a
big surprise that it hadn't been enabled for osmo-iuh.  Now we finally
can see that there are e.g. unused static functions in the code.

Change-Id: I8d52b11e3f476ffd77f3ab185b679817cd3b2163
2017-11-21 08:25:52 +01:00
Neels Hofmeyr e90f13e82d api doc: clarify byte order in ranap_new_msg_rab_assign_*
Change-Id: Ib0d2cc538488a995be5278092d3ac105be8aad33
2017-11-20 21:38:50 +00:00
Neels Hofmeyr 8e1c07308c osmo-hnbgw: drop erratic log line on remote STP address
The stp_host is just the *default* that may be overridden by the VTY
configuration. Don't log it as the one that is going to be used.

It's not trivial to print the actual IP address being used, there may be any
number of ASP, theoretically. Hence leave logging up to
osmo_sccp_simple_client_on_ss7_id(), after another hypothetical patch.

Change-Id: Ia438143606913faccc8cdf4fd5f7d376f93e7891
2017-11-20 17:00:20 +01:00
Neels Hofmeyr 4325a2ac4b add --enable-sanitize config option
Change-Id: Id9bb6cc982cd30b86f772207184398af6b899f66
2017-11-17 03:38:07 +01:00
Neels Hofmeyr dfc75df199 src/Makefile.am: drop unused COMMON_LDADD
unused since change-id Ic6a645a93406670d58eb5edf5f2f2e1266168c92
"osmo-hnbgw: Avoid useless linking to libosmogsm and libsctp"

Change-Id: I4241a1d84b54a77a6a6dad809f8ec921f45ba4bc
2017-11-16 10:01:13 +01:00
Neels Hofmeyr b0c650e7b0 vty: skip installing cmds now always installed by default
vty_install_default() and install_default() will soon be deprecated.

Depends: I5021c64a787b63314e0f2f1cba0b8fc7bff4f09b
Change-Id: I61b79f633d36814b53e40f1a92b5847c9ff4fde0
2017-11-08 02:28:31 +00:00
Harald Welte 493366ec7b Link libosmo-ranap against libosmovty
This fixes the following dh-shlibdeps warnings:

Change-Id: I08be684c45c7e95315dba6ccf9892fe6fc7c3f24
dpkg-shlibdeps: warning: symbol install_element used by debian/libosmo-ranap1/usr/lib/x86_64-linux-gnu/libosmo-ranap.so.1.0.0 found in none of the libraries
dpkg-shlibdeps: warning: symbol vty_out used by debian/libosmo-ranap1/usr/lib/x86_64-linux-gnu/libosmo-ranap.so.1.0.0 found in none of the libraries
2017-11-03 14:04:25 +00:00
Harald Welte 7235ea02d7 osmo-hnbgw: Avoid useless linking to libosmogsm and libsctp
This fixes the following dpkg-shlibeps warnings:

Change-Id: Ic6a645a93406670d58eb5edf5f2f2e1266168c92
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/osmo-hnbgw/usr/bin/osmo-hnbgw was not linked against libosmogsm.so.8 (it uses none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/osmo-hnbgw/usr/bin/osmo-hnbgw was not linked against libsctp.so.1 (it uses none of the library's symbols)
2017-11-03 14:04:11 +00:00
Neels Hofmeyr 8a257b6c5a jenkins: use osmo-clean-workspace.sh before and after build
See osmo-ci change I2409b2928b4d7ebbd6c005097d4ad7337307dd93 for rationale.

Depends: I2409b2928b4d7ebbd6c005097d4ad7337307dd93
Change-Id: I7261e006163eda4bee8a4695fbd5bd29307babe6
2017-10-28 15:08:39 +00:00
Harald Welte cc1afdfb7e Tag/Release 0.2.0 + Update LIBVERSION + Debian packaging
Change-Id: I4fe653fdde6acda59485c73cee63bfc5326edf28
2017-10-27 22:35:49 +02:00
Harald Welte 257771ca65 debian: depend on libosmo-sigtran-dev, not libosmo-sccp-dev
We recently fixed package naming / sub-packagign in the libosmo-sccp
git repository, so now we need to depend on the proper package name.

Change-Id: I6e4f8fa96e5f39f988d6993ba3931cb7df70e905
2017-10-27 22:35:49 +02:00
Harald Welte 961674aa09 update dependencies to latest libosmo-* releases
Now that we have tagged releases that include the support needed
in osmo-iuh, let's require them.

Change-Id: I579ba94e8f0f700b598a2346c5020cce3b159f27
2017-10-27 22:35:49 +02:00
Alexander Couzens 5164038993 debian/rules: show testsuite.log when tests are failing
Change-Id: Ice1c9f51225cef335626d5689ffb306395d7e2b6
2017-10-11 07:11:55 +02:00
Harald Welte a3f4e79a9d Makefile.am: Link libosmo-ranap against libosmo-sigtran
In Change-Id I6a3f7ad15be03fb94689b4af6ccfa828c25f45c0 we introduced
the somewhat arguable combination of Iu code in libosmo-ranap.  This Iu
code uses functions provided by libosmo-sigtran.

However, at the time it was overlooked to explicitly link libosmo-ranap
against libosmo-sigtran, which caused linking failures of programs
using libosmo-ranap, such as the unit tests included in this package.

Below example is from building using contrib/jenkins.sh on Ubuntu 17.04:

  CCLD     test-ranap
../../src/.libs/libosmo-ranap.so: undefined reference to `osmo_sccp_local_addr_by_instance'
../../src/.libs/libosmo-ranap.so: undefined reference to `osmo_sccp_tx_unitdata_msg'
../../src/.libs/libosmo-ranap.so: undefined reference to `vty_out'
../../src/.libs/libosmo-ranap.so: undefined reference to `install_element'
../../src/.libs/libosmo-ranap.so: undefined reference to `osmo_sccp_user_bind'
../../src/.libs/libosmo-ranap.so: undefined reference to `osmo_sccp_user_sap_down'
../../src/.libs/libosmo-ranap.so: undefined reference to `osmo_scu_prim_name'
../../src/.libs/libosmo-ranap.so: undefined reference to `osmo_sccp_addr_dump'
collect2: error: ld returned 1 exit status
Makefile:418: recipe for target 'test-ranap' failed

Change-Id: Ibfbcafd31c91dc630d406ec39b3b076bdb1f4c19
2017-10-04 11:49:29 +08:00
Max 5a3df8fa9f Use release helper from libosmocore
See
https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
for details.

Change-Id: I3ccc8202b650268cc9d1721719ba2f205c351a67
Related: OS#1861
2017-08-28 10:58:58 +00:00
Max 3ce7584281 Use value string check from osmo-ci
Change-Id: I9fc4a0ce4ca29f8b76e189d040097f3e63298ba5
2017-08-28 08:34:35 +00:00
Alexander Couzens e03d8a0c97 hnbgw_cn.c: use new signature of osmo_sccp_addr_name(osmo_ss7_instance *ss7, osmo_sccp_addr *addr)
libosmo-sccp introduce the new signature in
564ff618004b ("sccp: make osmo_sccp_addr_name() available")

Change-Id: I5c9abba321ec182d293c33bcffea3462f8717045
2017-08-15 19:33:54 +02:00
Neels Hofmeyr 1aef9a6e1f iu_client: derive local SCCP addr from sccp instance
ranap_iu_init() is passed an sccp instance that has a local primary point code.
Use this primary PC by default as the local address for IuCS and IuPS clients.

Remove the current vty command 'iu local-address point-code PC':
- It is possible that we would like to configure a differing local point code
  at some point; this should then happen via sccp address book entries, not
  parsing PC directly.
- Obtaining the local PC from the SCCP instance makes this command obsolete for
  all setups we're currently aiming at: one local PC per SCCP instance.
- There are vty doc failures in this vty command, which cause osmo-msc and
  osmo-bsc vty test failures; rather than fixing this, let's drop it entirely
  until we see a need for it (and then do it properly with the address book).

Cosmetic: prefix the local static variable with g_* like g_sccp and g_scu and
define it in the same place. No default values are needed anymore, it gets
overwritten in ranap_iu_init().

Change-Id: I3bb7fc1cd5261d214c6ba0cccfe95f637e6db087
2017-08-13 22:46:04 +00:00
Alexander Couzens e485cdd38b add /debian package support
Change-Id: I985805aea0e48fe70619de8b81206098e4e37613
2017-08-13 04:21:13 +02:00
Neels Hofmeyr ecbdc5cb06 make point codes configurable by SCCP address book
In the vty config, use the SCCP address book to configure the local and remote
SCCP addresses. Add VTY commands to set the remote SCCP addresses by name,
derive the ss7 instance from these addresses:

  cs7 instance 1
   point-code 0.23.0
   sccp-address msc
    point-code 0.0.1
   sccp-address sgsn
    point-code 0.0.2
  hnbgw
   iucs
    remote-addr msc
   iups
    remote-addr sgsn

Enforce that both IuCS and IuPS use the same ss7 instance. In the future, we
may add the feature to use two separate instances.

Depends: libosmo-sccp I75c67d289693f1c2a049ac61cf2b2097d6e5687d,
         Ie1aedd7894acd69ddc887cd65a8a0df4b888838c,
         I85b46269dbe7909e52873ace3f720f6292a4516c

Change-Id: I33a7ba11eb7c2d9a5dc74d10fb0cf04bf664477b
2017-08-09 15:30:14 +02:00
Alexander Couzens 5e0292a641 add .gitreview to support git review plugin
Change-Id: If8ebdb687f41911f55679472a0c87f9734264e80
2017-08-08 17:02:18 +00:00
Neels Hofmeyr aae68b2791 move openbsc.git's iu.h, iu.c, iu_vty.c here as iu_client
To help split openbsc.git to separate MSC and SGSN repositories, place the
common Iu interface related code here in libosmo-ranap. Also apply various
improvements while moving (from intermittent code review).

The code depends on libosmo-ranap tightly. One reason to want this separate
from libosmo-ranap could be that it uses libosmo-sigtran, accepting an sccp
instance. However, including in libosmo-ranap is the simplest way to go. The
osmo-iuh build depends on libosmo-sigtran anyway because of OsmoHNBGW, and all
current users of libosmo-ranap also naturally link libosmo-sigtran already.

Apply prefix ranap_iu_ and RANAP_IU_ to allow smooth transition from the
openbsc.git iu_ to the libranap ranap_iu_ implementations.

Prune unneeded #include statements.

Instead of sccp_addr, store an rnc pointer in the ue_conn_ctx. To facilitate,
also:
- Move iu_rnc struct to iu_client.h (as ranap_iu_rnc).
- Instead of sccp_addr, pass rnc to ue_conn_ctx_alloc().
- Pass a local struct new_ue_conn_ctx containing the sccp_addr and conn_id up
  the RANAP handling stack in case of an InitialUE message.
- Separate the InitialUE message handling from cn_ranap_handle_co(), by moving
  to new and separate cn_ranap_handle_co_initial(), so we can still pass a
  looked-up ue_conn_ctx to all other cn_ranap_handle_co() code paths.
- Allocate the ue_conn_ctx only in ranap_handle_co_initial_ue(), not as early
  as before.
Note that we are not actually ever using the rnc pointer now present in
ue_conn_ctx. It could be used for more concise paging, to first page only the
RNC where we last saw the subscriber. So far we page all matching LAC/RACs.

Tweak error logging: use __func__ instead of writing the function names as
string constants.

In iu_client_vty.c:
- Move the asn.1 debug commands from logging over to the iu node. They are not
  specific to the logging target. They could qualify for an entirely separate
  'asn1' root node, but for simplicity place under 'iu'.
- Add the 'asn1' commands to ranap_iu_vty_config_write(), so far missing.
- remove the legacy "net." from a VTY error message, it is not known which name
  the parent node of 'iu' has.

Depends: libosmo-sccp I85b46269dbe7909e52873ace3f720f6292a4516c,
	 libosmo-sccp Ie1aedd7894acd69ddc887cd65a8a0df4b888838c
Change-Id: I6a3f7ad15be03fb94689b4af6ccfa828c25f45c0
2017-07-31 13:20:00 +02:00
Neels Hofmeyr 13850b1e5d ranap_common.h: fix include of asn1c/asn_application.h
Change-Id: I152377813cdcfef73e2c4309b0f8c97807d7d4f8
2017-07-31 13:20:00 +02:00
Neels Hofmeyr a3bcd6d1e7 cn unitdata: verify correct remote addr
When receiving unitdata from the CN, verify that it is indeed coming from the
remote address that matches our CS/PS domain settings.

This patch came from an earlier stage where the is_ps out-parameter was
actually used. While it currently isn't, it doesn't hurt to leave it there.

Change-Id: I7190b4c3a05e8bac0eeffa1eab18c9e47429cb17
2017-07-27 15:49:25 +00:00
Neels Hofmeyr 3b42658836 set RANAP msgb headroom to 512 (times two)
With a headroom of 256, the SGSN crashes with:

  msgb(0x6e3b90): Not enough headroom msgb_push (256 < 264)

I'm not perfectly sure what amount of headroom is strictly necessary. The only
reason to pick 512 is that it is twice the amount of 256.

Change-Id: I9a193846902a0477af0873f78283c4f2bedaf5dd
2017-07-06 13:53:42 +00:00
Neels Hofmeyr 54e6e1fc30 rua_to_scu(): add debug log for calling/called addr
This might help in resolving whether we are conforming to SCCP specs regarding
our calling/called address choices.

Change-Id: Ie91953f7e9033419257d556d3a9f14e125f5c60d
2017-07-05 13:04:16 +02:00
Neels Hofmeyr c3614318af rua_to_scu(), rua_rx_init_connect(): add debug logging
In rua_to_scu(), log domain indicator and remote address.

In rua_rx_init_connect(), add domain indicator to log.

Change-Id: Ibe510bf0aca5eadbc0ce6031d3026e770de6559f
2017-07-05 13:04:16 +02:00
Neels Hofmeyr cb24631650 sccp_sap_up(): guard against NULL pointers
Change-Id: Icd64b92b00461cace5c476c8bcf69eec3fdbbdd3
2017-07-05 13:04:16 +02:00
Neels Hofmeyr 0f88c11009 migrate osmo-hnbgw to libosmo-sigtran's SCCP/M3UA
libosmo-sigtran now has a "proper" SCCP/M3UA stack, so we can make our hnb-gw
3GPP compliant by switching from the old SUA code to the new universal SCCP
user API with support for (currently) M3UA and SUA.

Main changes:

Use one cn_link to STP: We will connect to the core network using an (Osmo)STP
instance that routes to MSC and SGSN, so we want one SCCP link instead of two.
The only difference between IuCS and IuPS is a different remote osmo_sccp_addr.

This has various effects through the messaging code; the patch is a bit larger
than I would like, but it is hard to separate out truly independent smaller
changes.

CS or PS domain was previously flagged in the separate cn_link, as ctx pointer
for two separate sccp_sap_up()s. Now there's just one such ctx, so determine
is_ps from the RANAP Domain Indicator, or from the conn's hnbgw_context_map:

- Add is_ps to context_map_alloc_by_hnb().
- To find a matching context, the RUA ID alone is no longer sufficient, also
  match is_ps (possible optimization todo: separate lists).

We would send separate CS or PS Reset messages based on the cn_link, instead
send both CS and PS Reset at the same time for the single cn_link. This could
be adjusted to detect presence of MSC or SGSN instead.

Pending: adjust the VTY config to reflect that there is only one remote
address. Place a TODO comment for that.

Smaller changes:

rua_to_scu(): populate called and calling addresses for N_CONNECT and
N_UNITDATA.

Remove DSUA.

Don't build dummy_cn, which is still implemented on SUA. Mark todo to maybe
re-include it based on M3UA later.

In hnbgw_cnlink, place sccp related items in a separate sub-struct.

Do not keep an llist of cn_links, just have the one. Remove iteration and list
management.

Change jenkins script to build libosmo-sccp master.

Patch-by: hwelte, nhofmeyr
Change-Id: I8ac15fa2fd25bedb26297177e416976a5389b573
2017-07-05 13:04:15 +02:00
Neels Hofmeyr 12ed975996 cosmetic: move callers' common switch() into rua_to_scu()
Change-Id: If6274e3738dc04646d0dc18332c12237e6910d18
2017-07-05 13:03:47 +02:00
Neels Hofmeyr e305f4d506 jenkins: build from libosmo-netif master
After merge of the sysmocom/sctp branch to master, it was forgotten to change
this build script to move along to master.

Change-Id: I473d1361b99ff0ff8adba9326b0e2dfbc48a3aef
2017-07-05 12:53:50 +02:00
1830 changed files with 31418 additions and 16421 deletions

32
.gitignore vendored
View File

@ -21,23 +21,35 @@ missing
Makefile.in
Makefile
Makefile.am.sample
src/tests/atconfig
src/tests/dummy-cn
src/tests/hnb-test
src/tests/package.m4
src/tests/test-helpers
src/tests/test-hnbap
src/tests/test-ranap
src/tests/testsuite
src/tests/testsuite.dir
src/tests/testsuite.log
tests/atconfig
tests/dummy-cn
tests/hnb-test
tests/package.m4
tests/test-helpers
tests/test-hnbap
tests/test-ranap
tests/testsuite
tests/testsuite.dir
tests/testsuite.log
src/osmo-hnbgw
tags
libosmo-hnbap.pc
libosmo-ranap.pc
libosmo-rua.pc
libosmo-sabp.pc
m4
gen_hnbap.stamp
gen_rua.stamp
gen_ranap.stamp
gen_sabp.stamp
include/osmocom/hnbap/hnbap_ies_defs.h
include/osmocom/rua/rua_ies_defs.h
include/osmocom/ranap/ranap_ies_defs.h
include/osmocom/sabp/sabp_ies_defs.h
doc/manuals/build
doc/manuals/common
doc/manuals/generated
doc/manuals/*.pdf
contrib/osmo-iuh.spec

3
.gitreview Normal file
View File

@ -0,0 +1,3 @@
[gerrit]
host=gerrit.osmocom.org
project=osmo-iuh

View File

@ -1,11 +1,19 @@
AUTOMAKE_OPTIONS = foreign dist-bzip2
SUBDIRS = src include doc
SUBDIRS = src include doc tests
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libosmo-ranap.pc
pkgconfig_DATA = libosmo-hnbap.pc libosmo-ranap.pc libosmo-rua.pc libosmo-sabp.pc
EXTRA_DIST = asn1 .version README.md
EXTRA_DIST = \
.version \
README.md \
asn1 \
debian \
git-version-gen \
$(NULL)
@RELMAKE@
BUILT_SOURCES = $(top_srcdir)/.version
$(top_srcdir)/.version:

View File

@ -1,10 +1,9 @@
osmo-iuh - Osmocom Iuh and HNB-GW implementation
osmo-iuh - Osmocom Iuh implementation
================================================
This repository contains a C-language implementation of the 3GPP Iuh
interface, together with a HNB-GW (Home NodeB Gateway). You can use it
to interface Iuh-speaking femtocells/small cells to Iu-speaking MSCs and
SGSNs.
interface. You can use it to interface Iuh-speaking femtocells/small cells to
Iu-speaking MSCs and SGSNs.
It is part of the [Osmocom](https://osmocom.org/) Open Source Mobile
Communications project.
@ -20,9 +19,9 @@ GIT Repository
You can clone from the official libosmocore.git repository using
git clone git://git.osmocom.org/osmo-iuh.git
git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-iuh
There is a cgit interface at http://git.osmocom.org/osmo-iuh/
There is a web interface at <https://gitea.osmocom.org/cellular-infrastructure/osmo-iuh>
Documentation
-------------
@ -65,11 +64,11 @@ It is generally best to check the wiki for the most up-to-date build
instructions.
As external library dependencies, you will need
* libosmocore from git://git.osmocom.org/libosmocore
* libasn1c from git://git.osmocom.org/libasn1c
* libosmocore from https://gitea.osmocom.org/osmocom/libosmocore
* libasn1c from https://gitea.osmocom.org/cellular-infrastructure/libasn1c
* libsctp-dev (this is the package name in Debian)
* libosmo-netif from git://git.osmocom.org/libosmo-netif (sysmocom/sctp branch)
* libosmo-sccp from git://git.osmocom.org/libosmo-sccp (sysmocom/iu branch)
* libosmo-netif from https://gitea.osmocom.org/osmocom/libosmo-netif
* libosmo-sccp from https://gitea.osmocom.org/osmocom/libosmo-sccp
To bootstrap the build, in the root directory, run:
@ -81,23 +80,13 @@ After that, run the usual
make
[sudo] make install
Using
-----
Note: osmo-iuh just left very active development (December 2015, January
2016), so your mileage may vary.
If you run the 'hnbgw' executable, it will open a listening SCTP socket
and wait for incoming Iuh connections. It will accept any
HNB-REGISTER-REQUEST, and it will establish Iu (over SUA) connections
towards the MSC and SGSN.
Regenerating C code from ASN.1 source
-------------------------------------
In order to re-generate the C source code from the ASN.1 source,
you will need a modified asn1c which has the following features:
* APER support (the patch from Eurecom, or its forward-ported version
from the aper branch of git://git.osmocom.org/asn1c)
* support for prefixing the generated types (aper-prefix branch of
git://git.osmocom.org/asn1c)
from the aper branch of https://gitea.osmocom.org/osmocom/asn1c)
* Support for prefixing the generated types (aper-prefix branch of
https://gitea.osmocom.org/osmocom/asn1c)
* Then in osmo-iuh.git: make -C src/ regen

9
TODO-RELEASE Normal file
View File

@ -0,0 +1,9 @@
# When cleaning up this file: bump API version in corresponding Makefile.am and rename corresponding debian/lib*.install
# according to https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html#Updating-version-info
# In short:
# LIBVERSION=c:r:a
# If the library source code has changed at all since the last update, then increment revision: c:r + 1:a.
# If any interfaces have been added, removed, or changed since the last update: c + 1:0:0.
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public release: c:r:0.
#library what description / commit summary line

View File

@ -22,7 +22,7 @@ foreach my $k (keys %h) {
next;
}
printf("%s ::= INTEGER {\n", $k);
foreach my $r (sort { $a <=> $b } keys $h{$k}) {
foreach my $r (sort { $a <=> $b } keys %{$h{$k}}) {
printf("\t%s(%d),\n", $h{$k}{$r}, $r);
}
printf("}\n");

View File

@ -127,7 +127,8 @@ CriticalityDiagnostics ::= SEQUENCE {
...
}
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-List-Value
CriticalityDiagnostics-IE-List-Value ::=
SEQUENCE {
iECriticality Criticality,
iE-ID ProtocolIE-ID,

View File

@ -265,7 +265,8 @@ Ass-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTr
Ass-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
AuthorisedPLMNs ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF
AuthorisedPLMNs ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF AuthorisedPLMNs-Value
AuthorisedPLMNs-Value ::=
SEQUENCE {
pLMNidentity PLMNidentity,
authorisedSNAsList AuthorisedSNAs OPTIONAL,
@ -479,7 +480,8 @@ CriticalityDiagnostics ::= SEQUENCE {
...
}
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-List-Value
CriticalityDiagnostics-IE-List-Value ::=
SEQUENCE {
iECriticality Criticality,
iE-ID ProtocolIE-ID,
@ -488,7 +490,8 @@ CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
...
}
MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF MessageStructure-Value
MessageStructure-Value ::=
SEQUENCE {
iE-ID ProtocolIE-ID,
repetitionNumber RepetitionNumber1 OPTIONAL,
@ -753,7 +756,8 @@ GA-PointWithUnCertaintyEllipse ::= SEQUENCE {
...
}
GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF GA-Polygon-Value
GA-Polygon-Value ::=
SEQUENCE {
geographicalCoordinates GeographicalCoordinates,
iE-Extensions IE-Extensions OPTIONAL,
@ -923,7 +927,8 @@ KeyStatus ::= ENUMERATED {
}
-- L
LA-LIST ::= SEQUENCE (SIZE (1..maxNrOfLAs)) OF
LA-LIST ::= SEQUENCE (SIZE (1..maxNrOfLAs)) OF LA-LIST-Value
LA-LIST-Value ::=
SEQUENCE {
lAC LAC,
listOF-SNAs ListOF-SNAs,
@ -1336,7 +1341,8 @@ LoggingDuration ::= ENUMERATED {
PLMNidentity ::= OCTET STRING (SIZE (3))
PLMNs-in-shared-network ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF
PLMNs-in-shared-network ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF PLMNs-in-shared-network-Value
PLMNs-in-shared-network-Value ::=
SEQUENCE {
pLMNidentity PLMNidentity,
lA-LIST LA-LIST,
@ -1414,7 +1420,8 @@ RABased ::= SEQUENCE {
RAI-List ::= SEQUENCE (SIZE (1..maxNrOfRAIs)) OF
RAI
RABDataVolumeReport ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
RABDataVolumeReport ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF RABDataVolumeReport-Value
RABDataVolumeReport-Value ::=
SEQUENCE {
dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
dataVolumeReference DataVolumeReference OPTIONAL,
@ -1456,7 +1463,8 @@ RAB-Parameters ::= SEQUENCE {
...
}
RABParametersList ::= SEQUENCE (SIZE (1.. maxNrOfRABs)) OF SEQUENCE {
RABParametersList ::= SEQUENCE (SIZE (1.. maxNrOfRABs)) OF RABParametersList-Value
RABParametersList-Value ::= SEQUENCE {
rab-Id RAB-ID,
cn-domain CN-DomainIndicator,
rabDataVolumeReport RABDataVolumeReport OPTIONAL,
@ -1848,7 +1856,8 @@ RSRQ-Type ::= SEQUENCE {
RSRQ-Extension ::= INTEGER (-30..46, ...)
EUTRANFrequencies ::= SEQUENCE (SIZE (1..maxNrOfEUTRAFreqs)) OF SEQUENCE {
EUTRANFrequencies ::= SEQUENCE (SIZE (1..maxNrOfEUTRAFreqs)) OF EUTRANFrequencies-Value
EUTRANFrequencies-Value ::= SEQUENCE {
earfcn INTEGER (0..65535),
measBand MeasBand OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL}

View File

@ -780,7 +780,8 @@ CNMBMSLinkingInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
...
}
JoinedMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
JoinedMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF JoinedMBMSBearerService-IEs-Value
JoinedMBMSBearerService-IEs-Value ::=
SEQUENCE {
tMGI TMGI,
mBMS-PTP-RAB-ID MBMS-PTP-RAB-ID,
@ -2301,7 +2302,8 @@ RAB-ReleasedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
...
}
DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF DataVolumeList-Value
DataVolumeList-Value ::=
SEQUENCE {
dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
dataVolumeReference DataVolumeReference OPTIONAL,
@ -3210,7 +3212,8 @@ MBMSUELinkingRequestIEs RANAP-PROTOCOL-IES ::= {
...
}
LeftMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
LeftMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF LeftMBMSBearerService-IEs-Value
LeftMBMSBearerService-IEs-Value ::=
SEQUENCE {
tMGI TMGI,
iE-Extensions ProtocolExtensionContainer { {LeftMBMSBearerService-ExtIEs} } OPTIONAL,
@ -3243,7 +3246,8 @@ MBMSUELinkingResponseIEs RANAP-PROTOCOL-IES ::= {
...
}
UnsuccessfulLinking-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
UnsuccessfulLinking-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF UnsuccessfulLinking-IEs-Value
UnsuccessfulLinking-IEs-Value ::=
SEQUENCE {
tMGI TMGI,
cause Cause,

View File

@ -735,7 +735,8 @@ CNMBMSLinkingInformation ::= SEQUENCE {
...
}
JoinedMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
JoinedMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF JoinedMBMSBearerService-IEs-Value
JoinedMBMSBearerService-IEs-Value ::=
SEQUENCE {
tMGI TMGI,
mBMS-PTP-RAB-ID MBMS-PTP-RAB-ID,
@ -885,7 +886,8 @@ RAB-ReleasedItem ::= SEQUENCE {
...
}
DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF DataVolumeList-Value
DataVolumeList-Value ::=
SEQUENCE {
dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
dataVolumeReference DataVolumeReference OPTIONAL,
@ -1004,14 +1006,16 @@ MBMSSynchronisationInformation ::= SEQUENCE {
...
}
LeftMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
LeftMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF LeftMBMSBearerService-IEs-Value
LeftMBMSBearerService-IEs-Value ::=
SEQUENCE {
tMGI TMGI,
iE-Extensions ProtocolExtensionContainer OPTIONAL,
...
}
UnsuccessfulLinking-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
UnsuccessfulLinking-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF UnsuccessfulLinking-IEs-Value
UnsuccessfulLinking-IEs-Value ::=
SEQUENCE {
tMGI TMGI,
cause Cause,

View File

@ -165,7 +165,8 @@ CriticalityDiagnostics ::= SEQUENCE {
...
}
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-List-Value
CriticalityDiagnostics-IE-List-Value ::=
SEQUENCE {
iECriticality Criticality,
iE-ID ProtocolIE-ID,

View File

@ -12,10 +12,6 @@
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".

View File

@ -12,10 +12,6 @@
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".

View File

@ -12,10 +12,6 @@
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".

View File

@ -0,0 +1,49 @@
--
-- Common definitions
--
-- **************************************************************
SABP-CommonDataTypes {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp (3) version1 (1) sabp-CommonDataTypes (3) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
Criticality ::= ENUMERATED { reject, ignore, notify }
Presence ::= ENUMERATED { optional, conditional, mandatory }
ProcedureCode ::= INTEGER {
id-Write-Replace(0),
id-Kill(1),
id-Load-Status-Enquiry(2),
id-Message-Status-Query(3),
id-Restart-Indication(4),
id-Reset(5),
id-Failure-Indication(6),
id-Error-Indication(7)
} (0..255)
ProtocolExtensionID ::= INTEGER (0..65535)
ProtocolIE-ID ::= INTEGER {
id-Broadcast-Message-Content(0),
id-Category(1),
id-Cause(2),
id-Data-Coding-Scheme(4),
id-Failure-List(5),
id-Message-Identifier(6),
id-New-Serial-Number(7),
id-Number-of-Broadcasts-Completed-List(8),
id-Number-of-Broadcasts-Requested(9),
id-Old-Serial-Number(10),
id-Radio-Resource-Loading-List(11),
id-Recovery-Indication(12),
id-Repetition-Period(13),
id-Serial-Number(14),
id-Service-Areas-List(15),
id-MessageStructure(16),
id-TypeOfError(17),
id-Paging-ETWS-Indicator(18),
id-Warning-Type(19),
id-WarningSecurityInfo(20),
id-Broadcast-Message-Content-Validity-Indicator(21)
} (0..65535)
TriggeringMessage ::= ENUMERATED {initiating-message, successful-outcome, unsuccessful-outcome, outcome}
END

View File

@ -0,0 +1,73 @@
-- **************************************************************
--
-- Constant definitions
--
-- **************************************************************
SABP-Constants {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp (3) version1 (1) sabp-Constants (4) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ProcedureCode,
ProtocolIE-ID
FROM SABP-CommonDataTypes;
-- **************************************************************
--
-- Elementary Procedures
--
-- **************************************************************
id-Write-Replace ProcedureCode ::= 0
id-Kill ProcedureCode ::= 1
id-Load-Status-Enquiry ProcedureCode ::= 2
id-Message-Status-Query ProcedureCode ::= 3
id-Restart-Indication ProcedureCode ::= 4
id-Reset ProcedureCode ::= 5
id-Failure-Indication ProcedureCode ::= 6
id-Error-Indication ProcedureCode ::= 7
-- **************************************************************
--
-- IEs
--
-- **************************************************************
id-Broadcast-Message-Content ProtocolIE-ID ::= 0
id-Category ProtocolIE-ID ::= 1
id-Cause ProtocolIE-ID ::= 2
id-Criticality-Diagnostics ProtocolIE-ID ::=3
id-Data-Coding-Scheme ProtocolIE-ID ::= 4
id-Failure-List ProtocolIE-ID ::= 5
id-Message-Identifier ProtocolIE-ID ::= 6
id-New-Serial-Number ProtocolIE-ID ::= 7
id-Number-of-Broadcasts-Completed-List ProtocolIE-ID ::= 8
id-Number-of-Broadcasts-Requested ProtocolIE-ID ::= 9
id-Old-Serial-Number ProtocolIE-ID ::= 10
id-Radio-Resource-Loading-List ProtocolIE-ID ::= 11
id-Recovery-Indication ProtocolIE-ID ::= 12
id-Repetition-Period ProtocolIE-ID ::= 13
id-Serial-Number ProtocolIE-ID ::= 14
id-Service-Areas-List ProtocolIE-ID ::= 15
id-MessageStructure ProtocolIE-ID ::= 16
id-TypeOfError ProtocolIE-ID ::= 17
id-Paging-ETWS-Indicator ProtocolIE-ID ::= 18
id-Warning-Type ProtocolIE-ID ::= 19
id-WarningSecurityInfo ProtocolIE-ID ::= 20
id-Broadcast-Message-Content-Validity-Indicator ProtocolIE-ID ::= 21
-- **************************************************************
--
-- Extension constants
--
-- **************************************************************
-- **************************************************************
--
-- Lists
--
-- **************************************************************
maxNrOfErrors INTEGER ::= 256
maxnoofSAI INTEGER ::= 65535
maxProtocolExtensions INTEGER ::= 65535
maxProtocolIEs INTEGER ::= 65535
maxNrOfLevels INTEGER ::= 256
END

View File

@ -0,0 +1,94 @@
-- **************************************************************
--
-- Container definitions
--
-- **************************************************************
SABP-Containers {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp (3) version1 (1) sabp-Containers (5) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
Criticality,
Presence,
ProtocolExtensionID,
ProtocolIE-ID
FROM SABP-CommonDataTypes
maxProtocolExtensions,
maxProtocolIEs
FROM SABP-Constants;
-- **************************************************************
--
-- Class Definition for Protocol IEs
--
-- **************************************************************
SABP-PROTOCOL-IES ::= CLASS {
&id ProtocolIE-ID UNIQUE,
&criticality Criticality DEFAULT ignore,
&Value,
&presence Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
TYPE &Value
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Protocol Extensions
--
-- **************************************************************
SABP-PROTOCOL-EXTENSION ::= CLASS {
&id ProtocolExtensionID UNIQUE,
&criticality Criticality DEFAULT ignore,
&Extension,
&presence Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
EXTENSION &Extension
PRESENCE &presence
}
-- **************************************************************
--
-- Container for Protocol IEs
--
-- **************************************************************
ProtocolIE-Container {SABP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Field {SABP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
id SABP-PROTOCOL-IES.&id ({IEsSetParam}),
criticality SABP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
value SABP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container Lists for Protocol IE Containers
--
-- **************************************************************
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SABP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (lowerBound..upperBound)) OF
ProtocolIE-Container {{IEsSetParam}}
-- **************************************************************
--
-- Container for Protocol Extensions
--
-- **************************************************************
ProtocolExtensionContainer {SABP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
ProtocolExtensionField {{ExtensionSetParam}}
ProtocolExtensionField {SABP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
id SABP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
criticality SABP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
extensionValue SABP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
}
END

208
asn1/sabp/SABP-IEs.asn Normal file
View File

@ -0,0 +1,208 @@
-- **************************************************************
--
-- Information Element Definitions
--
-- **************************************************************
SABP-IEs {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp (3) version1 (1) sabp-IEs (2) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
maxNrOfErrors,
maxnoofSAI,
maxNrOfLevels,
maxProtocolExtensions,
id-MessageStructure,
id-TypeOfError
FROM SABP-Constants
Criticality,
ProcedureCode,
TriggeringMessage,
ProtocolIE-ID
FROM SABP-CommonDataTypes
IE
FROM SABP-PDU;
IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE
-- A
Available-Bandwidth ::= INTEGER (0..20480)
-- bits/sec
-- B
Broadcast-Message-Content ::= BIT STRING (SIZE (1..9968))-- This IE is sent from the CN to the RNC containing user information i.e.
-- the message.
Broadcast-Message-Content-Validity-Indicator ::= ENUMERATED {
broadcast-Message-Content-not-valid,
...
}
-- C
Category ::= ENUMERATED {
high-priority,
background-priority,
normal-priority,
default-priority,
...
}
Cause ::= INTEGER {
parameter-not-recognised (0),
parameter-value-invalid (1),
valid-CN-message-not-identified (2),
service-area-identity-not-valid (3),
unrecognised-message (4),
missing-mandatory-element (5),
rNC-capacity-exceeded (6),
rNC-memory-exceeded (7),
service-area-broadcast-not-supported (8),
service-area-broadcast-not-operational (9),
message-reference-already-used (10),
unspecifed-error (11),
transfer-syntax-error (12),
semantic-error (13),
message-not-compatible-with-receiver-state (14),
abstract-syntax-error-reject (15),
abstract-syntax-error-ignore-and-notify (16),
abstract-syntax-error-falsely-constructed-message (17)
} (0..255)
Criticality-Diagnostics ::= SEQUENCE {
procedureCode ProcedureCode OPTIONAL,
triggeringMessage TriggeringMessage OPTIONAL,
procedureCriticality Criticality OPTIONAL,
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CriticalityDiagnostics-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
...
}
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-List-Value
CriticalityDiagnostics-IE-List-Value ::=
SEQUENCE {
iECriticality Criticality,
iE-ID ProtocolIE-ID,
repetitionNumber RepetitionNumber0 OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CriticalityDiagnostics-IE-List-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
-- { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional }|
-- { ID id-TypeOfError CRITICALITY ignore EXTENSION TypeOfError PRESENCE mandatory },
...
}
MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF MessageStructure-Value
MessageStructure-Value ::=
SEQUENCE {
iE-ID ProtocolIE-ID,
repetitionNumber RepetitionNumber1 OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
MessageStructure-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
...
}
-- D
Data-Coding-Scheme ::= BIT STRING (SIZE (8))
-- E
-- F
Failure-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF Failure-List-Item
Failure-List-Item ::= SEQUENCE {
service-area-identifier Service-Area-Identifier,
cause Cause,
iE-Extensions IE-Extensions OPTIONAL,
...
}
FailureListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
...
}
-- G
-- H
-- I
-- J
-- K
-- L
-- M
Message-Identifier ::= BIT STRING (SIZE (16))
-- N
New-Serial-Number ::= Serial-Number
Number-of-Broadcasts-Completed-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF
Number-of-Broadcasts-Completed-List-Item
Number-of-Broadcasts-Completed-List-Item ::= SEQUENCE {
service-area-identifier Service-Area-Identifier,
number-of-broadcasts-completed INTEGER (0..65535),
number-of-broadcasts-completed-info Number-Of-Broadcasts-Completed-Info OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
NoOfBroadcastsCompletedListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
...
}
Number-Of-Broadcasts-Completed-Info ::= ENUMERATED {
overflow,
unknown,
...
}
Number-of-Broadcasts-Requested ::= INTEGER {
broadcast-indefinitely (0)
} (0..65535)
-- O
Old-Serial-Number ::= Serial-Number
-- P
Paging-ETWS-Indicator ::= ENUMERATED {
paging,
...
}
-- Q
-- R
Radio-Resource-Loading-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF
Radio-Resource-Loading-List-Item
Radio-Resource-Loading-List-Item ::= SEQUENCE {
service-area-identifier Service-Area-Identifier,
available-bandwidth Available-Bandwidth,
iE-Extensions IE-Extensions OPTIONAL,
...
}
RadioResourceLoadingListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
...
}
Recovery-Indication ::= ENUMERATED {
data-lost,
data-available
}
RepetitionNumber0 ::= INTEGER(0..255)
RepetitionNumber1 ::= INTEGER(1..256)
Repetition-Period ::= INTEGER (1..4096)
-- Each unit represents a repetition of one second to a maximum of
-- once per 4096 seconds (~1 hour).
-- S
Serial-Number ::= BIT STRING (SIZE (16))
Service-Area-Identifier ::= SEQUENCE {
pLMNidentity OCTET STRING (SIZE (3))
-- Digits 0 to 9, two digits per octet. --
-- Each octet encoded 0000 to 1001. --
-- 1111 used as filler --
-- Bit 4 to 1 of octet n encoding digit 2n-1. --
-- Bit 8 to 5 of octet n encoding digit 2n. --
-- The PLMN identity consists of 3 digits from MCC --
-- followed by either a filler plus 2 digits --
-- from MNC (in case of 2 digit MNC) or 3 digits --
-- from MNC (in case of 3 digit MNC). -- ,
lac OCTET STRING (SIZE (2))
-- 0000 and FFFE not allowed -- ,
sac OCTET STRING (SIZE (2))
}
-- **TODO** The IE type for these parameters is not known as yet
Service-Areas-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF Service-Area-Identifier
-- T
TypeOfError ::= ENUMERATED {
not-understood,
missing,
...
}
-- U
-- V
-- W
WarningSecurityInfo ::= OCTET STRING (SIZE (50))
Warning-Type ::= OCTET STRING (SIZE(2))
-- X
-- Y
END

View File

@ -0,0 +1,447 @@
-- **************************************************************
--
-- PDU definitions for SABP.
--
-- **************************************************************
SABP-PDU-Contents {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp (3) version1 (1) sabp-PDU-Contents (1) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
Broadcast-Message-Content,
Category,
Cause,
Criticality-Diagnostics,
Data-Coding-Scheme,
Failure-List,
Message-Identifier,
New-Serial-Number,
Number-of-Broadcasts-Completed-List,
Number-of-Broadcasts-Requested,
Old-Serial-Number,
Paging-ETWS-Indicator,
Radio-Resource-Loading-List,
Recovery-Indication,
Repetition-Period,
Serial-Number,
Service-Areas-List,
WarningSecurityInfo,
Warning-Type,
Broadcast-Message-Content-Validity-Indicator
FROM SABP-IEs
ProtocolExtensionContainer{},
ProtocolIE-Container{},
SABP-PROTOCOL-EXTENSION,
SABP-PROTOCOL-IES
FROM SABP-Containers
id-Broadcast-Message-Content,
id-Category,
id-Criticality-Diagnostics,
id-Cause,
id-Data-Coding-Scheme,
id-Failure-List,
id-Message-Identifier,
id-New-Serial-Number,
id-Number-of-Broadcasts-Completed-List,
id-Number-of-Broadcasts-Requested,
id-Old-Serial-Number,
id-Paging-ETWS-Indicator,
id-Radio-Resource-Loading-List,
id-Recovery-Indication,
id-Repetition-Period,
id-Serial-Number,
id-Service-Areas-List,
id-WarningSecurityInfo,
id-Warning-Type,
id-Broadcast-Message-Content-Validity-Indicator
FROM SABP-Constants;
-- **************************************************************
--
-- Write-Replace
--
-- **************************************************************
Write-Replace ::= SEQUENCE {
protocolIEs ProtocolIE-Container { {Write-Replace-IEs} },
protocolExtensions ProtocolExtensionContainer { {Write-Replace-Extensions} } OPTIONAL,
...
}
Write-Replace-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
{ ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |
{ ID id-Old-Serial-Number CRITICALITY ignore TYPE Old-Serial-Number PRESENCE optional } |
{ ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } |
{ ID id-Category CRITICALITY ignore TYPE Category PRESENCE optional } |
{ ID id-Repetition-Period CRITICALITY reject TYPE Repetition-Period PRESENCE mandatory } |
{ ID id-Number-of-Broadcasts-Requested
CRITICALITY reject TYPE Number-of-Broadcasts-Requested PRESENCE mandatory } |
{ ID id-Data-Coding-Scheme CRITICALITY reject TYPE Data-Coding-Scheme PRESENCE mandatory } |
{ ID id-Broadcast-Message-Content
CRITICALITY reject TYPE Broadcast-Message-Content PRESENCE mandatory },
...
}
Write-Replace-Extensions SABP-PROTOCOL-EXTENSION ::= {
{ ID id-WarningSecurityInfo CRITICALITY ignore EXTENSION WarningSecurityInfo PRESENCE optional } |
{ ID id-Paging-ETWS-Indicator CRITICALITY ignore EXTENSION Paging-ETWS-Indicator PRESENCE optional } |
{ ID id-Warning-Type CRITICALITY ignore EXTENSION Warning-Type PRESENCE optional } |
{ ID id-Broadcast-Message-Content-Validity-Indicator CRITICALITY ignore EXTENSION Broadcast-Message-Content-Validity-Indicator PRESENCE
optional },
...
}
-- **************************************************************
--
-- Write-Replace-Complete
--
-- **************************************************************
Write-Replace-Complete ::= SEQUENCE {
protocolIEs ProtocolIE-Container { {Write-Replace-Complete-IEs} },
protocolExtensions ProtocolExtensionContainer { {Write-Replace-Complete-Extensions} } OPTIONAL,
...
}
Write-Replace-Complete-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
{ ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |
{ ID id-Number-of-Broadcasts-Completed-List
CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List
PRESENCE mandatory }|
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Write-Replace-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Write-Replace-Failure
--
-- **************************************************************
Write-Replace-Failure ::= SEQUENCE {
protocolIEs ProtocolIE-Container { {Write-Replace-Failure-IEs} },
protocolExtensions ProtocolExtensionContainer { {Write-Replace-Failure-Extensions} } OPTIONAL,
...
}
Write-Replace-Failure-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
{ ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |
{ ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
{ ID id-Number-of-Broadcasts-Completed-List
CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List
PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Write-Replace-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Kill
--
-- **************************************************************
Kill ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Kill-IEs}},
protocolExtensions ProtocolExtensionContainer {{Kill-Extensions}} OPTIONAL,
...
}
Kill-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
{ ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
{ ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
...
}
Kill-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Kill-Complete
--
-- **************************************************************
Kill-Complete ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Kill-Complete-IEs}},
protocolExtensions ProtocolExtensionContainer {{Kill-Complete-Extensions}} OPTIONAL,
...
}
Kill-Complete-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
{ ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
{ ID id-Number-of-Broadcasts-Completed-List
CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List
PRESENCE mandatory }|
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Kill-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Kill-Failure
--
-- **************************************************************
Kill-Failure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Kill-Failure-IEs}},
protocolExtensions ProtocolExtensionContainer {{Kill-Failure-Extensions}} OPTIONAL,
...
}
Kill-Failure-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
{ ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
{ ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
{ ID id-Number-of-Broadcasts-Completed-List
CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List
PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Kill-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Load-Query
--
-- **************************************************************
Load-Query ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Load-Query-IEs}},
protocolExtensions ProtocolExtensionContainer {{Load-Query-Extensions}} OPTIONAL,
...
}
Load-Query-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
...
}
Load-Query-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Load-Query-Complete
--
-- **************************************************************
Load-Query-Complete ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Load-Query-Complete-IEs}},
protocolExtensions ProtocolExtensionContainer {{Load-Query-Complete-Extensions}} OPTIONAL,
...
}
Load-Query-Complete-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Radio-Resource-Loading-List
CRITICALITY reject TYPE Radio-Resource-Loading-List
PRESENCE mandatory } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Load-Query-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Load-Query-Failure
--
-- **************************************************************
Load-Query-Failure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Load-Query-Failure-IEs}},
protocolExtensions ProtocolExtensionContainer {{Load-Query-Failure-Extensions}} OPTIONAL,
...
}
Load-Query-Failure-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
{ ID id-Radio-Resource-Loading-List
CRITICALITY ignore TYPE Radio-Resource-Loading-List
PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Load-Query-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Message-Status-Query
--
-- **************************************************************
Message-Status-Query ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Message-Status-Query-IEs}},
protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Extensions}} OPTIONAL,
...
}
Message-Status-Query-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
{ ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
{ ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
...
}
Message-Status-Query-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Message-Status-Query-Complete
--
-- **************************************************************
Message-Status-Query-Complete ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Message-Status-Query-Complete-IEs}},
protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Complete-Extensions}} OPTIONAL,
...
}
Message-Status-Query-Complete-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
{ ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
{ ID id-Number-of-Broadcasts-Completed-List
CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List
PRESENCE mandatory } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Message-Status-Query-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Message-Status-Query-Failure
--
-- **************************************************************
Message-Status-Query-Failure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Message-Status-Query-Failure-IEs}},
protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Failure-Extensions}} OPTIONAL,
...
}
Message-Status-Query-Failure-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
{ ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
{ ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
{ ID id-Number-of-Broadcasts-Completed-List
CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List
PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Message-Status-Query-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Reset
--
-- **************************************************************
Reset ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Reset-IEs}},
protocolExtensions ProtocolExtensionContainer {{Reset-Extensions}} OPTIONAL,
...
}
Reset-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
...
}
Reset-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Reset-Complete
--
-- **************************************************************
Reset-Complete ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Reset-Complete-IEs}},
protocolExtensions ProtocolExtensionContainer {{Reset-Complete-Extensions}} OPTIONAL,
...
}
Reset-Complete-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Reset-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Reset-Failure
--
-- **************************************************************
Reset-Failure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Reset-Failure-IEs}},
protocolExtensions ProtocolExtensionContainer {{Reset-Failure-Extensions}} OPTIONAL,
...
}
Reset-Failure-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
{ ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } ,
...
}
Reset-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Restart
--
-- **************************************************************
Restart ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Restart-IEs}},
protocolExtensions ProtocolExtensionContainer {{Restart-Extensions}} OPTIONAL,
...
}
Restart-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Service-Areas-List CRITICALITY ignore TYPE Service-Areas-List PRESENCE mandatory } |
{ ID id-Recovery-Indication CRITICALITY ignore TYPE Recovery-Indication PRESENCE optional } ,
...
}
Restart-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Failure
--
-- **************************************************************
Failure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Failure-IEs}},
protocolExtensions ProtocolExtensionContainer {{Failure-Extensions}} OPTIONAL,
...
}
Failure-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Service-Areas-List CRITICALITY ignore TYPE Service-Areas-List PRESENCE mandatory } ,
...
}
Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Error-Indication
--
-- **************************************************************
Error-Indication ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{Error-Indication-IEs}},
protocolExtensions ProtocolExtensionContainer {{Error-Indication-Extensions}} OPTIONAL,
...
}
Error-Indication-IEs SABP-PROTOCOL-IES ::= {
{ ID id-Message-Identifier CRITICALITY ignore TYPE Message-Identifier PRESENCE optional } |
{ ID id-Serial-Number CRITICALITY ignore TYPE Serial-Number PRESENCE optional } |
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
...
}
Error-Indication-Extensions SABP-PROTOCOL-EXTENSION ::= {
...
}
END

View File

@ -0,0 +1,168 @@
-- **************************************************************
--
-- Elementary Procedure definitions
--
-- **************************************************************
SABP-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp (3) version1 (1) sabp-PDU-Descriptions (0)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
Criticality,
ProcedureCode
FROM SABP-CommonDataTypes
Error-Indication,
Failure,
Kill,
Kill-Complete,
Kill-Failure,
Load-Query,
Load-Query-Complete,
Load-Query-Failure,
Reset,
Reset-Complete,
Reset-Failure,
Restart,
Message-Status-Query,
Message-Status-Query-Complete,
Message-Status-Query-Failure,
Write-Replace,
Write-Replace-Complete,
Write-Replace-Failure
FROM SABP-PDU-Contents
id-Error-Indication,
id-Failure-Indication,
id-Kill,
id-Reset,
id-Restart-Indication,
id-Load-Status-Enquiry,
id-Message-Status-Query,
id-Write-Replace
FROM SABP-Constants;
-- **************************************************************
--
-- Interface Elementary Procedure Class
--
-- **************************************************************
SABP-ELEMENTARY-PROCEDURE ::= CLASS {
&InitiatingMessage ,
&SuccessfulOutcome OPTIONAL,
&UnsuccessfulOutcome OPTIONAL,
&procedureCode ProcedureCode UNIQUE,
&criticality Criticality DEFAULT ignore
}
WITH SYNTAX {
INITIATING MESSAGE &InitiatingMessage
[SUCCESSFUL OUTCOME
&SuccessfulOutcome]
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
PROCEDURE CODE &procedureCode
[CRITICALITY &criticality]
}
-- **************************************************************
--
-- Interface PDU Definition
--
-- **************************************************************
SABP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
unsuccessfulOutcome UnsuccessfulOutcome,
...
}
InitiatingMessage ::= SEQUENCE {
procedureCode SABP-ELEMENTARY-PROCEDURE.&procedureCode ({SABP-ELEMENTARY-PROCEDURES}),
criticality SABP-ELEMENTARY-PROCEDURE.&criticality ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value SABP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
SuccessfulOutcome ::= SEQUENCE {
procedureCode SABP-ELEMENTARY-PROCEDURE.&procedureCode ({SABP-ELEMENTARY-PROCEDURES}),
criticality SABP-ELEMENTARY-PROCEDURE.&criticality ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value SABP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
UnsuccessfulOutcome ::= SEQUENCE {
procedureCode SABP-ELEMENTARY-PROCEDURE.&procedureCode ({SABP-ELEMENTARY-PROCEDURES}),
criticality SABP-ELEMENTARY-PROCEDURE.&criticality ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value SABP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
-- **************************************************************
--
-- Interface Elementary Procedure List
--
-- **************************************************************
SABP-ELEMENTARY-PROCEDURES SABP-ELEMENTARY-PROCEDURE ::= {
SABP-ELEMENTARY-PROCEDURES-CLASS-1 |
SABP-ELEMENTARY-PROCEDURES-CLASS-2 ,
...
}
SABP-ELEMENTARY-PROCEDURES-CLASS-1 SABP-ELEMENTARY-PROCEDURE ::= {
write-Replace |
kill |
load-Status-Enquiry |
message-Status-Query |
reset ,
...
}
SABP-ELEMENTARY-PROCEDURES-CLASS-2 SABP-ELEMENTARY-PROCEDURE ::= {
restart-Indication |
failure-Indication |
error-Indication ,
...
}
write-Replace SABP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Write-Replace
SUCCESSFUL OUTCOME Write-Replace-Complete
UNSUCCESSFUL OUTCOME Write-Replace-Failure
PROCEDURE CODE id-Write-Replace
CRITICALITY reject
}
kill SABP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Kill
SUCCESSFUL OUTCOME Kill-Complete
UNSUCCESSFUL OUTCOME Kill-Failure
PROCEDURE CODE id-Kill
CRITICALITY reject
}
load-Status-Enquiry SABP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Load-Query
SUCCESSFUL OUTCOME Load-Query-Complete
UNSUCCESSFUL OUTCOME Load-Query-Failure
PROCEDURE CODE id-Load-Status-Enquiry
CRITICALITY reject
}
message-Status-Query SABP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Message-Status-Query
SUCCESSFUL OUTCOME Message-Status-Query-Complete
UNSUCCESSFUL OUTCOME Message-Status-Query-Failure
PROCEDURE CODE id-Message-Status-Query
CRITICALITY reject
}
reset SABP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Reset
SUCCESSFUL OUTCOME Reset-Complete
UNSUCCESSFUL OUTCOME Reset-Failure
PROCEDURE CODE id-Reset
CRITICALITY reject
}
restart-Indication SABP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Restart
PROCEDURE CODE id-Restart-Indication
CRITICALITY ignore
}
failure-Indication SABP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Failure
PROCEDURE CODE id-Failure-Indication
CRITICALITY ignore
}
error-Indication SABP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Error-Indication
PROCEDURE CODE id-Error-Indication
CRITICALITY ignore
}
END

141
asn1/sabp/SABP-PDU.asn Normal file
View File

@ -0,0 +1,141 @@
SABP-PDU {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp(3) version1 (1) sabp-PDU (255) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
maxProtocolIEs
FROM SABP-Constants
Criticality,
ProcedureCode,
ProtocolIE-ID
FROM SABP-CommonDataTypes;
SABP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
unsuccessfulOutcome UnsuccessfulOutcome,
...
}
InitiatingMessage ::= SEQUENCE {
procedureCode ProcedureCode,
criticality Criticality,
value ANY
}
SuccessfulOutcome ::= SEQUENCE {
procedureCode ProcedureCode,
criticality Criticality,
value ANY
}
UnsuccessfulOutcome ::= SEQUENCE {
procedureCode ProcedureCode,
criticality Criticality,
value ANY
}
Write-Replace ::= SEQUENCE {
write-Replace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Write-Replace-Complete ::= SEQUENCE {
write-Replace-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Write-Replace-Failure ::= SEQUENCE {
write-Replace-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Kill ::= SEQUENCE {
kill-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Kill-Complete ::= SEQUENCE {
kill-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Kill-Failure ::= SEQUENCE {
kill-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Load-Query ::= SEQUENCE {
load-Query-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Load-Query-Complete ::= SEQUENCE {
load-Query-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Load-Query-Failure ::= SEQUENCE {
load-Query-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Message-Status-Query ::= SEQUENCE {
message-Status-Query-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Message-Status-Query-Complete ::= SEQUENCE {
message-Status-Query-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Message-Status-Query-Failure ::= SEQUENCE {
message-Status-Query-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Reset ::= SEQUENCE {
reset-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Reset-Complete ::= SEQUENCE {
reset-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Reset-Failure ::= SEQUENCE {
reset-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Restart ::= SEQUENCE {
restart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Failure ::= SEQUENCE {
failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Error-Indication ::= SEQUENCE {
error-Indication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
IE ::= SEQUENCE {
id ProtocolIE-ID,
criticality Criticality,
value ANY
}
END

View File

@ -0,0 +1,57 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright 2022 sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
"""
Avoid compiler warnings like "struct HNBAP_CriticalityDiagnostics_IE_List__Member
declared inside parameter list will not be visible outside of this definition
or declaration", which break compiling the sources with -Werror and can't be
ignored with diagnostics as they don't have their own type (unlike e.g.
-Wuninitialized).
This problem is explained further in:
https://github.com/vlm/asn1c/issues/430
To avoid this, convert "SQUENCE … OF SEQUENCE" like here:
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
SEQUENCE {
to "SEQUENCE … OF …-Value" and below that "…-Value ::= SEQUENCE":
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-List-Value
CriticalityDiagnostics-IE-List-Value ::=
SEQUENCE {
"""
import glob
import re
re_seq_of = re.compile("([A-Za-z0-0-]*)\s*::=\s*SEQUENCE .* OF$")
re_seq_of2 = re.compile("([A-Za-z0-0-]*)\s*::=\s*SEQUENCE .* OF SEQUENCE\s*{$")
for file in glob.glob("asn1/*/*.asn"):
print(f"{file}:")
with open(file) as handle:
lines = handle.readlines()
for i, line in enumerate(lines):
match = re_seq_of.search(line)
if match and "SEQUENCE" in lines[i + 1]:
name_value = f"{match.group(1)}-Value"
print(f" {name_value}")
lines[i] = f"{line.rstrip()} {name_value}\n{name_value} ::=\n"
continue
match = re_seq_of2.search(line)
if match:
name_value = f"{match.group(1)}-Value"
print(f" {name_value}")
line = line.split(" OF SEQUENCE")[0]
lines[i] = f"{line} OF {name_value}\n{name_value} ::= SEQUENCE {{\n"
continue
with open(file, "w") as handle:
handle.writelines(lines)
print("Done")

View File

@ -1,9 +1,10 @@
#!/usr/bin/env python2
#!/usr/bin/env python3
import re, os, sys, string
import datetime
import getopt
import getpass
import time
version = "0.5osmo1"
@ -26,18 +27,18 @@ def printFail(string):
sys.stderr.write(FAIL + string + ENDC + "\n")
def printWarning(string):
print WARN + string + ENDC
print(WARN + string + ENDC)
def printDebug(string):
if verbosity > 0:
print string
print(string)
def outputHeaderToFile(f, filename):
now = datetime.datetime.now()
now = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))
f.write("/*******************************************************************************\n")
f.write(" * This file had been created by asn1tostruct.py script v%s\n" % (version))
f.write(" * Please do not modify this file but regenerate it via script.\n")
f.write(" * Created on: %s by %s\n * from %s\n" % (str(now), getpass.getuser(), filenames))
f.write(" * Created on: %s\n * from %s\n" % (str(now), filenames))
f.write(" ******************************************************************************/\n")
def lowerFirstCamelWord(word):
@ -56,7 +57,7 @@ def lowerFirstCamelWord(word):
return lowered
for c in swapped:
if c in string.lowercase:
if c.islower():
newstr += c
idx += 1
else:
@ -69,14 +70,37 @@ def lowerFirstCamelWord(word):
return newstr
def usage():
print "Python parser for asn1 v%s" % (version)
print "Usage: python asn1tostruct.py [options]"
print "Available options:"
print "-d Enable script debug"
print "-f [file] Input file to parse"
print "-o [dir] Output files to given directory"
print "-p [pfx] Prefix all types with given prefix"
print "-h Print this help and return"
print("Python parser for asn1 v%s" % (version))
print("Usage: python asn1tostruct.py [options]")
print("Available options:")
print("-d Enable script debug")
print("-f [file] Input file to parse")
print("-o [dir] Output files to given directory")
print("-p [pfx] Prefix all types with given prefix")
print("-h Print this help and return")
def getUniqueIENameForDefine(ies, ie):
""" Usually the type of the IE is used for defines. However a struct may
use the same type multiple times, in that case we use the actual name
of the field. """
unique = True
for ie_other in ies:
if ie_other == ie:
continue
if ie_other[2] == ie[2]:
unique = False
assert ie[0] != ie_other[0], "failed to find a unique name for" \
" IE {}. Found another entry in ies {}" \
" that has the same ie[0] value.".format(ie, ie_other)
if unique:
ret = ie[2]
else:
ret = ie[0]
ret = re.sub('-', '_', ret.upper())
return ret
try:
opts, args = getopt.getopt(sys.argv[1:], "df:ho:p:", ["debug", "file", "help", "outdir", "prefix"])
@ -101,7 +125,7 @@ for o, a in opts:
sys.exit(2)
for filename in filenames:
file = open(filename, 'r')
file = open(filename, 'r', encoding='utf-8')
for line in file:
# Removing any comment
if line.find('--') >= 0:
@ -138,17 +162,17 @@ if len(iesDefs) == 0:
printFail("No Information Element parsed, exiting")
sys.exit(0)
f = open(outdir + fileprefix + '_ies_defs.h', 'w')
f = open(outdir + fileprefix + '_ies_defs.h', 'w', encoding='utf-8')
outputHeaderToFile(f, filename)
f.write("#include \"%s_common.h\"\n\n" % (fileprefix))
f.write("#ifndef %s_IES_DEFS_H_\n#define %s_IES_DEFS_H_\n\n" % (fileprefix.upper(), fileprefix.upper()))
for key in iesDefs:
if key not in ieofielist.values():
if key not in list(ieofielist.values()):
continue
for (i, j) in ieofielist.items():
for (i, j) in list(ieofielist.items()):
if j == key:
break
@ -166,7 +190,7 @@ for key in iesDefs:
# Presence mask
for ie in iesDefs[key]["ies"]:
ieupperunderscore = re.sub('-', '_', ie[2].upper())
ieupperunderscore = getUniqueIENameForDefine(iesDefs[key]["ies"], ie)
if ie[3] == "optional" or ie[3] == "conditional":
f.write("#define {0:<{pad}} {1}\n".format("%s_%s%s_PRESENT" % (keyupperunderscore, prefix, ieupperunderscore), "(1 << %d)" % shift,
pad=iesDefs[key]["length"] + len(keyupperunderscore) + 9))
@ -199,10 +223,10 @@ f.write(" uint8_t criticality;\n")
f.write(" uint8_t direction;\n")
f.write(" union {\n")
messageList = iesDefs.keys()
messageList = list(iesDefs.keys())
messageList.sort()
for message in messageList:
if message in ieofielist.values():
if message in list(ieofielist.values()):
continue
if len(iesDefs[message]["ies"]) == 0:
continue
@ -211,7 +235,7 @@ f.write(" } msg;\n")
f.write("} %s_message;\n\n" % (fileprefix))
for key in iesDefs:
if key in ieofielist.values():
if key in list(ieofielist.values()):
continue
structName = re.sub('ies', '', key)
asn1cStruct = re.sub('-', '_', re.sub('IEs', '', re.sub('-IEs', '', key)))
@ -241,7 +265,7 @@ for key in iesDefs:
f.write(" %s_t *%s);\n\n" % (prefix + re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
for key in iesDefs:
if key not in ieofielist.values():
if key not in list(ieofielist.values()):
continue
asn1cStruct = re.sub('-', '_', re.sub('IEs', '', key))
asn1cStruct = prefix + re.sub('Item', 'List', asn1cStruct)
@ -275,11 +299,11 @@ for key in iesDefs:
f.write("#endif /* %s_IES_DEFS_H_ */\n\n" % (fileprefix.upper()))
#Generate Decode functions
f = open(outdir + fileprefix + '_decoder.c', 'w')
f = open(outdir + fileprefix + '_decoder.c', 'w', encoding='utf-8')
outputHeaderToFile(f, filename)
f.write("#include \"%s_common.h\"\n#include \"%s_ies_defs.h\"\n\n" % (fileprefix, fileprefix))
for key in iesDefs:
if key in ieofielist.values():
if key in list(ieofielist.values()):
continue
structName = re.sub('ies', '', key)
asn1cStruct = re.sub('-', '_', re.sub('IEs', '', re.sub('-IEs', '', key)))
@ -292,7 +316,7 @@ for key in iesDefs:
asn1cStruct = prefix + re.sub('Item', 'List', asn1cStruct)
iesaccess = ""
if key not in ieofielist.values():
if key not in list(ieofielist.values()):
iesaccess = "%s_ies." % (firstlower)
f.write("int %s_decode_%s(\n" % (fileprefix, re.sub('-', '_', structName.lower())))
@ -304,6 +328,7 @@ for key in iesDefs:
f.write(" int i, decoded = 0;\n")
if len(iesDefs[key]["ies"]) != 0:
f.write(" int tempDecoded = 0;\n")
f.write(" int rc = -1;\n")
f.write(" assert(any_p != NULL);\n")
if len(iesDefs[key]["ies"]) != 0:
@ -311,7 +336,12 @@ for key in iesDefs:
f.write(" memset(%s, 0, sizeof(%s_t));\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), prefix + re.sub('-', '_', key)))
f.write(" %s_DEBUG(\"Decoding message %s (%%s:%%d)\\n\", __FILE__, __LINE__);\n\n" % (fileprefix.upper(), prefix + re.sub('-', '_', keyName)))
f.write(" ANY_to_type_aper(any_p, &asn_DEF_%s, (void**)&%s_p);\n\n" % (asn1cStruct, asn1cStructfirstlower))
f.write(" tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_%s, (void**)&%s_p);\n\n" % (asn1cStruct, asn1cStructfirstlower))
f.write(" if (tempDecoded < 0 || %s_p == NULL) {\n" % (asn1cStructfirstlower))
f.write(" %s_DEBUG(\"Decoding of message %s failed\\n\");\n" % (fileprefix.upper(), prefix + re.sub('-', '_', keyName)))
f.write(" return -1;\n")
f.write(" }\n\n")
f.write(" for (i = 0; i < %s_p->%slist.count; i++) {\n" % (asn1cStructfirstlower, iesaccess))
f.write(" %sIE_t *ie_p;\n" % (prefix))
f.write(" ie_p = %s_p->%slist.array[i];\n" % (asn1cStructfirstlower, iesaccess))
@ -322,7 +352,7 @@ for key in iesDefs:
ienameunderscorefirstlower = lowerFirstCamelWord(ienameunderscore)
ietypesubst = prefix + re.sub('-', '', ie[2])
ietypeunderscore = prefix + re.sub('-', '_', ie[2])
ieupperunderscore = prefix + re.sub('-', '_', ie[2]).upper()
ieupperunderscore = prefix + getUniqueIENameForDefine(iesDefs[key]["ies"], ie)
if ie[3] == "optional":
f.write(" /* Optional field */\n")
elif ie[3] == "conditional":
@ -335,12 +365,12 @@ for key in iesDefs:
f.write(" tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_%s, (void**)&%s_p);\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
f.write(" if (tempDecoded < 0) {\n")
f.write(" %s_DEBUG(\"Decoding of IE %s failed\\n\");\n" % (fileprefix.upper(), ienameunderscore))
f.write(" return -1;\n")
f.write(" goto free_and_return_rc;\n")
f.write(" }\n")
f.write(" decoded += tempDecoded;\n")
f.write(" if (asn1_xer_print)\n")
f.write(" xer_fprint(stdout, &asn_DEF_%s, %s_p);\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
if ie[2] in ieofielist.keys():
if ie[2] in list(ieofielist.keys()):
f.write(" if (%s_decode_%s(&%s->%s, %s_p) < 0) {\n" % (fileprefix, ietypeunderscore.lower(), lowerFirstCamelWord(re.sub('-', '_', key)), ienameunderscore, lowerFirstCamelWord(ietypesubst)))
f.write(" %s_DEBUG(\"Decoding of encapsulated IE %s failed\\n\");\n" % (fileprefix.upper(), lowerFirstCamelWord(ietypesubst)))
f.write(" ASN_STRUCT_FREE(asn_DEF_%s, %s_p);\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
@ -350,11 +380,14 @@ for key in iesDefs:
f.write(" } break;\n")
f.write(" default:\n")
f.write(" %s_DEBUG(\"Unknown protocol IE id (%%d) for message %s\\n\", (int)ie_p->id);\n" % (fileprefix.upper(), re.sub('-', '_', structName.lower())))
f.write(" return -1;\n")
f.write(" goto free_and_return_rc;\n")
f.write(" }\n")
f.write(" }\n")
f.write(" rc = decoded;\n")
f.write("\n")
f.write("free_and_return_rc:\n")
f.write(" ASN_STRUCT_FREE(asn_DEF_%s, %s_p);\n" % (asn1cStruct, asn1cStructfirstlower))
f.write(" return decoded;\n")
f.write(" return rc;\n")
f.write("}\n\n")
for key in iesDefs:
@ -371,7 +404,7 @@ for key in iesDefs:
for ie in iesDefs[key]["ies"]:
ietypeunderscore = prefix + re.sub('-', '_', ie[2])
ieupperunderscore = prefix + re.sub('-', '_', ie[2]).upper()
ieupperunderscore = prefix + getUniqueIENameForDefine(iesDefs[key]["ies"], ie)
if ie[3] != "mandatory":
if ie[3] == "optional":
f.write(" /* Optional field */\n")
@ -384,10 +417,12 @@ for key in iesDefs:
iename = re.sub('id-', '', ie[0])
ienameunderscore = lowerFirstCamelWord(re.sub('-', '_', iename))
f.write(" ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_%s, &%s->%s);\n" % (ietypeunderscore, lowerFirstCamelWord(re.sub('-', '_', key)), ienameunderscore))
f.write(" return 0;\n")
f.write("}\n\n")
for key in iesDefs:
if key not in ieofielist.values():
if key not in list(ieofielist.values()):
continue
keyname = re.sub('IEs', '', re.sub('Item', 'List', key))
@ -429,12 +464,12 @@ for key in iesDefs:
#Generate IES Encode functions
f = open(outdir + fileprefix + '_encoder.c', 'w')
f = open(outdir + fileprefix + '_encoder.c', 'w', encoding='utf-8')
outputHeaderToFile(f,filename)
f.write("#include \"%s_common.h\"\n" % (fileprefix))
f.write("#include \"%s_ies_defs.h\"\n\n" % (fileprefix))
for key in iesDefs:
if key in ieofielist.values():
if key in list(ieofielist.values()):
continue
structName = re.sub('ies', '', key)
@ -444,7 +479,7 @@ for key in iesDefs:
asn1cStructfirstlower = asn1cStruct[:1].lower() + asn1cStruct[1:]
iesaccess = ""
if key not in ieofielist.values():
if key not in list(ieofielist.values()):
iesaccess = "%s_ies." % (firstwordlower)
keyName = re.sub('-', '_', key)
@ -463,7 +498,7 @@ for key in iesDefs:
iename = re.sub('-', '_', re.sub('id-', '', ie[0]))
ienameunderscore = prefix + re.sub('-', '_', iename)
ienamefirstwordlower = lowerFirstCamelWord(iename)
ieupperunderscore = prefix + re.sub('-', '_', ie[2]).upper()
ieupperunderscore = prefix + getUniqueIENameForDefine(iesDefs[key]["ies"], ie)
ietypeunderscore = prefix + re.sub('-', '_', ie[2])
if ie[3] != "mandatory":
if ie[3] == "optional":
@ -481,7 +516,7 @@ for key in iesDefs:
f.write(" ASN_SEQUENCE_ADD(&%s->%slist, ie);\n" % (firstwordlower, iesaccess))
f.write(" }\n\n")
else:
if ie[2] in ieofielist.keys():
if ie[2] in list(ieofielist.keys()):
f.write(" %s_t %s;\n\n" % (prefix + ietypeunderscore, ienamefirstwordlower))
f.write(" memset(&%s, 0, sizeof(%s_t));\n" % (ienamefirstwordlower, ietypeunderscore))
f.write("\n")
@ -489,21 +524,21 @@ for key in iesDefs:
f.write(" if ((ie = %s_new_ie(%sProtocolIE_ID_%s,\n" % (fileprefix, prefix, re.sub('-', '_', ie[0])))
f.write(" %sCriticality_%s,\n" % (prefix, ie[1]))
f.write(" &asn_DEF_%s,\n" % (ietypeunderscore))
if ie[2] in ieofielist.keys():
if ie[2] in list(ieofielist.keys()):
f.write(" &%s)) == NULL) {\n" % (ienamefirstwordlower))
else:
f.write(" &%s->%s)) == NULL) {\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), ienamefirstwordlower))
f.write(" return -1;\n")
f.write(" }\n")
f.write(" ASN_SEQUENCE_ADD(&%s->%slist, ie);\n\n" % (firstwordlower, iesaccess))
if ie[2] in ieofielist.keys():
if ie[2] in list(ieofielist.keys()):
f.write(" ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_%s, &%s);\n\n" % (ietypeunderscore, ienamefirstwordlower))
f.write(" return 0;\n")
f.write("}\n\n")
for (key, value) in iesDefs.items():
if key not in ieofielist.values():
for (key, value) in list(iesDefs.items()):
if key not in list(ieofielist.values()):
continue
ie = value["ies"][0]
@ -512,7 +547,7 @@ for (key, value) in iesDefs.items():
asn1cStruct = prefix + re.sub('Item', 'List', asn1cStruct)
firstwordlower = re.sub('Item', 'List', re.sub('enb', 'eNB', lowerFirstCamelWord(asn1cStruct)))
for (i, j) in ieofielist.items():
for (i, j) in list(ieofielist.items()):
if j == key:
break
f.write("int %s_encode_%s(\n" % (fileprefix, re.sub('-', '_', i).lower()))

View File

@ -11,17 +11,30 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.9 tar-ustar])
dnl tar-ustar: some asn1 filenames surpass the 99 char limit of tar, so we need
dnl to make tar allow longer filenames.
AC_CONFIG_TESTDIR(src/tests)
AC_CONFIG_TESTDIR(tests)
CFLAGS="$CFLAGS -std=gnu11"
dnl kernel style compile messages
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
dnl include release helper
RELMAKE='-include osmo-release.mk'
AC_SUBST([RELMAKE])
dnl checks for programs
AC_PROG_MAKE_SET
AC_PROG_MKDIR_P
AC_PROG_CC
AC_PROG_INSTALL
dnl patching ${archive_cmds} to affect generation of file "libtool" to fix linking with clang
AS_CASE(["$LD"],[*clang*],
[AS_CASE(["${host_os}"],
[*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])])
AC_CHECK_HEADERS(netinet/sctp.h,,AC_MSG_ERROR(netinet/sctp.h not found))
dnl check for pkg-config (explained in detail in libosmocore/configure.ac)
AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no)
if test "x$PKG_CONFIG_INSTALLED" = "xno"; then
@ -29,32 +42,115 @@ if test "x$PKG_CONFIG_INSTALLED" = "xno"; then
fi
PKG_PROG_PKG_CONFIG([0.20])
PKG_CHECK_MODULES(OSMOCORE, libosmocore)
PKG_CHECK_MODULES(OSMOGSM, libosmogsm)
PKG_CHECK_MODULES(OSMOVTY, libosmovty)
PKG_CHECK_MODULES(OSMONETIF, libosmo-netif)
PKG_CHECK_MODULES(OSMOSIGTRAN, libosmo-sigtran)
PKG_CHECK_MODULES(ASN1C, libasn1c)
PKG_CHECK_MODULES(OSMOCORE, libosmocore >= 1.9.0)
PKG_CHECK_MODULES(OSMOGSM, libosmogsm >= 1.9.0)
PKG_CHECK_MODULES(OSMOVTY, libosmovty >= 1.9.0)
PKG_CHECK_MODULES(OSMOCTRL, libosmoctrl >= 1.9.0)
PKG_CHECK_MODULES(OSMONETIF, libosmo-netif >= 1.4.0)
PKG_CHECK_MODULES(OSMOSIGTRAN, libosmo-sigtran >= 1.8.0)
PKG_CHECK_MODULES(ASN1C, libasn1c >= 0.9.30)
AC_CONFIG_MACRO_DIR([m4])
dnl checks for header files
AC_HEADER_STDC
AC_ARG_ENABLE(sanitize,
[AS_HELP_STRING(
[--enable-sanitize],
[Compile with address sanitizer enabled],
)],
[sanitize=$enableval], [sanitize="no"])
if test x"$sanitize" = x"yes"
then
CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
fi
AC_ARG_ENABLE(werror,
[AS_HELP_STRING(
[--enable-werror],
[Turn all compiler warnings into errors, with exceptions:
a) deprecation (allow upstream to mark deprecation without breaking builds);
b) "#warning" pragmas (allow to remind ourselves of errors without breaking builds)
]
)],
[werror=$enableval], [werror="no"])
if test x"$werror" = x"yes"
then
WERROR_FLAGS="-Werror"
WERROR_FLAGS+=" -Wno-error=deprecated -Wno-error=deprecated-declarations"
WERROR_FLAGS+=" -Wno-error=cpp" # "#warning"
CFLAGS="$CFLAGS $WERROR_FLAGS"
CPPFLAGS="$CPPFLAGS $WERROR_FLAGS"
fi
CFLAGS="$CFLAGS -Wall"
CPPFLAGS="$CPPFLAGS -Wall"
# Generate manuals
AC_ARG_ENABLE(manuals,
[AS_HELP_STRING(
[--enable-manuals],
[Generate manual PDFs [default=no]],
)],
[osmo_ac_build_manuals=$enableval], [osmo_ac_build_manuals="no"])
AM_CONDITIONAL([BUILD_MANUALS], [test x"$osmo_ac_build_manuals" = x"yes"])
AC_ARG_VAR(OSMO_GSM_MANUALS_DIR, [path to common osmo-gsm-manuals files, overriding pkg-config and "../osmo-gsm-manuals"
fallback])
if test x"$osmo_ac_build_manuals" = x"yes"
then
# Find OSMO_GSM_MANUALS_DIR (env, pkg-conf, fallback)
if test -n "$OSMO_GSM_MANUALS_DIR"; then
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from env)"
else
OSMO_GSM_MANUALS_DIR="$($PKG_CONFIG osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null)"
if test -n "$OSMO_GSM_MANUALS_DIR"; then
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from pkg-conf)"
else
OSMO_GSM_MANUALS_DIR="../osmo-gsm-manuals"
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (fallback)"
fi
fi
if ! test -d "$OSMO_GSM_MANUALS_DIR"; then
AC_MSG_ERROR("OSMO_GSM_MANUALS_DIR does not exist! Install osmo-gsm-manuals or set OSMO_GSM_MANUALS_DIR.")
fi
# Find and run check-depends
CHECK_DEPENDS="$OSMO_GSM_MANUALS_DIR/check-depends.sh"
if ! test -x "$CHECK_DEPENDS"; then
CHECK_DEPENDS="osmo-gsm-manuals-check-depends"
fi
if ! $CHECK_DEPENDS; then
AC_MSG_ERROR("missing dependencies for --enable-manuals")
fi
# Put in Makefile with absolute path
OSMO_GSM_MANUALS_DIR="$(realpath "$OSMO_GSM_MANUALS_DIR")"
AC_SUBST([OSMO_GSM_MANUALS_DIR])
fi
AC_MSG_RESULT([CFLAGS="$CFLAGS"])
AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"])
AC_OUTPUT(
libosmo-hnbap.pc
libosmo-ranap.pc
libosmo-rua.pc
libosmo-sabp.pc
src/Makefile
src/hnbap/Makefile
src/ranap/Makefile
src/rua/Makefile
src/tests/Makefile
src/sabp/Makefile
tests/Makefile
Makefile
include/Makefile
include/osmocom/Makefile
include/osmocom/hnbap/Makefile
include/osmocom/ranap/Makefile
include/osmocom/rua/Makefile
include/osmocom/sabp/Makefile
include/osmocom/iuh/Makefile
doc/Makefile
doc/examples/Makefile
)

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/bin/sh
set -ex
@ -7,24 +7,30 @@ deps="$base/deps"
inst="$deps/install"
export deps inst
osmo-clean-workspace.sh
mkdir "$deps" || true
rm -rf "$inst"
osmo-build-dep.sh libosmocore
"$deps"/libosmocore/contrib/verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]")
verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]")
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
export LD_LIBRARY_PATH="$inst/lib"
export PATH="$inst/bin:$PATH"
osmo-build-dep.sh libosmocore "" --disable-doxygen
osmo-build-dep.sh libosmo-abis
osmo-build-dep.sh libosmo-netif sysmocom/sctp
osmo-build-dep.sh libosmo-sccp sysmocom/iu
osmo-build-dep.sh libosmo-netif
osmo-build-dep.sh libosmo-sccp
osmo-build-dep.sh libasn1c
# the asn1c binary is used by the 'regen' target below
osmo-build-dep.sh asn1c aper-prefix
CONFIG="--enable-werror"
if [ "$WITH_MANUALS" = "1" ]; then
CONFIG="$CONFIG --enable-manuals"
fi
set +x
echo
echo
@ -34,7 +40,7 @@ echo
set -x
autoreconf --install --force
./configure
./configure --enable-sanitize $CONFIG
# Verify that checked-in asn1 code is identical to regenerated asn1 code
PATH="$inst/bin:$PATH" $MAKE $PARALLEL_MAKE -C src regen
@ -53,5 +59,8 @@ fi
$MAKE $PARALLEL_MAKE
$MAKE check \
|| cat-testlogs.sh
$MAKE distcheck \
$MAKE $PARALLEL_MAKE distcheck \
|| cat-testlogs.sh
$MAKE $PARALLEL_MAKE maintainer-clean
osmo-clean-workspace.sh

View File

@ -1,11 +0,0 @@
[Unit]
Description=Osmocom Home Nodeb Gateway (OsmoHNBGW)
[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/osmo-hnbgw -c /etc/osmocom/osmo-hnbgw.cfg
RestartSec=2
[Install]
WantedBy=multi-user.target

407
debian/changelog vendored Normal file
View File

@ -0,0 +1,407 @@
osmo-iuh (1.5.1) unstable; urgency=medium
[ Pau Espin Pedrol ]
* ranap_transp_layer_addr_decode2(): Fix decoding X.213 IPv4 address len=7
[ Daniel Willmann ]
* iu_client: Use local variable to track conn_id
* iu_client: Handle empty CR and InitialUE Message in DATA.ind
-- Oliver Smith <osmith@sysmocom.de> Fri, 15 Dec 2023 15:05:11 +0100
osmo-iuh (1.5.0) unstable; urgency=medium
[ arehbein ]
* Transition to use of 'telnet_init_default'
[ Oliver Smith ]
* test-ranap: don't use libosmocore's tall_msgb_ctx
* debian: set compat level to 10
[ Neels Hofmeyr ]
* fix PDU leaks in rua_generate_*() functions
* asn1tostruct.py: fix leak in error paths of iesDefs
* fix leak in ranap_new_transp_layer_addr()
* add ranap_new_msg_reset2() with GlobalRNC-ID
[ Pau Espin Pedrol ]
* Move testdir src/tests/ -> tests/
[ Vadim Yanitskiy ]
* copyright: fix typo: sysmocom s/s.m.f.c./s.f.m.c./ GmbH
[ Harald Welte ]
* hnb-test.c: Update to libosmocore osmo_auth_gen_vec2
-- Pau Espin Pedrol <pespin@sysmocom.de> Tue, 12 Sep 2023 14:13:41 +0200
osmo-iuh (1.4.0) unstable; urgency=medium
[ Vadim Yanitskiy ]
* libosmo-rua: fix copy-pasted -version-info: {HNBAP->RUA}_LIBVERSION
* libosmo-{hnbap,ranap,rua,sabp}: add -no-undefined to *_la_LDFLAGS
[ Oliver Smith ]
* move-asn1-header-files: error for wrong asn1c
* asn1: fix visibility warnings from generated code
* tests/hnb-test-rua: add missing include
* tests/test-hnbap: add missing include
* tests/test-ranap: fix missing (void **) cast
* ranap_common_cn: remove unused ctx args
* ranap_common_cn: rename ctx -> priv
* tests/hnb-test-rua: fix incompat pointer type
* test-hnbap: fix defined but not used error
* hnbap_common: hnbap_cause_str: handle nothing val
* asn1tostruct: fix defines getting redefined
* contrib/jenkins.sh: use --enable-werror
* asn1tostruct: don't use f-strings
* contrib/jenkins.sh: werror with WITH_MANUALS too
-- Pau Espin Pedrol <pespin@sysmocom.de> Tue, 07 Feb 2023 16:39:24 +0100
osmo-iuh (1.3.0) unstable; urgency=medium
[ Philipp Maier ]
* test-hnbap: remove unused variable rc
* test-hnbap: cosmetic: fix sourcecode formatting
* ranap_common: add decoder for RAB SetupOrModifyItemFirst
* cosmetic: don't use 4 speaces instead of tabs
* iu_helpers: make new_transp_info_(rtp|gtp) public
* iu_helpers: check length before accessing buf
* add unittest for ranap_transp_layer_addr_decode()
* iu_helpers: add function ranap_transp_layer_addr_decode2
* test_common: use osmo_init_logging2 instead of osmo_init_logging
* test-ranap: put message gen tests into function
* ranap_common_cn: add functions for direct access to decoder
* ranap_common_ran: add decoder for CN/MSC originated messages
* ranap_msg_factory: add missing apidoc
* ranap_common: add decoder for RAB-FailedList
* ranap_common: add decoder for RAB-ReleaseList
* ranap_common: log decoder errors to LOGL_ERROR
[ Pau Espin Pedrol ]
* Drop no longer needed systemd config in build system
* jenkins.sh: osmo-iuh no longer has doc/manuals/ make target
* iu_client: Prevent crash if msgb passed to ranap_iu_tx has no dst
* iu_client: Fix incorrect access to null pointer
* Make logging message about received RANAP message more meaningful
[ Neels Hofmeyr ]
* move new_transp_layer_addr to public API
[ Harald Welte ]
* update git URLs (git -> https; gitea)
* README.md: remove obsolete notice from 7 years ago
-- Pau Espin Pedrol <pespin@sysmocom.de> Tue, 28 Jun 2022 18:59:56 +0200
osmo-iuh (1.2.0) unstable; urgency=medium
[ Oliver Smith ]
* treewide: remove FSF address
[ Pau Espin Pedrol ]
* tests/tests_common.c: Add missing header
* Introduce dynamic log category for libosmo-rua/hnbap
* Drop osmo-hnbgw
* tests/dummy_cn_sua.c: Drop no longer existing include
-- Pau Espin Pedrol <pespin@sysmocom.de> Wed, 05 Jan 2022 12:26:51 +0100
osmo-iuh (1.1.0) unstable; urgency=medium
* gitignore: Ignore libsmo-{hnbap,rua}.pc
-- Pau Espin Pedrol <pespin@sysmocom.de> Wed, 17 Nov 2021 11:56:26 +0100
osmo-iuh (0.8.0) unstable; urgency=medium
[ Harald Welte ]
* hnbgw: Add missing break statement
[ Pau Espin Pedrol ]
* iu_client: Log event sent to upper layer callback
* ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result
* hnb-test: Fix typo in vty cmd description
* cosmetic: src/ranap/Makefile.am: Drop trailing whitespace
* src/tests/Makefile.am: Drop reference to non-existent RANAP_FILES var
* src/*/Makefile.am: Fix trailing whitespace
* Provide libosmo-hnbap as a public shared library
* Provide libosmo-rua as a public shared library
* move-asn1-header-files.sh: Replace original asn file path in generated asn1 header files
* README.md: Document how to re-generate code from ASN1 files
* hnbgw_rua.c: Use proper type struct
* hnbgw_cn.c: Use proper type struct
* hnb-test: Fix rc var may be used uninitialized
* src/*/Makefile.am: Copy back to srcdir the generated .c files from ASN
* src/*/Makefile.am: Use asn1c -R to avoid generating runtime code
* Update generated .c/.h after using asn1c -R param
* hnbap: Use specific prefix for HNBAP generated code
* hnbap: Drop no longer existing asn1c param -fnative-types
* hnbap: Use asn1c flag -fcompound-names to avoid name collisions with other libs
* rua: Use asn1c flag -fcompound-names to avoid name collisions with other libs
* sabp: Use asn1c flag -fcompound-names to avoid name collisions with other libs
* ranap: Use asn1c flag -fcompound-names to avoid name collisions with other libs
* hnb-test: Fix memleak in hnb_read_cb
[ Oliver Smith ]
* contrib/osmo-iuh.spec.in: fix header packaging
* contrib/osmo-iuh.spec: fix missing ldconfig lines
* Cosmetic: put asn1c parameters in separate lines
-- Pau Espin Pedrol <pespin@sysmocom.de> Tue, 16 Nov 2021 17:13:09 +0100
osmo-iuh (0.7.0) unstable; urgency=medium
[ Martin Hauke ]
* tests: Missing return statement
[ Pau Espin Pedrol ]
* tests/hnb-test-ranap.c: Fix wrong printf format
* tests/test-ranap.c: Fix wrong printf format
* Fix compiler warning on signedness of char ptr using OCTET_STRING_fromBuf()
* hnbgw_vty.c: Drop unusued variables
* tests: Fix trailing whitespace
* Fix OneDefinitionRule Asan violation in tests and osmo-hnbgw
* Change default SCTP conn NULL->127.0.0.1 to localhost->localhost
* hnbgw: Mark SCTP conn as NODELAY
* contrib/jenkins: Enable parallel make in make distcheck
* tests/hnb-test-ranap: Fix incorrect pointer type cast
* tests/hnb-test: Drop unused variables
* tests/hnb-test: Fix signedness of imsi_buf
* tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties
* tests/hnb-test-ranap: Fix incorrect signedness in pointer
* tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode
* tests/hnb-test: Fix uninitialized use of rc variable
* tests/hnb-test: Fix signedness of assigned pointer
* tests/hnb-test: Initialize logging with existing struct log_info
* tests/hnb-test: Disable building unsued code
* tests: Explicitly drop category from log
* tests: Replace deprecated API log_set_print_filename
* hnbgw: Avoid re-defining same global variable twice
* Workaround ASan report memleak during call to --vty-ref-xml
[ Neels Hofmeyr ]
* manual: add "Configuring Primary Links" and "Multiple instances"
* manual: link to new common cs7-config.adoc
[ Vadim Yanitskiy ]
* tests/test-helpers: fix some -Wpointer-sign warnings reported by GCC
* tests/test-helpers: fix endianness: do not print uint32_t as raw bytes
* tests/test-ranap: cosmetic: remove unused variable 'rc'
* debian/control: change maintainer to the Osmocom team / mailing list
* vty: use install_lib_element() and install_lib_element_ve()
[ Eric ]
* configure.ac: fix libtool issue with clang and sanitizer
[ Philipp Maier ]
* hnbgw: do not use LOGL_DEBUG as default loglevel
[ Harald Welte ]
* Fix compilation with gcc-10
* Provide more context when logging "Error in ANY_fromType_aper"
* hnbgw: use OSMO_STRLCPY_ARRAY() instead of open coding it
* hnbgw: Introduce LOGHNB() macro for log context information
* debian: Actually build manuals; add osmo-hnbgw-doc package
* configure.ac: Ensure netinet/sctp.h is present
* hnbgw: Use LOGHNB() to add log context information to log lines
* ranap_msg_factory: Allow detailed control over UEA/UIA algorithm encoded
* ranap_msg_factory: Fix LOGP statements
* main: add --vty-ref-mode, use vty_dump_xml_ref_mode()
* manuals: generate vty reference xml at build time
[ Oliver Smith ]
* contrib: import RPM spec
* contrib: integrate RPM spec
* Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in
* contrib/jenkins: don't build osmo-gsm-manuals
* configure.ac: set -std=gnu11
-- Pau Espin Pedrol <pespin@sysmocom.de> Tue, 23 Feb 2021 20:11:59 +0100
osmo-iuh (0.6.0) unstable; urgency=medium
[ Vadim Yanitskiy ]
* hnbgw_vty.c: fix: properly pass pointer to g_hnb_gw
* osmo-hnbgw: make sure osmo_ss7_init() executed successfully
[ Alexander Couzens ]
* iu_client: sccp_sap_up: set rc early
* iu_client: ensure UE is not NULL on CO primitives
* iu_client: sccp_sap_up: don't decode empty disconnect indications
* iu_client: introduce ranap_iu_free_ue() to free the UE connections
* iu_client: emit RANAP_IU_EVENT_LINK_INVALIDATED on SCCP disconnect indication
* iu_client: introduce a guard around global_iu_event_cb
* iu_client: allow to control the notifications
* iu_client: introduce ranap_iu_tx_release_free()
* iu_client: introduce UE field free_on_release
* iu_client: pass return value of osmo_sccp_user_sap_down() towards the caller
* iu_client: ranap_iu_tx_release() change default cause code to Success
[ Pau Espin Pedrol ]
* hnbgw: Add libosmoctrl's VTY CTRL command initialization
* debian/rules: Fix dbg pacakges
* debian: Split libosmo-sabp from libosmo-ranap package
[ Harald Welte ]
* asn1enum.pl: Make compatible with modern perl
* sabp: Initial import of SABP ASN.1 from 3GPP TS 25.419 V11.1.0 (2013-03)
* sabp: fixup SABP ASN.1 to avoid IOC (which are not supported by our toolchain)
* sabp: Add Procedure Codes and IEI constants to CommonDataTypes
* sabp: Generate C/H files for SABP; create libosmo-sabp
* Initial minimal OsmoHNBGW user manual
* exit(2) on unsupported positional arguments on command line
[ Oliver Smith ]
* gitignore: add gen_sabp.stamp
* debian, asn1tostruct.py: switch to python3
-- Pau Espin Pedrol <pespin@sysmocom.de> Fri, 03 Jan 2020 17:04:15 +0100
osmo-iuh (0.5.0) unstable; urgency=medium
[ Neels Hofmeyr ]
* ranap_msg_factory.h: fix enum def within function signature
* osmo-hnbgw: fix cmdline: do not force-disable colored logging
* osmo-hnbgw: set a proper talloc ctx for logging
* osmo-hnbgw: logging tweaks
* osmo-hnbgw: reply with RESET ACK when receiving a RESET
[ Oliver Smith ]
* tests: use -no-install libtool flag to avoid ./lt-* scripts
* contrib/jenkins.sh: run "make maintainer-clean"
* osmo-hnbgw.cfg: set local-ip to 0.0.0.0
[ Harald Welte ]
* iu_client: Implement transmission of ResetAcknowledge
* ranap_msg_factory: Fix criticality of PDUs
[ Thorsten Alteholz ]
* spelling stuff found by lintian
[ Daniel Willmann ]
* Add VTY reference manual
* jenkins: Enable manual publishing and building
[ Pau Espin Pedrol ]
* Remove undefined param passed to {logging,osmo_stats}_vty_add_cmds
-- Pau Espin Pedrol <pespin@sysmocom.de> Wed, 07 Aug 2019 21:23:57 +0200
osmo-iuh (0.4.0) unstable; urgency=medium
[ Bernhard M. Wiedemann ]
* asn1tostruct: allow to override build date
[ Alexander Couzens ]
* hnbgw: remove close_cb() to fix a crash when releasing a hnbgw
[ Harald Welte ]
* debian/rules: Don't overwrite .tarball-version
* hnbgw_tx_hnb_register_rej(): Missing return statement
[ Neels Hofmeyr ]
* fix decoding of incoming X.213 NSAP addr
* hnbgw: vty: add SCCP related vty commands
* fix transport layer addr again, for nano3g
[ Pau Espin Pedrol ]
* debian: package osmo-hnbgw.service
* Install systemd services with autotools
* Install sample cfg file to /etc/osmocom
[ Stefan Sperling ]
* add a VTY command which shows a specific HNB
[ Oliver Smith ]
* Fix DISTCHECK_CONFIGURE_FLAGS override
* contrib: fix makedistcheck with disabled systemd
-- Harald Welte <laforge@gnumonks.org> Sun, 20 Jan 2019 21:46:05 +0100
osmo-iuh (0.3.0) unstable; urgency=medium
[ Neels Hofmeyr ]
* jenkins: use osmo-clean-workspace.sh before and after build
* vty: skip installing cmds now always installed by default
* src/Makefile.am: drop unused COMMON_LDADD
* add --enable-sanitize config option
* osmo-hnbgw: drop erratic log line on remote STP address
* api doc: clarify byte order in ranap_new_msg_rab_assign_*
* tests: sanitize: fix mem leaks, clean after tests
* ranap_msg_factory: sanitize: memcpy instead of unaligned int copy
* test_common: fix compiler warning: include ranap_common.h
* osmo-hnbgw: auto-config local and remote PCs if omitted
* cosmetic: osmo-hnbgw: log remote SCCP addresses on startup
* osmo-hnbgw: don't configure specific local IP address for STP connection
* iu client: store multiple LAC,RAC per RNC = fix paging for multiple RNC
* hnbgw: use proper VTY port number defined in libosmocore (4261)
* fix 3 compiler warnings in ranap_common.c
* hnbgw: use proper talloc ctx for vty telnet init
* hnbgw: hnb info: record MCC, MNC, show on 'show hnb'
* hnbap,rua,ranap decode: fix segfault on decode error
* vty: tweak / improve HNB and cnlink introspection
* osmo-hnbgw: vty: revamp output of context maps on 'show hnb'
* compiler warning: asn1tostruct.py: return 0 at end of *_free_*()
* segfault: context_map gc: use llist_for_each_entry_safe()
* rua: discard context maps on id-Disconnect
* rua_to_scu(): don't create a context map for UNITDATA
* cosmetic: context_map_tmr_cb(): fix comment
* osmo-hnbgw config: add 'rnc-id' config item
* osmo-hnbgw: startup: log the RNC-Id that is going to be used
* comments: hnbgw_rua.c: remove obsolete fixmes for asn1 free
* vty typo: 'show hnb': SCTP stream, not SCCP stream
* hnbgw_rua.c: log: fix integer format for cN_DomainIndicator
* hnbgw_rua: fix dereference of unset pointer
* hnbgw_cn: rx ranap: set rc in all cases
* hnbgw_hnbap: fix missing return in rx [un]successful outcome
* cosmetic: hnbgw: hnbap: log rx of unsuccessful outcome
* hnbap: log errors on decoding/encoding HNB-REGISTER msgs
* hnb-test: log accurate three-digit MNC with leading zeros
* configure: add --enable-werror
* cosmetic: use osmo_plmn_id instead of mcc,mnc
[ Harald Welte ]
* osmo-hnbgw: Avoid useless linking to libosmogsm and libsctp
* Link libosmo-ranap against libosmovty
* Add "-Wall" to the compile rules of the non-asn1c-generated source code
* hnbgw.c: Remove dead code creating libsctp linker dependency
* sccp_sap_up(): Fix never-hit "default" case in switch
* Fix various compiler warnings in hnb-gw code
* hnbgw_vty.c: cosmetic: Fix non-tab-indented code
* hnbgw_vty.c: Fix "-Werror=format-security" failure in vty_out()
[ Philipp Maier ]
* iu: iu_helpers: add functions to decode ip/port from rab-ass
* ranap_msg_factory: check IE encoder return codes
* ranap_msg_factory: remove unusued variable
[ Max ]
* Use proper package version
* Add control interface
* Expand ctrl interface
* Enable sanitize for CI tests
[ Pau Espin Pedrol ]
* iu_client.c: Remove unusued variable
* configure.ac: Enable -Wall flag
* contrib: jenkins.sh: Disable doxygen in libosmocore build
* debian/changelog: set prev releases to unstable
[ Stefan Sperling ]
* ensure unique CellIDs in HNB-GW
-- Pau Espin Pedrol <pespin@sysmocom.de> Thu, 03 May 2018 18:29:13 +0200
osmo-iuh (0.2.0) unstable; urgency=low
* Upstream 0.2.0 release
-- Harald Welte <laforge@gnumonks.org> Fri, 27 Oct 2017 22:19:00 +0000
osmo-iuh (0.1.0) unstable; urgency=low
* Initial release.
-- Alexander Couzens <lynxis@fe80.eu> Tue, 08 Aug 2017 04:13:19 +0000

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
10

110
debian/control vendored Normal file
View File

@ -0,0 +1,110 @@
Source: osmo-iuh
Section: libs
Priority: extra
Maintainer: Osmocom team <openbsc@lists.osmocom.org>
Build-Depends: debhelper (>= 10),
dh-autoreconf,
pkg-config,
autoconf,
automake,
libtool,
git,
libasn1c-dev,
libsctp-dev,
libosmocore-dev (>= 1.9.0),
libosmo-netif-dev (>= 1.4.0),
libosmo-sigtran-dev (>= 1.8.0),
osmo-gsm-manuals-dev (>= 1.5.0),
python3
Standards-Version: 3.9.8
Vcs-Git: https://gitea.osmocom.org/cellular-infrastructure/osmo-iuh
Vcs-Browser: https://gitea.osmocom.org/cellular-infrastructure/osmo-iuh
Homepage: https://projects.osmocom.org/projects/osmohnbgw
Package: libosmo-hnbap0
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Osmocom code for the Iuh interface (HNBAP, RUA, RANAP)
Package: libosmo-hnbap-dbg
Section: debug
Architecture: any
Multi-Arch: same
Depends: libosmo-hnbap0 (= ${binary:Version}), ${misc:Depends}
Description: Osmocom code for the Iuh interface (HNBAP, RUA, RANAP)
Package: libosmo-hnbap-dev
Section: libdevel
Architecture: any
Multi-Arch: same
Depends: libosmo-hnbap0 (= ${binary:Version}), ${misc:Depends}
Description: Osmocom code for the Iuh interface (HNBAP, RUA, RANAP)
Package: libosmo-ranap7
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Osmocom code for the Iuh interface (HNBAP, RUA, RANAP)
Package: libosmo-ranap-dbg
Section: debug
Architecture: any
Multi-Arch: same
Depends: libosmo-ranap7 (= ${binary:Version}), ${misc:Depends}
Description: Osmocom code for the Iuh interface (HNBAP, RUA, RANAP)
Package: libosmo-ranap-dev
Section: libdevel
Architecture: any
Multi-Arch: same
Depends: libosmo-ranap7 (= ${binary:Version}), ${misc:Depends}
Description: Osmocom code for the Iuh interface (HNBAP, RUA, RANAP)
Package: libosmo-rua0
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Osmocom code for the Iuh interface (HNBAP, RUA, RANAP)
Package: libosmo-rua-dbg
Section: debug
Architecture: any
Multi-Arch: same
Depends: libosmo-rua0 (= ${binary:Version}), ${misc:Depends}
Description: Osmocom code for the Iuh interface (HNBAP, RUA, RANAP)
Package: libosmo-rua-dev
Section: libdevel
Architecture: any
Multi-Arch: same
Depends: libosmo-rua0 (= ${binary:Version}), ${misc:Depends}
Description: Osmocom code for the Iuh interface (HNBAP, RUA, RANAP)
Package: libosmo-sabp1
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Osmocom code for the Iuh interface (SABP)
Package: libosmo-sabp-dbg
Section: debug
Architecture: any
Multi-Arch: same
Depends: libosmo-sabp1 (= ${binary:Version}), ${misc:Depends}
Description: Osmocom code for the Iuh interface (SABP)
Package: libosmo-sabp-dev
Section: libdevel
Architecture: any
Multi-Arch: same
Depends: libosmo-sabp1 (= ${binary:Version}), ${misc:Depends}
Description: Osmocom code for the Iuh interface (SABP)

48
debian/copyright vendored Normal file
View File

@ -0,0 +1,48 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: osmo-iuh
Source: https://gitea.osmocom.org/cellular-infrastructure/osmo-iuh
Files: *
Copyright: 2015 Daniel Willmann <dwillmann@sysmocom.de>
2015 Harald Welte <laforge@gnumonks.org>
2015-2017 sysmocom s.f.m.c. GmbH <info@sysmocom.de>
License: AGPL-3.0+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Files: asn1/rua/eurecom/rua_decoder.c
asn1/rua/eurecom/rua_encoder.c
asn1/rua/eurecom/rua_ies_defs.h
Copyright: 1999-2012 Eurecom
License: GPL-2.0
This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License,
version 2, as published by the Free Software Foundation.
.
This program is distributed in the hope it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
.
The full GNU General Public License is included in this distribution in
the file called "COPYING".
.
Contact Information
.
On Debian systems, the complete text of the GNU General Public License
Version 2 can be found in `/usr/share/common-licenses/GPL-2'.

3
debian/libosmo-hnbap-dev.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/include/osmocom/hnbap
usr/lib/*/libosmo-hnbap.so
usr/lib/*/pkgconfig/libosmo-hnbap.pc

1
debian/libosmo-hnbap0.install vendored Normal file
View File

@ -0,0 +1 @@
usr/lib/*/libosmo-hnbap*.so.*

3
debian/libosmo-ranap-dev.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/include/osmocom/ranap
usr/lib/*/libosmo-ranap.so
usr/lib/*/pkgconfig/libosmo-ranap.pc

1
debian/libosmo-ranap7.install vendored Normal file
View File

@ -0,0 +1 @@
usr/lib/*/libosmo-ranap*.so.*

3
debian/libosmo-rua-dev.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/include/osmocom/rua
usr/lib/*/libosmo-rua.so
usr/lib/*/pkgconfig/libosmo-rua.pc

1
debian/libosmo-rua0.install vendored Normal file
View File

@ -0,0 +1 @@
usr/lib/*/libosmo-rua*.so.*

3
debian/libosmo-sabp-dev.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/include/osmocom/sabp
usr/lib/*/libosmo-sabp.so
usr/lib/*/pkgconfig/libosmo-sabp.pc

1
debian/libosmo-sabp1.install vendored Normal file
View File

@ -0,0 +1 @@
usr/lib/*/libosmo-sabp*.so.*

24
debian/rules vendored Executable file
View File

@ -0,0 +1,24 @@
#!/usr/bin/make -f
DEBIAN := $(shell dpkg-parsechangelog | grep ^Version: | cut -d' ' -f2)
DEBVERS := $(shell echo '$(DEBIAN)' | cut -d- -f1)
VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/[+-].*//' -e 's/~//g')
# main packaging script based on dh7 syntax
%:
dh $@ --with autoreconf
# See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg
override_dh_strip:
dh_strip -plibosmo-hnbap0 --dbg-package=libosmo-hnbap-dbg
dh_strip -plibosmo-ranap7 --dbg-package=libosmo-ranap-dbg
dh_strip -plibosmo-rua0 --dbg-package=libosmo-rua-dbg
dh_strip -plibosmo-sabp1 --dbg-package=libosmo-sabp-dbg
# Print test results in case of a failure
override_dh_auto_test:
dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false)
# Don't create .pdf.gz files (barely saves space and they can't be opened directly by most pdf readers)
override_dh_compress:
dh_compress -X.pdf

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (native)

View File

@ -1,4 +1,5 @@
SUBDIRS = examples
SUBDIRS = \
$(NULL)
EXTRA_DIST = \
hnb_cs_lu.msc \
@ -8,5 +9,4 @@ EXTRA_DIST = \
hnb_cs_mt_sms.msc \
hnb_ps_lu.msc \
hnb_ps_pdp_act.msc \
protocols_around_hnbgw.txt \
README

View File

@ -1,23 +0,0 @@
CFG_FILES = find $(srcdir) -name '*.cfg*' | sed -e 's,^$(srcdir),,'
dist-hook:
for f in $$($(CFG_FILES)); do \
j="$(distdir)/$$f" && \
mkdir -p "$$(dirname $$j)" && \
$(INSTALL_DATA) $(srcdir)/$$f $$j; \
done
install-data-hook:
for f in $$($(CFG_FILES)); do \
j="$(DESTDIR)$(docdir)/examples/$$f" && \
mkdir -p "$$(dirname $$j)" && \
$(INSTALL_DATA) $(srcdir)/$$f $$j; \
done
uninstall-hook:
@$(PRE_UNINSTALL)
for f in $$($(CFG_FILES)); do \
j="$(DESTDIR)$(docdir)/examples/$$f" && \
$(RM) $$j; \
done

View File

@ -1,25 +0,0 @@
!
! OsmoHNBGW (0) configuration saved from vty
!!
!
log stderr
logging filter all 1
logging color 1
logging print category 1
logging timestamp 1
logging print extended-timestamp 1
logging level all debug
logging level lglobal notice
logging level llapd notice
logging level linp notice
logging level lmux notice
logging level lmi notice
logging level lmib notice
logging level lsms notice
logging level lctrl notice
logging level lgtp notice
logging level lstats notice
hnbgw
iuh
local-ip 10.23.24.1
hnbap-allow-tmsi 1

View File

@ -1,60 +0,0 @@
Protocols Around the Home Node B Gateway
========================================
+--------+
,-->| Osmo |
/ | MGCPGW |
| | |<--MGCP
| +--------+ \
/ |
+------------+<--RTP +--------+ `->+----------+
UE <-->| hNodeB | | Osmo | | OsmoMSC | +------+
UE <-->| femto cell |<--Iuh---->| HNB-GW |<--IuCS-->| | | Osmo |
| | | | | (VLR)|<-GSUP->| HLR |
| | | | +----------+ GSUP->+------+
+------------+<--GTP-U | | /
\ | | +------+<---' +------+
| | |<--IuPS-->| Osmo |<--GTP-C--->| Open |
| +--------+ | SGSN | GTP-U--->| GGSN |
| +------+ / +------+
\_______________________________/
Iuh IuCS/IuPS
NAS +----+----+ +----+----+
Non-Access Stratum | CC | MM | | CC | MM |
- - - - - - - - - - - +----+----+-------+ +----+----+
| RANAP | | H | RANAP |
Access Stratum +---------+ HNBAP | N +---------+ - - SCCP USER SAP
| RUA | | B | SUA | \
+---------+-------+ - +---------+ |
| SCTP | G | SCTP | } SIGTRAN
+-----------------+ W +---------+ |
| IP | | IP | /
+-----------------+ +---------+
Various SIGTRAN implementations:
IuCS/IuPS
usual
| simplest
| |
v v
+------+------+------+-----+
| SCCP | SCCP | | |
+------+------+ SCCP | |
| MTP3 | MTP3 | | |
+------+------+------+ SUA |
| MTP2 | | | |
+------+ M2UA | M3UA | |
| M2PA | | | |
+------+------+------+-----+
| SCTP |
+--------------------------+
| IP |
+--------------------------+
UE (User Endpoint) == MS (Mobile Subscriber) == mobile device

View File

@ -1,2 +1,2 @@
SUBDIRS = hnbap ranap rua iuh
SUBDIRS = hnbap ranap rua sabp iuh

View File

@ -1,56 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _Access_stratum_release_indicator_H_
#define _Access_stratum_release_indicator_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum Access_stratum_release_indicator {
Access_stratum_release_indicator_r99 = 0,
Access_stratum_release_indicator_rel_4 = 1,
Access_stratum_release_indicator_rel_5 = 2,
Access_stratum_release_indicator_rel_6 = 3,
Access_stratum_release_indicator_rel_7 = 4,
Access_stratum_release_indicator_rel_8_and_beyond = 5
/*
* Enumeration is extensible
*/
} e_Access_stratum_release_indicator;
/* Access-stratum-release-indicator */
typedef long Access_stratum_release_indicator_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Access_stratum_release_indicator;
asn_struct_free_f Access_stratum_release_indicator_free;
asn_struct_print_f Access_stratum_release_indicator_print;
asn_constr_check_f Access_stratum_release_indicator_constraint;
ber_type_decoder_f Access_stratum_release_indicator_decode_ber;
der_type_encoder_f Access_stratum_release_indicator_encode_der;
xer_type_decoder_f Access_stratum_release_indicator_decode_xer;
xer_type_encoder_f Access_stratum_release_indicator_encode_xer;
per_type_decoder_f Access_stratum_release_indicator_decode_uper;
per_type_encoder_f Access_stratum_release_indicator_encode_uper;
per_type_decoder_f Access_stratum_release_indicator_decode_aper;
per_type_encoder_f Access_stratum_release_indicator_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _Access_stratum_release_indicator_H_ */
#include <asn_internal.h>

View File

@ -1,52 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _AccessResult_H_
#define _AccessResult_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AccessResult {
AccessResult_allowed = 0,
AccessResult_notAllowed = 1
/*
* Enumeration is extensible
*/
} e_AccessResult;
/* AccessResult */
typedef long AccessResult_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AccessResult;
asn_struct_free_f AccessResult_free;
asn_struct_print_f AccessResult_print;
asn_constr_check_f AccessResult_constraint;
ber_type_decoder_f AccessResult_decode_ber;
der_type_encoder_f AccessResult_encode_der;
xer_type_decoder_f AccessResult_decode_xer;
xer_type_encoder_f AccessResult_encode_xer;
per_type_decoder_f AccessResult_decode_uper;
per_type_encoder_f AccessResult_encode_uper;
per_type_decoder_f AccessResult_decode_aper;
per_type_encoder_f AccessResult_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AccessResult_H_ */
#include <asn_internal.h>

View File

@ -1,44 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _AdditionalNeighbourInfoList_H_
#define _AdditionalNeighbourInfoList_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct HNBConfigInfo;
/* AdditionalNeighbourInfoList */
typedef struct AdditionalNeighbourInfoList {
A_SEQUENCE_OF(struct HNBConfigInfo) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AdditionalNeighbourInfoList_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AdditionalNeighbourInfoList;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include <osmocom/hnbap/HNBConfigInfo.h>
#endif /* _AdditionalNeighbourInfoList_H_ */
#include <asn_internal.h>

View File

@ -1,43 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _BackoffTimer_H_
#define _BackoffTimer_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* BackoffTimer */
typedef long BackoffTimer_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_BackoffTimer;
asn_struct_free_f BackoffTimer_free;
asn_struct_print_f BackoffTimer_print;
asn_constr_check_f BackoffTimer_constraint;
ber_type_decoder_f BackoffTimer_decode_ber;
der_type_encoder_f BackoffTimer_encode_der;
xer_type_decoder_f BackoffTimer_decode_xer;
xer_type_encoder_f BackoffTimer_encode_xer;
per_type_decoder_f BackoffTimer_decode_uper;
per_type_encoder_f BackoffTimer_encode_uper;
per_type_decoder_f BackoffTimer_decode_aper;
per_type_encoder_f BackoffTimer_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _BackoffTimer_H_ */
#include <asn_internal.h>

View File

@ -1,43 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _BindingID_H_
#define _BindingID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* BindingID */
typedef OCTET_STRING_t BindingID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_BindingID;
asn_struct_free_f BindingID_free;
asn_struct_print_f BindingID_print;
asn_constr_check_f BindingID_constraint;
ber_type_decoder_f BindingID_decode_ber;
der_type_encoder_f BindingID_encode_der;
xer_type_decoder_f BindingID_decode_xer;
xer_type_encoder_f BindingID_encode_xer;
per_type_decoder_f BindingID_decode_uper;
per_type_encoder_f BindingID_encode_uper;
per_type_decoder_f BindingID_decode_aper;
per_type_encoder_f BindingID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _BindingID_H_ */
#include <asn_internal.h>

View File

@ -1,51 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CELL_FACHMobilitySupport_H_
#define _CELL_FACHMobilitySupport_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CELL_FACHMobilitySupport {
CELL_FACHMobilitySupport_supported = 0
/*
* Enumeration is extensible
*/
} e_CELL_FACHMobilitySupport;
/* CELL-FACHMobilitySupport */
typedef long CELL_FACHMobilitySupport_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CELL_FACHMobilitySupport;
asn_struct_free_f CELL_FACHMobilitySupport_free;
asn_struct_print_f CELL_FACHMobilitySupport_print;
asn_constr_check_f CELL_FACHMobilitySupport_constraint;
ber_type_decoder_f CELL_FACHMobilitySupport_decode_ber;
der_type_encoder_f CELL_FACHMobilitySupport_encode_der;
xer_type_decoder_f CELL_FACHMobilitySupport_decode_xer;
xer_type_encoder_f CELL_FACHMobilitySupport_encode_xer;
per_type_decoder_f CELL_FACHMobilitySupport_decode_uper;
per_type_encoder_f CELL_FACHMobilitySupport_encode_uper;
per_type_decoder_f CELL_FACHMobilitySupport_decode_aper;
per_type_encoder_f CELL_FACHMobilitySupport_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CELL_FACHMobilitySupport_H_ */
#include <asn_internal.h>

View File

@ -1,49 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CGI_H_
#define _CGI_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/PLMNidentity.h>
#include <osmocom/hnbap/LAC.h>
#include <osmocom/hnbap/CI.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct IE_Extensions;
/* CGI */
typedef struct CGI {
PLMNidentity_t pLMNidentity;
LAC_t lAC;
CI_t cI;
struct IE_Extensions *iE_Extensions /* OPTIONAL */;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CGI_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CGI;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include <osmocom/hnbap/IE-Extensions.h>
#endif /* _CGI_H_ */
#include <asn_internal.h>

View File

@ -1,43 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CI_H_
#define _CI_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* CI */
typedef OCTET_STRING_t CI_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CI;
asn_struct_free_f CI_free;
asn_struct_print_f CI_print;
asn_constr_check_f CI_constraint;
ber_type_decoder_f CI_decode_ber;
der_type_encoder_f CI_encode_der;
xer_type_decoder_f CI_decode_xer;
xer_type_encoder_f CI_encode_xer;
per_type_decoder_f CI_decode_uper;
per_type_encoder_f CI_encode_uper;
per_type_decoder_f CI_decode_aper;
per_type_encoder_f CI_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CI_H_ */
#include <asn_internal.h>

View File

@ -1,49 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CN_DomainIndicator_H_
#define _CN_DomainIndicator_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CN_DomainIndicator {
CN_DomainIndicator_cs_domain = 0,
CN_DomainIndicator_ps_domain = 1
} e_CN_DomainIndicator;
/* CN-DomainIndicator */
typedef long CN_DomainIndicator_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CN_DomainIndicator;
asn_struct_free_f CN_DomainIndicator_free;
asn_struct_print_f CN_DomainIndicator_print;
asn_constr_check_f CN_DomainIndicator_constraint;
ber_type_decoder_f CN_DomainIndicator_decode_ber;
der_type_encoder_f CN_DomainIndicator_encode_der;
xer_type_decoder_f CN_DomainIndicator_decode_xer;
xer_type_encoder_f CN_DomainIndicator_encode_xer;
per_type_decoder_f CN_DomainIndicator_decode_uper;
per_type_encoder_f CN_DomainIndicator_encode_uper;
per_type_decoder_f CN_DomainIndicator_decode_aper;
per_type_encoder_f CN_DomainIndicator_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CN_DomainIndicator_H_ */
#include <asn_internal.h>

View File

@ -1,52 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CSG_Capability_H_
#define _CSG_Capability_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CSG_Capability {
CSG_Capability_csg_capable = 0,
CSG_Capability_not_csg_capable = 1
/*
* Enumeration is extensible
*/
} e_CSG_Capability;
/* CSG-Capability */
typedef long CSG_Capability_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CSG_Capability;
asn_struct_free_f CSG_Capability_free;
asn_struct_print_f CSG_Capability_print;
asn_constr_check_f CSG_Capability_constraint;
ber_type_decoder_f CSG_Capability_decode_ber;
der_type_encoder_f CSG_Capability_encode_der;
xer_type_decoder_f CSG_Capability_decode_xer;
xer_type_encoder_f CSG_Capability_encode_xer;
per_type_decoder_f CSG_Capability_decode_uper;
per_type_encoder_f CSG_Capability_encode_uper;
per_type_decoder_f CSG_Capability_decode_aper;
per_type_encoder_f CSG_Capability_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CSG_Capability_H_ */
#include <asn_internal.h>

View File

@ -1,43 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CSG_ID_H_
#define _CSG_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* CSG-ID */
typedef BIT_STRING_t CSG_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CSG_ID;
asn_struct_free_f CSG_ID_free;
asn_struct_print_f CSG_ID_print;
asn_constr_check_f CSG_ID_constraint;
ber_type_decoder_f CSG_ID_decode_ber;
der_type_encoder_f CSG_ID_encode_der;
xer_type_decoder_f CSG_ID_decode_xer;
xer_type_encoder_f CSG_ID_encode_xer;
per_type_decoder_f CSG_ID_decode_uper;
per_type_encoder_f CSG_ID_encode_uper;
per_type_decoder_f CSG_ID_decode_aper;
per_type_encoder_f CSG_ID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CSG_ID_H_ */
#include <asn_internal.h>

View File

@ -1,52 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CSGMembershipStatus_H_
#define _CSGMembershipStatus_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CSGMembershipStatus {
CSGMembershipStatus_member = 0,
CSGMembershipStatus_non_member = 1
/*
* Enumeration is extensible
*/
} e_CSGMembershipStatus;
/* CSGMembershipStatus */
typedef long CSGMembershipStatus_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CSGMembershipStatus;
asn_struct_free_f CSGMembershipStatus_free;
asn_struct_print_f CSGMembershipStatus_print;
asn_constr_check_f CSGMembershipStatus_constraint;
ber_type_decoder_f CSGMembershipStatus_decode_ber;
der_type_encoder_f CSGMembershipStatus_encode_der;
xer_type_decoder_f CSGMembershipStatus_decode_xer;
xer_type_encoder_f CSGMembershipStatus_encode_xer;
per_type_decoder_f CSGMembershipStatus_decode_uper;
per_type_encoder_f CSGMembershipStatus_encode_uper;
per_type_decoder_f CSGMembershipStatus_decode_aper;
per_type_encoder_f CSGMembershipStatus_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CSGMembershipStatus_H_ */
#include <asn_internal.h>

View File

@ -1,62 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _Cause_H_
#define _Cause_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/CauseRadioNetwork.h>
#include <osmocom/hnbap/CauseTransport.h>
#include <osmocom/hnbap/CauseProtocol.h>
#include <osmocom/hnbap/CauseMisc.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum Cause_PR {
Cause_PR_NOTHING, /* No components present */
Cause_PR_radioNetwork,
Cause_PR_transport,
Cause_PR_protocol,
Cause_PR_misc,
/* Extensions may appear below */
} Cause_PR;
/* Cause */
typedef struct Cause {
Cause_PR present;
union Cause_u {
CauseRadioNetwork_t radioNetwork;
CauseTransport_t transport;
CauseProtocol_t protocol;
CauseMisc_t misc;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} Cause_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Cause;
#ifdef __cplusplus
}
#endif
#endif /* _Cause_H_ */
#include <asn_internal.h>

View File

@ -1,54 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CauseMisc_H_
#define _CauseMisc_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CauseMisc {
CauseMisc_processing_overload = 0,
CauseMisc_hardware_failure = 1,
CauseMisc_o_and_m_intervention = 2,
CauseMisc_unspecified = 3
/*
* Enumeration is extensible
*/
} e_CauseMisc;
/* CauseMisc */
typedef long CauseMisc_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CauseMisc;
asn_struct_free_f CauseMisc_free;
asn_struct_print_f CauseMisc_print;
asn_constr_check_f CauseMisc_constraint;
ber_type_decoder_f CauseMisc_decode_ber;
der_type_encoder_f CauseMisc_encode_der;
xer_type_decoder_f CauseMisc_decode_xer;
xer_type_encoder_f CauseMisc_encode_xer;
per_type_decoder_f CauseMisc_decode_uper;
per_type_encoder_f CauseMisc_encode_uper;
per_type_decoder_f CauseMisc_decode_aper;
per_type_encoder_f CauseMisc_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CauseMisc_H_ */
#include <asn_internal.h>

View File

@ -1,57 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CauseProtocol_H_
#define _CauseProtocol_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CauseProtocol {
CauseProtocol_transfer_syntax_error = 0,
CauseProtocol_abstract_syntax_error_reject = 1,
CauseProtocol_abstract_syntax_error_ignore_and_notify = 2,
CauseProtocol_message_not_compatible_with_receiver_state = 3,
CauseProtocol_semantic_error = 4,
CauseProtocol_unspecified = 5,
CauseProtocol_abstract_syntax_error_falsely_constructed_message = 6
/*
* Enumeration is extensible
*/
} e_CauseProtocol;
/* CauseProtocol */
typedef long CauseProtocol_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol;
asn_struct_free_f CauseProtocol_free;
asn_struct_print_f CauseProtocol_print;
asn_constr_check_f CauseProtocol_constraint;
ber_type_decoder_f CauseProtocol_decode_ber;
der_type_encoder_f CauseProtocol_encode_der;
xer_type_decoder_f CauseProtocol_decode_xer;
xer_type_encoder_f CauseProtocol_encode_xer;
per_type_decoder_f CauseProtocol_decode_uper;
per_type_encoder_f CauseProtocol_encode_uper;
per_type_decoder_f CauseProtocol_decode_aper;
per_type_encoder_f CauseProtocol_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CauseProtocol_H_ */
#include <asn_internal.h>

View File

@ -1,66 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CauseRadioNetwork_H_
#define _CauseRadioNetwork_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CauseRadioNetwork {
CauseRadioNetwork_overload = 0,
CauseRadioNetwork_unauthorised_Location = 1,
CauseRadioNetwork_unauthorised_HNB = 2,
CauseRadioNetwork_hNB_parameter_mismatch = 3,
CauseRadioNetwork_invalid_UE_identity = 4,
CauseRadioNetwork_uE_not_allowed_on_this_HNB = 5,
CauseRadioNetwork_uE_unauthorised = 6,
CauseRadioNetwork_connection_with_UE_lost = 7,
CauseRadioNetwork_ue_RRC_release = 8,
CauseRadioNetwork_hNB_not_registered = 9,
CauseRadioNetwork_unspecified = 10,
CauseRadioNetwork_normal = 11,
CauseRadioNetwork_uE_relocated = 12,
CauseRadioNetwork_ue_registered_in_another_HNB = 13,
/*
* Enumeration is extensible
*/
CauseRadioNetwork_no_neighbour_information_available = 14,
CauseRadioNetwork_iurh_connection_to_that_neighbour_not_Allowed = 15
} e_CauseRadioNetwork;
/* CauseRadioNetwork */
typedef long CauseRadioNetwork_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CauseRadioNetwork;
asn_struct_free_f CauseRadioNetwork_free;
asn_struct_print_f CauseRadioNetwork_print;
asn_constr_check_f CauseRadioNetwork_constraint;
ber_type_decoder_f CauseRadioNetwork_decode_ber;
der_type_encoder_f CauseRadioNetwork_encode_der;
xer_type_decoder_f CauseRadioNetwork_decode_xer;
xer_type_encoder_f CauseRadioNetwork_encode_xer;
per_type_decoder_f CauseRadioNetwork_decode_uper;
per_type_encoder_f CauseRadioNetwork_encode_uper;
per_type_decoder_f CauseRadioNetwork_decode_aper;
per_type_encoder_f CauseRadioNetwork_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CauseRadioNetwork_H_ */
#include <asn_internal.h>

View File

@ -1,52 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CauseTransport_H_
#define _CauseTransport_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CauseTransport {
CauseTransport_transport_resource_unavailable = 0,
CauseTransport_unspecified = 1
/*
* Enumeration is extensible
*/
} e_CauseTransport;
/* CauseTransport */
typedef long CauseTransport_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CauseTransport;
asn_struct_free_f CauseTransport_free;
asn_struct_print_f CauseTransport_print;
asn_constr_check_f CauseTransport_constraint;
ber_type_decoder_f CauseTransport_decode_ber;
der_type_encoder_f CauseTransport_encode_der;
xer_type_decoder_f CauseTransport_decode_xer;
xer_type_encoder_f CauseTransport_encode_xer;
per_type_decoder_f CauseTransport_decode_uper;
per_type_encoder_f CauseTransport_encode_uper;
per_type_decoder_f CauseTransport_decode_aper;
per_type_encoder_f CauseTransport_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CauseTransport_H_ */
#include <asn_internal.h>

View File

@ -1,43 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CellIdentity_H_
#define _CellIdentity_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* CellIdentity */
typedef BIT_STRING_t CellIdentity_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CellIdentity;
asn_struct_free_f CellIdentity_free;
asn_struct_print_f CellIdentity_print;
asn_constr_check_f CellIdentity_constraint;
ber_type_decoder_f CellIdentity_decode_ber;
der_type_encoder_f CellIdentity_encode_der;
xer_type_decoder_f CellIdentity_decode_xer;
xer_type_encoder_f CellIdentity_encode_xer;
per_type_decoder_f CellIdentity_decode_uper;
per_type_encoder_f CellIdentity_encode_uper;
per_type_decoder_f CellIdentity_decode_aper;
per_type_encoder_f CellIdentity_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CellIdentity_H_ */
#include <asn_internal.h>

View File

@ -1,56 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _ConfigurationInformation_H_
#define _ConfigurationInformation_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/HNBConfigurationInformationProvided.h>
#include <osmocom/hnbap/HNBConfigurationInformationMissing.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum ConfigurationInformation_PR {
ConfigurationInformation_PR_NOTHING, /* No components present */
ConfigurationInformation_PR_provided,
ConfigurationInformation_PR_missing,
/* Extensions may appear below */
} ConfigurationInformation_PR;
/* ConfigurationInformation */
typedef struct ConfigurationInformation {
ConfigurationInformation_PR present;
union ConfigurationInformation_u {
HNBConfigurationInformationProvided_t provided;
HNBConfigurationInformationMissing_t missing;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ConfigurationInformation_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ConfigurationInformation;
#ifdef __cplusplus
}
#endif
#endif /* _ConfigurationInformation_H_ */
#include <asn_internal.h>

View File

@ -1,43 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _Context_ID_H_
#define _Context_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Context-ID */
typedef BIT_STRING_t Context_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Context_ID;
asn_struct_free_f Context_ID_free;
asn_struct_print_f Context_ID_print;
asn_constr_check_f Context_ID_constraint;
ber_type_decoder_f Context_ID_decode_ber;
der_type_encoder_f Context_ID_encode_der;
xer_type_decoder_f Context_ID_decode_xer;
xer_type_encoder_f Context_ID_encode_xer;
per_type_decoder_f Context_ID_decode_uper;
per_type_encoder_f Context_ID_encode_uper;
per_type_decoder_f Context_ID_decode_aper;
per_type_encoder_f Context_ID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _Context_ID_H_ */
#include <asn_internal.h>

View File

@ -1,50 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-CommonDataTypes"
* found in "../../asn1/hnbap/HNBAP-CommonDataTypes.asn"
* `asn1c -gen-PER`
*/
#ifndef _Criticality_H_
#define _Criticality_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum Criticality {
Criticality_reject = 0,
Criticality_ignore = 1,
Criticality_notify = 2
} e_Criticality;
/* Criticality */
typedef long Criticality_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Criticality;
asn_struct_free_f Criticality_free;
asn_struct_print_f Criticality_print;
asn_constr_check_f Criticality_constraint;
ber_type_decoder_f Criticality_decode_ber;
der_type_encoder_f Criticality_encode_der;
xer_type_decoder_f Criticality_decode_xer;
xer_type_encoder_f Criticality_encode_xer;
per_type_decoder_f Criticality_decode_uper;
per_type_encoder_f Criticality_encode_uper;
per_type_decoder_f Criticality_decode_aper;
per_type_encoder_f Criticality_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _Criticality_H_ */
#include <asn_internal.h>

View File

@ -1,60 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CriticalityDiagnostics_IE_List_H_
#define _CriticalityDiagnostics_IE_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <osmocom/hnbap/Criticality.h>
#include <osmocom/hnbap/ProtocolIE-ID.h>
#include <osmocom/hnbap/TypeOfError.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct IE_Extensions;
/* CriticalityDiagnostics-IE-List */
typedef struct CriticalityDiagnostics_IE_List {
A_SEQUENCE_OF(struct Member {
Criticality_t iECriticality;
ProtocolIE_ID_t iE_ID;
TypeOfError_t typeOfError;
struct IE_Extensions *iE_Extensions /* OPTIONAL */;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CriticalityDiagnostics_IE_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include <osmocom/hnbap/IE-Extensions.h>
#endif /* _CriticalityDiagnostics_IE_List_H_ */
#include <asn_internal.h>

View File

@ -1,56 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _CriticalityDiagnostics_H_
#define _CriticalityDiagnostics_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/ProcedureCode.h>
#include <osmocom/hnbap/TriggeringMessage.h>
#include <osmocom/hnbap/Criticality.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct CriticalityDiagnostics_IE_List;
struct IE_Extensions;
/* CriticalityDiagnostics */
typedef struct CriticalityDiagnostics {
ProcedureCode_t *procedureCode /* OPTIONAL */;
TriggeringMessage_t *triggeringMessage /* OPTIONAL */;
Criticality_t *procedureCriticality /* OPTIONAL */;
struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics /* OPTIONAL */;
struct IE_Extensions *iE_Extensions /* OPTIONAL */;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CriticalityDiagnostics_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include <osmocom/hnbap/CriticalityDiagnostics-IE-List.h>
#include <osmocom/hnbap/IE-Extensions.h>
#endif /* _CriticalityDiagnostics_H_ */
#include <asn_internal.h>

View File

@ -1,43 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _ESN_H_
#define _ESN_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* ESN */
typedef BIT_STRING_t ESN_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ESN;
asn_struct_free_f ESN_free;
asn_struct_print_f ESN_print;
asn_constr_check_f ESN_constraint;
ber_type_decoder_f ESN_decode_ber;
der_type_encoder_f ESN_encode_der;
xer_type_decoder_f ESN_decode_xer;
xer_type_encoder_f ESN_encode_xer;
per_type_decoder_f ESN_decode_uper;
per_type_encoder_f ESN_encode_uper;
per_type_decoder_f ESN_decode_aper;
per_type_encoder_f ESN_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _ESN_H_ */
#include <asn_internal.h>

View File

@ -1,43 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _GTP_TEI_H_
#define _GTP_TEI_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GTP-TEI */
typedef OCTET_STRING_t GTP_TEI_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GTP_TEI;
asn_struct_free_f GTP_TEI_free;
asn_struct_print_f GTP_TEI_print;
asn_constr_check_f GTP_TEI_constraint;
ber_type_decoder_f GTP_TEI_decode_ber;
der_type_encoder_f GTP_TEI_encode_der;
xer_type_decoder_f GTP_TEI_decode_xer;
xer_type_encoder_f GTP_TEI_encode_xer;
per_type_decoder_f GTP_TEI_decode_uper;
per_type_encoder_f GTP_TEI_encode_uper;
per_type_decoder_f GTP_TEI_decode_aper;
per_type_encoder_f GTP_TEI_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _GTP_TEI_H_ */
#include <asn_internal.h>

View File

@ -1,51 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _GeographicalLocation_H_
#define _GeographicalLocation_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/GeographicalCoordinates.h>
#include <osmocom/hnbap/AltitudeAndDirection.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct IE_Extensions;
/* GeographicalLocation */
typedef struct GeographicalLocation {
GeographicalCoordinates_t geographicalCoordinates;
AltitudeAndDirection_t altitudeAndDirection;
struct IE_Extensions *iE_Extensions /* OPTIONAL */;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GeographicalLocation_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GeographicalLocation;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include <osmocom/hnbap/IE-Extensions.h>
#endif /* _GeographicalLocation_H_ */
#include <asn_internal.h>

View File

@ -1,53 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _HNB_Cell_Access_Mode_H_
#define _HNB_Cell_Access_Mode_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNB_Cell_Access_Mode {
HNB_Cell_Access_Mode_closed = 0,
HNB_Cell_Access_Mode_hybrid = 1,
HNB_Cell_Access_Mode_open = 2
/*
* Enumeration is extensible
*/
} e_HNB_Cell_Access_Mode;
/* HNB-Cell-Access-Mode */
typedef long HNB_Cell_Access_Mode_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNB_Cell_Access_Mode;
asn_struct_free_f HNB_Cell_Access_Mode_free;
asn_struct_print_f HNB_Cell_Access_Mode_print;
asn_constr_check_f HNB_Cell_Access_Mode_constraint;
ber_type_decoder_f HNB_Cell_Access_Mode_decode_ber;
der_type_encoder_f HNB_Cell_Access_Mode_encode_der;
xer_type_decoder_f HNB_Cell_Access_Mode_decode_xer;
xer_type_encoder_f HNB_Cell_Access_Mode_encode_xer;
per_type_decoder_f HNB_Cell_Access_Mode_decode_uper;
per_type_encoder_f HNB_Cell_Access_Mode_encode_uper;
per_type_decoder_f HNB_Cell_Access_Mode_decode_aper;
per_type_encoder_f HNB_Cell_Access_Mode_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNB_Cell_Access_Mode_H_ */
#include <asn_internal.h>

View File

@ -1,51 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _HNB_Cell_Identifier_H_
#define _HNB_Cell_Identifier_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/PLMNidentity.h>
#include <osmocom/hnbap/CellIdentity.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct IE_Extensions;
/* HNB-Cell-Identifier */
typedef struct HNB_Cell_Identifier {
PLMNidentity_t pLMNidentity;
CellIdentity_t cellIdentity;
struct IE_Extensions *iE_Extensions /* OPTIONAL */;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} HNB_Cell_Identifier_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNB_Cell_Identifier;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include <osmocom/hnbap/IE-Extensions.h>
#endif /* _HNB_Cell_Identifier_H_ */
#include <asn_internal.h>

View File

@ -1,59 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _HNB_GWResponse_H_
#define _HNB_GWResponse_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/HNBConfigInfo.h>
#include <osmocom/hnbap/RNC-ID.h>
#include <osmocom/hnbap/UnknownU-RNTIIndication.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNB_GWResponse_PR {
HNB_GWResponse_PR_NOTHING, /* No components present */
HNB_GWResponse_PR_hNB,
HNB_GWResponse_PR_macroRNC,
HNB_GWResponse_PR_unknownU_RNTIIndication,
/* Extensions may appear below */
} HNB_GWResponse_PR;
/* HNB-GWResponse */
typedef struct HNB_GWResponse {
HNB_GWResponse_PR present;
union HNB_GWResponse_u {
HNBConfigInfo_t hNB;
RNC_ID_t macroRNC;
UnknownU_RNTIIndication_t unknownU_RNTIIndication;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} HNB_GWResponse_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNB_GWResponse;
#ifdef __cplusplus
}
#endif
#endif /* _HNB_GWResponse_H_ */
#include <asn_internal.h>

View File

@ -1,43 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _HNB_Identity_Info_H_
#define _HNB_Identity_Info_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* HNB-Identity-Info */
typedef OCTET_STRING_t HNB_Identity_Info_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNB_Identity_Info;
asn_struct_free_f HNB_Identity_Info_free;
asn_struct_print_f HNB_Identity_Info_print;
asn_constr_check_f HNB_Identity_Info_constraint;
ber_type_decoder_f HNB_Identity_Info_decode_ber;
der_type_encoder_f HNB_Identity_Info_encode_der;
xer_type_decoder_f HNB_Identity_Info_decode_xer;
xer_type_encoder_f HNB_Identity_Info_encode_xer;
per_type_decoder_f HNB_Identity_Info_decode_uper;
per_type_encoder_f HNB_Identity_Info_encode_uper;
per_type_decoder_f HNB_Identity_Info_decode_aper;
per_type_encoder_f HNB_Identity_Info_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNB_Identity_Info_H_ */
#include <asn_internal.h>

View File

@ -1,53 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _HNB_Location_Information_H_
#define _HNB_Location_Information_H_
#include <asn_application.h>
/* Including external dependencies */
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct MacroCoverageInformation;
struct GeographicalLocation;
struct IE_Extensions;
/* HNB-Location-Information */
typedef struct HNB_Location_Information {
struct MacroCoverageInformation *macroCoverageInfo /* OPTIONAL */;
struct GeographicalLocation *geographicalCoordinates /* OPTIONAL */;
struct IE_Extensions *iE_Extensions /* OPTIONAL */;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} HNB_Location_Information_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNB_Location_Information;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include <osmocom/hnbap/MacroCoverageInformation.h>
#include <osmocom/hnbap/GeographicalLocation.h>
#include <osmocom/hnbap/IE-Extensions.h>
#endif /* _HNB_Location_Information_H_ */
#include <asn_internal.h>

View File

@ -1,53 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
*/
#ifndef _HNB_RNL_Identity_H_
#define _HNB_RNL_Identity_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/HNB-Cell-Identifier.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNB_RNL_Identity_PR {
HNB_RNL_Identity_PR_NOTHING, /* No components present */
HNB_RNL_Identity_PR_hNB_Identity_as_Cell_Identifier,
/* Extensions may appear below */
} HNB_RNL_Identity_PR;
/* HNB-RNL-Identity */
typedef struct HNB_RNL_Identity {
HNB_RNL_Identity_PR present;
union HNB_RNL_Identity_u {
HNB_Cell_Identifier_t hNB_Identity_as_Cell_Identifier;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} HNB_RNL_Identity_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNB_RNL_Identity;
#ifdef __cplusplus
}
#endif
#endif /* _HNB_RNL_Identity_H_ */
#include <asn_internal.h>

View File

@ -1,59 +0,0 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-PDU"
* found in "../../asn1/hnbap/HNBAP-PDU.asn"
* `asn1c -gen-PER`
*/
#ifndef _HNBAP_PDU_H_
#define _HNBAP_PDU_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/InitiatingMessage.h>
#include <osmocom/hnbap/SuccessfulOutcome.h>
#include <osmocom/hnbap/UnsuccessfulOutcome.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_PDU_PR {
HNBAP_PDU_PR_NOTHING, /* No components present */
HNBAP_PDU_PR_initiatingMessage,
HNBAP_PDU_PR_successfulOutcome,
HNBAP_PDU_PR_unsuccessfulOutcome,
/* Extensions may appear below */
} HNBAP_PDU_PR;
/* HNBAP-PDU */
typedef struct HNBAP_PDU {
HNBAP_PDU_PR present;
union HNBAP_PDU_u {
InitiatingMessage_t initiatingMessage;
SuccessfulOutcome_t successfulOutcome;
UnsuccessfulOutcome_t unsuccessfulOutcome;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} HNBAP_PDU_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_PDU;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_PDU_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,56 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_Access_stratum_release_indicator_H_
#define _HNBAP_Access_stratum_release_indicator_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_Access_stratum_release_indicator {
HNBAP_Access_stratum_release_indicator_r99 = 0,
HNBAP_Access_stratum_release_indicator_rel_4 = 1,
HNBAP_Access_stratum_release_indicator_rel_5 = 2,
HNBAP_Access_stratum_release_indicator_rel_6 = 3,
HNBAP_Access_stratum_release_indicator_rel_7 = 4,
HNBAP_Access_stratum_release_indicator_rel_8_and_beyond = 5
/*
* Enumeration is extensible
*/
} e_HNBAP_Access_stratum_release_indicator;
/* HNBAP_Access-stratum-release-indicator */
typedef long HNBAP_Access_stratum_release_indicator_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_Access_stratum_release_indicator;
asn_struct_free_f HNBAP_Access_stratum_release_indicator_free;
asn_struct_print_f HNBAP_Access_stratum_release_indicator_print;
asn_constr_check_f HNBAP_Access_stratum_release_indicator_constraint;
ber_type_decoder_f HNBAP_Access_stratum_release_indicator_decode_ber;
der_type_encoder_f HNBAP_Access_stratum_release_indicator_encode_der;
xer_type_decoder_f HNBAP_Access_stratum_release_indicator_decode_xer;
xer_type_encoder_f HNBAP_Access_stratum_release_indicator_encode_xer;
per_type_decoder_f HNBAP_Access_stratum_release_indicator_decode_uper;
per_type_encoder_f HNBAP_Access_stratum_release_indicator_encode_uper;
per_type_decoder_f HNBAP_Access_stratum_release_indicator_decode_aper;
per_type_encoder_f HNBAP_Access_stratum_release_indicator_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_Access_stratum_release_indicator_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,52 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_AccessResult_H_
#define _HNBAP_AccessResult_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_AccessResult {
HNBAP_AccessResult_allowed = 0,
HNBAP_AccessResult_notAllowed = 1
/*
* Enumeration is extensible
*/
} e_HNBAP_AccessResult;
/* HNBAP_AccessResult */
typedef long HNBAP_AccessResult_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_AccessResult;
asn_struct_free_f HNBAP_AccessResult_free;
asn_struct_print_f HNBAP_AccessResult_print;
asn_constr_check_f HNBAP_AccessResult_constraint;
ber_type_decoder_f HNBAP_AccessResult_decode_ber;
der_type_encoder_f HNBAP_AccessResult_encode_der;
xer_type_decoder_f HNBAP_AccessResult_decode_xer;
xer_type_encoder_f HNBAP_AccessResult_encode_xer;
per_type_decoder_f HNBAP_AccessResult_decode_uper;
per_type_encoder_f HNBAP_AccessResult_encode_uper;
per_type_decoder_f HNBAP_AccessResult_decode_aper;
per_type_encoder_f HNBAP_AccessResult_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_AccessResult_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,39 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_AdditionalNeighbourInfoList_H_
#define _HNBAP_AdditionalNeighbourInfoList_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/HNBAP_HNBConfigInfo.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* HNBAP_AdditionalNeighbourInfoList */
typedef struct HNBAP_AdditionalNeighbourInfoList {
A_SEQUENCE_OF(HNBAP_HNBConfigInfo_t) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} HNBAP_AdditionalNeighbourInfoList_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_AdditionalNeighbourInfoList;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_AdditionalNeighbourInfoList_H_ */
#include <asn_internal.h>

View File

@ -2,11 +2,11 @@
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -gen-PER`
* `asn1c -R -fcompound-names`
*/
#ifndef _AltitudeAndDirection_H_
#define _AltitudeAndDirection_H_
#ifndef _HNBAP_AltitudeAndDirection_H_
#define _HNBAP_AltitudeAndDirection_H_
#include <asn_application.h>
@ -21,13 +21,13 @@ extern "C" {
#endif
/* Dependencies */
typedef enum directionOfAltitude {
directionOfAltitude_height = 0,
directionOfAltitude_depth = 1
} e_directionOfAltitude;
typedef enum HNBAP_AltitudeAndDirection__directionOfAltitude {
HNBAP_AltitudeAndDirection__directionOfAltitude_height = 0,
HNBAP_AltitudeAndDirection__directionOfAltitude_depth = 1
} e_HNBAP_AltitudeAndDirection__directionOfAltitude;
/* AltitudeAndDirection */
typedef struct AltitudeAndDirection {
/* HNBAP_AltitudeAndDirection */
typedef struct HNBAP_AltitudeAndDirection {
long directionOfAltitude;
long altitude;
/*
@ -37,15 +37,15 @@ typedef struct AltitudeAndDirection {
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AltitudeAndDirection_t;
} HNBAP_AltitudeAndDirection_t;
/* Implementation */
/* extern asn_TYPE_descriptor_t asn_DEF_directionOfAltitude_2; // (Use -fall-defs-global to expose) */
extern asn_TYPE_descriptor_t asn_DEF_AltitudeAndDirection;
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_AltitudeAndDirection;
#ifdef __cplusplus
}
#endif
#endif /* _AltitudeAndDirection_H_ */
#endif /* _HNBAP_AltitudeAndDirection_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,43 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_BackoffTimer_H_
#define _HNBAP_BackoffTimer_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* HNBAP_BackoffTimer */
typedef long HNBAP_BackoffTimer_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_BackoffTimer;
asn_struct_free_f HNBAP_BackoffTimer_free;
asn_struct_print_f HNBAP_BackoffTimer_print;
asn_constr_check_f HNBAP_BackoffTimer_constraint;
ber_type_decoder_f HNBAP_BackoffTimer_decode_ber;
der_type_encoder_f HNBAP_BackoffTimer_encode_der;
xer_type_decoder_f HNBAP_BackoffTimer_decode_xer;
xer_type_encoder_f HNBAP_BackoffTimer_encode_xer;
per_type_decoder_f HNBAP_BackoffTimer_decode_uper;
per_type_encoder_f HNBAP_BackoffTimer_encode_uper;
per_type_decoder_f HNBAP_BackoffTimer_decode_aper;
per_type_encoder_f HNBAP_BackoffTimer_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_BackoffTimer_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,43 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_BindingID_H_
#define _HNBAP_BindingID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* HNBAP_BindingID */
typedef OCTET_STRING_t HNBAP_BindingID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_BindingID;
asn_struct_free_f HNBAP_BindingID_free;
asn_struct_print_f HNBAP_BindingID_print;
asn_constr_check_f HNBAP_BindingID_constraint;
ber_type_decoder_f HNBAP_BindingID_decode_ber;
der_type_encoder_f HNBAP_BindingID_encode_der;
xer_type_decoder_f HNBAP_BindingID_decode_xer;
xer_type_encoder_f HNBAP_BindingID_encode_xer;
per_type_decoder_f HNBAP_BindingID_decode_uper;
per_type_encoder_f HNBAP_BindingID_encode_uper;
per_type_decoder_f HNBAP_BindingID_decode_aper;
per_type_encoder_f HNBAP_BindingID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_BindingID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,51 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CELL_FACHMobilitySupport_H_
#define _HNBAP_CELL_FACHMobilitySupport_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_CELL_FACHMobilitySupport {
HNBAP_CELL_FACHMobilitySupport_supported = 0
/*
* Enumeration is extensible
*/
} e_HNBAP_CELL_FACHMobilitySupport;
/* HNBAP_CELL-FACHMobilitySupport */
typedef long HNBAP_CELL_FACHMobilitySupport_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CELL_FACHMobilitySupport;
asn_struct_free_f HNBAP_CELL_FACHMobilitySupport_free;
asn_struct_print_f HNBAP_CELL_FACHMobilitySupport_print;
asn_constr_check_f HNBAP_CELL_FACHMobilitySupport_constraint;
ber_type_decoder_f HNBAP_CELL_FACHMobilitySupport_decode_ber;
der_type_encoder_f HNBAP_CELL_FACHMobilitySupport_encode_der;
xer_type_decoder_f HNBAP_CELL_FACHMobilitySupport_decode_xer;
xer_type_encoder_f HNBAP_CELL_FACHMobilitySupport_encode_xer;
per_type_decoder_f HNBAP_CELL_FACHMobilitySupport_decode_uper;
per_type_encoder_f HNBAP_CELL_FACHMobilitySupport_encode_uper;
per_type_decoder_f HNBAP_CELL_FACHMobilitySupport_decode_aper;
per_type_encoder_f HNBAP_CELL_FACHMobilitySupport_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CELL_FACHMobilitySupport_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CGI_H_
#define _HNBAP_CGI_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/HNBAP_PLMNidentity.h>
#include <osmocom/hnbap/HNBAP_LAC.h>
#include <osmocom/hnbap/HNBAP_CI.h>
#include <osmocom/hnbap/HNBAP_IE-Extensions.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* HNBAP_CGI */
typedef struct HNBAP_CGI {
HNBAP_PLMNidentity_t pLMNidentity;
HNBAP_LAC_t lAC;
HNBAP_CI_t cI;
HNBAP_IE_Extensions_t *iE_Extensions /* OPTIONAL */;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} HNBAP_CGI_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CGI;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CGI_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,43 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CI_H_
#define _HNBAP_CI_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* HNBAP_CI */
typedef OCTET_STRING_t HNBAP_CI_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CI;
asn_struct_free_f HNBAP_CI_free;
asn_struct_print_f HNBAP_CI_print;
asn_constr_check_f HNBAP_CI_constraint;
ber_type_decoder_f HNBAP_CI_decode_ber;
der_type_encoder_f HNBAP_CI_encode_der;
xer_type_decoder_f HNBAP_CI_decode_xer;
xer_type_encoder_f HNBAP_CI_encode_xer;
per_type_decoder_f HNBAP_CI_decode_uper;
per_type_encoder_f HNBAP_CI_encode_uper;
per_type_decoder_f HNBAP_CI_decode_aper;
per_type_encoder_f HNBAP_CI_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CI_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,49 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CN_DomainIndicator_H_
#define _HNBAP_CN_DomainIndicator_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_CN_DomainIndicator {
HNBAP_CN_DomainIndicator_cs_domain = 0,
HNBAP_CN_DomainIndicator_ps_domain = 1
} e_HNBAP_CN_DomainIndicator;
/* HNBAP_CN-DomainIndicator */
typedef long HNBAP_CN_DomainIndicator_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CN_DomainIndicator;
asn_struct_free_f HNBAP_CN_DomainIndicator_free;
asn_struct_print_f HNBAP_CN_DomainIndicator_print;
asn_constr_check_f HNBAP_CN_DomainIndicator_constraint;
ber_type_decoder_f HNBAP_CN_DomainIndicator_decode_ber;
der_type_encoder_f HNBAP_CN_DomainIndicator_encode_der;
xer_type_decoder_f HNBAP_CN_DomainIndicator_decode_xer;
xer_type_encoder_f HNBAP_CN_DomainIndicator_encode_xer;
per_type_decoder_f HNBAP_CN_DomainIndicator_decode_uper;
per_type_encoder_f HNBAP_CN_DomainIndicator_encode_uper;
per_type_decoder_f HNBAP_CN_DomainIndicator_decode_aper;
per_type_encoder_f HNBAP_CN_DomainIndicator_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CN_DomainIndicator_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,52 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CSG_Capability_H_
#define _HNBAP_CSG_Capability_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_CSG_Capability {
HNBAP_CSG_Capability_csg_capable = 0,
HNBAP_CSG_Capability_not_csg_capable = 1
/*
* Enumeration is extensible
*/
} e_HNBAP_CSG_Capability;
/* HNBAP_CSG-Capability */
typedef long HNBAP_CSG_Capability_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CSG_Capability;
asn_struct_free_f HNBAP_CSG_Capability_free;
asn_struct_print_f HNBAP_CSG_Capability_print;
asn_constr_check_f HNBAP_CSG_Capability_constraint;
ber_type_decoder_f HNBAP_CSG_Capability_decode_ber;
der_type_encoder_f HNBAP_CSG_Capability_encode_der;
xer_type_decoder_f HNBAP_CSG_Capability_decode_xer;
xer_type_encoder_f HNBAP_CSG_Capability_encode_xer;
per_type_decoder_f HNBAP_CSG_Capability_decode_uper;
per_type_encoder_f HNBAP_CSG_Capability_encode_uper;
per_type_decoder_f HNBAP_CSG_Capability_decode_aper;
per_type_encoder_f HNBAP_CSG_Capability_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CSG_Capability_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,43 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CSG_ID_H_
#define _HNBAP_CSG_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* HNBAP_CSG-ID */
typedef BIT_STRING_t HNBAP_CSG_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CSG_ID;
asn_struct_free_f HNBAP_CSG_ID_free;
asn_struct_print_f HNBAP_CSG_ID_print;
asn_constr_check_f HNBAP_CSG_ID_constraint;
ber_type_decoder_f HNBAP_CSG_ID_decode_ber;
der_type_encoder_f HNBAP_CSG_ID_encode_der;
xer_type_decoder_f HNBAP_CSG_ID_decode_xer;
xer_type_encoder_f HNBAP_CSG_ID_encode_xer;
per_type_decoder_f HNBAP_CSG_ID_decode_uper;
per_type_encoder_f HNBAP_CSG_ID_encode_uper;
per_type_decoder_f HNBAP_CSG_ID_decode_aper;
per_type_encoder_f HNBAP_CSG_ID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CSG_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,52 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CSGMembershipStatus_H_
#define _HNBAP_CSGMembershipStatus_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_CSGMembershipStatus {
HNBAP_CSGMembershipStatus_member = 0,
HNBAP_CSGMembershipStatus_non_member = 1
/*
* Enumeration is extensible
*/
} e_HNBAP_CSGMembershipStatus;
/* HNBAP_CSGMembershipStatus */
typedef long HNBAP_CSGMembershipStatus_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CSGMembershipStatus;
asn_struct_free_f HNBAP_CSGMembershipStatus_free;
asn_struct_print_f HNBAP_CSGMembershipStatus_print;
asn_constr_check_f HNBAP_CSGMembershipStatus_constraint;
ber_type_decoder_f HNBAP_CSGMembershipStatus_decode_ber;
der_type_encoder_f HNBAP_CSGMembershipStatus_encode_der;
xer_type_decoder_f HNBAP_CSGMembershipStatus_decode_xer;
xer_type_encoder_f HNBAP_CSGMembershipStatus_encode_xer;
per_type_decoder_f HNBAP_CSGMembershipStatus_decode_uper;
per_type_encoder_f HNBAP_CSGMembershipStatus_encode_uper;
per_type_decoder_f HNBAP_CSGMembershipStatus_decode_aper;
per_type_encoder_f HNBAP_CSGMembershipStatus_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CSGMembershipStatus_H_ */
#include <asn_internal.h>

View File

@ -2,16 +2,17 @@
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-PDU"
* found in "../../asn1/hnbap/HNBAP-PDU.asn"
* `asn1c -gen-PER`
* `asn1c -R -fcompound-names`
*/
#ifndef _CSGMembershipUpdate_H_
#define _CSGMembershipUpdate_H_
#ifndef _HNBAP_CSGMembershipUpdate_H_
#define _HNBAP_CSGMembershipUpdate_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/HNBAP_IE.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
@ -20,13 +21,10 @@
extern "C" {
#endif
/* Forward declarations */
struct IE;
/* CSGMembershipUpdate */
typedef struct CSGMembershipUpdate {
struct csgMembershipUpdate_ies {
A_SEQUENCE_OF(struct IE) list;
/* HNBAP_CSGMembershipUpdate */
typedef struct HNBAP_CSGMembershipUpdate {
struct HNBAP_CSGMembershipUpdate__csgMembershipUpdate_ies {
A_SEQUENCE_OF(HNBAP_IE_t) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
@ -38,17 +36,14 @@ typedef struct CSGMembershipUpdate {
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CSGMembershipUpdate_t;
} HNBAP_CSGMembershipUpdate_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CSGMembershipUpdate;
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CSGMembershipUpdate;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include <osmocom/hnbap/IE.h>
#endif /* _CSGMembershipUpdate_H_ */
#endif /* _HNBAP_CSGMembershipUpdate_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,62 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_Cause_H_
#define _HNBAP_Cause_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/HNBAP_CauseRadioNetwork.h>
#include <osmocom/hnbap/HNBAP_CauseTransport.h>
#include <osmocom/hnbap/HNBAP_CauseProtocol.h>
#include <osmocom/hnbap/HNBAP_CauseMisc.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_Cause_PR {
HNBAP_Cause_PR_NOTHING, /* No components present */
HNBAP_Cause_PR_radioNetwork,
HNBAP_Cause_PR_transport,
HNBAP_Cause_PR_protocol,
HNBAP_Cause_PR_misc,
/* Extensions may appear below */
} HNBAP_Cause_PR;
/* HNBAP_Cause */
typedef struct HNBAP_Cause {
HNBAP_Cause_PR present;
union HNBAP_Cause_u {
HNBAP_CauseRadioNetwork_t radioNetwork;
HNBAP_CauseTransport_t transport;
HNBAP_CauseProtocol_t protocol;
HNBAP_CauseMisc_t misc;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} HNBAP_Cause_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_Cause;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_Cause_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,54 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CauseMisc_H_
#define _HNBAP_CauseMisc_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_CauseMisc {
HNBAP_CauseMisc_processing_overload = 0,
HNBAP_CauseMisc_hardware_failure = 1,
HNBAP_CauseMisc_o_and_m_intervention = 2,
HNBAP_CauseMisc_unspecified = 3
/*
* Enumeration is extensible
*/
} e_HNBAP_CauseMisc;
/* HNBAP_CauseMisc */
typedef long HNBAP_CauseMisc_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CauseMisc;
asn_struct_free_f HNBAP_CauseMisc_free;
asn_struct_print_f HNBAP_CauseMisc_print;
asn_constr_check_f HNBAP_CauseMisc_constraint;
ber_type_decoder_f HNBAP_CauseMisc_decode_ber;
der_type_encoder_f HNBAP_CauseMisc_encode_der;
xer_type_decoder_f HNBAP_CauseMisc_decode_xer;
xer_type_encoder_f HNBAP_CauseMisc_encode_xer;
per_type_decoder_f HNBAP_CauseMisc_decode_uper;
per_type_encoder_f HNBAP_CauseMisc_encode_uper;
per_type_decoder_f HNBAP_CauseMisc_decode_aper;
per_type_encoder_f HNBAP_CauseMisc_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CauseMisc_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,57 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CauseProtocol_H_
#define _HNBAP_CauseProtocol_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_CauseProtocol {
HNBAP_CauseProtocol_transfer_syntax_error = 0,
HNBAP_CauseProtocol_abstract_syntax_error_reject = 1,
HNBAP_CauseProtocol_abstract_syntax_error_ignore_and_notify = 2,
HNBAP_CauseProtocol_message_not_compatible_with_receiver_state = 3,
HNBAP_CauseProtocol_semantic_error = 4,
HNBAP_CauseProtocol_unspecified = 5,
HNBAP_CauseProtocol_abstract_syntax_error_falsely_constructed_message = 6
/*
* Enumeration is extensible
*/
} e_HNBAP_CauseProtocol;
/* HNBAP_CauseProtocol */
typedef long HNBAP_CauseProtocol_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CauseProtocol;
asn_struct_free_f HNBAP_CauseProtocol_free;
asn_struct_print_f HNBAP_CauseProtocol_print;
asn_constr_check_f HNBAP_CauseProtocol_constraint;
ber_type_decoder_f HNBAP_CauseProtocol_decode_ber;
der_type_encoder_f HNBAP_CauseProtocol_encode_der;
xer_type_decoder_f HNBAP_CauseProtocol_decode_xer;
xer_type_encoder_f HNBAP_CauseProtocol_encode_xer;
per_type_decoder_f HNBAP_CauseProtocol_decode_uper;
per_type_encoder_f HNBAP_CauseProtocol_encode_uper;
per_type_decoder_f HNBAP_CauseProtocol_decode_aper;
per_type_encoder_f HNBAP_CauseProtocol_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CauseProtocol_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,66 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CauseRadioNetwork_H_
#define _HNBAP_CauseRadioNetwork_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_CauseRadioNetwork {
HNBAP_CauseRadioNetwork_overload = 0,
HNBAP_CauseRadioNetwork_unauthorised_Location = 1,
HNBAP_CauseRadioNetwork_unauthorised_HNB = 2,
HNBAP_CauseRadioNetwork_hNB_parameter_mismatch = 3,
HNBAP_CauseRadioNetwork_invalid_UE_identity = 4,
HNBAP_CauseRadioNetwork_uE_not_allowed_on_this_HNB = 5,
HNBAP_CauseRadioNetwork_uE_unauthorised = 6,
HNBAP_CauseRadioNetwork_connection_with_UE_lost = 7,
HNBAP_CauseRadioNetwork_ue_RRC_release = 8,
HNBAP_CauseRadioNetwork_hNB_not_registered = 9,
HNBAP_CauseRadioNetwork_unspecified = 10,
HNBAP_CauseRadioNetwork_normal = 11,
HNBAP_CauseRadioNetwork_uE_relocated = 12,
HNBAP_CauseRadioNetwork_ue_registered_in_another_HNB = 13,
/*
* Enumeration is extensible
*/
HNBAP_CauseRadioNetwork_no_neighbour_information_available = 14,
HNBAP_CauseRadioNetwork_iurh_connection_to_that_neighbour_not_Allowed = 15
} e_HNBAP_CauseRadioNetwork;
/* HNBAP_CauseRadioNetwork */
typedef long HNBAP_CauseRadioNetwork_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CauseRadioNetwork;
asn_struct_free_f HNBAP_CauseRadioNetwork_free;
asn_struct_print_f HNBAP_CauseRadioNetwork_print;
asn_constr_check_f HNBAP_CauseRadioNetwork_constraint;
ber_type_decoder_f HNBAP_CauseRadioNetwork_decode_ber;
der_type_encoder_f HNBAP_CauseRadioNetwork_encode_der;
xer_type_decoder_f HNBAP_CauseRadioNetwork_decode_xer;
xer_type_encoder_f HNBAP_CauseRadioNetwork_encode_xer;
per_type_decoder_f HNBAP_CauseRadioNetwork_decode_uper;
per_type_encoder_f HNBAP_CauseRadioNetwork_encode_uper;
per_type_decoder_f HNBAP_CauseRadioNetwork_decode_aper;
per_type_encoder_f HNBAP_CauseRadioNetwork_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CauseRadioNetwork_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,52 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CauseTransport_H_
#define _HNBAP_CauseTransport_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_CauseTransport {
HNBAP_CauseTransport_transport_resource_unavailable = 0,
HNBAP_CauseTransport_unspecified = 1
/*
* Enumeration is extensible
*/
} e_HNBAP_CauseTransport;
/* HNBAP_CauseTransport */
typedef long HNBAP_CauseTransport_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CauseTransport;
asn_struct_free_f HNBAP_CauseTransport_free;
asn_struct_print_f HNBAP_CauseTransport_print;
asn_constr_check_f HNBAP_CauseTransport_constraint;
ber_type_decoder_f HNBAP_CauseTransport_decode_ber;
der_type_encoder_f HNBAP_CauseTransport_encode_der;
xer_type_decoder_f HNBAP_CauseTransport_decode_xer;
xer_type_encoder_f HNBAP_CauseTransport_encode_xer;
per_type_decoder_f HNBAP_CauseTransport_decode_uper;
per_type_encoder_f HNBAP_CauseTransport_encode_uper;
per_type_decoder_f HNBAP_CauseTransport_decode_aper;
per_type_encoder_f HNBAP_CauseTransport_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CauseTransport_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,43 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_CellIdentity_H_
#define _HNBAP_CellIdentity_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* HNBAP_CellIdentity */
typedef BIT_STRING_t HNBAP_CellIdentity_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_CellIdentity;
asn_struct_free_f HNBAP_CellIdentity_free;
asn_struct_print_f HNBAP_CellIdentity_print;
asn_constr_check_f HNBAP_CellIdentity_constraint;
ber_type_decoder_f HNBAP_CellIdentity_decode_ber;
der_type_encoder_f HNBAP_CellIdentity_encode_der;
xer_type_decoder_f HNBAP_CellIdentity_decode_xer;
xer_type_encoder_f HNBAP_CellIdentity_encode_xer;
per_type_decoder_f HNBAP_CellIdentity_decode_uper;
per_type_encoder_f HNBAP_CellIdentity_encode_uper;
per_type_decoder_f HNBAP_CellIdentity_decode_aper;
per_type_encoder_f HNBAP_CellIdentity_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_CellIdentity_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,56 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_ConfigurationInformation_H_
#define _HNBAP_ConfigurationInformation_H_
#include <asn_application.h>
/* Including external dependencies */
#include <osmocom/hnbap/HNBAP_HNBConfigurationInformationProvided.h>
#include <osmocom/hnbap/HNBAP_HNBConfigurationInformationMissing.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum HNBAP_ConfigurationInformation_PR {
HNBAP_ConfigurationInformation_PR_NOTHING, /* No components present */
HNBAP_ConfigurationInformation_PR_provided,
HNBAP_ConfigurationInformation_PR_missing,
/* Extensions may appear below */
} HNBAP_ConfigurationInformation_PR;
/* HNBAP_ConfigurationInformation */
typedef struct HNBAP_ConfigurationInformation {
HNBAP_ConfigurationInformation_PR present;
union HNBAP_ConfigurationInformation_u {
HNBAP_HNBConfigurationInformationProvided_t provided;
HNBAP_HNBConfigurationInformationMissing_t missing;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} HNBAP_ConfigurationInformation_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_ConfigurationInformation;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_ConfigurationInformation_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,43 @@
/*
* Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
* From ASN.1 module "HNBAP-IEs"
* found in "../../asn1/hnbap/HNBAP-IEs.asn"
* `asn1c -R -fcompound-names`
*/
#ifndef _HNBAP_Context_ID_H_
#define _HNBAP_Context_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* HNBAP_Context-ID */
typedef BIT_STRING_t HNBAP_Context_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_HNBAP_Context_ID;
asn_struct_free_f HNBAP_Context_ID_free;
asn_struct_print_f HNBAP_Context_ID_print;
asn_constr_check_f HNBAP_Context_ID_constraint;
ber_type_decoder_f HNBAP_Context_ID_decode_ber;
der_type_encoder_f HNBAP_Context_ID_encode_der;
xer_type_decoder_f HNBAP_Context_ID_decode_xer;
xer_type_encoder_f HNBAP_Context_ID_encode_xer;
per_type_decoder_f HNBAP_Context_ID_decode_uper;
per_type_encoder_f HNBAP_Context_ID_encode_uper;
per_type_decoder_f HNBAP_Context_ID_decode_aper;
per_type_encoder_f HNBAP_Context_ID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _HNBAP_Context_ID_H_ */
#include <asn_internal.h>

Some files were not shown because too many files have changed in this diff Show More