diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-06-25 18:32:08 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-06-25 18:32:08 +0200 |
commit | 4a8fb6111b467c88c3c59f1aa9caffddad697366 (patch) | |
tree | af74310f06ca47701314e61bfc387a64a28d4368 /src | |
parent | 7506e29c61cd160881ad79145f5981b3fdd8c145 (diff) |
lapdm: properly set the msg->l3h to the contents of the RSL L3_INFO IE
Diffstat (limited to 'src')
-rw-r--r-- | src/host/layer23/src/common/lapdm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/host/layer23/src/common/lapdm.c b/src/host/layer23/src/common/lapdm.c index fd395ef1..8bfc236e 100644 --- a/src/host/layer23/src/common/lapdm.c +++ b/src/host/layer23/src/common/lapdm.c @@ -1752,6 +1752,7 @@ static int rslms_rx_rll_est_req(struct msgb *msg, struct lapdm_datalink *dl) rsl_tlv_parse(&tv, rllh->data, msgb_l2len(msg)-sizeof(*rllh)); if (TLVP_PRESENT(&tv, RSL_IE_L3_INFO)) { + msg->l3h = TLVP_VAL(&tv, RSL_IE_L3_INFO); /* contention resolution establishment procedure */ if (sapi != 0) { /* According to clause 6, the contention resolution @@ -1843,6 +1844,7 @@ static int rslms_rx_rll_udata_req(struct msgb *msg, struct lapdm_datalink *dl) msgb_free(msg); return -EINVAL; } + msg->l3h = TLVP_VAL(&tv, RSL_IE_L3_INFO); length = TLVP_LEN(&tv, RSL_IE_L3_INFO); /* check if the layer3 message length exceeds N201 */ if (length + 5 > 23) { /* FIXME: do we know the channel N201? */ @@ -1884,6 +1886,7 @@ static int rslms_rx_rll_data_req(struct msgb *msg, struct lapdm_datalink *dl) msgb_free(msg); return -EINVAL; } + msg->l3h = TLVP_VAL(&tv, RSL_IE_L3_INFO); LOGP(DLAPDM, LOGL_INFO, "writing message to send-queue\n"); |