diff options
Diffstat (limited to 'src/pdch.cpp')
-rw-r--r-- | src/pdch.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/pdch.cpp b/src/pdch.cpp index f46acc87..22e20e3a 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -638,6 +638,12 @@ void gprs_rlcmac_pdch::rcv_resource_request(Packet_Resource_Request_t *request, return; } + struct msgb *msg = msgb_alloc(23, "access_reject"); + struct bitvec bv = { + .data_len = GSM_MACBLOCK_LEN, + .data = msgb_put(msg, GSM_MACBLOCK_LEN) + }; + if (request->ID.u.Global_TFI.UnionType) { struct gprs_rlcmac_dl_tbf *dl_tbf; int8_t tfi = request->ID.u.Global_TFI.u.DOWNLINK_TFI; @@ -648,6 +654,8 @@ void gprs_rlcmac_pdch::rcv_resource_request(Packet_Resource_Request_t *request, } LOGPTBFDL(dl_tbf, LOGL_ERROR, "RX: [PCU <- BTS] FIXME: Packet resource request\n"); + Encoding::write_packet_access_reject_tfi(&bv, tfi, false); + dl_tbf->sched_pkt_acc_req = msg; /* Reset N3101 counter: */ dl_tbf->n_reset(N3101); @@ -661,6 +669,8 @@ void gprs_rlcmac_pdch::rcv_resource_request(Packet_Resource_Request_t *request, } LOGPTBFUL(ul_tbf, LOGL_ERROR, "RX: [PCU <- BTS] FIXME: Packet resource request\n"); + Encoding::write_packet_access_reject_tfi(&bv, tfi, true); + ul_tbf->sched_pkt_acc_req = msg; /* Reset N3101 counter: */ ul_tbf->n_reset(N3101); |