pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/libosmo-sigtran/+/42093?usp=email )


Change subject: sua: Support rx SCON in role=IPSP
......................................................................

sua: Support rx SCON in role=IPSP

Change-Id: I3f46b634084c1d71643812828d4f114ab45dffde
---
M src/sua.c
M src/xua_snm.c
2 files changed, 27 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran 
refs/changes/93/42093/1

diff --git a/src/sua.c b/src/sua.c
index ceb5d7a..2eb93e3 100644
--- a/src/sua.c
+++ b/src/sua.c
@@ -1068,6 +1068,30 @@
        return rc;
 }

+/* received SNM message on IPSP side */
+static int sua_rx_snm_ipsp(struct osmo_ss7_asp *asp, struct xua_msg *xua)
+{
+       struct osmo_ss7_as *as = NULL;
+       struct xua_msg_part *rctx_ie;
+       int rc = 0;
+
+       switch (xua->hdr.msg_type) {
+       case M3UA_SNM_SCON:
+               /* RFC3868 1.5.6: "The SUA layer at an ASP or IPSP MAY indicate 
local congestion to
+                * an SUA peer with an SCON message." */
+               rctx_ie = xua_msg_find_tag(xua, SUA_IEI_ROUTE_CTX);
+               rc = xua_find_as_for_asp(&as, asp, rctx_ie);
+               if (rc)
+                       return rc;
+               xua_snm_rx_scon(asp, as, xua);
+               break;
+       default:
+               return M3UA_ERR_UNSUPP_MSG_TYPE;
+       }
+
+       return rc;
+}
+
 static int sua_rx_snm(struct osmo_ss7_asp *asp, struct xua_msg *xua)
 {
        /* SNM only permitted in ACTIVE state */
@@ -1087,6 +1111,8 @@
                return sua_rx_snm_sg(asp, xua);
        case OSMO_SS7_ASP_ROLE_ASP:
                return sua_rx_snm_asp(asp, xua);
+       case OSMO_SS7_ASP_ROLE_IPSP:
+               return sua_rx_snm_ipsp(asp, xua);
        default:
                return SUA_ERR_UNSUPP_MSG_CLASS;
        }
diff --git a/src/xua_snm.c b/src/xua_snm.c
index e983293..f7d3192 100644
--- a/src/xua_snm.c
+++ b/src/xua_snm.c
@@ -587,7 +587,7 @@
        xua_snm_upu(as, aff_pc, user, cause, info_str);
 }

-/* an incoming SUA/M3UA SCON was received from a remote SG */
+/* an incoming SUA/M3UA SCON was received from a remote ASP/SG/IPSP */
 void xua_snm_rx_scon(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct 
xua_msg *xua)
 {
        struct xua_msg_part *ie_aff_pc = xua_msg_find_tag(xua, 
M3UA_IEI_AFFECTED_PC);

--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42093?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: master
Gerrit-Change-Id: I3f46b634084c1d71643812828d4f114ab45dffde
Gerrit-Change-Number: 42093
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to