Attention is currently required from: neels.
Hello Jenkins Builder, laforge, msuraev,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-sccp/+/32321
to look at the new patch set (#2).
Change subject: add public API: osmo_sccp_instance_next_conn_id() ......................................................................
add public API: osmo_sccp_instance_next_conn_id()
In struct osmo_sccp_instance, we have a next_id, to find an unused SCCP connection ID. This is used for inbound SCCP connections.
At the same time, in each of our SCCP client programs, we have a separate mechanism to find a connection ID for outbound connections.
See for example bsc_sccp.c: bsc_sccp_inst_next_conn_id()
It makes much more sense for callers to use the same osmo_sccp_instance->next_id counter:
- Currently the inbound and outbound counters go out of sync: For example, in osmo-bsc, if we have three MS doing a usual Complete Layer 3, osmo-bsc's counter increments by three. If we then have one Handover Required coming back from the MSC, i.e. inbound SCCP connection, the sccp_inst->next_id is behind by three, and will iterate SCCP connections three times before finding an unused id.
- Each implementation has to take care to properly wrap the ID in its valid range, e.g. in osmo-bsc:
test_id = (test_id + 1) & 0x00FFFFFF; if (OSMO_UNLIKELY(test_id == 0x00FFFFFF)) test_id = 0;
Add public API so that callers can benefit from the internal osmo_sccp_instance->next_id and do not need to duplicate the code for staying within the proper range.
Change-Id: If59d524fbe1088a59ae1b69908e2d4bf67113439 --- M include/osmocom/sigtran/sccp_sap.h M src/sccp_scoc.c 2 files changed, 41 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/21/32321/2