diff options
author | Andreas.Eversberg <jolly@eversberg.eu> | 2010-10-24 22:31:06 +0000 |
---|---|---|
committer | Andreas.Eversberg <jolly@eversberg.eu> | 2010-10-24 22:31:06 +0000 |
commit | a5445fe8a3e56b1f1d38634af01c74ebc1ccba3c (patch) | |
tree | 3aff039e90d84d60ed64cd3ea74fe9d1c0d10a19 /src | |
parent | a8ac4bb2dffe2dfe8030ad9f34ec10a4f9684d54 (diff) |
[layer23] Reverted commit ece1463...
The timer recovery state is cleared already,if a supervisory frame
response is received with "F bit set to 1".
Diffstat (limited to 'src')
-rw-r--r-- | src/host/layer23/src/common/lapdm.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/host/layer23/src/common/lapdm.c b/src/host/layer23/src/common/lapdm.c index f3eed52d..af86a478 100644 --- a/src/host/layer23/src/common/lapdm.c +++ b/src/host/layer23/src/common/lapdm.c @@ -1080,15 +1080,11 @@ static int lapdm_rx_s(struct msgb *msg, struct lapdm_msg_ctx *mctx) } if (LAPDm_ADDR_CR(mctx->addr) == CR_BS2MS_RESP - && LAPDm_CTRL_PF_BIT(mctx->ctrl)) { - if (dl->state != LAPDm_STATE_TIMER_RECOV) { - /* 5.4.2.2: Inidcate error on supervisory reponse F=1 */ - LOGP(DLAPDM, LOGL_NOTICE, "S frame response with F=1 error\n"); - rsl_rll_error(RLL_CAUSE_UNSOL_SPRV_RESP, mctx); - } else { - /* 5.5.7: Exit Timer Recovery */ - lapdm_dl_newstate(dl, LAPDm_STATE_MF_EST); - } + && LAPDm_CTRL_PF_BIT(mctx->ctrl) + && dl->state != LAPDm_STATE_TIMER_RECOV) { + /* 5.4.2.2: Inidcate error on supervisory reponse F=1 */ + LOGP(DLAPDM, LOGL_NOTICE, "S frame response with F=1 error\n"); + rsl_rll_error(RLL_CAUSE_UNSOL_SPRV_RESP, mctx); } switch (dl->state) { @@ -1164,7 +1160,7 @@ static int lapdm_rx_s(struct msgb *msg, struct lapdm_msg_ctx *mctx) LOGP(DLAPDM, LOGL_INFO, "RNR poll response " "and we in timer recovery state, so " "we leave that state\n"); - /* Clear timer recovery condition */ + /* 5.5.7 Clear timer recovery condition */ lapdm_dl_newstate(dl, LAPDm_STATE_MF_EST); /* V(S) to the N(R) in the RNR frame */ dl->V_send = LAPDm_CTRL_Nr(mctx->ctrl); @@ -1232,7 +1228,7 @@ static int lapdm_rx_s(struct msgb *msg, struct lapdm_msg_ctx *mctx) "recovery state received\n"); /* Clear an existing peer receiver busy condition */ dl->peer_busy = 0; - /* Clear timer recovery condition */ + /* 5.5.7 Clear timer recovery condition */ lapdm_dl_newstate(dl, LAPDm_STATE_MF_EST); /* V(S) and V(A) to the N(R) in the REJ frame */ dl->V_send = dl->V_ack = LAPDm_CTRL_Nr(mctx->ctrl); |