libosmo-sigtran  1.6.0.17-bd92
Osmocom SIGTRAN library
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
xua_default_lm_fsm.c File Reference
#include <errno.h>
#include <osmocom/core/fsm.h>
#include <osmocom/core/logging.h>
#include <osmocom/sigtran/osmo_ss7.h>
#include <osmocom/sigtran/sigtran_sap.h>
#include <osmocom/sigtran/protocol/m3ua.h>
#include "xua_internal.h"
#include "xua_asp_fsm.h"

Data Structures

struct  lm_fsm_priv
 

Macros

#define S(x)   (1 << (x))
 

Enumerations

enum  lm_state {
  S_IDLE, S_WAIT_ASP_UP, S_WAIT_NOTIFY, S_RKM_REG,
  S_ACTIVE
}
 
enum  lm_event {
  LM_E_SCTP_EST_IND, LM_E_ASP_UP_CONF, LM_E_NOTIFY_IND, LM_E_AS_INACTIVE_IND,
  LM_E_AS_ACTIVE_IND, LM_E_AS_STATUS_IND, LM_E_RKM_REG_CONF, LM_E_SCTP_DISC_IND
}
 
enum  lm_timer { T_WAIT_ASP_UP, T_WAIT_NOTIFY, T_WAIT_NOTIFY_RKM, T_WAIT_RK_REG_RESP }
 

Functions

static struct osmo_ss7_asfind_first_as_in_asp (struct osmo_ss7_asp *asp)
 
static int handle_reg_conf (struct osmo_fsm_inst *fi, uint32_t l_rk_id, uint32_t rctx)
 
static void restart_asp (struct osmo_fsm_inst *fi)
 
static void lm_idle (struct osmo_fsm_inst *fi, uint32_t event, void *data)
 
static void lm_wait_asp_up (struct osmo_fsm_inst *fi, uint32_t event, void *data)
 
static int lm_timer_cb (struct osmo_fsm_inst *fi)
 
static void lm_wait_notify (struct osmo_fsm_inst *fi, uint32_t event, void *data)
 
static void lm_rkm_reg (struct osmo_fsm_inst *fi, uint32_t event, void *data)
 
static void lm_active (struct osmo_fsm_inst *fi, uint32_t event, void *data)
 
static void lm_allstate (struct osmo_fsm_inst *fi, uint32_t event, void *data)
 
static int default_lm_prim_cb (struct osmo_prim_hdr *oph, void *_asp)
 
int osmo_ss7_asp_use_default_lm (struct osmo_ss7_asp *asp, int log_level)
 

Variables

static const struct value_string lm_event_names []
 
static const struct osmo_fsm_state lm_states []
 
static const struct osmo_prim_event_map lm_event_map []
 
struct osmo_fsm xua_default_lm_fsm
 
static const struct osmo_xua_layer_manager default_layer_manager
 

Macro Definition Documentation

◆ S

#define S (   x)    (1 << (x))

Enumeration Type Documentation

◆ lm_event

enum lm_event
Enumerator
LM_E_SCTP_EST_IND 
LM_E_ASP_UP_CONF 
LM_E_NOTIFY_IND 
LM_E_AS_INACTIVE_IND 
LM_E_AS_ACTIVE_IND 
LM_E_AS_STATUS_IND 
LM_E_RKM_REG_CONF 
LM_E_SCTP_DISC_IND 

◆ lm_state

enum lm_state
Enumerator
S_IDLE 
S_WAIT_ASP_UP 
S_WAIT_NOTIFY 
S_RKM_REG 
S_ACTIVE 

◆ lm_timer

enum lm_timer
Enumerator
T_WAIT_ASP_UP 
T_WAIT_NOTIFY 
T_WAIT_NOTIFY_RKM 
T_WAIT_RK_REG_RESP 

Function Documentation

◆ default_lm_prim_cb()

static int default_lm_prim_cb ( struct osmo_prim_hdr *  oph,
void *  _asp 
)
static

◆ find_first_as_in_asp()

static struct osmo_ss7_as* find_first_as_in_asp ( struct osmo_ss7_asp asp)
static

◆ handle_reg_conf()

static int handle_reg_conf ( struct osmo_fsm_inst *  fi,
uint32_t  l_rk_id,
uint32_t  rctx 
)
static

◆ lm_active()

◆ lm_allstate()

static void lm_allstate ( struct osmo_fsm_inst *  fi,
uint32_t  event,
void *  data 
)
static

◆ lm_idle()

static void lm_idle ( struct osmo_fsm_inst *  fi,
uint32_t  event,
void *  data 
)
static

◆ lm_rkm_reg()

◆ lm_timer_cb()

◆ lm_wait_asp_up()

static void lm_wait_asp_up ( struct osmo_fsm_inst *  fi,
uint32_t  event,
void *  data 
)
static

◆ lm_wait_notify()

◆ osmo_ss7_asp_use_default_lm()

◆ restart_asp()

static void restart_asp ( struct osmo_fsm_inst *  fi)
static

Variable Documentation

◆ default_layer_manager

const struct osmo_xua_layer_manager default_layer_manager
static
Initial value:
= {
.prim_cb = default_lm_prim_cb,
}
static int default_lm_prim_cb(struct osmo_prim_hdr *oph, void *_asp)
Definition: xua_default_lm_fsm.c:351

Referenced by osmo_ss7_asp_use_default_lm().

◆ lm_event_map

const struct osmo_prim_event_map lm_event_map[]
static
Initial value:
= {
{ 0, 0, 0, OSMO_NO_EVENT },
}
Definition: sigtran_sap.h:27
Definition: sigtran_sap.h:22
Definition: xua_default_lm_fsm.c:59
Definition: sigtran_sap.h:19
Definition: sigtran_sap.h:15
Definition: sigtran_sap.h:14
Definition: sigtran_sap.h:26
Definition: xua_default_lm_fsm.c:61
Definition: sigtran_sap.h:9
Definition: sigtran_sap.h:30
Definition: xua_default_lm_fsm.c:57
Definition: sigtran_sap.h:20
Definition: xua_default_lm_fsm.c:62
Definition: xua_default_lm_fsm.c:63
Definition: xua_default_lm_fsm.c:64
Definition: xua_default_lm_fsm.c:60
Definition: xua_default_lm_fsm.c:58

Referenced by default_lm_prim_cb().

◆ lm_event_names

const struct value_string lm_event_names[]
static
Initial value:
= {
{ LM_E_SCTP_EST_IND, "SCTP-ESTABLISH.ind" },
{ LM_E_ASP_UP_CONF, "ASP-UP.conf" },
{ LM_E_NOTIFY_IND, "NOTIFY.ind" },
{ LM_E_AS_INACTIVE_IND, "AS-INACTIVE.ind" },
{ LM_E_AS_ACTIVE_IND, "AS-ACTIVE.ind" },
{ LM_E_AS_STATUS_IND, "AS-STATUS.ind" },
{ LM_E_RKM_REG_CONF, "RKM_REG.conf" },
{ LM_E_SCTP_DISC_IND, "SCTP-RELEASE.ind" },
{ 0, NULL }
}
Definition: xua_default_lm_fsm.c:59
Definition: xua_default_lm_fsm.c:61
Definition: xua_default_lm_fsm.c:57
Definition: xua_default_lm_fsm.c:62
Definition: xua_default_lm_fsm.c:63
Definition: xua_default_lm_fsm.c:64
Definition: xua_default_lm_fsm.c:60
Definition: xua_default_lm_fsm.c:58

◆ lm_states

const struct osmo_fsm_state lm_states[]
static

◆ xua_default_lm_fsm

struct osmo_fsm xua_default_lm_fsm
Initial value:
= {
.name = "xua_default_lm",
.states = lm_states,
.num_states = ARRAY_SIZE(lm_states),
.timer_cb = lm_timer_cb,
.event_names = lm_event_names,
.allstate_event_mask = S(LM_E_SCTP_DISC_IND),
.allstate_action = lm_allstate,
.log_subsys = DLSS7,
}
static const struct value_string lm_event_names[]
Definition: xua_default_lm_fsm.c:67
static const struct osmo_fsm_state lm_states[]
Definition: xua_default_lm_fsm.c:292
static int lm_timer_cb(struct osmo_fsm_inst *fi)
Definition: xua_default_lm_fsm.c:160
#define S(x)
Definition: xua_default_lm_fsm.c:41
static void lm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_default_lm_fsm.c:283
Definition: xua_default_lm_fsm.c:64

Referenced by osmo_ss7_asp_use_default_lm(), and osmo_ss7_init().