summaryrefslogtreecommitdiffstats
path: root/src/host/layer23
diff options
context:
space:
mode:
authorHarald Welte2011-06-25 18:32:08 +0200
committerHarald Welte2011-06-25 18:32:08 +0200
commit4a8fb6111b467c88c3c59f1aa9caffddad697366 (patch)
treeaf74310f06ca47701314e61bfc387a64a28d4368 /src/host/layer23
parentlapdm: introduce a new lapdm_phsap_dequeue_prim() (diff)
downloadosmocom-4a8fb6111b467c88c3c59f1aa9caffddad697366.tar.gz
osmocom-4a8fb6111b467c88c3c59f1aa9caffddad697366.tar.xz
osmocom-4a8fb6111b467c88c3c59f1aa9caffddad697366.zip
lapdm: properly set the msg->l3h to the contents of the RSL L3_INFO IE
Diffstat (limited to 'src/host/layer23')
-rw-r--r--src/host/layer23/src/common/lapdm.c3
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 fd395ef..8bfc236 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");