pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/libosmo-sigtran/+/40394?usp=email )
Change subject: ipa: Fix asp_id/SLS unset in tcp-server mode
......................................................................
ipa: Fix asp_id/SLS unset in tcp-server mode
Commit changing the value set to asp_id (used to derive SLS) for IPA
conns only updated the asp_id value on the stream_cli code path, but not
on the stream_srv one.
As a result, on IPA conns with an underlaying TCP server conn, asp_id
and SLS was always 0.
Fixes: 2c9ba16 "ipa: Use pseudo-random number for SLS in IPA->M3UA direction
(cherry picked from commit a3232c4b7ba8d90f852211c987a4a438c8970aa6)
Change-Id: I4e8e8d58e9425fc6fce5e4e15a79e86ff4518270
---
M src/osmo_ss7_asp.c
M src/osmo_ss7_xua_srv.c
2 files changed, 10 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/94/40394/1
diff --git a/src/osmo_ss7_asp.c b/src/osmo_ss7_asp.c
index d81d25c..57ebc82 100644
--- a/src/osmo_ss7_asp.c
+++ b/src/osmo_ss7_asp.c
@@ -945,8 +945,8 @@
rc = ss7_asp_apply_primary_address(asp);
} else {
if (asp->cfg.proto == OSMO_SS7_ASP_PROT_IPA) {
- /* we use the lower 4 bits of the asp_id feld as SLS; let's initialize it here
from a
- * pseudo-random value */
+ /* we use the lower 4 bits of the asp_id field as SLS;
+ * let's initialize it here from a pseudo-random value */
asp->asp_id = rand() & 0xf;
}
}
diff --git a/src/osmo_ss7_xua_srv.c b/src/osmo_ss7_xua_srv.c
index 4962bfd..35e360f 100644
--- a/src/osmo_ss7_xua_srv.c
+++ b/src/osmo_ss7_xua_srv.c
@@ -61,7 +61,7 @@
* SS7 xUA Server
***********************************************************************/
-/* server has accept()ed a new SCTP association, let's find the ASP for
+/* Server has accept()ed a new SCTP association / TCP connection, let's find the ASP
for
* it (if any) */
static int xua_accept_cb(struct osmo_stream_srv_link *link, int fd)
{
@@ -177,9 +177,15 @@
* data */
osmo_stream_srv_set_data(srv, asp);
- if (oxs->cfg.trans_proto == IPPROTO_SCTP) {
+ if (asp->cfg.trans_proto == IPPROTO_SCTP) {
rc = ss7_asp_apply_peer_primary_address(asp);
rc = ss7_asp_apply_primary_address(asp);
+ } else {
+ if (asp->cfg.proto == OSMO_SS7_ASP_PROT_IPA) {
+ /* we use the lower 4 bits of the asp_id field as SLS;
+ * let's initialize it here from a pseudo-random value */
+ asp->asp_id = rand() & 0xf;
+ }
}
/* send M-SCTP_ESTABLISH.ind to Layer Manager */
--
To view, visit
https://gerrit.osmocom.org/c/libosmo-sigtran/+/40394?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: pespin/rel-2.1.0
Gerrit-Change-Id: I4e8e8d58e9425fc6fce5e4e15a79e86ff4518270
Gerrit-Change-Number: 40394
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>