449 lines
15 KiB
C
449 lines
15 KiB
C
/* ITU-T G.964 Section 14.1.3.2.2 ISDN user port FSM - LE */
|
|
|
|
/***********************************************************************/
|
|
/* internal data structures */
|
|
/***********************************************************************/
|
|
|
|
#include <osmocom/core/linuxlist.h>
|
|
|
|
#include "v5x_internal.h"
|
|
|
|
|
|
/***********************************************************************/
|
|
/* state names, event names, primitives, ... */
|
|
/***********************************************************************/
|
|
|
|
/* Table 35/G.964 */
|
|
enum v51_mph_prim {
|
|
V51_LE_MPH_UB, /* Unblock (req, ind)*/
|
|
V51_LE_MPH_B, /* Block (req, ind) */
|
|
V51_LE_MPH_A, /* Activate (req, ind) */
|
|
V51_LE_MPH_AW, /* Access activation by user (ind) */
|
|
V51_LE_MPH_DSA, /* DS Activated (ind) */
|
|
V51_LE_MPH_D, /* Deactivate (req, ind) */
|
|
V51_LE_MPH_G, /* Grading Information */
|
|
V51_LE_MPH_DB, /* Block D-Channel from user port */
|
|
V51_LE_MPH_DU, /* Unblock D-Channel from user port */
|
|
};
|
|
|
|
/* 14.1.3.2.2 ISDN user port FSM - LE(ISDN port) */
|
|
enum v51_le_isdn_port_state {
|
|
V51_LE_UP_I_S_LE10_NOP_BLOCKED, /* LE1.0 */
|
|
V51_LE_UP_I_S_LE11_NOP_LOCAL_UNBLOCK, /* LE1.1 */
|
|
V51_LE_UP_I_S_LE12_NOP_REMOTE_UNBLOCK, /* LE1.2 */
|
|
V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED, /* LE2.0 */
|
|
V51_LE_UP_I_S_LE21_OP_ACTIVATION_INITIATED, /* LE2.1 */
|
|
V51_LE_UP_I_S_LE22_OP_ACCESS_ACTIVATED, /* LE2.2 */
|
|
};
|
|
|
|
/* 14.2.3.2.2 PSTN user port FSM - LE(PSTN port) */
|
|
enum v51_le_pstn_port_state {
|
|
V51_LE_UP_P_S_LE10_NOP_BLOCKED, /* LE1.0 */
|
|
V51_LE_UP_P_S_LE11_NOP_LOCAL_UNBLOCK, /* LE1.1 */
|
|
V51_LE_UP_P_S_LE12_NOP_REMOTE_UNBLOCK, /* LE1.2 */
|
|
V51_LE_UP_P_S_LE22_OPERATIONAL, /* LE2.0 */
|
|
};
|
|
|
|
enum v51_ctrl_le_port_fsm_event {
|
|
/* inbound function elements from AN (Table 34/G.964) */
|
|
V51_CUP_LE_FE102_ACTIV_INIT_USER_IND,
|
|
V51_CUP_LE_FE103_DS_ACTIVATED_IND,
|
|
V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND,
|
|
V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND,
|
|
V51_CUP_LE_FE202_UNBLOCK_REQ,
|
|
V51_CUP_LE_FE202_UNBLOCK_ACK,
|
|
V51_CUP_LE_FE204_BLOCK_CMD,
|
|
V51_CUP_LE_FE205_BLOCK_REQ,
|
|
V51_CUP_LE_FE206_PREFORMANCE_GRADING_IND,
|
|
/* inbound primitives from Mgmt (Table 35/G.964) */
|
|
V51_CUP_LE_MPH_UBR_UNBLOCK_REQ,
|
|
V51_CUP_LE_MPH_BI_BLOCK_CMD,
|
|
V51_CUP_LE_MPH_AR_ACTIVATE_ACCESS_REQ,
|
|
V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ,
|
|
V51_CUP_LE_MPH_DB_BLOCK_DCHAN_REQ,
|
|
V51_CUP_LE_MPH_DU_BLOCK_DCHAN_REQ,
|
|
};
|
|
|
|
static void isdn_up_le10_blocked(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|
{
|
|
switch (event) {
|
|
case V51_CUP_LE_FE102_ACTIV_INIT_USER_IND:
|
|
case V51_CUP_LE_FE103_DS_ACTIVATED_IND:
|
|
case V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND:
|
|
case V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ:
|
|
case V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND:
|
|
/* ignore */
|
|
break;
|
|
case V51_CUP_LE_MPH_UBR_UNBLOCK_REQ:
|
|
/* Send FE201 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE201_UNBLOCK));
|
|
osmo_fsm_inst_state_change(fi, V51_LE_UP_I_S_LE11_NOP_LOCAL_UNBLOCK, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_MPH_BI_BLOCK_CMD:
|
|
/* Send FE203 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE203_BLOCK));
|
|
break;
|
|
case V51_CUP_LE_FE202_UNBLOCK_ACK:
|
|
/* TODO: Send MPU-UBR */
|
|
osmo_fsm_inst_state_change(fi, V51_LE_UP_I_S_LE11_NOP_LOCAL_UNBLOCK, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE204_BLOCK_CMD:
|
|
case V51_CUP_LE_FE205_BLOCK_REQ:
|
|
/* ignore */
|
|
break;
|
|
default:
|
|
OSMO_ASSERT(0);
|
|
}
|
|
|
|
}
|
|
|
|
static void isdn_up_le11_local_unblock(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|
{
|
|
switch (event) {
|
|
case V51_CUP_LE_FE102_ACTIV_INIT_USER_IND:
|
|
/* TODO: send MPG-AWI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE21_OP_ACTIVATION_INITIATED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE103_DS_ACTIVATED_IND:
|
|
/* ignore */
|
|
break;
|
|
case V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND:
|
|
/* TODO: send MPH-AI*/
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE22_OP_ACCESS_ACTIVATED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ:
|
|
case V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND:
|
|
/* ignore */
|
|
break;
|
|
case V51_CUP_LE_MPH_UBR_UNBLOCK_REQ:
|
|
/* send FE201 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE201_UNBLOCK));
|
|
break;
|
|
case V51_CUP_LE_MPH_BI_BLOCK_CMD:
|
|
/* send FE203 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE203_BLOCK));
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE202_UNBLOCK_ACK:
|
|
/* TODO: send MPH-UBI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE204_BLOCK_CMD:
|
|
/* TODO: send MPH-BI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE205_BLOCK_REQ:
|
|
/* ignore */
|
|
break;
|
|
default:
|
|
OSMO_ASSERT(0);
|
|
}
|
|
}
|
|
|
|
static void isdn_up_le12_remote_unblock(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|
{
|
|
switch (event) {
|
|
case V51_CUP_LE_FE103_DS_ACTIVATED_IND:
|
|
/* ignore */
|
|
break;
|
|
case V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ:
|
|
case V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND:
|
|
/* ignore */
|
|
break;
|
|
case V51_CUP_LE_MPH_UBR_UNBLOCK_REQ:
|
|
/* TODO: send MPH-UBI */
|
|
/* send FE201 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE201_UNBLOCK));
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_MPH_BI_BLOCK_CMD:
|
|
/* send FE203 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE203_BLOCK));
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE202_UNBLOCK_ACK:
|
|
/* TODO: send MPH-UBR */
|
|
break;
|
|
case V51_CUP_LE_FE204_BLOCK_CMD:
|
|
/* TODO: send MPH-BI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE205_BLOCK_REQ:
|
|
/* ignore */
|
|
break;
|
|
default:
|
|
OSMO_ASSERT(0);
|
|
}
|
|
}
|
|
|
|
/* LE 2.0 Operational deactivated */
|
|
static void isdn_up_le20_op_deact(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|
{
|
|
switch (event) {
|
|
case V51_CUP_LE_MPH_AR_ACTIVATE_ACCESS_REQ:
|
|
/* Send FE101 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE101_ACTIVATE_ACCESS));
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE21_OP_ACTIVATION_INITIATED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE102_ACTIV_INIT_USER_IND:
|
|
/* TODO: Send MPH-AWI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE21_OP_ACTIVATION_INITIATED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE103_DS_ACTIVATED_IND:
|
|
/* ignore */
|
|
break;
|
|
case V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND:
|
|
/* TODO: Send MPH-AI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE22_OP_ACCESS_ACTIVATED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ:
|
|
/* Send FE105 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE105_DEACTIVATE_ACCESS));
|
|
break;
|
|
case V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND:
|
|
/* TODO: Send MPH-DI */
|
|
break;
|
|
case V51_CUP_LE_MPH_UBR_UNBLOCK_REQ:
|
|
/* Send FE201 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE201_UNBLOCK));
|
|
break;
|
|
case V51_CUP_LE_MPH_BI_BLOCK_CMD:
|
|
/* Send FE203 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE203_BLOCK));
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE202_UNBLOCK_ACK:
|
|
/* TODO: Send MPH-UBI */
|
|
break;
|
|
case V51_CUP_LE_FE204_BLOCK_CMD:
|
|
/* TODO: Send MPH-BI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE205_BLOCK_REQ:
|
|
/* TODO: Send MPH-BR */
|
|
break;
|
|
case V51_CUP_LE_FE206_PREFORMANCE_GRADING_IND:
|
|
/* TODO: Send MPH-GI */
|
|
break;
|
|
default:
|
|
OSMO_ASSERT(0);
|
|
}
|
|
}
|
|
|
|
/* LE 2.1 Access initiated */
|
|
static void isdn_up_le21_op_act_init(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|
{
|
|
switch (event) {
|
|
case V51_CUP_LE_MPH_AR_ACTIVATE_ACCESS_REQ:
|
|
case V51_CUP_LE_FE102_ACTIV_INIT_USER_IND:
|
|
/* ignore */
|
|
break;
|
|
case V51_CUP_LE_FE103_DS_ACTIVATED_IND:
|
|
/* TODO: Send MPH-DSAI */
|
|
break;
|
|
case V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND:
|
|
/* TODO: Send MPH-AI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE22_OP_ACCESS_ACTIVATED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ:
|
|
/* Send FE105 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE105_DEACTIVATE_ACCESS));
|
|
/* TODO: Send MPH-DI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND:
|
|
/* TODO: Send MPH-DI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_MPH_UBR_UNBLOCK_REQ:
|
|
/* Send FE201 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE201_UNBLOCK));
|
|
break;
|
|
case V51_CUP_LE_MPH_BI_BLOCK_CMD:
|
|
/* Send FE203 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE203_BLOCK));
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE202_UNBLOCK_ACK:
|
|
/* TODO: Send MPH-UBI */
|
|
break;
|
|
case V51_CUP_LE_FE204_BLOCK_CMD:
|
|
/* TODO: Send MPH-BI */
|
|
/* TODO: Send MPH-DI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE205_BLOCK_REQ:
|
|
/* TODO: Send MPH-BR */
|
|
break;
|
|
case V51_CUP_LE_FE206_PREFORMANCE_GRADING_IND:
|
|
/* TODO: Send MPH-GI */
|
|
break;
|
|
default:
|
|
OSMO_ASSERT(0);
|
|
}
|
|
|
|
}
|
|
|
|
/* LE 2.2 Access activated */
|
|
static void isdn_up_le22_op_acc_act(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|
{
|
|
switch (event) {
|
|
case V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND:
|
|
/* ignore */
|
|
break;
|
|
case V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ:
|
|
/* Send FE105 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE105_DEACTIVATE_ACCESS));
|
|
/* TODO: Send MPH-DI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND:
|
|
/* TODO: Send MPH-DI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_MPH_UBR_UNBLOCK_REQ:
|
|
/* TODO: Send MPH-AI */
|
|
/* Send FE201 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE201_UNBLOCK));
|
|
break;
|
|
case V51_CUP_LE_MPH_BI_BLOCK_CMD:
|
|
/* Send FE203 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE203_BLOCK));
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE202_UNBLOCK_ACK:
|
|
/* TODO: Send MPH-UBI */
|
|
break;
|
|
case V51_CUP_LE_FE204_BLOCK_CMD:
|
|
/* TODO: Send MPH-BI */
|
|
/* TODO: Send MPH-DI */
|
|
osmo_fsm_inst_state_chg(fi, V51_LE_UP_I_S_LE10_NOP_BLOCKED, 0, 0);
|
|
break;
|
|
case V51_CUP_LE_FE205_BLOCK_REQ:
|
|
/* TODO: Send MPH-BR */
|
|
break;
|
|
case V51_CUP_LE_FE206_PREFORMANCE_GRADING_IND:
|
|
/* TODO: Send MPH-GI */
|
|
break;
|
|
case V51_CUP_LE_MPH_DB_BLOCK_DCHAN_REQ:
|
|
/* Send FE207 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE207_D_CHANNEL_BLOCK));
|
|
break;
|
|
case V51_CUP_LE_MPH_DU_BLOCK_DCHAN_REQ:
|
|
/* Send FE208 */
|
|
v51_ctrl_tx(v5up->inst, v51_enc_ctrl_port(v5up, V51_CTRL_FE208_D_CHANNEL_UNBLOCK));
|
|
break;
|
|
default:
|
|
OSMO_ASSERT(0);
|
|
}
|
|
}
|
|
|
|
|
|
/* Table 38/G.964 LE (ISDN port) FSM for ISDN basic access user ports */
|
|
static const struct osmo_fsm_state v51_ctrl_le_port_fsm_states[] = {
|
|
[V51_LE_UP_I_S_LE10_NOP_BLOCKED] = {
|
|
.name = "LE1.0_BLOCKED",
|
|
.in_event_mask = S(V51_CUP_LE_FE102_ACTIV_INIT_USER_IND) |
|
|
S(V51_CUP_LE_FE103_DS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ) |
|
|
S(V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_UBR_UNBLOCK_REQ) |
|
|
S(V51_CUP_LE_MPH_BI_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE202_UNBLOCK_ACK) |
|
|
S(V51_CUP_LE_FE204_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE205_BLOCK_REQ),
|
|
.out_state_mask = S(V51_LE_UP_I_S_LE10_NOP_BLOCKED) |
|
|
S(V51_LE_UP_I_S_LE11_NOP_LOCAL_UNBLOCK) |
|
|
S(V51_LE_UP_I_S_LE12_NOP_REMOTE_UNBLOCK),
|
|
.action = isdn_up_le10_blocked,
|
|
},
|
|
[V51_LE_UP_I_S_LE11_NOP_LOCAL_UNBLOCK] = {
|
|
.name = "LE1.1_LOCAL_UNBLOCK",
|
|
.in_event_mask = S(V51_CUP_LE_FE102_ACTIV_INIT_USER_IND) |
|
|
S(V51_CUP_LE_FE103_DS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ) |
|
|
S(V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_UBR_UNBLOCK_REQ) |
|
|
S(V51_CUP_LE_MPH_BI_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE202_UNBLOCK_ACK) |
|
|
S(V51_CUP_LE_FE204_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE205_BLOCK_REQ),
|
|
.out_state_mask = S(V51_LE_UP_I_S_LE21_OP_ACTIVATION_INITIATED) |
|
|
S(V51_LE_UP_I_S_LE22_OP_ACCESS_ACTIVATED) |
|
|
S(V51_LE_UP_I_S_LE10_NOP_BLOCKED) |
|
|
S(V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED),
|
|
.action = isdn_up_le11_local_unblock,
|
|
},
|
|
[V51_LE_UP_I_S_LE12_NOP_REMOTE_UNBLOCK] = {
|
|
.name = "LE1.2_REMOTE_UNBLOCK",
|
|
.in_event_mask = S(V51_CUP_LE_FE103_DS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ) |
|
|
S(V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_UBR_UNBLOCK_REQ) |
|
|
S(V51_CUP_LE_MPH_BI_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE202_UNBLOCK_ACK) |
|
|
S(V51_CUP_LE_FE204_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE205_BLOCK_REQ),
|
|
.out_state_mask = S(V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED) |
|
|
S(V51_LE_UP_I_S_LE10_NOP_BLOCKED),
|
|
.action = isdn_up_le12_remote_unblock,
|
|
},
|
|
[V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED] = {
|
|
.name = "LE2.0_OPERATIONAL_DEACTIVATED",
|
|
.in_event_mask = S(V51_CUP_LE_MPH_AR_ACTIVATE_ACCESS_REQ) |
|
|
S(V51_CUP_LE_FE102_ACTIV_INIT_USER_IND) |
|
|
S(V51_CUP_LE_FE103_DS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ) |
|
|
S(V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_UBR_UNBLOCK_REQ) |
|
|
S(V51_CUP_LE_MPH_BI_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE202_UNBLOCK_ACK) |
|
|
S(V51_CUP_LE_FE204_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE205_BLOCK_REQ) |
|
|
S(V51_CUP_LE_FE206_PREFORMANCE_GRADING_IND),
|
|
.out_state_mask = S(V51_LE_UP_I_S_LE21_OP_ACTIVATION_INITIATED) |
|
|
S(V51_LE_UP_I_S_LE22_OP_ACCESS_ACTIVATED) |
|
|
S(V51_LE_UP_I_S_LE10_NOP_BLOCKED),
|
|
.action = isdn_up_le21_op_deact,
|
|
},
|
|
[V51_LE_UP_I_S_LE21_OP_ACTIVATION_INITIATED] = {
|
|
.name = "LE2.1_ACTIVATION_INITIATED",
|
|
.in_event_mask = S(V51_CUP_LE_MPH_AR_ACTIVATE_ACCESS_REQ) |
|
|
S(V51_CUP_LE_FE102_ACTIV_INIT_USER_IND) |
|
|
S(V51_CUP_LE_FE103_DS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ) |
|
|
S(V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_UBR_UNBLOCK_REQ) |
|
|
S(V51_CUP_LE_MPH_BI_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE202_UNBLOCK_ACK) |
|
|
S(V51_CUP_LE_FE204_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE205_BLOCK_REQ),
|
|
.out_state_mask = S(V51_LE_UP_I_S_LE22_OP_ACCESS_ACTIVATED) |
|
|
S(V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED) |
|
|
S(V51_LE_UP_I_S_LE10_NOP_BLOCKED),
|
|
.action = isdn_up_le21_op_act_init,
|
|
},
|
|
[V51_LE_UP_I_S_LE22_OP_ACCESS_ACTIVATED] = {
|
|
.name = "LE2.2_ACCESS_ACTIVATED",
|
|
.in_event_mask = S(V51_CUP_LE_FE104_ACCESS_ACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_DR_DEACTIVATE_ACCESS_REQ) |
|
|
S(V51_CUP_LE_FE106_ACCESS_DEACTIVATED_IND) |
|
|
S(V51_CUP_LE_MPH_UBR_UNBLOCK_REQ) |
|
|
S(V51_CUP_LE_MPH_BI_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE202_UNBLOCK_ACK) |
|
|
S(V51_CUP_LE_FE204_BLOCK_CMD) |
|
|
S(V51_CUP_LE_FE205_BLOCK_REQ) |
|
|
S(V51_CUP_LE_FE206_PREFORMANCE_GRADING_IND) |
|
|
S(V51_CUP_LE_MPH_DB_BLOCK_DCHAN_REQ) |
|
|
S(V51_CUP_LE_MPH_DU_BLOCK_DCHAN_REQ),
|
|
.out_state_mask = S(V51_LE_UP_I_S_LE20_OP_OPERATIONAL_DEACTIVTED) |
|
|
S(V51_LE_UP_I_S_LE10_NOP_BLOCKED),
|
|
.action = isdn_up_le22_op_acc_act,
|
|
},
|
|
};
|
|
|