/* ITU-T G.964 Section 14.1.3.2.2 ISDN user port FSM - LE */ /***********************************************************************/ /* internal data structures */ /***********************************************************************/ #include #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, }, };