pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-hnbgw/+/30283 )

Change subject: hnbgw: Avoid allocating SCCP conn id >0x00fffffe
......................................................................

hnbgw: Avoid allocating SCCP conn id >0x00fffffe

This fixes bug in use of M3UA/SCCP after 2**24 connection IDs have been
allocated.

Related: SYS#6211
Change-Id: I03bad960f65fbff6e467def5bba60fefb328f962
---
M src/osmo-hnbgw/context_map.c
1 file changed, 14 insertions(+), 1 deletion(-)

Approvals:
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/osmo-hnbgw/context_map.c b/src/osmo-hnbgw/context_map.c
index c069651..7549942 100644
--- a/src/osmo-hnbgw/context_map.c
+++ b/src/osmo-hnbgw/context_map.c
@@ -58,8 +58,21 @@
        uint32_t i;
        uint32_t id;

-       for (i = 0; i < 0xffffffff; i++) {
+       /* SUA: RFC3868 sec 3.10.4:
+        *    The source reference number is a 4 octet long integer.
+        *    This is allocated by the source SUA instance.
+        * M3UA/SCCP: ITU-T Q.713 sec 3.3:
+        *    The "source local reference" parameter field is a three-octet 
field containing a
+        *    reference number which is generated and used by the local node to 
identify the
+        *    connection section after the connection section is set up.
+        *    The coding "all ones" is reserved for future use.
+        * Hence, let's simply use 24 bit ids to fit all link types (excluding 
0x00ffffff).
+        */
+
+       for (i = 0; i < 0x00ffffff; i++) {
                id = cn->next_conn_id++;
+               if (cn->next_conn_id == 0x00ffffff)
+                       cn->next_conn_id = 0;
                if (!cn_id_in_use(cn, id)) {
                        *id_out = id;
                        return 1;

--
To view, visit https://gerrit.osmocom.org/c/osmo-hnbgw/+/30283
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-hnbgw
Gerrit-Branch: master
Gerrit-Change-Id: I03bad960f65fbff6e467def5bba60fefb328f962
Gerrit-Change-Number: 30283
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: neels <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to