aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAravind Sirsikar <Arvind.Sirsikar@radisys.com>2016-08-22 17:21:10 +0530
committerarvind.sirsikar <arvind.sirsikar@radisys.com>2016-08-25 10:41:33 +0000
commit50b097003baac3903c9d52a609b091c76ca83e3c (patch)
treec52f0863d1847e1fb5391d46658f1cf3e40ea2c1
parente6cadb4e3ccd05673fd9d33f8a445dd54be6006b (diff)
Modify EGPRS DL TBF flow to support SPB
Modify the EGPRS DL TBF flow to support Split block during Retx. This patch will also Upgrade the test suite with test cases to validate the EGPRS Downlink SPB for Retransmission Scenarios like MCS6->MCS3, MCS4->MCS1, MCS5->MCS2, MCS9->MCS3 MCS7->MCS2, MCS8->MCS3 have been simulated and Integration tested in NuRAN 1.0 hardware thoroughly. Change-Id: I242afdd8ae7622dec8593b26382ad66bad5b9516
-rw-r--r--src/gprs_coding_scheme.h8
-rw-r--r--src/pcu_main.cpp6
-rw-r--r--src/pcu_vty.c24
-rw-r--r--src/rlc.cpp31
-rw-r--r--src/rlc.h7
-rw-r--r--src/tbf.h5
-rw-r--r--src/tbf_dl.cpp216
-rw-r--r--tests/edge/EdgeTest.cpp38
-rw-r--r--tests/tbf/TbfTest.cpp235
-rw-r--r--tests/tbf/TbfTest.err460
-rw-r--r--tests/tbf/TbfTest.ok6
11 files changed, 957 insertions, 79 deletions
diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h
index 60a8e79..3b15372 100644
--- a/src/gprs_coding_scheme.h
+++ b/src/gprs_coding_scheme.h
@@ -113,7 +113,8 @@ public:
static const char *modeName(Mode mode);
static Scheme get_retx_mcs(const GprsCodingScheme mcs,
- const GprsCodingScheme retx_mcs);
+ const GprsCodingScheme retx_mcs,
+ const unsigned arq_type);
static enum Scheme egprs_mcs_retx_tbl[MAX_NUM_ARQ]
[MAX_NUM_MCS][MAX_NUM_MCS];
@@ -232,8 +233,9 @@ inline bool operator >=(GprsCodingScheme a, GprsCodingScheme b)
}
inline GprsCodingScheme::Scheme GprsCodingScheme::get_retx_mcs(
const GprsCodingScheme mcs,
- const GprsCodingScheme demanded_mcs)
+ const GprsCodingScheme demanded_mcs,
+ const unsigned arq_type)
{
- return egprs_mcs_retx_tbl[EGPRS_ARQ2][mcs.to_num() - 1]
+ return egprs_mcs_retx_tbl[arq_type][mcs.to_num() - 1]
[demanded_mcs.to_num() - 1];
}
diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp
index 2d86cda..e34d534 100644
--- a/src/pcu_main.cpp
+++ b/src/pcu_main.cpp
@@ -210,6 +210,12 @@ int main(int argc, char *argv[])
bts->dl_tbf_idle_msec = 2000;
bts->llc_idle_ack_csec = 10;
+ /*
+ * By default resegmentation is supported in DL
+ * can also be configured through VTY
+ */
+ bts->dl_arq_type = EGPRS_ARQ1;
+
msgb_set_talloc_ctx(tall_pcu_ctx);
osmo_init_logging(&gprs_log_info);
diff --git a/src/pcu_vty.c b/src/pcu_vty.c
index ef48027..535d512 100644
--- a/src/pcu_vty.c
+++ b/src/pcu_vty.c
@@ -129,6 +129,10 @@ static int config_write_pcu(struct vty *vty)
vty_out(vty, " window-size %d %d%s", bts->ws_base, bts->ws_pdch,
VTY_NEWLINE);
+ if (bts->dl_arq_type)
+ vty_out(vty, " egprs dl arq-type arq2%s",
+ VTY_NEWLINE);
+
if (bts->force_llc_lifetime == 0xffff)
vty_out(vty, " queue lifetime infinite%s", VTY_NEWLINE);
else if (bts->force_llc_lifetime)
@@ -474,6 +478,25 @@ DEFUN(cfg_pcu_no_mcs_max,
return CMD_SUCCESS;
}
+#define DL_STR "downlink specific configuration\n"
+
+DEFUN(cfg_pcu_dl_arq_type,
+ cfg_pcu_dl_arq_cmd,
+ "egprs dl arq-type (spb|arq2)",
+ EGPRS_STR DL_STR "ARQ options\n"
+ "enable SPB(ARQ1) support\n"
+ "enable ARQ2 support")
+{
+ struct gprs_rlcmac_bts *bts = bts_main_data();
+
+ if (!strcmp(argv[0], "arq2"))
+ bts->dl_arq_type = 1;
+ else
+ bts->dl_arq_type = 0;
+
+ return CMD_SUCCESS;
+}
+
DEFUN(cfg_pcu_window_size,
cfg_pcu_window_size_cmd,
"window-size <0-1024> [<0-256>]",
@@ -948,6 +971,7 @@ int pcu_vty_init(const struct log_info *cat)
install_element(PCU_NODE, &cfg_pcu_no_cs_downgrade_thrsh_cmd);
install_element(PCU_NODE, &cfg_pcu_cs_lqual_ranges_cmd);
install_element(PCU_NODE, &cfg_pcu_mcs_cmd);
+ install_element(PCU_NODE, &cfg_pcu_dl_arq_cmd);
install_element(PCU_NODE, &cfg_pcu_no_mcs_cmd);
install_element(PCU_NODE, &cfg_pcu_mcs_max_cmd);
install_element(PCU_NODE, &cfg_pcu_no_mcs_max_cmd);
diff --git a/src/rlc.cpp b/src/rlc.cpp
index 6770043..e69d1fc 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -285,7 +285,8 @@ bool gprs_rlc_ul_window::invalidate_bsn(const uint16_t bsn)
}
static void gprs_rlc_data_header_init(struct gprs_rlc_data_info *rlc,
- GprsCodingScheme cs, bool with_padding, unsigned int header_bits)
+ GprsCodingScheme cs, bool with_padding, unsigned int header_bits,
+ const unsigned int spb)
{
unsigned int i;
unsigned int padding_bits = with_padding ? cs.optionalPaddingBits() : 0;
@@ -300,7 +301,7 @@ static void gprs_rlc_data_header_init(struct gprs_rlc_data_info *rlc,
for (i = 0; i < rlc->num_data_blocks; i++) {
gprs_rlc_data_block_info_init(&rlc->block_info[i], cs,
- with_padding);
+ with_padding, spb);
rlc->data_offs_bits[i] =
header_bits + padding_bits +
@@ -310,21 +311,25 @@ static void gprs_rlc_data_header_init(struct gprs_rlc_data_info *rlc,
}
void gprs_rlc_data_info_init_dl(struct gprs_rlc_data_info *rlc,
- GprsCodingScheme cs, bool with_padding)
+ GprsCodingScheme cs, bool with_padding, const unsigned int spb)
{
return gprs_rlc_data_header_init(rlc, cs, with_padding,
- cs.numDataHeaderBitsDL());
+ cs.numDataHeaderBitsDL(), spb);
}
void gprs_rlc_data_info_init_ul(struct gprs_rlc_data_info *rlc,
GprsCodingScheme cs, bool with_padding)
{
+ /*
+ * last parameter is sent as 0 since common function used
+ * for both DL and UL
+ */
return gprs_rlc_data_header_init(rlc, cs, with_padding,
- cs.numDataHeaderBitsUL());
+ cs.numDataHeaderBitsUL(), 0);
}
void gprs_rlc_data_block_info_init(struct gprs_rlc_data_block_info *rdbi,
- GprsCodingScheme cs, bool with_padding)
+ GprsCodingScheme cs, bool with_padding, const unsigned int spb)
{
unsigned int data_len = cs.maxDataBlockBytes();
if (with_padding)
@@ -336,7 +341,7 @@ void gprs_rlc_data_block_info_init(struct gprs_rlc_data_block_info *rdbi,
rdbi->e = 1;
rdbi->cv = 15;
rdbi->pi = 0;
- rdbi->spb = 0;
+ rdbi->spb = spb;
}
unsigned int gprs_rlc_mcs_cps(GprsCodingScheme cs,
@@ -411,8 +416,18 @@ void gprs_rlc_mcs_cps_decode(unsigned int cps,
enum egprs_puncturing_values gprs_get_punct_scheme(
enum egprs_puncturing_values punct,
const GprsCodingScheme &cs,
- const GprsCodingScheme &cs_current)
+ const GprsCodingScheme &cs_current,
+ const enum egprs_rlcmac_dl_spb spb)
{
+
+ /*
+ * 10.4.8b of TS 44.060
+ * If it is second segment of the block
+ * dont change the puncturing scheme
+ */
+ if (spb == EGPRS_RLCMAC_DL_SEC_SEG)
+ return punct;
+
/* TS 44.060 9.3.2.1.1 */
if ((GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS9) &&
(GprsCodingScheme::Scheme(cs_current) == GprsCodingScheme::MCS6)) {
diff --git a/src/rlc.h b/src/rlc.h
index b1a1fba..b693418 100644
--- a/src/rlc.h
+++ b/src/rlc.h
@@ -213,18 +213,19 @@ struct gprs_rlc_data {
};
void gprs_rlc_data_info_init_dl(struct gprs_rlc_data_info *rlc,
- GprsCodingScheme cs, bool with_padding);
+ GprsCodingScheme cs, bool with_padding, const unsigned int spb);
void gprs_rlc_data_info_init_ul(struct gprs_rlc_data_info *rlc,
GprsCodingScheme cs, bool with_padding);
void gprs_rlc_data_block_info_init(struct gprs_rlc_data_block_info *rdbi,
- GprsCodingScheme cs, bool with_padding);
+ GprsCodingScheme cs, bool with_padding, const unsigned int spb);
unsigned int gprs_rlc_mcs_cps(GprsCodingScheme cs, enum egprs_puncturing_values
punct, enum egprs_puncturing_values punct2, int with_padding);
void gprs_rlc_mcs_cps_decode(unsigned int cps, GprsCodingScheme cs,
int *punct, int *punct2, int *with_padding);
enum egprs_puncturing_values gprs_get_punct_scheme(enum egprs_puncturing_values
punct, const GprsCodingScheme &cs,
- const GprsCodingScheme &cs_current_trans);
+ const GprsCodingScheme &cs_current_trans,
+ const enum egprs_rlcmac_dl_spb spb);
void gprs_update_punct_scheme(enum egprs_puncturing_values *punct,
const GprsCodingScheme &cs);
/*
diff --git a/src/tbf.h b/src/tbf.h
index 1bd7878..2a1bfe8 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -421,6 +421,11 @@ protected:
int analyse_errors(char *show_rbb, uint8_t ssn, ana_result *res);
void schedule_next_frame();
+ enum egprs_rlc_dl_reseg_bsn_state egprs_dl_get_data
+ (int bsn, uint8_t **block_data);
+ unsigned int get_egprs_dl_spb_status(int bsn);
+ enum egprs_rlcmac_dl_spb get_egprs_dl_spb(int bsn);
+
struct osmo_timer_list m_llc_timer;
};
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 07a747a..a24cc21 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -375,21 +375,28 @@ int gprs_rlcmac_dl_tbf::take_next_bsn(uint32_t fn,
return -1;
if (is_egprs_enabled()) {
+ /* Table 8.1.1.2 and Table 8.1.1.1 of 44.060 */
m_rlc.block(bsn)->cs_current_trans =
- GprsCodingScheme::get_retx_mcs(
- m_rlc.block(bsn)->cs_last, ms()->current_cs_dl());
+ GprsCodingScheme::get_retx_mcs(
+ m_rlc.block(bsn)->cs_init,
+ ms()->current_cs_dl(),
+ bts->bts_data()->dl_arq_type);
LOGP(DRLCMACDL, LOGL_DEBUG,
- "- current_cs_dl(%d) demanded_mcs(%d) cs_trans(%d)\n",
- m_rlc.block(bsn)->cs_last.to_num(),
- ms()->current_cs_dl().to_num(),
- m_rlc.block(bsn)->cs_current_trans.to_num());
+ "- initial_cs_dl(%d) last_mcs(%d)"
+ " demanded_mcs(%d) cs_trans(%d)"
+ " arq_type(%d) bsn(%d)\n",
+ m_rlc.block(bsn)->cs_init.to_num(),
+ m_rlc.block(bsn)->cs_last.to_num(),
+ ms()->current_cs_dl().to_num(),
+ m_rlc.block(bsn)->cs_current_trans.to_num(),
+ bts->bts_data()->dl_arq_type, bsn);
/* TODO: Need to remove this check when MCS-8 -> MCS-6
* transistion is handled.
* Refer commit be881c028fc4da00c4046ecd9296727975c206a3
*/
- if (m_rlc.block(bsn)->cs_last == GprsCodingScheme::MCS8)
+ if (m_rlc.block(bsn)->cs_init == GprsCodingScheme::MCS8)
m_rlc.block(bsn)->cs_current_trans =
GprsCodingScheme::MCS8;
} else
@@ -523,6 +530,11 @@ int gprs_rlcmac_dl_tbf::create_new_bsn(const uint32_t fn, GprsCodingScheme cs)
data = rlc_data->prepare(block_data_len);
rlc_data->cs_last = cs;
rlc_data->cs_current_trans = cs;
+
+ /* Initialise the variable related to DL SPB */
+ rlc_data->spb_status.block_status_dl = EGPRS_RESEG_DL_DEFAULT;
+ rlc_data->cs_init = cs;
+
rlc_data->len = block_data_len;
rdbi = &(rlc_data->block_info);
@@ -616,7 +628,8 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
unsigned num_bsns;
enum egprs_puncturing_values punct[ARRAY_SIZE(rlc.block_info)];
bool need_padding = false;
-
+ enum egprs_rlcmac_dl_spb spb = EGPRS_RLCMAC_DL_NO_RETX;
+ unsigned int spb_status = get_egprs_dl_spb_status(index);
/*
* TODO: This is an experimental work-around to put 2 BSN into
* MSC-7 to MCS-9 encoded messages. It just sends the same BSN
@@ -626,6 +639,7 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
* the current limit.
*/
cs = m_rlc.block(index)->cs_current_trans;
+ GprsCodingScheme &cs_init = m_rlc.block(index)->cs_init;
bsns[0] = index;
num_bsns = 1;
@@ -634,7 +648,17 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
num_bsns += 1;
}
- if (num_bsns == 1) {
+ /*
+ * if the intial mcs is 8 and retransmission mcs is either 6 or 3
+ * we have to include the padding of 6 octets in first segment
+ */
+ if ((GprsCodingScheme::Scheme(cs_init) == GprsCodingScheme::MCS8) &&
+ (GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS6 ||
+ GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS3)) {
+ if (spb_status == EGPRS_RESEG_DL_DEFAULT ||
+ spb_status == EGPRS_RESEG_SECOND_SEG_SENT)
+ need_padding = true;
+ } else if (num_bsns == 1) {
/* TODO: remove the conditional when MCS-6 padding isn't
* failing to be decoded by MEs anymore */
/* TODO: support of MCS-8 -> MCS-6 transition should be
@@ -646,7 +670,14 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
cs.decToSingleBlock(&need_padding);
}
- gprs_rlc_data_info_init_dl(&rlc, cs, need_padding);
+ spb = get_egprs_dl_spb(index);
+
+ LOGP(DRLCMACDL, LOGL_DEBUG, "- need_padding %d spb_status %d spb %d"
+ "(BSN1 %d BSN2 %d)\n",
+ need_padding,
+ spb_status, spb, index, index2);
+
+ gprs_rlc_data_info_init_dl(&rlc, cs, need_padding, spb);
rlc.usf = 7; /* will be set at scheduler */
rlc.pr = 0; /* FIXME: power reduction */
@@ -665,10 +696,9 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
data_block_idx++)
{
int bsn;
- GprsCodingScheme cs_enc;
uint8_t *block_data;
gprs_rlc_data_block_info *rdbi, *block_info;
- enum egprs_puncturing_values punct_scheme;
+ enum egprs_rlc_dl_reseg_bsn_state reseg_status;
/* Check if there are more blocks than BSNs */
if (data_block_idx < num_bsns)
@@ -676,38 +706,43 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
else
bsn = bsns[0];
- cs_enc = m_rlc.block(bsn)->cs_current_trans;
- /* get data and header from current block */
- block_data = m_rlc.block(bsn)->block;
-
/* Get current puncturing scheme from block */
- punct_scheme = gprs_get_punct_scheme(
+
+ m_rlc.block(bsn)->next_ps = gprs_get_punct_scheme(
m_rlc.block(bsn)->next_ps,
- m_rlc.block(bsn)->cs_last, cs);
+ m_rlc.block(bsn)->cs_last, cs, spb);
if (cs.isEgprs()) {
- OSMO_ASSERT(punct_scheme >= EGPRS_PS_1);
- OSMO_ASSERT(punct_scheme <= EGPRS_PS_3);
+ OSMO_ASSERT(m_rlc.block(bsn)->next_ps >= EGPRS_PS_1);
+ OSMO_ASSERT(m_rlc.block(bsn)->next_ps <= EGPRS_PS_3);
}
- punct[data_block_idx] = punct_scheme;
+ punct[data_block_idx] = m_rlc.block(bsn)->next_ps;
rdbi = &rlc.block_info[data_block_idx];
block_info = &m_rlc.block(bsn)->block_info;
- if(rdbi->data_len != m_rlc.block(bsn)->len) {
- LOGP(DRLCMACDL, LOGL_ERROR,
- "ERROR: Expected len = %d for %s instead of "
- "%d in data unit %d (BSN %d, %s)\n",
- rdbi->data_len, cs.name(), m_rlc.block(bsn)->len,
- data_block_idx, bsn, cs_enc.name());
- OSMO_ASSERT(rdbi->data_len == m_rlc.block(bsn)->len);
- }
+ /*
+ * get data and header from current block
+ * function returns the reseg status
+ */
+ reseg_status = egprs_dl_get_data(bsn, &block_data);
+ m_rlc.block(bsn)->spb_status.block_status_dl = reseg_status;
- /* TODO: Need to handle 2 same bsns
- * in header type 1
+ /*
+ * If it is first segment of the split block set the state of
+ * bsn to nacked. If it is the first segment dont update the
+ * next ps value of bsn. since next segment also needs same cps
*/
- gprs_update_punct_scheme(&m_rlc.block(bsn)->next_ps,
- cs);
+ if (spb == EGPRS_RLCMAC_DL_FIRST_SEG)
+ m_window.m_v_b.mark_nacked(bsn);
+ else {
+ /*
+ * TODO: Need to handle 2 same bsns
+ * in header type 1
+ */
+ gprs_update_punct_scheme(&m_rlc.block(bsn)->next_ps,
+ cs);
+ }
m_rlc.block(bsn)->cs_last = cs;
rdbi->e = block_info->e;
@@ -1169,3 +1204,118 @@ bool gprs_rlcmac_dl_tbf::keep_open(unsigned fn) const
keep_time_frames = msecs_to_frames(bts_data()->dl_tbf_idle_msec);
return frames_since_last_drain(fn) <= keep_time_frames;
}
+
+/*
+ * This function returns the pointer to data which needs
+ * to be copied. Also updates the status of the block related to
+ * Split block handling in the RLC/MAC block.
+ */
+enum egprs_rlc_dl_reseg_bsn_state
+ gprs_rlcmac_dl_tbf::egprs_dl_get_data(int bsn, uint8_t **block_data)
+{
+ gprs_rlc_data *rlc_data = m_rlc.block(bsn);
+ egprs_rlc_dl_reseg_bsn_state *block_status_dl =
+ &rlc_data->spb_status.block_status_dl;
+
+ GprsCodingScheme &cs_current_trans = m_rlc.block(bsn)->cs_current_trans;
+ GprsCodingScheme &cs_init = m_rlc.block(bsn)->cs_init;
+ *block_data = &rlc_data->block[0];
+
+ /*
+ * Table 10.3a.0.1 of 44.060
+ * MCS6,9: second segment starts at 74/2 = 37
+ * MCS5,7: second segment starts at 56/2 = 28
+ * MCS8: second segment starts at 31
+ * MCS4: second segment starts at 44/2 = 22
+ */
+ if (cs_current_trans.headerTypeData() ==
+ GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3) {
+ if (*block_status_dl == EGPRS_RESEG_FIRST_SEG_SENT) {
+ switch (GprsCodingScheme::Scheme(cs_init)) {
+ case GprsCodingScheme::MCS6 :
+ case GprsCodingScheme::MCS9 :
+ *block_data = &rlc_data->block[37];
+ break;
+ case GprsCodingScheme::MCS7 :
+ case GprsCodingScheme::MCS5 :
+ *block_data = &rlc_data->block[28];
+ break;
+ case GprsCodingScheme::MCS8 :
+ *block_data = &rlc_data->block[31];
+ break;
+ case GprsCodingScheme::MCS4 :
+ *block_data = &rlc_data->block[22];
+ break;
+ default:
+ LOGP(DRLCMACDL, LOGL_ERROR, "Software error: "
+ "--%s hit invalid condition. headerType(%d) "
+ " blockstatus(%d) cs(%s) PLEASE FIX!\n", name(),
+ cs_current_trans.headerTypeData(),
+ *block_status_dl, cs_init.name());
+ break;
+
+ }
+ return EGPRS_RESEG_SECOND_SEG_SENT;
+ } else if ((cs_init.headerTypeData() ==
+ GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1) ||
+ (cs_init.headerTypeData() ==
+ GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) {
+ return EGPRS_RESEG_FIRST_SEG_SENT;
+ } else if ((GprsCodingScheme::Scheme(cs_init) ==
+ GprsCodingScheme::MCS4) &&
+ (GprsCodingScheme::Scheme(cs_current_trans) ==
+ GprsCodingScheme::MCS1)) {
+ return EGPRS_RESEG_FIRST_SEG_SENT;
+ }
+ }
+ return EGPRS_RESEG_DL_DEFAULT;
+}
+
+/*
+ * This function returns the status of split block
+ * for RLC/MAC block.
+ */
+unsigned int gprs_rlcmac_dl_tbf::get_egprs_dl_spb_status(const int bsn)
+{
+ const gprs_rlc_data *rlc_data = m_rlc.block(bsn);
+
+ return rlc_data->spb_status.block_status_dl;
+}
+
+/*
+ * This function returns the spb value to be sent OTA
+ * for RLC/MAC block.
+ */
+enum egprs_rlcmac_dl_spb gprs_rlcmac_dl_tbf::get_egprs_dl_spb(const int bsn)
+{
+ struct gprs_rlc_data *rlc_data = m_rlc.block(bsn);
+ egprs_rlc_dl_reseg_bsn_state block_status_dl =
+ rlc_data->spb_status.block_status_dl;
+
+ GprsCodingScheme &cs_current_trans = m_rlc.block(bsn)->cs_current_trans;
+ GprsCodingScheme &cs_init = m_rlc.block(bsn)->cs_init;
+
+ /* Table 10.4.8b.1 of 44.060 */
+ if (cs_current_trans.headerTypeData() ==
+ GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3) {
+ /*
+ * if we are sending the second segment the spb should be 3
+ * other wise it should be 2
+ */
+ if (block_status_dl == EGPRS_RESEG_FIRST_SEG_SENT) {
+ return EGPRS_RLCMAC_DL_SEC_SEG;
+ } else if ((cs_init.headerTypeData() ==
+ GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1) ||
+ (cs_init.headerTypeData() ==
+ GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) {
+ return EGPRS_RLCMAC_DL_FIRST_SEG;
+ } else if ((GprsCodingScheme::Scheme(cs_init) ==
+ GprsCodingScheme::MCS4) &&
+ (GprsCodingScheme::Scheme(cs_current_trans) ==
+ GprsCodingScheme::MCS1)) {
+ return EGPRS_RLCMAC_DL_FIRST_SEG;
+ }
+ }
+ /* Non SPB cases 0 is reurned */
+ return EGPRS_RLCMAC_DL_NO_RETX;
+}
diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp
index 807102c..9081d4d 100644
--- a/tests/edge/EdgeTest.cpp
+++ b/tests/edge/EdgeTest.cpp
@@ -517,7 +517,7 @@ static void test_rlc_unit_encoder()
/* TS 44.060, B.1 */
cs = GprsCodingScheme::CS4;
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -570,7 +570,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::CS1;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -592,7 +592,7 @@ static void test_rlc_unit_encoder()
OSMO_ASSERT(data[1] == 0);
/* Block 2 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -630,7 +630,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::CS1;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -669,7 +669,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::CS1;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -694,7 +694,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::CS1;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -719,7 +719,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::CS1;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -740,7 +740,7 @@ static void test_rlc_unit_encoder()
OSMO_ASSERT(data[0] == 0);
/* Block 2 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -777,7 +777,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::MCS4;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -835,7 +835,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::MCS2;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -872,7 +872,7 @@ static void test_rlc_unit_encoder()
OSMO_ASSERT(data[1] == 0);
/* Block 2 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -923,7 +923,7 @@ static void test_rlc_unit_encoder()
OSMO_ASSERT(data[3] == 0);
/* Block 3 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -967,7 +967,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::MCS2;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -993,7 +993,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::MCS2;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -1020,7 +1020,7 @@ static void test_rlc_unit_encoder()
cs = GprsCodingScheme::MCS2;
/* Block 1 */
- gprs_rlc_data_block_info_init(&rdbi, cs, false);
+ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0);
num_chunks = 0;
write_offset = 0;
memset(data, 0, sizeof(data));
@@ -1074,7 +1074,7 @@ static void test_rlc_unaligned_copy()
block_idx++)
{
struct gprs_rlc_data_info rlc;
- gprs_rlc_data_info_init_dl(&rlc, cs, false);
+ gprs_rlc_data_info_init_dl(&rlc, cs, false, 0);
memset(bits, pattern, sizeof(bits));
Decoding::rlc_copy_to_aligned_buffer(
@@ -1118,12 +1118,14 @@ static void test_rlc_info_init()
struct gprs_rlc_data_info rlc;
printf("=== start %s ===\n", __func__);
- gprs_rlc_data_info_init_dl(&rlc, GprsCodingScheme(GprsCodingScheme::CS1), false);
+ gprs_rlc_data_info_init_dl(&rlc,
+ GprsCodingScheme(GprsCodingScheme::CS1), false, 0);
OSMO_ASSERT(rlc.num_data_blocks == 1);
OSMO_ASSERT(rlc.data_offs_bits[0] == 24);
OSMO_ASSERT(rlc.block_info[0].data_len == 20);
- gprs_rlc_data_info_init_dl(&rlc, GprsCodingScheme(GprsCodingScheme::MCS1), false);
+ gprs_rlc_data_info_init_dl(&rlc,
+ GprsCodingScheme(GprsCodingScheme::MCS1), false, 0);
OSMO_ASSERT(rlc.num_data_blocks == 1);
OSMO_ASSERT(rlc.data_offs_bits[0] == 33);
OSMO_ASSERT(rlc.block_info[0].data_len == 22);
diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp
index 90253b0..5e45506 100644
--- a/tests/tbf/TbfTest.cpp
+++ b/tests/tbf/TbfTest.cpp
@@ -1814,6 +1814,203 @@ static void tbf_cleanup(gprs_rlcmac_dl_tbf *dl_tbf)
}
+static void egprs_spb_to_normal_validation(BTS *the_bts,
+ int mcs, int demanded_mcs)
+{
+ uint32_t fn = 0;
+ gprs_rlcmac_dl_tbf *dl_tbf;
+ uint8_t block_nr = 0;
+ int index1 = 0;
+ uint8_t bn;
+ uint16_t bsn1, bsn2, bsn3;
+ struct msgb *msg;
+ struct gprs_rlc_dl_header_egprs_3 *egprs3;
+ struct gprs_rlc_dl_header_egprs_2 *egprs2;
+
+ printf("Testing retx for MCS %d to reseg_mcs %d\n", mcs, demanded_mcs);
+
+ dl_tbf = tbf_init(the_bts, mcs);
+
+ /*
+ * Table 10.4.8a.3.1 of 44.060.
+ * (MCS7, MCS9) to (MCS2, MCS3) is not handled since it is same as
+ * (MCS5, MCS6) to (MCS2, MCS3) transition
+ */
+ if (!(mcs == 6 && demanded_mcs == 3))
+ return;
+
+ fn = fn_add_blocks(fn, 1);
+ /* Send first RLC data block BSN 0 */
+ msg = dl_tbf->create_dl_acked_block(fn, dl_tbf->control_ts);
+ OSMO_ASSERT(dl_tbf->m_window.m_v_b.is_unacked(0));
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->cs_current_trans.to_num()
+ == mcs);
+
+ egprs2 = (struct gprs_rlc_dl_header_egprs_2 *) msg->data;
+ bsn1 = (egprs2->bsn1_hi << 9) || (egprs2->bsn1_mid << 1)
+ || (egprs2->bsn1_lo);
+ dl_tbf->m_window.m_v_b.mark_nacked(0);
+ OSMO_ASSERT(dl_tbf->m_window.m_v_b.is_nacked(0));
+ OSMO_ASSERT(bsn1 == 0);
+
+ dl_tbf->ms()->set_current_cs_dl
+ (static_cast < GprsCodingScheme::Scheme >
+ (GprsCodingScheme::CS4 + demanded_mcs));
+
+ fn = fn_add_blocks(fn, 1);
+
+ /* Send first segment with demanded_mcs */
+ msg = dl_tbf->create_dl_acked_block(fn, dl_tbf->control_ts);
+ OSMO_ASSERT(dl_tbf->m_window.m_v_b.is_nacked(0));
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->cs_current_trans.to_num()
+ == demanded_mcs);
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->spb_status.block_status_dl
+ == EGPRS_RESEG_FIRST_SEG_SENT);
+
+ egprs3 = (struct gprs_rlc_dl_header_egprs_3 *) msg->data;
+ OSMO_ASSERT(egprs3->spb == 2);
+
+ /* Table 10.4.8a.3.1 of 44.060 */
+ OSMO_ASSERT(egprs3->cps == 3);
+
+ /* Send second segment with demanded_mcs */
+ msg = dl_tbf->create_dl_acked_block(fn, dl_tbf->control_ts);
+ OSMO_ASSERT(dl_tbf->m_window.m_v_b.is_unacked(0));
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->cs_current_trans.to_num()
+ == demanded_mcs);
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->spb_status.block_status_dl
+ == EGPRS_RESEG_SECOND_SEG_SENT);
+
+ egprs3 = (struct gprs_rlc_dl_header_egprs_3 *) msg->data;
+ /* Table 10.4.8a.3.1 of 44.060 */
+ OSMO_ASSERT(egprs3->spb == 3);
+ bsn2 = (egprs3->bsn1_hi << 9) || (egprs3->bsn1_mid << 1) ||
+ (egprs3->bsn1_lo);
+ OSMO_ASSERT(bsn2 == bsn1);
+
+ /* Table 10.4.8a.3.1 of 44.060 */
+ OSMO_ASSERT(egprs3->cps == 3);
+
+ /* Handle (MCS3, MCS3) -> MCS6 case */
+ dl_tbf->ms()->set_current_cs_dl
+ (static_cast < GprsCodingScheme::Scheme >
+ (GprsCodingScheme::CS4 + mcs));
+
+ dl_tbf->m_window.m_v_b.mark_nacked(0);
+ OSMO_ASSERT(dl_tbf->m_window.m_v_b.is_nacked(0));
+ msg = dl_tbf->create_dl_acked_block(fn, dl_tbf->control_ts);
+ egprs2 = (struct gprs_rlc_dl_header_egprs_2 *) msg->data;
+
+ /* Table 10.4.8a.3.1 of 44.060 */
+ OSMO_ASSERT(egprs2->cps == 0);
+ bsn3 = (egprs2->bsn1_hi << 9) || (egprs2->bsn1_mid << 1) ||
+ (egprs2->bsn1_lo);
+ OSMO_ASSERT(bsn3 == bsn2);
+
+ tbf_cleanup(dl_tbf);
+}
+static void establish_and_use_egprs_dl_tbf_for_spb(BTS *the_bts,
+ int mcs, int demanded_mcs)
+{
+ uint32_t fn = 0;
+ gprs_rlcmac_dl_tbf *dl_tbf;
+ uint8_t block_nr = 0;
+ int index1 = 0;
+ uint8_t bn;
+ struct msgb *msg;
+ struct gprs_rlc_dl_header_egprs_3 *egprs3;
+
+ printf("Testing retx for MCS %d to reseg_mcs %d\n", mcs, demanded_mcs);
+
+ dl_tbf = tbf_init(the_bts, mcs);
+
+ /*
+ * Table 10.4.8a.3.1 of 44.060.
+ * (MCS7, MCS9) to (MCS2, MCS3) is not handled since it is same as
+ * (MCS5, MCS6) to (MCS2, MCS3) transition
+ */
+ /* TODO: Need to support of MCS8 -> MCS6 ->MCS3 transistion
+ * Refer commit be881c028fc4da00c4046ecd9296727975c206a3
+ * dated 2016-02-07 23:45:40 (UTC)
+ */
+ if (!(((mcs == 5) && (demanded_mcs == 2)) ||
+ ((mcs == 6) && (demanded_mcs == 3)) ||
+ ((mcs == 4) && (demanded_mcs == 1))))
+ return;
+
+ fn = fn_add_blocks(fn, 1);
+ /* Send first RLC data block BSN 0 */
+ msg = dl_tbf->create_dl_acked_block(fn, dl_tbf->control_ts);
+ OSMO_ASSERT(dl_tbf->m_window.m_v_b.is_unacked(0));
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->cs_current_trans.to_num()
+ == mcs);
+
+ dl_tbf->m_window.m_v_b.mark_nacked(0);
+ OSMO_ASSERT(dl_tbf->m_window.m_v_b.is_nacked(0));
+
+ dl_tbf->ms()->set_current_cs_dl
+ (static_cast < GprsCodingScheme::Scheme >
+ (GprsCodingScheme::CS4 + demanded_mcs));
+
+ fn = fn_add_blocks(fn, 1);
+
+ /* Send first segment with demanded_mcs */
+ msg = dl_tbf->create_dl_acked_block(fn, dl_tbf->control_ts);
+ OSMO_ASSERT(dl_tbf->m_window.m_v_b.is_nacked(0));
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->cs_current_trans.to_num()
+ == demanded_mcs);
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->spb_status.block_status_dl
+ == EGPRS_RESEG_FIRST_SEG_SENT);
+
+ egprs3 = (struct gprs_rlc_dl_header_egprs_3 *) msg->data;
+ OSMO_ASSERT(egprs3->spb == 2);
+
+ /* Table 10.4.8a.3.1 of 44.060 */
+ switch (demanded_mcs) {
+ case 3:
+ OSMO_ASSERT(egprs3->cps == 3);
+ break;
+ case 2:
+ OSMO_ASSERT(egprs3->cps == 9);
+ break;
+ case 1:
+ OSMO_ASSERT(egprs3->cps == 11);
+ break;
+ default:
+ OSMO_ASSERT(false);
+ break;
+ }
+
+ /* Send second segment with demanded_mcs */
+ msg = dl_tbf->create_dl_acked_block(fn, dl_tbf->control_ts);
+ OSMO_ASSERT(dl_tbf->m_window.m_v_b.is_unacked(0));
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->cs_current_trans.to_num()
+ == demanded_mcs);
+ OSMO_ASSERT(dl_tbf->m_rlc.block(0)->spb_status.block_status_dl
+ == EGPRS_RESEG_SECOND_SEG_SENT);
+
+ egprs3 = (struct gprs_rlc_dl_header_egprs_3 *) msg->data;
+ /* Table 10.4.8a.3.1 of 44.060 */
+ OSMO_ASSERT(egprs3->spb == 3);
+
+ /* Table 10.4.8a.3.1 of 44.060 */
+ switch (demanded_mcs) {
+ case 3:
+ OSMO_ASSERT(egprs3->cps == 3);
+ break;
+ case 2:
+ OSMO_ASSERT(egprs3->cps == 9);
+ break;
+ case 1:
+ OSMO_ASSERT(egprs3->cps == 11);
+ break;
+ default:
+ OSMO_ASSERT(false);
+ break;
+ }
+ tbf_cleanup(dl_tbf);
+}
+
static void establish_and_use_egprs_dl_tbf_for_retx(BTS *the_bts,
int mcs, int demanded_mcs)
{
@@ -1972,6 +2169,9 @@ static void test_tbf_egprs_retx_dl(void)
setup_bts(&the_bts, ts_no);
bts->dl_tbf_idle_msec = 200;
bts->egprs_enabled = 1;
+ /* ARQ II */
+ bts->dl_arq_type = EGPRS_ARQ2;
+
/* First parameter is current MCS, second one is demanded_mcs */
establish_and_use_egprs_dl_tbf_for_retx(&the_bts, 6, 6);
@@ -1985,6 +2185,38 @@ static void test_tbf_egprs_retx_dl(void)
printf("=== end %s ===\n", __func__);
}
+static void test_tbf_egprs_spb_dl(void)
+{
+ BTS the_bts;
+ gprs_rlcmac_bts *bts;
+ uint8_t ts_no = 4;
+ int i, j;
+
+ printf("=== start %s ===\n", __func__);
+
+ bts = the_bts.bts_data();
+ bts->cs_downgrade_threshold = 0;
+ setup_bts(&the_bts, ts_no);
+ bts->dl_tbf_idle_msec = 200;
+ bts->egprs_enabled = 1;
+
+ /* ARQ I resegmentation support */
+ bts->dl_arq_type = EGPRS_ARQ1;
+
+ /*
+ * First parameter is current MCS, second one is demanded_mcs
+ * currently only MCS5->MCS2, MCS6->3, MCS4->MCS1 is tested in UT
+ * rest scenarios has been integration tested
+ */
+ establish_and_use_egprs_dl_tbf_for_spb(&the_bts, 6, 3);
+ establish_and_use_egprs_dl_tbf_for_spb(&the_bts, 5, 2);
+ establish_and_use_egprs_dl_tbf_for_spb(&the_bts, 4, 1);
+ /* check MCS6->(MCS3+MCS3)->MCS6 case */
+ egprs_spb_to_normal_validation(&the_bts, 6, 3);
+
+ printf("=== end %s ===\n", __func__);
+}
+
static void test_tbf_egprs_dl()
{
BTS the_bts;
@@ -1999,6 +2231,8 @@ static void test_tbf_egprs_dl()
setup_bts(&the_bts, ts_no);
bts->dl_tbf_idle_msec = 200;
bts->egprs_enabled = 1;
+ /* ARQ II */
+ bts->dl_arq_type = EGPRS_ARQ2;
for (i = 1; i <= 9; i++)
establish_and_use_egprs_dl_tbf(&the_bts, i);
@@ -2071,6 +2305,7 @@ int main(int argc, char **argv)
test_tbf_egprs_two_phase_spb();
test_tbf_egprs_dl();
test_tbf_egprs_retx_dl();
+ test_tbf_egprs_spb_dl();
if (getenv("TALLOC_REPORT_FULL"))
talloc_report_full(tall_pcu_ctx, stderr);
diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err
index 3eebe1a..1ba4189 100644
--- a/tests/tbf/TbfTest.err
+++ b/tests/tbf/TbfTest.err
@@ -72,6 +72,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) (len=200)
-- Chunk with length 200 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 0, CS-1): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, CS-1): 07 00 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=4 block=1 data=07 00 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
@@ -81,6 +82,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1)
- Sending new block at BSN 1, CS=CS-1
-- Chunk with length 180 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 1, CS-1): 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
msg block (BSN 1, CS-1): 07 00 03 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=8 block=2 data=07 00 03 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
@@ -157,6 +159,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) (len=200)
-- Chunk with length 200 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 0, CS-1): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, CS-1): 07 00 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=4 block=1 data=07 00 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
@@ -166,6 +169,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1)
- Sending new block at BSN 1, CS=CS-1
-- Chunk with length 180 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 1, CS-1): 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
msg block (BSN 1, CS-1): 07 00 03 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=8 block=2 data=07 00 03 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
@@ -242,6 +246,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) (len=200)
-- Chunk with length 200 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 0, CS-1): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, CS-1): 07 00 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=4 block=1 data=07 00 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
@@ -251,6 +256,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1)
- Sending new block at BSN 1, CS=CS-1
-- Chunk with length 180 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 1, CS-1): 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
msg block (BSN 1, CS-1): 07 00 03 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=8 block=2 data=07 00 03 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
@@ -259,6 +265,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==2)
- Sending new block at BSN 2, CS=CS-1
-- Chunk with length 160 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 2, CS-1): 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
msg block (BSN 2, CS-1): 07 00 05 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=13 block=3 data=07 00 05 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b
@@ -267,6 +274,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==3)
- Sending new block at BSN 3, CS=CS-1
-- Chunk with length 140 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 3, CS-1): 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
+- need_padding 0 spb_status 0 spb 0(BSN1 3 BSN2 -1)
- Copying data unit 0 (BSN 3)
msg block (BSN 3, CS-1): 07 00 07 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=17 block=4 data=07 00 07 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
@@ -275,6 +283,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==4)
- Sending new block at BSN 4, CS=CS-1
-- Chunk with length 120 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 4, CS-1): 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 -1)
- Copying data unit 0 (BSN 4)
msg block (BSN 4, CS-1): 07 00 09 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=21 block=5 data=07 00 09 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63
@@ -283,6 +292,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==5)
- Sending new block at BSN 5, CS=CS-1
-- Chunk with length 100 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 5, CS-1): 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77
+- need_padding 0 spb_status 0 spb 0(BSN1 5 BSN2 -1)
- Copying data unit 0 (BSN 5)
msg block (BSN 5, CS-1): 07 00 0b 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=26 block=6 data=07 00 0b 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77
@@ -291,6 +301,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==6)
- Sending new block at BSN 6, CS=CS-1
-- Chunk with length 80 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 6, CS-1): 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 -1)
- Copying data unit 0 (BSN 6)
msg block (BSN 6, CS-1): 07 00 0d 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=30 block=7 data=07 00 0d 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b
@@ -299,6 +310,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==7)
- Sending new block at BSN 7, CS=CS-1
-- Chunk with length 60 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 7, CS-1): 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
+- need_padding 0 spb_status 0 spb 0(BSN1 7 BSN2 -1)
- Copying data unit 0 (BSN 7)
msg block (BSN 7, CS-1): 07 00 0f 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=34 block=8 data=07 00 0f 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
@@ -307,6 +319,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==8)
- Sending new block at BSN 8, CS=CS-1
-- Chunk with length 40 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 8, CS-1): a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
msg block (BSN 8, CS-1): 07 00 11 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=39 block=9 data=07 00 11 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3
@@ -315,6 +328,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==9)
- Sending new block at BSN 9, CS=CS-1
-- Chunk with length 20 would exactly fit into space (20): add length header with LI=0, to make frame extend to next block, and we are done
data block (BSN 9, CS-1): 01 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6
+- need_padding 0 spb_status 0 spb 0(BSN1 9 BSN2 -1)
- Copying data unit 0 (BSN 9)
msg block (BSN 9, CS-1): 07 00 12 01 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=43 block=10 data=07 00 12 01 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6
@@ -326,6 +340,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)len=200
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) (len=200)
-- Chunk with length 200 larger than space (18) left in block: copy only remaining space, and we are done
data block (BSN 10, CS-1): 07 c7 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11
+- need_padding 0 spb_status 0 spb 0(BSN1 10 BSN2 -1)
- Copying data unit 0 (BSN 10)
msg block (BSN 10, CS-1): 07 00 14 07 c7 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=47 block=11 data=07 00 14 07 c7 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11
@@ -334,6 +349,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==11)
- Sending new block at BSN 11, CS=CS-1
-- Chunk with length 182 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 11, CS-1): 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25
+- need_padding 0 spb_status 0 spb 0(BSN1 11 BSN2 -1)
- Copying data unit 0 (BSN 11)
msg block (BSN 11, CS-1): 07 00 17 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=52 block=0 data=07 00 17 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25
@@ -342,6 +358,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==12)
- Sending new block at BSN 12, CS=CS-1
-- Chunk with length 162 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 12, CS-1): 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39
+- need_padding 0 spb_status 0 spb 0(BSN1 12 BSN2 -1)
- Copying data unit 0 (BSN 12)
msg block (BSN 12, CS-1): 07 00 19 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=56 block=1 data=07 00 19 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39
@@ -350,6 +367,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==13)
- Sending new block at BSN 13, CS=CS-1
-- Chunk with length 142 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 13, CS-1): 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d
+- need_padding 0 spb_status 0 spb 0(BSN1 13 BSN2 -1)
- Copying data unit 0 (BSN 13)
msg block (BSN 13, CS-1): 07 00 1b 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=60 block=2 data=07 00 1b 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d
@@ -358,6 +376,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==14)
- Sending new block at BSN 14, CS=CS-1
-- Chunk with length 122 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 14, CS-1): 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61
+- need_padding 0 spb_status 0 spb 0(BSN1 14 BSN2 -1)
- Copying data unit 0 (BSN 14)
msg block (BSN 14, CS-1): 07 00 1d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=65 block=3 data=07 00 1d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61
@@ -366,6 +385,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==15)
- Sending new block at BSN 15, CS=CS-1
-- Chunk with length 102 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 15, CS-1): 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75
+- need_padding 0 spb_status 0 spb 0(BSN1 15 BSN2 -1)
- Copying data unit 0 (BSN 15)
msg block (BSN 15, CS-1): 07 00 1f 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=69 block=4 data=07 00 1f 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75
@@ -374,6 +394,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==16)
- Sending new block at BSN 16, CS=CS-1
-- Chunk with length 82 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 16, CS-1): 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89
+- need_padding 0 spb_status 0 spb 0(BSN1 16 BSN2 -1)
- Copying data unit 0 (BSN 16)
msg block (BSN 16, CS-1): 07 00 21 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=73 block=5 data=07 00 21 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89
@@ -382,6 +403,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==17)
- Sending new block at BSN 17, CS=CS-1
-- Chunk with length 62 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 17, CS-1): 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d
+- need_padding 0 spb_status 0 spb 0(BSN1 17 BSN2 -1)
- Copying data unit 0 (BSN 17)
msg block (BSN 17, CS-1): 07 00 23 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=78 block=6 data=07 00 23 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d
@@ -390,6 +412,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==18)
- Sending new block at BSN 18, CS=CS-1
-- Chunk with length 42 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 18, CS-1): 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1
+- need_padding 0 spb_status 0 spb 0(BSN1 18 BSN2 -1)
- Copying data unit 0 (BSN 18)
msg block (BSN 18, CS-1): 07 00 25 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=82 block=7 data=07 00 25 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1
@@ -398,6 +421,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==19)
- Sending new block at BSN 19, CS=CS-1
-- Chunk with length 22 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 19, CS-1): b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5
+- need_padding 0 spb_status 0 spb 0(BSN1 19 BSN2 -1)
- Copying data unit 0 (BSN 19)
msg block (BSN 19, CS-1): 07 00 27 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5
Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=86 block=8 data=07 00 27 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5
@@ -411,6 +435,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)len=200
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)len=16
data block (BSN 20, CS-1): 0a 41 c6 c7 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 20 BSN2 -1)
- Copying data unit 0 (BSN 20)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)
@@ -449,6 +474,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==21 .. V(S)==21)
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)len=19
data block (BSN 21, CS-1): 4d 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 21 BSN2 -1)
- Copying data unit 0 (BSN 21)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)
@@ -468,6 +494,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==22 .. V(S)==22)
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)len=19
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) changes state from FLOW to FINISHED
data block (BSN 22, CS-1): 4d 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 22 BSN2 -1)
- Copying data unit 0 (BSN 22)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED)
@@ -1481,6 +1508,7 @@ TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=WAIT ASSIGN) downlink (V(A)==0 .. V(S)==0
Complete DL frame for TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=WAIT ASSIGN)len=19
- Dequeue next LLC for TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=WAIT ASSIGN) (len=19)
data block (BSN 0, CS-1): 4d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, CS-1): 07 00 00 4d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
MSG = 07 00 00 4d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
@@ -1491,6 +1519,7 @@ TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=WAIT ASSIGN) downlink (V(A)==0 .. V(S)==1
Complete DL frame for TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=WAIT ASSIGN)len=19
- Dequeue next LLC for TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=WAIT ASSIGN) (len=19)
data block (BSN 1, CS-1): 4d 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
msg block (BSN 1, CS-1): 07 00 02 4d 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
MSG = 07 00 02 4d 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
@@ -1501,6 +1530,7 @@ TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=WAIT ASSIGN) downlink (V(A)==0 .. V(S)==2
Complete DL frame for TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=WAIT ASSIGN)len=19
TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=WAIT ASSIGN) changes state from WAIT ASSIGN to FINISHED
data block (BSN 2, CS-1): 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling cannot be scheduled in this TS 7 (first control TS 4)
@@ -1784,6 +1814,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0)
Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=10
TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) changes state from FLOW to FINISHED
data block (BSN 0, CS-4): 29 52 41 55 5f 41 43 43 45 50 54 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED): Scheduling polling at FN 2654292 TS 7
@@ -1797,6 +1828,7 @@ Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=1
TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink (V(A)==0 .. V(S)==1)
- Restarting at BSN 0, because all blocks have been transmitted.
- Resending BSN 0
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, CS-4): 07 01 00 29 52 41 55 5f 41 43 43 45 50 54 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654283 block=11 data=00 01 00 29 52 41 55 5f 41 43 43 45 50 54 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00
@@ -2365,6 +2397,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (6) left in block: copy only remaining space, and we are done
data block (BSN 0, CS-1): 37 4c 4c 43 20 50 41 43 4b 45 54 20 30 30 4c 4c 43 20 50 41
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, CS-1): 07 00 00 37 4c 4c 43 20 50 41 43 4b 45 54 20 30 30 4c 4c 43 20 50 41
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654279 block=10 data=00 00 00 37 4c 4c 43 20 50 41 43 4b 45 54 20 30 30 4c 4c 43 20 50 41
@@ -2384,6 +2417,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (12) left in block: copy only remaining space, and we are done
data block (BSN 1, CS-1): 1f 43 4b 45 54 20 30 31 4c 4c 43 20 50 41 43 4b 45 54 20 30
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
msg block (BSN 1, CS-1): 07 00 02 1f 43 4b 45 54 20 30 31 4c 4c 43 20 50 41 43 4b 45 54 20 30
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654283 block=11 data=00 00 02 1f 43 4b 45 54 20 30 31 4c 4c 43 20 50 41 43 4b 45 54 20 30
@@ -2406,6 +2440,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (4) left in block: copy only remaining space, and we are done
data block (BSN 2, CS-1): 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 30 33 4c 4c 43 20
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
msg block (BSN 2, CS-1): 07 00 04 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 30 33 4c 4c 43 20
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654288 block=0 data=00 00 04 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 30 33 4c 4c 43 20
@@ -2425,6 +2460,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (10) left in block: copy only remaining space, and we are done
data block (BSN 3, CS-1): 27 50 41 43 4b 45 54 20 30 34 4c 4c 43 20 50 41 43 4b 45 54
+- need_padding 0 spb_status 0 spb 0(BSN1 3 BSN2 -1)
- Copying data unit 0 (BSN 3)
msg block (BSN 3, CS-1): 07 00 06 27 50 41 43 4b 45 54 20 30 34 4c 4c 43 20 50 41 43 4b 45 54
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654292 block=1 data=00 00 06 27 50 41 43 4b 45 54 20 30 34 4c 4c 43 20 50 41 43 4b 45 54
@@ -2447,6 +2483,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (2) left in block: copy only remaining space, and we are done
data block (BSN 4, CS-1): 0e 37 20 30 35 4c 4c 43 20 50 41 43 4b 45 54 20 30 36 4c 4c
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 -1)
- Copying data unit 0 (BSN 4)
msg block (BSN 4, CS-1): 07 00 08 0e 37 20 30 35 4c 4c 43 20 50 41 43 4b 45 54 20 30 36 4c 4c
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654296 block=2 data=00 00 08 0e 37 20 30 35 4c 4c 43 20 50 41 43 4b 45 54 20 30 36 4c 4c
@@ -2466,6 +2503,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (8) left in block: copy only remaining space, and we are done
data block (BSN 5, CS-1): 2f 43 20 50 41 43 4b 45 54 20 30 37 4c 4c 43 20 50 41 43 4b
+- need_padding 0 spb_status 0 spb 0(BSN1 5 BSN2 -1)
- Copying data unit 0 (BSN 5)
msg block (BSN 5, CS-1): 07 00 0a 2f 43 20 50 41 43 4b 45 54 20 30 37 4c 4c 43 20 50 41 43 4b
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654301 block=3 data=00 00 0a 2f 43 20 50 41 43 4b 45 54 20 30 37 4c 4c 43 20 50 41 43 4b
@@ -2488,6 +2526,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
data block (BSN 6, CS-1): 16 35 45 54 20 30 38 4c 4c 43 20 50 41 43 4b 45 54 20 30 39
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 -1)
- Copying data unit 0 (BSN 6)
msg block (BSN 6, CS-1): 07 00 0c 16 35 45 54 20 30 38 4c 4c 43 20 50 41 43 4b 45 54 20 30 39
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654305 block=4 data=00 00 0c 16 35 45 54 20 30 38 4c 4c 43 20 50 41 43 4b 45 54 20 30 39
@@ -2507,6 +2546,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (6) left in block: copy only remaining space, and we are done
data block (BSN 7, CS-1): 37 4c 4c 43 20 50 41 43 4b 45 54 20 31 30 4c 4c 43 20 50 41
+- need_padding 0 spb_status 0 spb 0(BSN1 7 BSN2 -1)
- Copying data unit 0 (BSN 7)
msg block (BSN 7, CS-1): 07 00 0e 37 4c 4c 43 20 50 41 43 4b 45 54 20 31 30 4c 4c 43 20 50 41
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654309 block=5 data=00 00 0e 37 4c 4c 43 20 50 41 43 4b 45 54 20 31 30 4c 4c 43 20 50 41
@@ -2526,6 +2566,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (12) left in block: copy only remaining space, and we are done
data block (BSN 8, CS-1): 1f 43 4b 45 54 20 31 31 4c 4c 43 20 50 41 43 4b 45 54 20 31
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
msg block (BSN 8, CS-1): 07 00 10 1f 43 4b 45 54 20 31 31 4c 4c 43 20 50 41 43 4b 45 54 20 31
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654314 block=6 data=00 00 10 1f 43 4b 45 54 20 31 31 4c 4c 43 20 50 41 43 4b 45 54 20 31
@@ -2548,6 +2589,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (4) left in block: copy only remaining space, and we are done
data block (BSN 9, CS-1): 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 31 33 4c 4c 43 20
+- need_padding 0 spb_status 0 spb 0(BSN1 9 BSN2 -1)
- Copying data unit 0 (BSN 9)
msg block (BSN 9, CS-1): 07 00 12 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 31 33 4c 4c 43 20
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654318 block=7 data=00 00 12 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 31 33 4c 4c 43 20
@@ -2567,6 +2609,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (10) left in block: copy only remaining space, and we are done
data block (BSN 10, CS-1): 27 50 41 43 4b 45 54 20 31 34 4c 4c 43 20 50 41 43 4b 45 54
+- need_padding 0 spb_status 0 spb 0(BSN1 10 BSN2 -1)
- Copying data unit 0 (BSN 10)
msg block (BSN 10, CS-1): 07 00 14 27 50 41 43 4b 45 54 20 31 34 4c 4c 43 20 50 41 43 4b 45 54
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654322 block=8 data=00 00 14 27 50 41 43 4b 45 54 20 31 34 4c 4c 43 20 50 41 43 4b 45 54
@@ -2589,6 +2632,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (2) left in block: copy only remaining space, and we are done
data block (BSN 11, CS-1): 0e 37 20 31 35 4c 4c 43 20 50 41 43 4b 45 54 20 31 36 4c 4c
+- need_padding 0 spb_status 0 spb 0(BSN1 11 BSN2 -1)
- Copying data unit 0 (BSN 11)
msg block (BSN 11, CS-1): 07 00 16 0e 37 20 31 35 4c 4c 43 20 50 41 43 4b 45 54 20 31 36 4c 4c
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654327 block=9 data=00 00 16 0e 37 20 31 35 4c 4c 43 20 50 41 43 4b 45 54 20 31 36 4c 4c
@@ -2608,6 +2652,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (8) left in block: copy only remaining space, and we are done
data block (BSN 12, CS-1): 2f 43 20 50 41 43 4b 45 54 20 31 37 4c 4c 43 20 50 41 43 4b
+- need_padding 0 spb_status 0 spb 0(BSN1 12 BSN2 -1)
- Copying data unit 0 (BSN 12)
msg block (BSN 12, CS-1): 07 00 18 2f 43 20 50 41 43 4b 45 54 20 31 37 4c 4c 43 20 50 41 43 4b
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654331 block=10 data=00 00 18 2f 43 20 50 41 43 4b 45 54 20 31 37 4c 4c 43 20 50 41 43 4b
@@ -2630,6 +2675,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
data block (BSN 13, CS-1): 16 35 45 54 20 31 38 4c 4c 43 20 50 41 43 4b 45 54 20 31 39
+- need_padding 0 spb_status 0 spb 0(BSN1 13 BSN2 -1)
- Copying data unit 0 (BSN 13)
msg block (BSN 13, CS-1): 07 00 1a 16 35 45 54 20 31 38 4c 4c 43 20 50 41 43 4b 45 54 20 31 39
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654335 block=11 data=00 00 1a 16 35 45 54 20 31 38 4c 4c 43 20 50 41 43 4b 45 54 20 31 39
@@ -2649,6 +2695,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (6) left in block: copy only remaining space, and we are done
data block (BSN 14, CS-1): 37 4c 4c 43 20 50 41 43 4b 45 54 20 32 30 4c 4c 43 20 50 41
+- need_padding 0 spb_status 0 spb 0(BSN1 14 BSN2 -1)
- Copying data unit 0 (BSN 14)
msg block (BSN 14, CS-1): 07 00 1c 37 4c 4c 43 20 50 41 43 4b 45 54 20 32 30 4c 4c 43 20 50 41
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654340 block=0 data=00 00 1c 37 4c 4c 43 20 50 41 43 4b 45 54 20 32 30 4c 4c 43 20 50 41
@@ -2668,6 +2715,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (12) left in block: copy only remaining space, and we are done
data block (BSN 15, CS-1): 1f 43 4b 45 54 20 32 31 4c 4c 43 20 50 41 43 4b 45 54 20 32
+- need_padding 0 spb_status 0 spb 0(BSN1 15 BSN2 -1)
- Copying data unit 0 (BSN 15)
msg block (BSN 15, CS-1): 07 00 1e 1f 43 4b 45 54 20 32 31 4c 4c 43 20 50 41 43 4b 45 54 20 32
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654344 block=1 data=00 00 1e 1f 43 4b 45 54 20 32 31 4c 4c 43 20 50 41 43 4b 45 54 20 32
@@ -2690,6 +2738,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (4) left in block: copy only remaining space, and we are done
data block (BSN 16, CS-1): 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 32 33 4c 4c 43 20
+- need_padding 0 spb_status 0 spb 0(BSN1 16 BSN2 -1)
- Copying data unit 0 (BSN 16)
msg block (BSN 16, CS-1): 07 00 20 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 32 33 4c 4c 43 20
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654348 block=2 data=00 00 20 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 32 33 4c 4c 43 20
@@ -2709,6 +2758,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (10) left in block: copy only remaining space, and we are done
data block (BSN 17, CS-1): 27 50 41 43 4b 45 54 20 32 34 4c 4c 43 20 50 41 43 4b 45 54
+- need_padding 0 spb_status 0 spb 0(BSN1 17 BSN2 -1)
- Copying data unit 0 (BSN 17)
msg block (BSN 17, CS-1): 07 00 22 27 50 41 43 4b 45 54 20 32 34 4c 4c 43 20 50 41 43 4b 45 54
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654353 block=3 data=00 00 22 27 50 41 43 4b 45 54 20 32 34 4c 4c 43 20 50 41 43 4b 45 54
@@ -2731,6 +2781,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (2) left in block: copy only remaining space, and we are done
data block (BSN 18, CS-1): 0e 37 20 32 35 4c 4c 43 20 50 41 43 4b 45 54 20 32 36 4c 4c
+- need_padding 0 spb_status 0 spb 0(BSN1 18 BSN2 -1)
- Copying data unit 0 (BSN 18)
msg block (BSN 18, CS-1): 07 00 24 0e 37 20 32 35 4c 4c 43 20 50 41 43 4b 45 54 20 32 36 4c 4c
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654357 block=4 data=00 00 24 0e 37 20 32 35 4c 4c 43 20 50 41 43 4b 45 54 20 32 36 4c 4c
@@ -2750,6 +2801,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (8) left in block: copy only remaining space, and we are done
data block (BSN 19, CS-1): 2f 43 20 50 41 43 4b 45 54 20 32 37 4c 4c 43 20 50 41 43 4b
+- need_padding 0 spb_status 0 spb 0(BSN1 19 BSN2 -1)
- Copying data unit 0 (BSN 19)
msg block (BSN 19, CS-1): 07 00 26 2f 43 20 50 41 43 4b 45 54 20 32 37 4c 4c 43 20 50 41 43 4b
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654361 block=5 data=00 00 26 2f 43 20 50 41 43 4b 45 54 20 32 37 4c 4c 43 20 50 41 43 4b
@@ -2772,6 +2824,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
data block (BSN 20, CS-1): 16 35 45 54 20 32 38 4c 4c 43 20 50 41 43 4b 45 54 20 32 39
+- need_padding 0 spb_status 0 spb 0(BSN1 20 BSN2 -1)
- Copying data unit 0 (BSN 20)
- Scheduling Ack/Nack polling, because 20 blocks sent.
TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW): Scheduling polling at FN 2654379 TS 7
@@ -2795,6 +2848,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (6) left in block: copy only remaining space, and we are done
data block (BSN 21, CS-1): 37 4c 4c 43 20 50 41 43 4b 45 54 20 33 30 4c 4c 43 20 50 41
+- need_padding 0 spb_status 0 spb 0(BSN1 21 BSN2 -1)
- Copying data unit 0 (BSN 21)
msg block (BSN 21, CS-1): 07 00 2a 37 4c 4c 43 20 50 41 43 4b 45 54 20 33 30 4c 4c 43 20 50 41
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654370 block=7 data=00 00 2a 37 4c 4c 43 20 50 41 43 4b 45 54 20 33 30 4c 4c 43 20 50 41
@@ -2814,6 +2868,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (12) left in block: copy only remaining space, and we are done
data block (BSN 22, CS-1): 1f 43 4b 45 54 20 33 31 4c 4c 43 20 50 41 43 4b 45 54 20 33
+- need_padding 0 spb_status 0 spb 0(BSN1 22 BSN2 -1)
- Copying data unit 0 (BSN 22)
msg block (BSN 22, CS-1): 07 00 2c 1f 43 4b 45 54 20 33 31 4c 4c 43 20 50 41 43 4b 45 54 20 33
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654374 block=8 data=07 00 2c 1f 43 4b 45 54 20 33 31 4c 4c 43 20 50 41 43 4b 45 54 20 33
@@ -2836,6 +2891,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (4) left in block: copy only remaining space, and we are done
data block (BSN 23, CS-1): 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 33 33 4c 4c 43 20
+- need_padding 0 spb_status 0 spb 0(BSN1 23 BSN2 -1)
- Copying data unit 0 (BSN 23)
msg block (BSN 23, CS-1): 07 00 2e 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 33 33 4c 4c 43 20
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654379 block=9 data=00 00 2e 06 37 32 4c 4c 43 20 50 41 43 4b 45 54 20 33 33 4c 4c 43 20
@@ -2855,6 +2911,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (10) left in block: copy only remaining space, and we are done
data block (BSN 24, CS-1): 27 50 41 43 4b 45 54 20 33 34 4c 4c 43 20 50 41 43 4b 45 54
+- need_padding 0 spb_status 0 spb 0(BSN1 24 BSN2 -1)
- Copying data unit 0 (BSN 24)
msg block (BSN 24, CS-1): 07 00 30 27 50 41 43 4b 45 54 20 33 34 4c 4c 43 20 50 41 43 4b 45 54
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654383 block=10 data=00 00 30 27 50 41 43 4b 45 54 20 33 34 4c 4c 43 20 50 41 43 4b 45 54
@@ -2877,6 +2934,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (2) left in block: copy only remaining space, and we are done
data block (BSN 25, CS-1): 0e 37 20 33 35 4c 4c 43 20 50 41 43 4b 45 54 20 33 36 4c 4c
+- need_padding 0 spb_status 0 spb 0(BSN1 25 BSN2 -1)
- Copying data unit 0 (BSN 25)
msg block (BSN 25, CS-1): 07 00 32 0e 37 20 33 35 4c 4c 43 20 50 41 43 4b 45 54 20 33 36 4c 4c
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654387 block=11 data=00 00 32 0e 37 20 33 35 4c 4c 43 20 50 41 43 4b 45 54 20 33 36 4c 4c
@@ -2896,6 +2954,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
- Dequeue next LLC for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=13)
-- Chunk with length 13 larger than space (8) left in block: copy only remaining space, and we are done
data block (BSN 26, CS-1): 2f 43 20 50 41 43 4b 45 54 20 33 37 4c 4c 43 20 50 41 43 4b
+- need_padding 0 spb_status 0 spb 0(BSN1 26 BSN2 -1)
- Copying data unit 0 (BSN 26)
msg block (BSN 26, CS-1): 07 00 34 2f 43 20 50 41 43 4b 45 54 20 33 37 4c 4c 43 20 50 41 43 4b
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654392 block=0 data=00 00 34 2f 43 20 50 41 43 4b 45 54 20 33 37 4c 4c 43 20 50 41 43 4b
@@ -2918,6 +2977,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
Complete DL frame for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=13
TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) changes state from FLOW to FINISHED
data block (BSN 27, CS-1): 16 35 45 54 20 33 38 4c 4c 43 20 50 41 43 4b 45 54 20 33 39
+- need_padding 0 spb_status 0 spb 0(BSN1 27 BSN2 -1)
- Copying data unit 0 (BSN 27)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED)
@@ -3028,6 +3088,7 @@ TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0)
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (20) left in block: copy only remaining space, and we are done
data block (BSN 0, CS-1): 4c 4c 43 20 50 41 43 4b 45 54 20 30 30 20 28 54 42 46 20 32
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, CS-1): 07 02 01 4c 4c 43 20 50 41 43 4b 45 54 20 30 30 20 28 54 42 46 20 32
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654405 block=3 data=00 02 01 4c 4c 43 20 50 41 43 4b 45 54 20 30 30 20 28 54 42 46 20 32
@@ -3047,6 +3108,7 @@ Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (18) left in block: copy only remaining space, and we are done
data block (BSN 1, CS-1): 07 29 4c 4c 43 20 50 41 43 4b 45 54 20 30 31 20 28 54 42 46
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
msg block (BSN 1, CS-1): 07 02 02 07 29 4c 4c 43 20 50 41 43 4b 45 54 20 30 31 20 28 54 42 46
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654409 block=4 data=00 02 02 07 29 4c 4c 43 20 50 41 43 4b 45 54 20 30 31 20 28 54 42 46
@@ -3066,6 +3128,7 @@ Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (16) left in block: copy only remaining space, and we are done
data block (BSN 2, CS-1): 0f 20 32 29 4c 4c 43 20 50 41 43 4b 45 54 20 30 32 20 28 54
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
msg block (BSN 2, CS-1): 07 02 04 0f 20 32 29 4c 4c 43 20 50 41 43 4b 45 54 20 30 32 20 28 54
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654413 block=5 data=00 02 04 0f 20 32 29 4c 4c 43 20 50 41 43 4b 45 54 20 30 32 20 28 54
@@ -3085,6 +3148,7 @@ Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (14) left in block: copy only remaining space, and we are done
data block (BSN 3, CS-1): 17 42 46 20 32 29 4c 4c 43 20 50 41 43 4b 45 54 20 30 33 20
+- need_padding 0 spb_status 0 spb 0(BSN1 3 BSN2 -1)
- Copying data unit 0 (BSN 3)
msg block (BSN 3, CS-1): 07 02 06 17 42 46 20 32 29 4c 4c 43 20 50 41 43 4b 45 54 20 30 33 20
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654418 block=6 data=00 02 06 17 42 46 20 32 29 4c 4c 43 20 50 41 43 4b 45 54 20 30 33 20
@@ -3104,6 +3168,7 @@ Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (12) left in block: copy only remaining space, and we are done
data block (BSN 4, CS-1): 1f 28 54 42 46 20 32 29 4c 4c 43 20 50 41 43 4b 45 54 20 30
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 -1)
- Copying data unit 0 (BSN 4)
msg block (BSN 4, CS-1): 07 02 08 1f 28 54 42 46 20 32 29 4c 4c 43 20 50 41 43 4b 45 54 20 30
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654422 block=7 data=00 02 08 1f 28 54 42 46 20 32 29 4c 4c 43 20 50 41 43 4b 45 54 20 30
@@ -3123,6 +3188,7 @@ Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (10) left in block: copy only remaining space, and we are done
data block (BSN 5, CS-1): 27 34 20 28 54 42 46 20 32 29 4c 4c 43 20 50 41 43 4b 45 54
+- need_padding 0 spb_status 0 spb 0(BSN1 5 BSN2 -1)
- Copying data unit 0 (BSN 5)
msg block (BSN 5, CS-1): 07 02 0a 27 34 20 28 54 42 46 20 32 29 4c 4c 43 20 50 41 43 4b 45 54
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654426 block=8 data=00 02 0a 27 34 20 28 54 42 46 20 32 29 4c 4c 43 20 50 41 43 4b 45 54
@@ -3142,6 +3208,7 @@ Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (8) left in block: copy only remaining space, and we are done
data block (BSN 6, CS-1): 2f 20 30 35 20 28 54 42 46 20 32 29 4c 4c 43 20 50 41 43 4b
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 -1)
- Copying data unit 0 (BSN 6)
msg block (BSN 6, CS-1): 07 02 0c 2f 20 30 35 20 28 54 42 46 20 32 29 4c 4c 43 20 50 41 43 4b
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654431 block=9 data=00 02 0c 2f 20 30 35 20 28 54 42 46 20 32 29 4c 4c 43 20 50 41 43 4b
@@ -3161,6 +3228,7 @@ Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (6) left in block: copy only remaining space, and we are done
data block (BSN 7, CS-1): 37 45 54 20 30 36 20 28 54 42 46 20 32 29 4c 4c 43 20 50 41
+- need_padding 0 spb_status 0 spb 0(BSN1 7 BSN2 -1)
- Copying data unit 0 (BSN 7)
msg block (BSN 7, CS-1): 07 02 0e 37 45 54 20 30 36 20 28 54 42 46 20 32 29 4c 4c 43 20 50 41
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654435 block=10 data=00 02 0e 37 45 54 20 30 36 20 28 54 42 46 20 32 29 4c 4c 43 20 50 41
@@ -3180,6 +3248,7 @@ Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (4) left in block: copy only remaining space, and we are done
data block (BSN 8, CS-1): 3f 43 4b 45 54 20 30 37 20 28 54 42 46 20 32 29 4c 4c 43 20
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
msg block (BSN 8, CS-1): 07 02 10 3f 43 4b 45 54 20 30 37 20 28 54 42 46 20 32 29 4c 4c 43 20
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654439 block=11 data=00 02 10 3f 43 4b 45 54 20 30 37 20 28 54 42 46 20 32 29 4c 4c 43 20
@@ -3199,6 +3268,7 @@ Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
- Dequeue next LLC for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) (len=21)
-- Chunk with length 21 larger than space (2) left in block: copy only remaining space, and we are done
data block (BSN 9, CS-1): 47 50 41 43 4b 45 54 20 30 38 20 28 54 42 46 20 32 29 4c 4c
+- need_padding 0 spb_status 0 spb 0(BSN1 9 BSN2 -1)
- Copying data unit 0 (BSN 9)
msg block (BSN 9, CS-1): 07 02 12 47 50 41 43 4b 45 54 20 30 38 20 28 54 42 46 20 32 29 4c 4c
Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654444 block=0 data=00 02 12 47 50 41 43 4b 45 54 20 30 38 20 28 54 42 46 20 32 29 4c 4c
@@ -3218,6 +3288,7 @@ TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==10)
Complete DL frame for TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW)len=21
TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) changes state from FLOW to FINISHED
data block (BSN 10, CS-1): 4d 43 20 50 41 43 4b 45 54 20 30 39 20 28 54 42 46 20 32 29
+- need_padding 0 spb_status 0 spb 0(BSN1 10 BSN2 -1)
- Copying data unit 0 (BSN 10)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED): Scheduling polling at FN 2654461 TS 7
@@ -3698,6 +3769,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
data block (BSN 0, MCS-1): 14 15 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3711,6 +3783,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=512)
-- Chunk with length 512 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 1, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3721,6 +3794,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
- Sending new block at BSN 2, CS=MCS-1
-- Chunk with length 490 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 2, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3731,6 +3805,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3)
- Sending new block at BSN 3, CS=MCS-1
-- Chunk with length 468 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 3, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 3 BSN2 -1)
- Copying data unit 0 (BSN 3)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3741,6 +3816,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4)
- Sending new block at BSN 4, CS=MCS-1
-- Chunk with length 446 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 4, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 -1)
- Copying data unit 0 (BSN 4)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3751,6 +3827,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5)
- Sending new block at BSN 5, CS=MCS-1
-- Chunk with length 424 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 5, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 5 BSN2 -1)
- Copying data unit 0 (BSN 5)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3761,6 +3838,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6)
- Sending new block at BSN 6, CS=MCS-1
-- Chunk with length 402 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 6, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 -1)
- Copying data unit 0 (BSN 6)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3771,6 +3849,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7)
- Sending new block at BSN 7, CS=MCS-1
-- Chunk with length 380 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 7, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 7 BSN2 -1)
- Copying data unit 0 (BSN 7)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3781,6 +3860,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8)
- Sending new block at BSN 8, CS=MCS-1
-- Chunk with length 358 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 8, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3791,6 +3871,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9)
- Sending new block at BSN 9, CS=MCS-1
-- Chunk with length 336 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 9, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 9 BSN2 -1)
- Copying data unit 0 (BSN 9)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3801,6 +3882,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10
- Sending new block at BSN 10, CS=MCS-1
-- Chunk with length 314 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 10, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 10 BSN2 -1)
- Copying data unit 0 (BSN 10)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3811,6 +3893,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11
- Sending new block at BSN 11, CS=MCS-1
-- Chunk with length 292 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 11, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 11 BSN2 -1)
- Copying data unit 0 (BSN 11)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3821,6 +3904,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12
- Sending new block at BSN 12, CS=MCS-1
-- Chunk with length 270 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 12, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 12 BSN2 -1)
- Copying data unit 0 (BSN 12)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3831,6 +3915,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==13
- Sending new block at BSN 13, CS=MCS-1
-- Chunk with length 248 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 13, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 13 BSN2 -1)
- Copying data unit 0 (BSN 13)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3841,6 +3926,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==14
- Sending new block at BSN 14, CS=MCS-1
-- Chunk with length 226 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 14, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 14 BSN2 -1)
- Copying data unit 0 (BSN 14)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3851,6 +3937,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==15
- Sending new block at BSN 15, CS=MCS-1
-- Chunk with length 204 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 15, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 15 BSN2 -1)
- Copying data unit 0 (BSN 15)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3861,6 +3948,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==16
- Sending new block at BSN 16, CS=MCS-1
-- Chunk with length 182 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 16, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 16 BSN2 -1)
- Copying data unit 0 (BSN 16)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3871,6 +3959,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==17
- Sending new block at BSN 17, CS=MCS-1
-- Chunk with length 160 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 17, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 17 BSN2 -1)
- Copying data unit 0 (BSN 17)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3881,6 +3970,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==18
- Sending new block at BSN 18, CS=MCS-1
-- Chunk with length 138 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 18, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 18 BSN2 -1)
- Copying data unit 0 (BSN 18)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3891,6 +3981,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==19
- Sending new block at BSN 19, CS=MCS-1
-- Chunk with length 116 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 19, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 19 BSN2 -1)
- Copying data unit 0 (BSN 19)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3901,6 +3992,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==20
- Sending new block at BSN 20, CS=MCS-1
-- Chunk with length 94 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 20, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 20 BSN2 -1)
- Copying data unit 0 (BSN 20)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3911,6 +4003,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==21
- Sending new block at BSN 21, CS=MCS-1
-- Chunk with length 72 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 21, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 21 BSN2 -1)
- Copying data unit 0 (BSN 21)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3921,6 +4014,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==22
- Sending new block at BSN 22, CS=MCS-1
-- Chunk with length 50 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 22, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 22 BSN2 -1)
- Copying data unit 0 (BSN 22)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3931,6 +4025,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==23
- Sending new block at BSN 23, CS=MCS-1
-- Chunk with length 28 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 23, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 23 BSN2 -1)
- Copying data unit 0 (BSN 23)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -3946,6 +4041,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=512
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=14
data block (BSN 24, MCS-1): 0c 1d 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 24 BSN2 -1)
- Copying data unit 0 (BSN 24)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4006,6 +4102,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=16
data block (BSN 0, MCS-2): 14 21 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4019,6 +4116,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=512)
-- Chunk with length 512 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 1, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4029,6 +4127,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
- Sending new block at BSN 2, CS=MCS-2
-- Chunk with length 484 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 2, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4039,6 +4138,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3)
- Sending new block at BSN 3, CS=MCS-2
-- Chunk with length 456 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 3, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 3 BSN2 -1)
- Copying data unit 0 (BSN 3)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4049,6 +4149,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4)
- Sending new block at BSN 4, CS=MCS-2
-- Chunk with length 428 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 4, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 -1)
- Copying data unit 0 (BSN 4)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4059,6 +4160,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5)
- Sending new block at BSN 5, CS=MCS-2
-- Chunk with length 400 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 5, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 5 BSN2 -1)
- Copying data unit 0 (BSN 5)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4069,6 +4171,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6)
- Sending new block at BSN 6, CS=MCS-2
-- Chunk with length 372 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 6, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 -1)
- Copying data unit 0 (BSN 6)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4079,6 +4182,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7)
- Sending new block at BSN 7, CS=MCS-2
-- Chunk with length 344 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 7, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 7 BSN2 -1)
- Copying data unit 0 (BSN 7)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4089,6 +4193,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8)
- Sending new block at BSN 8, CS=MCS-2
-- Chunk with length 316 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 8, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4099,6 +4204,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9)
- Sending new block at BSN 9, CS=MCS-2
-- Chunk with length 288 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 9, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 9 BSN2 -1)
- Copying data unit 0 (BSN 9)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4109,6 +4215,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10
- Sending new block at BSN 10, CS=MCS-2
-- Chunk with length 260 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 10, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 10 BSN2 -1)
- Copying data unit 0 (BSN 10)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4119,6 +4226,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11
- Sending new block at BSN 11, CS=MCS-2
-- Chunk with length 232 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 11, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 11 BSN2 -1)
- Copying data unit 0 (BSN 11)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4129,6 +4237,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12
- Sending new block at BSN 12, CS=MCS-2
-- Chunk with length 204 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 12, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 12 BSN2 -1)
- Copying data unit 0 (BSN 12)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4139,6 +4248,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==13
- Sending new block at BSN 13, CS=MCS-2
-- Chunk with length 176 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 13, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 13 BSN2 -1)
- Copying data unit 0 (BSN 13)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4149,6 +4259,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==14
- Sending new block at BSN 14, CS=MCS-2
-- Chunk with length 148 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 14, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 14 BSN2 -1)
- Copying data unit 0 (BSN 14)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4159,6 +4270,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==15
- Sending new block at BSN 15, CS=MCS-2
-- Chunk with length 120 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 15, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 15 BSN2 -1)
- Copying data unit 0 (BSN 15)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4169,6 +4281,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==16
- Sending new block at BSN 16, CS=MCS-2
-- Chunk with length 92 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 16, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 16 BSN2 -1)
- Copying data unit 0 (BSN 16)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4179,6 +4292,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==17
- Sending new block at BSN 17, CS=MCS-2
-- Chunk with length 64 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 17, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 17 BSN2 -1)
- Copying data unit 0 (BSN 17)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4189,6 +4303,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==18
- Sending new block at BSN 18, CS=MCS-2
-- Chunk with length 36 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 18, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 18 BSN2 -1)
- Copying data unit 0 (BSN 18)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4204,6 +4319,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=512
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=18
data block (BSN 19, MCS-2): 10 25 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 19 BSN2 -1)
- Copying data unit 0 (BSN 19)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4264,6 +4380,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=25
data block (BSN 0, MCS-3): 14 33 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4277,6 +4394,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=512)
-- Chunk with length 512 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 1, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4287,6 +4405,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
- Sending new block at BSN 2, CS=MCS-3
-- Chunk with length 475 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 2, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4297,6 +4416,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3)
- Sending new block at BSN 3, CS=MCS-3
-- Chunk with length 438 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 3, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 3 BSN2 -1)
- Copying data unit 0 (BSN 3)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4307,6 +4427,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4)
- Sending new block at BSN 4, CS=MCS-3
-- Chunk with length 401 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 4, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 -1)
- Copying data unit 0 (BSN 4)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4317,6 +4438,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5)
- Sending new block at BSN 5, CS=MCS-3
-- Chunk with length 364 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 5, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 5 BSN2 -1)
- Copying data unit 0 (BSN 5)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4327,6 +4449,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6)
- Sending new block at BSN 6, CS=MCS-3
-- Chunk with length 327 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 6, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 -1)
- Copying data unit 0 (BSN 6)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4337,6 +4460,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7)
- Sending new block at BSN 7, CS=MCS-3
-- Chunk with length 290 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 7, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 7 BSN2 -1)
- Copying data unit 0 (BSN 7)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4347,6 +4471,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8)
- Sending new block at BSN 8, CS=MCS-3
-- Chunk with length 253 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 8, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4357,6 +4482,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9)
- Sending new block at BSN 9, CS=MCS-3
-- Chunk with length 216 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 9, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 9 BSN2 -1)
- Copying data unit 0 (BSN 9)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4367,6 +4493,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10
- Sending new block at BSN 10, CS=MCS-3
-- Chunk with length 179 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 10, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 10 BSN2 -1)
- Copying data unit 0 (BSN 10)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4377,6 +4504,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11
- Sending new block at BSN 11, CS=MCS-3
-- Chunk with length 142 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 11, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 11 BSN2 -1)
- Copying data unit 0 (BSN 11)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4387,6 +4515,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12
- Sending new block at BSN 12, CS=MCS-3
-- Chunk with length 105 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 12, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 12 BSN2 -1)
- Copying data unit 0 (BSN 12)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4397,6 +4526,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==13
- Sending new block at BSN 13, CS=MCS-3
-- Chunk with length 68 larger than space (37) left in block: copy only remaining space, and we are done
data block (BSN 13, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 13 BSN2 -1)
- Copying data unit 0 (BSN 13)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4410,6 +4540,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=512
-- Empty chunk, added LLC dummy command of size 6, drained_since=0
-- Chunk with length 6 larger than space (5) left in block: copy only remaining space, and we are done
data block (BSN 14, MCS-3): 3f 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 14 BSN2 -1)
- Copying data unit 0 (BSN 14)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4425,6 +4556,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=6
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=34
data block (BSN 15, MCS-3): 02 45 2b 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 15 BSN2 -1)
- Copying data unit 0 (BSN 15)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4485,6 +4617,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=32
data block (BSN 0, MCS-4): 14 41 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4498,6 +4631,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=512)
-- Chunk with length 512 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 1, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4508,6 +4642,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
- Sending new block at BSN 2, CS=MCS-4
-- Chunk with length 468 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 2, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4518,6 +4653,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3)
- Sending new block at BSN 3, CS=MCS-4
-- Chunk with length 424 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 3, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 3 BSN2 -1)
- Copying data unit 0 (BSN 3)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4528,6 +4664,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4)
- Sending new block at BSN 4, CS=MCS-4
-- Chunk with length 380 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 4, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 -1)
- Copying data unit 0 (BSN 4)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4538,6 +4675,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5)
- Sending new block at BSN 5, CS=MCS-4
-- Chunk with length 336 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 5, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 5 BSN2 -1)
- Copying data unit 0 (BSN 5)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4548,6 +4686,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6)
- Sending new block at BSN 6, CS=MCS-4
-- Chunk with length 292 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 6, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 -1)
- Copying data unit 0 (BSN 6)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4558,6 +4697,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7)
- Sending new block at BSN 7, CS=MCS-4
-- Chunk with length 248 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 7, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 7 BSN2 -1)
- Copying data unit 0 (BSN 7)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4568,6 +4708,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8)
- Sending new block at BSN 8, CS=MCS-4
-- Chunk with length 204 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 8, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4578,6 +4719,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9)
- Sending new block at BSN 9, CS=MCS-4
-- Chunk with length 160 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 9, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 9 BSN2 -1)
- Copying data unit 0 (BSN 9)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4588,6 +4730,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10
- Sending new block at BSN 10, CS=MCS-4
-- Chunk with length 116 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 10, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 10 BSN2 -1)
- Copying data unit 0 (BSN 10)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4598,6 +4741,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11
- Sending new block at BSN 11, CS=MCS-4
-- Chunk with length 72 larger than space (44) left in block: copy only remaining space, and we are done
data block (BSN 11, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 11 BSN2 -1)
- Copying data unit 0 (BSN 11)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4613,6 +4757,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=512
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=14
data block (BSN 12, MCS-4): 38 1d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 12 BSN2 -1)
- Copying data unit 0 (BSN 12)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4673,6 +4818,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=44
data block (BSN 0, MCS-5): 14 59 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4686,6 +4832,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=512)
-- Chunk with length 512 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 1, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4696,6 +4843,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
- Sending new block at BSN 2, CS=MCS-5
-- Chunk with length 456 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 2, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4706,6 +4854,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3)
- Sending new block at BSN 3, CS=MCS-5
-- Chunk with length 400 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 3, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 3 BSN2 -1)
- Copying data unit 0 (BSN 3)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4716,6 +4865,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4)
- Sending new block at BSN 4, CS=MCS-5
-- Chunk with length 344 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 4, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 -1)
- Copying data unit 0 (BSN 4)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4726,6 +4876,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5)
- Sending new block at BSN 5, CS=MCS-5
-- Chunk with length 288 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 5, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 5 BSN2 -1)
- Copying data unit 0 (BSN 5)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4736,6 +4887,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6)
- Sending new block at BSN 6, CS=MCS-5
-- Chunk with length 232 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 6, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 -1)
- Copying data unit 0 (BSN 6)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4746,6 +4898,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7)
- Sending new block at BSN 7, CS=MCS-5
-- Chunk with length 176 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 7, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 7 BSN2 -1)
- Copying data unit 0 (BSN 7)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4756,6 +4909,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8)
- Sending new block at BSN 8, CS=MCS-5
-- Chunk with length 120 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 8, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4766,6 +4920,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9)
- Sending new block at BSN 9, CS=MCS-5
-- Chunk with length 64 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 9, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 9 BSN2 -1)
- Copying data unit 0 (BSN 9)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4781,6 +4936,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=512
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=46
data block (BSN 10, MCS-5): 10 5d 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 10 BSN2 -1)
- Copying data unit 0 (BSN 10)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4841,6 +4997,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=62
data block (BSN 0, MCS-6): 14 7d 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4854,6 +5011,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=512)
-- Chunk with length 512 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 1, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4864,6 +5022,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
- Sending new block at BSN 2, CS=MCS-6
-- Chunk with length 438 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 2, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 -1)
- Copying data unit 0 (BSN 2)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4874,6 +5033,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3)
- Sending new block at BSN 3, CS=MCS-6
-- Chunk with length 364 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 3, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 3 BSN2 -1)
- Copying data unit 0 (BSN 3)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4884,6 +5044,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4)
- Sending new block at BSN 4, CS=MCS-6
-- Chunk with length 290 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 4, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 -1)
- Copying data unit 0 (BSN 4)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4894,6 +5055,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5)
- Sending new block at BSN 5, CS=MCS-6
-- Chunk with length 216 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 5, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 5 BSN2 -1)
- Copying data unit 0 (BSN 5)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4904,6 +5066,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6)
- Sending new block at BSN 6, CS=MCS-6
-- Chunk with length 142 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 6, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 -1)
- Copying data unit 0 (BSN 6)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4917,6 +5080,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=512
-- Empty chunk, added LLC dummy command of size 6, drained_since=0
-- Chunk with length 6 larger than space (5) left in block: copy only remaining space, and we are done
data block (BSN 7, MCS-6): 89 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 7 BSN2 -1)
- Copying data unit 0 (BSN 7)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4932,6 +5096,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=6
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=71
data block (BSN 8, MCS-6): 02 8f 2b 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -4993,6 +5158,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=44
data block (BSN 0, MCS-7): 14 59 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
- Restarting at BSN 0, because all blocks have been transmitted (FLOW).
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -5002,12 +5168,13 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) append
Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
-- current_cs_dl(5) demanded_mcs(7) cs_trans(7)
+- initial_cs_dl(7) last_mcs(5) demanded_mcs(7) cs_trans(7) arq_type(1) bsn(0)
- Resending BSN 0
- Sending new block at BSN 1, CS=MCS-7
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=512)
-- Chunk with length 512 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 1, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 1)
- Copying data unit 0 (BSN 0)
- Copying data unit 1 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5022,6 +5189,7 @@ data block (BSN 2, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
- Sending new block at BSN 3, CS=MCS-7
-- Chunk with length 400 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 3, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 3)
- Copying data unit 0 (BSN 2)
- Copying data unit 1 (BSN 3)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5036,6 +5204,7 @@ data block (BSN 4, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
- Sending new block at BSN 5, CS=MCS-7
-- Chunk with length 288 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 5, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 5)
- Copying data unit 0 (BSN 4)
- Copying data unit 1 (BSN 5)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5050,6 +5219,7 @@ data block (BSN 6, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
- Sending new block at BSN 7, CS=MCS-7
-- Chunk with length 176 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 7, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 7)
- Copying data unit 0 (BSN 6)
- Copying data unit 1 (BSN 7)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5064,6 +5234,7 @@ data block (BSN 8, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
- Sending new block at BSN 9, CS=MCS-7
-- Chunk with length 64 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 9, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 9)
- Copying data unit 0 (BSN 8)
- Copying data unit 1 (BSN 9)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5081,6 +5252,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=512
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=46
data block (BSN 10, MCS-7): 10 5d 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
- Restarting at BSN 0, because all blocks have been transmitted (FLOW).
+- need_padding 0 spb_status 0 spb 0(BSN1 10 BSN2 -1)
- Copying data unit 0 (BSN 10)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -5142,6 +5314,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=56
data block (BSN 0, MCS-8): 14 71 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
- Restarting at BSN 0, because all blocks have been transmitted (FLOW).
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Copying data unit 1 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5152,12 +5325,13 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) append
Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
-- current_cs_dl(8) demanded_mcs(8) cs_trans(8)
+- initial_cs_dl(8) last_mcs(8) demanded_mcs(8) cs_trans(8) arq_type(1) bsn(0)
- Resending BSN 0
- Sending new block at BSN 1, CS=MCS-8
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=512)
-- Chunk with length 512 larger than space (68) left in block: copy only remaining space, and we are done
data block (BSN 1, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 1)
- Copying data unit 0 (BSN 0)
- Copying data unit 1 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5172,6 +5346,7 @@ data block (BSN 2, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
- Sending new block at BSN 3, CS=MCS-8
-- Chunk with length 376 larger than space (68) left in block: copy only remaining space, and we are done
data block (BSN 3, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 3)
- Copying data unit 0 (BSN 2)
- Copying data unit 1 (BSN 3)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5186,6 +5361,7 @@ data block (BSN 4, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
- Sending new block at BSN 5, CS=MCS-8
-- Chunk with length 240 larger than space (68) left in block: copy only remaining space, and we are done
data block (BSN 5, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 5)
- Copying data unit 0 (BSN 4)
- Copying data unit 1 (BSN 5)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5200,6 +5376,7 @@ data block (BSN 6, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
- Sending new block at BSN 7, CS=MCS-8
-- Chunk with length 104 larger than space (68) left in block: copy only remaining space, and we are done
data block (BSN 7, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 7)
- Copying data unit 0 (BSN 6)
- Copying data unit 1 (BSN 7)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5217,6 +5394,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=512
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=30
data block (BSN 8, MCS-8): 48 3d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
- Restarting at BSN 0, because all blocks have been transmitted (FLOW).
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
- Copying data unit 1 (BSN 8)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5279,6 +5457,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=62
data block (BSN 0, MCS-9): 14 7d 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
- Restarting at BSN 0, because all blocks have been transmitted (FLOW).
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -5288,12 +5467,13 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) append
Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
-- current_cs_dl(6) demanded_mcs(9) cs_trans(9)
+- initial_cs_dl(9) last_mcs(6) demanded_mcs(9) cs_trans(9) arq_type(1) bsn(0)
- Resending BSN 0
- Sending new block at BSN 1, CS=MCS-9
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=512)
-- Chunk with length 512 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 1, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 1)
- Copying data unit 0 (BSN 0)
- Copying data unit 1 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5308,6 +5488,7 @@ data block (BSN 2, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
- Sending new block at BSN 3, CS=MCS-9
-- Chunk with length 364 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 3, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 2 BSN2 3)
- Copying data unit 0 (BSN 2)
- Copying data unit 1 (BSN 3)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5322,6 +5503,7 @@ data block (BSN 4, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
- Sending new block at BSN 5, CS=MCS-9
-- Chunk with length 216 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 5, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- need_padding 0 spb_status 0 spb 0(BSN1 4 BSN2 5)
- Copying data unit 0 (BSN 4)
- Copying data unit 1 (BSN 5)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5339,6 +5521,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=512
-- Empty chunk, added LLC dummy command of size 6, drained_since=0
-- Chunk with length 6 larger than space (5) left in block: copy only remaining space, and we are done
data block (BSN 7, MCS-9): 89 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 6 BSN2 7)
- Copying data unit 0 (BSN 6)
- Copying data unit 1 (BSN 7)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5356,6 +5539,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=6
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=71
data block (BSN 8, MCS-9): 02 8f 2b 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
- Restarting at BSN 0, because all blocks have been transmitted (FLOW).
+- need_padding 0 spb_status 0 spb 0(BSN1 8 BSN2 -1)
- Copying data unit 0 (BSN 8)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
Polling is already scheduled for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)
@@ -5402,11 +5586,13 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=100)
-- Chunk with length 100 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 0, MCS-6): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
-- current_cs_dl(6) demanded_mcs(6) cs_trans(6)
+- initial_cs_dl(6) last_mcs(6) demanded_mcs(6) cs_trans(6) arq_type(1) bsn(0)
- Resending BSN 0
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-6): 07 00 00 12 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
@@ -5450,11 +5636,13 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=100)
-- Chunk with length 100 larger than space (22) left in block: copy only remaining space, and we are done
data block (BSN 0, MCS-1): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-1): 07 00 00 96 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 00
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
-- current_cs_dl(1) demanded_mcs(1) cs_trans(1)
+- initial_cs_dl(1) last_mcs(1) demanded_mcs(1) cs_trans(1) arq_type(1) bsn(0)
- Resending BSN 0
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-1): 07 00 00 98 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 00
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
@@ -5498,11 +5686,13 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=100)
-- Chunk with length 100 larger than space (28) left in block: copy only remaining space, and we are done
data block (BSN 0, MCS-2): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-2): 07 00 00 92 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 00
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
-- current_cs_dl(2) demanded_mcs(2) cs_trans(2)
+- initial_cs_dl(2) last_mcs(2) demanded_mcs(2) cs_trans(2) arq_type(1) bsn(0)
- Resending BSN 0
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-2): 07 00 00 94 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 00
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
@@ -5546,6 +5736,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=100)
-- Chunk with length 100 larger than space (56) left in block: copy only remaining space, and we are done
data block (BSN 0, MCS-5): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-5): 07 00 00 18 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
@@ -5557,6 +5748,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=100
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
data block (BSN 1, MCS-5): 58 15 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 43 c0 01 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS): Scheduling polling at FN 21 TS 4
@@ -5564,10 +5756,11 @@ Polling scheduled in this TS 4
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=21, TS=4
msg block (BSN 1, MCS-5): 0f 40 00 08 56 05 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 92 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca 0a
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
-- current_cs_dl(5) demanded_mcs(7) cs_trans(7)
+- initial_cs_dl(5) last_mcs(5) demanded_mcs(7) cs_trans(7) arq_type(1) bsn(0)
- Resending BSN 0
-- current_cs_dl(5) demanded_mcs(7) cs_trans(7)
+- initial_cs_dl(5) last_mcs(5) demanded_mcs(7) cs_trans(7) arq_type(1) bsn(1)
- Resending BSN 1
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 1)
- Copying data unit 0 (BSN 0)
- Copying data unit 1 (BSN 1)
msg block (BSN 0, MCS-7): 07 00 00 02 c0 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc 80 55 81 93 a3 b3 c3 d3 e3 f3 03 14 24 34 44 54 64 74 84 94 a4 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 02
@@ -5612,6 +5805,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0)
- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=100)
-- Chunk with length 100 larger than space (74) left in block: copy only remaining space, and we are done
data block (BSN 0, MCS-6): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
@@ -5623,6 +5817,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=100
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=46
data block (BSN 1, MCS-6): 34 5d 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS): Scheduling polling at FN 21 TS 4
@@ -5630,10 +5825,11 @@ Polling scheduled in this TS 4
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=21, TS=4
msg block (BSN 1, MCS-6): 0f 40 00 00 4d 97 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
-- current_cs_dl(6) demanded_mcs(9) cs_trans(9)
+- initial_cs_dl(6) last_mcs(6) demanded_mcs(9) cs_trans(9) arq_type(1) bsn(0)
- Resending BSN 0
-- current_cs_dl(6) demanded_mcs(9) cs_trans(9)
+- initial_cs_dl(6) last_mcs(6) demanded_mcs(9) cs_trans(9) arq_type(1) bsn(1)
- Resending BSN 1
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 1)
- Copying data unit 0 (BSN 0)
- Copying data unit 1 (BSN 1)
msg block (BSN 0, MCS-9): 07 00 00 02 28 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc e0 e4 e8 ec f0 f4 f8 fc 00 05 09 0d 11 15 19 1d 21 25 41 d3 a5 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02
@@ -5686,6 +5882,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=100
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=10
data block (BSN 1, MCS-7): 58 15 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 43 c0 01 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 1)
- Copying data unit 0 (BSN 0)
- Copying data unit 1 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5694,13 +5891,15 @@ Polling scheduled in this TS 4
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=17, TS=4
msg block (BSN 0, MCS-7): 0f 00 00 02 a0 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc 80 55 81 93 a3 b3 c3 d3 e3 f3 03 14 24 34 44 54 64 74 84 94 a4 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 02
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
-- current_cs_dl(7) demanded_mcs(5) cs_trans(5)
+- initial_cs_dl(7) last_mcs(7) demanded_mcs(5) cs_trans(5) arq_type(1) bsn(0)
- Resending BSN 0
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-5): 07 00 00 18 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
-- current_cs_dl(7) demanded_mcs(5) cs_trans(5)
+- initial_cs_dl(7) last_mcs(7) demanded_mcs(5) cs_trans(5) arq_type(1) bsn(1)
- Resending BSN 1
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
msg block (BSN 1, MCS-5): 07 40 00 08 56 05 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 92 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca 0a
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
@@ -5752,6 +5951,7 @@ Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=100
-- No space left, so we are done.
Complete DL frame for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS)len=46
data block (BSN 1, MCS-9): 34 5d 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 1)
- Copying data unit 0 (BSN 0)
- Copying data unit 1 (BSN 1)
- Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent).
@@ -5760,13 +5960,15 @@ Polling scheduled in this TS 4
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=17, TS=4
msg block (BSN 0, MCS-9): 0f 00 00 02 00 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc e0 e4 e8 ec f0 f4 f8 fc 00 05 09 0d 11 15 19 1d 21 25 41 d3 a5 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
-- current_cs_dl(9) demanded_mcs(6) cs_trans(6)
+- initial_cs_dl(9) last_mcs(9) demanded_mcs(6) cs_trans(6) arq_type(1) bsn(0)
- Resending BSN 0
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
- Copying data unit 0 (BSN 0)
msg block (BSN 0, MCS-6): 07 00 00 12 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2)
-- current_cs_dl(9) demanded_mcs(6) cs_trans(6)
+- initial_cs_dl(9) last_mcs(9) demanded_mcs(6) cs_trans(6) arq_type(1) bsn(1)
- Resending BSN 1
+- need_padding 0 spb_status 0 spb 0(BSN1 1 BSN2 -1)
- Copying data unit 0 (BSN 1)
msg block (BSN 1, MCS-6): 07 40 00 02 4d 97 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
@@ -5780,3 +5982,233 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG
Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)
Destroying MS object, TLLI = 0xffeeddcc
********** TBF ends here **********
+Searching for first unallocated TFI: TRX=0
+ Found TFI=0.
+********** TBF starts here **********
+Allocating DL TBF: MS_CLASS=11/11
+Creating MS object, TLLI = 0x00000000
+Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
+Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
+Enabled EGPRS for TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), mode EGPRS
+Slot Allocation (Algorithm A) for class 0
+- Skipping TS 0, because not enabled
+- Skipping TS 1, because not enabled
+- Skipping TS 2, because not enabled
+- Skipping TS 3, because not enabled
+- Skipping TS 5, because not enabled
+- Skipping TS 6, because not enabled
+- Skipping TS 7, because not enabled
+- Assign downlink TS=4 TFI=0
+PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 1 TBFs, USFs = 00, TFIs = 00000001.
+- Setting Control TS 4
+Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS): trx = 0, ul_slots = 10, dl_slots = 10
+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS): Setting EGPRS window size to 64
+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW
+The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) append
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0)
+- Sending new block at BSN 0, CS=MCS-6
+- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=100)
+-- Chunk with length 100 larger than space (74) left in block: copy only remaining space, and we are done
+data block (BSN 0, MCS-6): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
+- initial_cs_dl(6) last_mcs(6) demanded_mcs(3) cs_trans(3) arq_type(0) bsn(0)
+- Resending BSN 0
+- need_padding 0 spb_status 0 spb 2(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-3): 07 00 00 c6 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 38 3a 3c 3e 40 42 44 46 48 00
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
+- initial_cs_dl(6) last_mcs(3) demanded_mcs(3) cs_trans(3) arq_type(0) bsn(0)
+- Resending BSN 0
+- need_padding 0 spb_status 1 spb 3(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-3): 07 00 00 e6 4a 4c 4e 50 52 54 56 58 5a 5c 5e 60 62 64 66 68 6a 6c 6e 70 72 74 76 78 7a 7c 7e 80 82 84 86 88 8a 8c 8e 90 92 00
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
+- Final ACK received.
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer 3193.
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes state from WAIT RELEASE to RELEASING
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) stopping timer 3193.
+PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.
+Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)
+Destroying MS object, TLLI = 0xffeeddcc
+********** TBF ends here **********
+Searching for first unallocated TFI: TRX=0
+ Found TFI=0.
+********** TBF starts here **********
+Allocating DL TBF: MS_CLASS=11/11
+Creating MS object, TLLI = 0x00000000
+Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
+Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
+Enabled EGPRS for TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), mode EGPRS
+Slot Allocation (Algorithm A) for class 0
+- Skipping TS 0, because not enabled
+- Skipping TS 1, because not enabled
+- Skipping TS 2, because not enabled
+- Skipping TS 3, because not enabled
+- Skipping TS 5, because not enabled
+- Skipping TS 6, because not enabled
+- Skipping TS 7, because not enabled
+- Assign downlink TS=4 TFI=0
+PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 1 TBFs, USFs = 00, TFIs = 00000001.
+- Setting Control TS 4
+Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS): trx = 0, ul_slots = 10, dl_slots = 10
+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS): Setting EGPRS window size to 64
+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW
+The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) append
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0)
+- Sending new block at BSN 0, CS=MCS-5
+- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=100)
+-- Chunk with length 100 larger than space (56) left in block: copy only remaining space, and we are done
+data block (BSN 0, MCS-5): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-5): 07 00 00 18 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
+- initial_cs_dl(5) last_mcs(5) demanded_mcs(2) cs_trans(2) arq_type(0) bsn(0)
+- Resending BSN 0
+- need_padding 0 spb_status 0 spb 2(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-2): 07 00 00 d2 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 00
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
+- initial_cs_dl(5) last_mcs(2) demanded_mcs(2) cs_trans(2) arq_type(0) bsn(0)
+- Resending BSN 0
+- need_padding 0 spb_status 1 spb 3(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-2): 07 00 00 f2 38 3a 3c 3e 40 42 44 46 48 4a 4c 4e 50 52 54 56 58 5a 5c 5e 60 62 64 66 68 6a 6c 6e 00
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
+- Final ACK received.
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer 3193.
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes state from WAIT RELEASE to RELEASING
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) stopping timer 3193.
+PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.
+Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)
+Destroying MS object, TLLI = 0xffeeddcc
+********** TBF ends here **********
+Searching for first unallocated TFI: TRX=0
+ Found TFI=0.
+********** TBF starts here **********
+Allocating DL TBF: MS_CLASS=11/11
+Creating MS object, TLLI = 0x00000000
+Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
+Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
+Enabled EGPRS for TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), mode EGPRS
+Slot Allocation (Algorithm A) for class 0
+- Skipping TS 0, because not enabled
+- Skipping TS 1, because not enabled
+- Skipping TS 2, because not enabled
+- Skipping TS 3, because not enabled
+- Skipping TS 5, because not enabled
+- Skipping TS 6, because not enabled
+- Skipping TS 7, because not enabled
+- Assign downlink TS=4 TFI=0
+PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 1 TBFs, USFs = 00, TFIs = 00000001.
+- Setting Control TS 4
+Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS): trx = 0, ul_slots = 10, dl_slots = 10
+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS): Setting EGPRS window size to 64
+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW
+The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) append
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0)
+- Sending new block at BSN 0, CS=MCS-4
+- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=100)
+-- Chunk with length 100 larger than space (44) left in block: copy only remaining space, and we are done
+data block (BSN 0, MCS-4): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-4): 07 00 00 80 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 38 3a 3c 3e 40 42 44 46 48 4a 4c 4e 50 52 54 56 00
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
+- initial_cs_dl(4) last_mcs(4) demanded_mcs(1) cs_trans(1) arq_type(0) bsn(0)
+- Resending BSN 0
+- need_padding 0 spb_status 0 spb 2(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-1): 07 00 00 d6 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 00
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
+- initial_cs_dl(4) last_mcs(1) demanded_mcs(1) cs_trans(1) arq_type(0) bsn(0)
+- Resending BSN 0
+- need_padding 0 spb_status 1 spb 3(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-1): 07 00 00 f6 2c 2e 30 32 34 36 38 3a 3c 3e 40 42 44 46 48 4a 4c 4e 50 52 54 56 00
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
+- Final ACK received.
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer 3193.
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes state from WAIT RELEASE to RELEASING
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) stopping timer 3193.
+PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.
+Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)
+Destroying MS object, TLLI = 0xffeeddcc
+********** TBF ends here **********
+Searching for first unallocated TFI: TRX=0
+ Found TFI=0.
+********** TBF starts here **********
+Allocating DL TBF: MS_CLASS=11/11
+Creating MS object, TLLI = 0x00000000
+Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
+Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
+Enabled EGPRS for TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), mode EGPRS
+Slot Allocation (Algorithm A) for class 0
+- Skipping TS 0, because not enabled
+- Skipping TS 1, because not enabled
+- Skipping TS 2, because not enabled
+- Skipping TS 3, because not enabled
+- Skipping TS 5, because not enabled
+- Skipping TS 6, because not enabled
+- Skipping TS 7, because not enabled
+- Assign downlink TS=4 TFI=0
+PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 1 TBFs, USFs = 00, TFIs = 00000001.
+- Setting Control TS 4
+Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS): trx = 0, ul_slots = 10, dl_slots = 10
+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS): Setting EGPRS window size to 64
+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW
+The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) append
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0)
+- Sending new block at BSN 0, CS=MCS-6
+- Dequeue next LLC for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (len=100)
+-- Chunk with length 100 larger than space (74) left in block: copy only remaining space, and we are done
+data block (BSN 0, MCS-6): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49
+- need_padding 0 spb_status 0 spb 0(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
+- initial_cs_dl(6) last_mcs(6) demanded_mcs(3) cs_trans(3) arq_type(0) bsn(0)
+- Resending BSN 0
+- need_padding 0 spb_status 0 spb 2(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-3): 07 00 00 c6 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 38 3a 3c 3e 40 42 44 46 48 00
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
+- initial_cs_dl(6) last_mcs(3) demanded_mcs(3) cs_trans(3) arq_type(0) bsn(0)
+- Resending BSN 0
+- need_padding 0 spb_status 1 spb 3(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-3): 07 00 00 e6 4a 4c 4e 50 52 54 56 58 5a 5c 5e 60 62 64 66 68 6a 6c 6e 70 72 74 76 78 7a 7c 7e 80 82 84 86 88 8a 8c 8e 90 92 00
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1)
+- initial_cs_dl(6) last_mcs(3) demanded_mcs(6) cs_trans(6) arq_type(0) bsn(0)
+- Resending BSN 0
+- need_padding 0 spb_status 2 spb 0(BSN1 0 BSN2 -1)
+- Copying data unit 0 (BSN 0)
+msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
+- Final ACK received.
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer 3193.
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes state from WAIT RELEASE to RELEASING
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free
+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) stopping timer 3193.
+PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.
+Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)
+Destroying MS object, TLLI = 0xffeeddcc
+********** TBF ends here **********
diff --git a/tests/tbf/TbfTest.ok b/tests/tbf/TbfTest.ok
index 0e2edc4..c38417d 100644
--- a/tests/tbf/TbfTest.ok
+++ b/tests/tbf/TbfTest.ok
@@ -54,3 +54,9 @@ Testing retx for MCS 6 - 9
Testing retx for MCS 7 - 5
Testing retx for MCS 9 - 6
=== end test_tbf_egprs_retx_dl ===
+=== start test_tbf_egprs_spb_dl ===
+Testing retx for MCS 6 to reseg_mcs 3
+Testing retx for MCS 5 to reseg_mcs 2
+Testing retx for MCS 4 to reseg_mcs 1
+Testing retx for MCS 6 to reseg_mcs 3
+=== end test_tbf_egprs_spb_dl ===