aboutsummaryrefslogtreecommitdiffstats
path: root/src/tbf_dl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tbf_dl.cpp')
-rw-r--r--src/tbf_dl.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index c894f5eb..9baa1cd0 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -349,7 +349,23 @@ struct msgb *gprs_rlcmac_dl_tbf::create_new_bsn(const uint32_t fn, const uint8_t
delimiter = data; /* where next length header would be stored */
space = block_data_len - sizeof(*rh);
while (1) {
+ if (m_llc.frame_length() == 0) {
+ /* A header will need to by added, so we just need
+ * space-1 octets */
+ m_llc.put_dummy_frame(space - 1);
+
+ /* It is not clear, when the next real data will
+ * arrive, so request a DL ack/nack now */
+ request_dl_ack();
+
+ LOGP(DRLCMACDL, LOGL_DEBUG,
+ "-- Empty chunk, "
+ "added LLC dummy command of size %d\n",
+ m_llc.frame_length());
+ }
+
chunk = m_llc.chunk_size();
+
/* if chunk will exceed block limit */
if (chunk > space) {
LOGP(DRLCMACDL, LOGL_DEBUG, "-- Chunk with length %d "