summaryrefslogtreecommitdiffstats
path: root/src/host
diff options
context:
space:
mode:
authorAndreas.Eversberg <jolly@eversberg.eu>2010-10-24 22:31:06 +0000
committerAndreas.Eversberg <jolly@eversberg.eu>2010-10-24 22:31:06 +0000
commita5445fe8a3e56b1f1d38634af01c74ebc1ccba3c (patch)
tree3aff039e90d84d60ed64cd3ea74fe9d1c0d10a19 /src/host
parenta8ac4bb2dffe2dfe8030ad9f34ec10a4f9684d54 (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/host')
-rw-r--r--src/host/layer23/src/common/lapdm.c18
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);