diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2021-01-10 20:44:26 +0100 |
---|---|---|
committer | Alexander Couzens <lynxis@fe80.eu> | 2021-01-17 16:11:36 +0100 |
commit | c4b746284f0181d4822f070435d9af7472164bd7 (patch) | |
tree | a07b9b1be65f15260fd069a33bcc3b959c95fe73 /src/gb/gprs_ns2_vc_fsm.c | |
parent | 03f88d910e4b839b3cc51036d748c902b4690537 (diff) |
gprs_ns2_vc: answer UNBLOCK on unblocked nsvc
48.016 7.2: says an UNBLOCK pdu should be answered with UNBLOCK_ACK on
already unblocked NSVC
Related: SYS#5208
Change-Id: Ic92e99b2607d1e54ecb4668667065502a55a2ce0
Diffstat (limited to 'src/gb/gprs_ns2_vc_fsm.c')
-rw-r--r-- | src/gb/gprs_ns2_vc_fsm.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d5f134e1..78b06911 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -334,6 +334,9 @@ static void gprs_ns2_st_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void struct gprs_ns2_vc_priv *priv = fi->priv; switch (event) { + case GPRS_NS2_EV_UNBLOCK: + ns2_tx_unblock_ack(priv->nsvc); + break; case GPRS_NS2_EV_BLOCK: priv->initiate_block = false; ns2_tx_block_ack(priv->nsvc); @@ -400,7 +403,8 @@ static const struct osmo_fsm_state gprs_ns2_vc_states[] = { .onenter = gprs_ns2_st_blocked_onenter, }, [GPRS_NS2_ST_UNBLOCKED] = { - .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), + .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK) | + S(GPRS_NS2_EV_UNBLOCK), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE) | S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), |