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


Change subject: xua_lm: Use XLM SAP to send M-ASP_{UP, ACTIVE}.req
......................................................................

xua_lm: Use XLM SAP to send M-ASP_{UP, ACTIVE}.req

Change-Id: I5850d9ec9092ff3d099627856697a4184b0d5853
---
M src/xua_default_lm_fsm.c
M src/xua_lm_sap.c
M src/xua_lm_sap.h
3 files changed, 27 insertions(+), 4 deletions(-)



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

diff --git a/src/xua_default_lm_fsm.c b/src/xua_default_lm_fsm.c
index 9a3cb69..3e36daf 100644
--- a/src/xua_default_lm_fsm.c
+++ b/src/xua_default_lm_fsm.c
@@ -196,7 +196,7 @@
                    lmp->asp->cfg.role == OSMO_SS7_ASP_ROLE_IPSP) {
                        /* Try to transition to ASP-UP, wait to receive message 
for a few seconds */
                        lm_fsm_state_chg(fi, S_WAIT_ASP_UP);
-                       osmo_fsm_inst_dispatch(lmp->asp->fi, 
XUA_ASP_E_M_ASP_UP_REQ, NULL);
+                       xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_ASP_UP, 
PRIM_OP_REQUEST);
                }
                /* role SG: Unimplemented, do nothing, stay in this state 
forever. */
                break;
@@ -249,7 +249,7 @@
                        break;

                lm_fsm_state_chg(fi, S_ACTIVE);
-               osmo_fsm_inst_dispatch(lmp->asp->fi, 
XUA_ASP_E_M_ASP_ACTIVE_REQ, NULL);
+               xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_ASP_ACTIVE, 
PRIM_OP_REQUEST);
                break;
        case LM_E_ASP_ACT_IND:
                ENSURE_SG_OR_IPSP(fi, event);
@@ -262,7 +262,7 @@
                 * hopefully will bring the AS to active, too) */
                lm_fsm_state_chg(fi, S_ACTIVE);
                if (lmp->asp->cfg.role != OSMO_SS7_ASP_ROLE_SG)
-                       osmo_fsm_inst_dispatch(lmp->asp->fi, 
XUA_ASP_E_M_ASP_ACTIVE_REQ, NULL);
+                       xlm_sap_down_simple(lmp->asp, 
OSMO_XLM_PRIM_M_ASP_ACTIVE, PRIM_OP_REQUEST);
                break;
        }
 };
@@ -306,7 +306,7 @@
                break;
        case LM_E_AS_INACTIVE_IND:
                /* request the ASP to go into active state */
-               osmo_fsm_inst_dispatch(lmp->asp->fi, 
XUA_ASP_E_M_ASP_ACTIVE_REQ, NULL);
+               xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_ASP_ACTIVE, 
PRIM_OP_REQUEST);
                break;
        case LM_E_NOTIFY_IND:
                oxp = data;
diff --git a/src/xua_lm_sap.c b/src/xua_lm_sap.c
index 9eb1c60..50f142f 100644
--- a/src/xua_lm_sap.c
+++ b/src/xua_lm_sap.c
@@ -35,6 +35,7 @@
 #include <osmocom/sigtran/osmo_ss7.h>
 #include <osmocom/sigtran/sigtran_sap.h>

+#include "xua_asp_fsm.h"
 #include "xua_internal.h"
 #include "ss7_asp.h"

@@ -142,6 +143,14 @@
                osmo_xlm_prim_name(&prim->oph));

        switch (OSMO_PRIM_HDR(&prim->oph)) {
+       case OSMO_PRIM(OSMO_XLM_PRIM_M_ASP_UP, PRIM_OP_REQUEST):
+               /* Layer Manager asks us to send an ASPUP REQ */
+               osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_M_ASP_UP_REQ, NULL);
+               break;
+       case OSMO_PRIM(OSMO_XLM_PRIM_M_ASP_ACTIVE, PRIM_OP_REQUEST):
+               /* Layer Manager asks us to send an ASPAC REQ */
+               osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_M_ASP_ACTIVE_REQ, 
NULL);
+               break;
        case OSMO_PRIM(OSMO_XLM_PRIM_M_RK_REG, PRIM_OP_REQUEST):
                /* Layer Manager asks us to send a Routing Key Reg Request */
                xua_rkm_send_reg_req(asp, &prim->u.rk_reg.key, 
prim->u.rk_reg.traf_mode);
@@ -159,3 +168,13 @@
        msgb_free(prim->oph.msg);
        return 0;
 }
+
+/* wrapper around osmo_xlm_sap_down for primitives without data */
+int xlm_sap_down_simple(struct osmo_ss7_asp *asp,
+                       enum osmo_xlm_prim_type prim_type,
+                       enum osmo_prim_operation op)
+{
+       struct osmo_xlm_prim *prim = xua_xlm_prim_alloc(prim_type, op);
+       OSMO_ASSERT(prim);
+       return osmo_xlm_sap_down(asp, &prim->oph);
+}
diff --git a/src/xua_lm_sap.h b/src/xua_lm_sap.h
index 3609eb2..01fe6fc 100644
--- a/src/xua_lm_sap.h
+++ b/src/xua_lm_sap.h
@@ -22,3 +22,7 @@
 void xua_asp_send_xlm_prim_simple(struct osmo_ss7_asp *asp,
                                  enum osmo_xlm_prim_type prim_type,
                                  enum osmo_prim_operation op);
+
+int xlm_sap_down_simple(struct osmo_ss7_asp *asp,
+                       enum osmo_xlm_prim_type prim_type,
+                       enum osmo_prim_operation op);

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

Reply via email to