[XS] Change in libosmo-sigtran[master]: sccp_sclc: Remove SCCP cause mask in N-NOTICE.ind 'Reason for return'...
pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/40702?usp=email ) Change subject: sccp_sclc: Remove SCCP cause mask in N-NOTICE.ind 'Reason for return' field ...................................................................... sccp_sclc: Remove SCCP cause mask in N-NOTICE.ind 'Reason for return' field ITU Q.713 A.5 states "There is a one-to-one mapping between the return cause of UDTS, XUDTS or LUDTS messages and the reason for return in the N-NOTICE primitives". This matches with the list of strings listed in ITU Q.711 6.2.2.2.4 "Reason for return". "return cause" can in turn be found in ITU Q.713 3.12. During sccp_sclc_rx_scrc_rout_fail(), we are encoding the "return cause" param into the xua_msg usig gen_ret_msg(), which encodes it as SUA by prepending the SUA_CAUSE_T_RETURN bitmask cause-type to it. However, when constructing the primitive N-NOTICE.ind, we need to remove that mask when filling in "Reason for return". Change-Id: Iccff1e8809769edae36081a79119eb8da901841a --- M include/osmocom/sigtran/sccp_sap.h M src/sccp_sclc.c 2 files changed, 4 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/include/osmocom/sigtran/sccp_sap.h b/include/osmocom/sigtran/sccp_sap.h index 65eff74..7399b3d 100644 --- a/include/osmocom/sigtran/sccp_sap.h +++ b/include/osmocom/sigtran/sccp_sap.h @@ -256,8 +256,10 @@ struct osmo_scu_notice_param { struct osmo_sccp_addr called_addr; struct osmo_sccp_addr calling_addr; + /* ITU Q.711 6.2.2.2.4 "Reason for return": + * enum sccp_return_cause (ITU Q.713 3.12), as per ITU Q.713 A.5. */ uint32_t cause; - uint32_t importance; + uint32_t importance; /* ITU Q.711 6.2.2.2.6, Q.713 3.19 */ /* user data */ }; diff --git a/src/sccp_sclc.c b/src/sccp_sclc.c index c7dce89..0a47cd9 100644 --- a/src/sccp_sclc.c +++ b/src/sccp_sclc.c @@ -287,7 +287,7 @@ } param->importance = xua_msg_get_u32(xua, SUA_IEI_IMPORTANCE); - param->cause = xua_msg_get_u32(xua, SUA_IEI_CAUSE); + param->cause = xua_msg_get_u32(xua, SUA_IEI_CAUSE) & ~SUA_CAUSE_T_MASK; scu = sccp_user_find(inst, param->called_addr.ssn, param->called_addr.pc); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/40702?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: libosmo-sigtran Gerrit-Branch: master Gerrit-Change-Id: Iccff1e8809769edae36081a79119eb8da901841a Gerrit-Change-Number: 40702 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann@sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: osmith <osmith@sysmocom.de> Gerrit-Reviewer: pespin <pespin@sysmocom.de>
participants (1)
-
pespin