Osmocom code for the Iuh interface (HNBAP, RUA, RANAP) https://osmocom.org/projects/libosmo-ranap
Go to file
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 @@
         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(


Related: OS#2670
Change-Id: Ieba12c09c33a81da964bf88a858714d922ced8c0
2017-12-25 00:46:12 +01:00
asn1 compiler warning: asn1tostruct.py: return 0 at end of *_free_*() 2017-12-25 00:46:12 +01:00
contrib jenkins: use osmo-clean-workspace.sh before and after build 2017-10-28 15:08:39 +00:00
debian Tag/Release 0.2.0 + Update LIBVERSION + Debian packaging 2017-10-27 22:35:49 +02:00
doc examples: Adjust IP address of example config 2017-05-04 18:48:30 +02:00
include osmo-hnbgw: vty: revamp output of context maps on 'show hnb' 2017-12-25 00:46:12 +01:00
pcap Better capture for PS Data 2016-02-18 13:21:30 +01:00
specs import TR 25.931 with examples of signalling procedures 2016-02-22 09:17:15 +01:00
src osmo-hnbgw: vty: revamp output of context maps on 'show hnb' 2017-12-25 00:46:12 +01:00
.gitignore build: fix ranap gen, use same for gen hnbap and rua gen 2016-09-09 06:43:31 +00:00
.gitreview add .gitreview to support git review plugin 2017-08-08 17:02:18 +00:00
COPYING move COPYING file to root directory 2015-12-21 21:01:00 +01:00
Makefile.am Use release helper from libosmocore 2017-08-28 10:58:58 +00:00
README.md Update README with project related information and convert to Markdown 2017-03-17 18:15:20 +01:00
TODO-RELEASE Use release helper from libosmocore 2017-08-28 10:58:58 +00:00
configure.ac add --enable-sanitize config option 2017-11-17 03:38:07 +01:00
git-version-gen add git-version-gen to auto-generate git based version number 2016-01-03 18:08:05 +01:00
libosmo-ranap.pc.in add pkg-config file for libosmo-ranap 2016-01-03 18:12:22 +01:00
move-asn1-header-files.sh make regen: ~8x faster: use sed script instead of single invocations 2016-07-12 00:44:18 +02:00


osmo-iuh - Osmocom Iuh and HNB-GW 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.

It is part of the Osmocom Open Source Mobile Communications project.


The official homepage of the project is https://osmocom.org/projects/osmohnbgw/wiki

GIT Repository

You can clone from the official libosmocore.git repository using

git clone git://git.osmocom.org/osmo-iuh.git

There is a cgit interface at http://git.osmocom.org/osmo-iuh/


There is currently no documentation beyond the wiki available on the homepage. We would love to see somebody contributing a manual that can be part of the osmo-gsm-manuals suite.

Mailing List

Discussions related to osmo-iuh are happening on the openbsc@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.

Please observe the Osmocom Mailing List Rules when posting.


Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

We us a gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details

The current patch queue for osmo-iuh can be seen at https://gerrit.osmocom.org/#/q/project:osmo-iuh+status:open


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
  • 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)

To bootstrap the build, in the root directory, run:

autoreconf --install

After that, run the usual

./configure [options]
[sudo] make install


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)