pespin has uploaded this change for review.

View Change

asp: Expect optional ASP Identifier in Rx ASPUP ACK

Change-Id: Idaa1a547d835402ca82e4abbae90681a3286d4da
---
M src/xua_asp_fsm.c
M tests/ss7/ss7_test.c
2 files changed, 20 insertions(+), 5 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/08/40008/1
diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c
index 65af441..f0dc793 100644
--- a/src/xua_asp_fsm.c
+++ b/src/xua_asp_fsm.c
@@ -461,6 +461,11 @@
case XUA_ASP_E_ASPSM_ASPUP_ACK:
/* only if role ASP */
ENSURE_ASP_OR_IPSP(fi, event);
+ /* Optional ASP Identifier */
+ if ((asp_id_ie = xua_msg_find_tag(data, SUA_IEI_ASP_ID))) {
+ asp->remote_asp_id = xua_msg_part_get_u32(asp_id_ie);
+ asp->remote_asp_id_present = true;
+ }
osmo_fsm_inst_state_chg(fi, XUA_ASP_S_INACTIVE, 0, 0);
/* inform layer manager */
send_xlm_prim_simple(fi, OSMO_XLM_PRIM_M_ASP_UP, PRIM_OP_CONFIRM);
@@ -472,9 +477,8 @@
case XUA_ASP_E_ASPSM_ASPUP:
/* only if role SG */
ENSURE_SG_OR_IPSP(fi, event);
- asp_id_ie = xua_msg_find_tag(data, SUA_IEI_ASP_ID);
/* Optional ASP Identifier: Store for NTFY */
- if (asp_id_ie) {
+ if ((asp_id_ie = xua_msg_find_tag(data, SUA_IEI_ASP_ID))) {
asp->remote_asp_id = xua_msg_part_get_u32(asp_id_ie);
asp->remote_asp_id_present = true;
}
diff --git a/tests/ss7/ss7_test.c b/tests/ss7/ss7_test.c
index f61ee0a..bb96e71 100644
--- a/tests/ss7/ss7_test.c
+++ b/tests/ss7/ss7_test.c
@@ -10,6 +10,7 @@

#include <osmocom/sigtran/osmo_ss7.h>
#include <osmocom/sigtran/protocol/m3ua.h>
+#include <osmocom/sigtran/protocol/sua.h>

#include <osmocom/core/utils.h>
#include <osmocom/core/msgb.h>
@@ -276,6 +277,8 @@
{
struct osmo_ss7_as *as;
struct osmo_ss7_asp *asp;
+ struct xua_msg *xua;
+ int rc;

OSMO_ASSERT(osmo_ss7_as_find_by_name(s7i, "as1") == NULL);
as = osmo_ss7_as_find_or_create(s7i, "as1", OSMO_SS7_ASP_PROT_M3UA);
@@ -296,9 +299,17 @@
osmo_ss7_asp_restart(asp);

/* ask FSM to send ASP-UP.req */
- osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_M_ASP_UP_REQ, NULL);
- osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_ASPSM_ASPUP_ACK, NULL);
- osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_ASPTM_ASPAC_ACK, NULL);
+ rc = osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_M_ASP_UP_REQ, NULL);
+ OSMO_ASSERT(rc == 0);
+
+ xua = xua_msg_alloc();
+ xua->hdr = XUA_HDR(SUA_MSGC_ASPSM, SUA_ASPSM_UP_ACK);
+ rc = osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_ASPSM_ASPUP_ACK, xua);
+ xua_msg_free(xua);
+ OSMO_ASSERT(rc == 0);
+
+ rc = osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_ASPTM_ASPAC_ACK, NULL);
+ OSMO_ASSERT(rc == 0);

OSMO_ASSERT(osmo_ss7_as_del_asp(as, "asp1") == 0);
OSMO_ASSERT(osmo_ss7_as_del_asp(as, "asp2") == -ENODEV);

To view, visit change 40008. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: Idaa1a547d835402ca82e4abbae90681a3286d4da
Gerrit-Change-Number: 40008
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>