diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2023-07-27 20:37:51 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2023-07-28 13:49:49 +0200 |
commit | 27bbb88d27b3cfde8bec3c3ab1302ba512db757c (patch) | |
tree | dc434bf3eec030e79958597162948134be339c87 | |
parent | 8b1e4cbae663397203d1a38083c5a2ddf9202d10 (diff) |
rlcmac: Use enum gprs_rlcmac_radio_priority internally everywhere
This simplifies the array handling in the LLC queue, and moves param
checking to the rx rlcmac_prim path instead of deep in the llc_queue
enqueuing code.
This commit also fixes the RADIO_PRIORITY field in the Channel Request
Description section of PKT DL ACK/NCK, since
gprs_rlcmac_llc_queue_highest_radio_prio_pending() now returns the enum
normalized 0..3 as expected by the field format (before it was returning
1..4).
Change-Id: If2d1946522bc4a1c19d65acb23605f1a3f05ab45
-rw-r--r-- | include/osmocom/gprs/rlcmac/gre.h | 6 | ||||
-rw-r--r-- | include/osmocom/gprs/rlcmac/llc_queue.h | 17 | ||||
-rw-r--r-- | src/rlcmac/gre.c | 10 | ||||
-rw-r--r-- | src/rlcmac/llc_queue.c | 16 | ||||
-rw-r--r-- | src/rlcmac/rlcmac_prim.c | 16 | ||||
-rw-r--r-- | tests/rlcmac/rlcmac_prim_test.c | 10 | ||||
-rw-r--r-- | tests/rlcmac/rlcmac_prim_test.err | 22 | ||||
-rw-r--r-- | tests/rlcmac/rlcmac_prim_test.ok | 2 |
8 files changed, 59 insertions, 40 deletions
diff --git a/include/osmocom/gprs/rlcmac/gre.h b/include/osmocom/gprs/rlcmac/gre.h index befcf05..a7317cd 100644 --- a/include/osmocom/gprs/rlcmac/gre.h +++ b/include/osmocom/gprs/rlcmac/gre.h @@ -46,8 +46,10 @@ bool gprs_rlcmac_entity_in_packet_transfer_mode(const struct gprs_rlcmac_entity bool gprs_rlcmac_entity_have_tx_data_queued(const struct gprs_rlcmac_entity *gre); int gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(struct gprs_rlcmac_entity *gre); -int gprs_rlcmac_entity_llc_enqueue(struct gprs_rlcmac_entity *gre, uint8_t *ll_pdu, unsigned int ll_pdu_len, - enum osmo_gprs_rlcmac_llc_sapi sapi, uint8_t radio_prio); +int gprs_rlcmac_entity_llc_enqueue(struct gprs_rlcmac_entity *gre, + const uint8_t *ll_pdu, unsigned int ll_pdu_len, + enum osmo_gprs_rlcmac_llc_sapi sapi, + enum gprs_rlcmac_radio_priority radio_prio); struct msgb *gprs_rlcmac_gre_create_pkt_ctrl_ack(const struct gprs_rlcmac_entity *gre); diff --git a/include/osmocom/gprs/rlcmac/llc_queue.h b/include/osmocom/gprs/rlcmac/llc_queue.h index 331f33b..7149f76 100644 --- a/include/osmocom/gprs/rlcmac/llc_queue.h +++ b/include/osmocom/gprs/rlcmac/llc_queue.h @@ -9,17 +9,14 @@ #include <osmocom/gprs/rlcmac/codel.h> #include <osmocom/gprs/rlcmac/rlcmac_prim.h> -#include <osmocom/gprs/rlcmac/types.h> +#include <osmocom/gprs/rlcmac/types_private.h> #include <osmocom/gprs/rlcmac/rlcmac.h> struct gprs_rlcmac_entity; /* Highet/Lowest radio priority (biggest number) as per 3GPP TS 24.008 version 16.7.0 Release 16 section 10.5.7.2: * "All other values are interpreted as priority level 4 by this version of the protocol." */ -#define _GPRS_RLCMAC_RADIO_PRIO_HIGHEST 1 -#define _GPRS_RLCMAC_RADIO_PRIO_LOWEST 4 -/* Normalize 0..N-1 (to be used in arrays): */ -#define RADIO_PRIO_NORM(radio_prio) ((radio_prio) - _GPRS_RLCMAC_RADIO_PRIO_HIGHEST) +#define _GPRS_RLCMAC_RADIO_NUM_PRIO 4 enum gprs_rlcmac_llc_queue_sapi_prio { /* lowest value has highest prio */ GPRS_RLCMAC_LLC_QUEUE_SAPI_PRIO_GMM = 0, /* SAPI 1 */ @@ -29,7 +26,7 @@ enum gprs_rlcmac_llc_queue_sapi_prio { /* lowest value has highest prio */ }; struct gprs_llc_prio_queue { - uint8_t radio_prio; /* Radio prio of this queue, range (1..4) */ + enum gprs_rlcmac_radio_priority radio_prio; /* Radio prio of this queue, range (1..4) */ struct gprs_codel codel_state; struct llist_head queue; /* queued LLC DL data. See enum gprs_rlcmac_llc_queue_prio. */ }; @@ -40,7 +37,7 @@ struct gprs_rlcmac_llc_queue { size_t queue_size; size_t queue_octets; bool use_codel; - struct gprs_llc_prio_queue pq[RADIO_PRIO_NORM(_GPRS_RLCMAC_RADIO_PRIO_LOWEST) + 1][_GPRS_RLCMAC_LLC_QUEUE_SAPI_PRIO_SIZE]; /* queued LLC DL data. See enum gprs_rlcmac_llc_queue_prio. */ + struct gprs_llc_prio_queue pq[_GPRS_RLCMAC_RADIO_NUM_PRIO][_GPRS_RLCMAC_LLC_QUEUE_SAPI_PRIO_SIZE]; /* queued LLC DL data. See enum gprs_rlcmac_llc_queue_prio. */ }; struct gprs_rlcmac_llc_queue *gprs_rlcmac_llc_queue_alloc(struct gprs_rlcmac_entity *gre); @@ -49,10 +46,10 @@ void gprs_rlcmac_llc_queue_clear(struct gprs_rlcmac_llc_queue *q); void gprs_rlcmac_llc_queue_set_codel_params(struct gprs_rlcmac_llc_queue *q, bool use, unsigned int interval_msec); -int gprs_rlcmac_llc_queue_enqueue(struct gprs_rlcmac_llc_queue *q, uint8_t *ll_pdu, unsigned int ll_pdu_len, - enum osmo_gprs_rlcmac_llc_sapi sapi, uint8_t radio_prio); +int gprs_rlcmac_llc_queue_enqueue(struct gprs_rlcmac_llc_queue *q, const uint8_t *ll_pdu, unsigned int ll_pdu_len, + enum osmo_gprs_rlcmac_llc_sapi sapi, enum gprs_rlcmac_radio_priority radio_prio); struct msgb *gprs_rlcmac_llc_queue_dequeue(struct gprs_rlcmac_llc_queue *q, bool can_discard); -uint8_t gprs_rlcmac_llc_queue_highest_radio_prio_pending(struct gprs_rlcmac_llc_queue *q); +enum gprs_rlcmac_radio_priority gprs_rlcmac_llc_queue_highest_radio_prio_pending(struct gprs_rlcmac_llc_queue *q); void gprs_rlcmac_llc_queue_merge_prepend(struct gprs_rlcmac_llc_queue *q, struct gprs_rlcmac_llc_queue *old_q); diff --git a/src/rlcmac/gre.c b/src/rlcmac/gre.c index 500feed..59cf0f5 100644 --- a/src/rlcmac/gre.c +++ b/src/rlcmac/gre.c @@ -216,17 +216,19 @@ int gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(struct gprs_rlcmac_en return gprs_rlcmac_tbf_ul_ass_start(gre->ul_tbf, GPRS_RLCMAC_TBF_UL_ASS_TYPE_1PHASE); } -int gprs_rlcmac_entity_llc_enqueue(struct gprs_rlcmac_entity *gre, uint8_t *ll_pdu, unsigned int ll_pdu_len, - enum osmo_gprs_rlcmac_llc_sapi sapi, uint8_t radio_prio) +int gprs_rlcmac_entity_llc_enqueue(struct gprs_rlcmac_entity *gre, + const uint8_t *ll_pdu, unsigned int ll_pdu_len, + enum osmo_gprs_rlcmac_llc_sapi sapi, + enum gprs_rlcmac_radio_priority radio_prio) { int rc; LOGGRE(gre, LOGL_DEBUG, "Enqueueing LLC-PDU len=%u SAPI=%s radio_prio=%u\n", - ll_pdu_len, get_value_string(osmo_gprs_rlcmac_llc_sapi_names, sapi), radio_prio); + ll_pdu_len, get_value_string(osmo_gprs_rlcmac_llc_sapi_names, sapi), radio_prio + 1); rc = gprs_rlcmac_llc_queue_enqueue(gre->llc_queue, ll_pdu, ll_pdu_len, sapi, radio_prio); if (rc < 0) { LOGGRE(gre, LOGL_NOTICE, "Enqueueing LLC-PDU len=%u SAPI=%s radio_prio=%u failed!\n", - ll_pdu_len, get_value_string(osmo_gprs_rlcmac_llc_sapi_names, sapi), radio_prio); + ll_pdu_len, get_value_string(osmo_gprs_rlcmac_llc_sapi_names, sapi), radio_prio + 1); return rc; } diff --git a/src/rlcmac/llc_queue.c b/src/rlcmac/llc_queue.c index 066df47..83c926e 100644 --- a/src/rlcmac/llc_queue.c +++ b/src/rlcmac/llc_queue.c @@ -46,7 +46,7 @@ struct gprs_rlcmac_llc_queue *gprs_rlcmac_llc_queue_alloc(struct gprs_rlcmac_ent q->avg_queue_delay = 0; for (i = 0; i < ARRAY_SIZE(q->pq); i++) { for (j = 0; j < ARRAY_SIZE(q->pq[i]); j++) { - q->pq[i][j].radio_prio = i + 1; /* range (1..4) */ + q->pq[i][j].radio_prio = i; /* enum gprs_rlcmac_radio_priority, range (0..3) */ INIT_LLIST_HEAD(&q->pq[i][j].queue); gprs_codel_init(&q->pq[i][j].codel_state); } @@ -89,19 +89,13 @@ static enum gprs_rlcmac_llc_queue_sapi_prio gprs_rlcmac_llc_sapi2prio(enum osmo_ } } -int gprs_rlcmac_llc_queue_enqueue(struct gprs_rlcmac_llc_queue *q, uint8_t *ll_pdu, unsigned int ll_pdu_len, - enum osmo_gprs_rlcmac_llc_sapi sapi, uint8_t radio_prio) +int gprs_rlcmac_llc_queue_enqueue(struct gprs_rlcmac_llc_queue *q, const uint8_t *ll_pdu, unsigned int ll_pdu_len, + enum osmo_gprs_rlcmac_llc_sapi sapi, enum gprs_rlcmac_radio_priority radio_prio) { struct llc_queue_entry_hdr *ehdr; enum gprs_rlcmac_llc_queue_sapi_prio sapi_prio; struct msgb *msg; - /* Trim to expected values 1..4, (3GPP TS 24.008) 10.5.7.2 */ - if (radio_prio < _GPRS_RLCMAC_RADIO_PRIO_HIGHEST) - radio_prio = _GPRS_RLCMAC_RADIO_PRIO_HIGHEST; - else if (radio_prio > _GPRS_RLCMAC_RADIO_PRIO_LOWEST) - radio_prio = _GPRS_RLCMAC_RADIO_PRIO_LOWEST; - sapi_prio = gprs_rlcmac_llc_sapi2prio(sapi); msg = msgb_alloc_headroom(sizeof(*ehdr) + ll_pdu_len, 0, "llc_queue_msg"); @@ -117,7 +111,7 @@ int gprs_rlcmac_llc_queue_enqueue(struct gprs_rlcmac_llc_queue *q, uint8_t *ll_p msg->l2h = NULL; } - msgb_enqueue(&q->pq[RADIO_PRIO_NORM(radio_prio)][sapi_prio].queue, msg); + msgb_enqueue(&q->pq[radio_prio][sapi_prio].queue, msg); q->queue_size += 1; q->queue_octets += ll_pdu_len; @@ -221,7 +215,7 @@ struct msgb *gprs_rlcmac_llc_queue_dequeue(struct gprs_rlcmac_llc_queue *q, bool return msg; } -uint8_t gprs_rlcmac_llc_queue_highest_radio_prio_pending(struct gprs_rlcmac_llc_queue *q) +enum gprs_rlcmac_radio_priority gprs_rlcmac_llc_queue_highest_radio_prio_pending(struct gprs_rlcmac_llc_queue *q) { struct gprs_llc_prio_queue *prioq = gprs_rlcmac_llc_queue_find_msg(q); OSMO_ASSERT(prioq); diff --git a/src/rlcmac/rlcmac_prim.c b/src/rlcmac/rlcmac_prim.c index d3df15f..f13ac3d 100644 --- a/src/rlcmac/rlcmac_prim.c +++ b/src/rlcmac/rlcmac_prim.c @@ -375,6 +375,7 @@ static int rlcmac_prim_handle_grr_data_req(struct osmo_gprs_rlcmac_prim *rlcmac_ static int rlcmac_prim_handle_grr_unitdata_req(struct osmo_gprs_rlcmac_prim *rlcmac_prim) { struct gprs_rlcmac_entity *gre; + enum gprs_rlcmac_radio_priority radio_prio; int rc; gre = gprs_rlcmac_find_entity_by_tlli(rlcmac_prim->grr.tlli); @@ -385,11 +386,24 @@ static int rlcmac_prim_handle_grr_unitdata_req(struct osmo_gprs_rlcmac_prim *rlc } OSMO_ASSERT(gre); + /* Expected values are integers 1..4, trim to known expected radio priorities (3GPP TS 24.008) 10.5.7.2 */ + if (OSMO_UNLIKELY(rlcmac_prim->grr.unitdata_req.radio_prio < 1)) { + LOGGRE(gre, LOGL_NOTICE, "Rx UNITDATA.req with unexpected radio_prio=%u not in range (1..4)\n", + rlcmac_prim->grr.unitdata_req.radio_prio); + radio_prio = GPRS_RLCMAC_RADIO_PRIORITY_1; + } else if (OSMO_UNLIKELY(rlcmac_prim->grr.unitdata_req.radio_prio > 4)) { + LOGGRE(gre, LOGL_NOTICE, "Rx UNITDATA.req with unexpected radio_prio=%u not in range (1..4)\n", + rlcmac_prim->grr.unitdata_req.radio_prio); + radio_prio = GPRS_RLCMAC_RADIO_PRIORITY_4; + } else { + radio_prio = (enum gprs_rlcmac_radio_priority)(rlcmac_prim->grr.unitdata_req.radio_prio - 1); + } + rc = gprs_rlcmac_entity_llc_enqueue(gre, rlcmac_prim->grr.ll_pdu, rlcmac_prim->grr.ll_pdu_len, rlcmac_prim->grr.unitdata_req.sapi, - rlcmac_prim->grr.unitdata_req.radio_prio); + radio_prio); msgb_free(rlcmac_prim->oph.msg); return rc; } diff --git a/tests/rlcmac/rlcmac_prim_test.c b/tests/rlcmac/rlcmac_prim_test.c index 10f148a..410b266 100644 --- a/tests/rlcmac/rlcmac_prim_test.c +++ b/tests/rlcmac/rlcmac_prim_test.c @@ -599,6 +599,7 @@ static void test_ul_tbf_attach(void) rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, pdu_llc_gmm_att_req, sizeof(pdu_llc_gmm_att_req)); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_GMM; + rlcmac_prim->grr.unitdata_req.radio_prio = 1; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); OSMO_ASSERT(sizeof(ccch_imm_ass_pkt_ul_tbf_normal) == GSM_MACBLOCK_LEN); @@ -662,6 +663,7 @@ static void test_ul_tbf_request_another_ul_tbf(void) rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, pdu_llc_gmm_att_req, 14); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_GMM; + rlcmac_prim->grr.unitdata_req.radio_prio = 1; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); OSMO_ASSERT(sizeof(ccch_imm_ass_pkt_ul_tbf_normal) == GSM_MACBLOCK_LEN); @@ -696,6 +698,7 @@ static void test_ul_tbf_request_another_ul_tbf(void) rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, pdu_llc_gmm_att_req, 14); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_GMM; + rlcmac_prim->grr.unitdata_req.radio_prio = 1; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); /* Trigger transmission of PKT RES REQ: */ @@ -721,6 +724,7 @@ static void test_ul_tbf_t3164_timeout(void) rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, pdu_llc_gmm_att_req, sizeof(pdu_llc_gmm_att_req)); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_GMM; + rlcmac_prim->grr.unitdata_req.radio_prio = 1; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); OSMO_ASSERT(sizeof(ccch_imm_ass_pkt_ul_tbf_normal) == GSM_MACBLOCK_LEN); @@ -757,6 +761,7 @@ static void test_ul_tbf_t3166_timeout(void) rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, pdu_llc_gmm_att_req, sizeof(pdu_llc_gmm_att_req)); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_GMM; + rlcmac_prim->grr.unitdata_req.radio_prio = 1; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); for (i = 0; i < 4; i++) { @@ -806,6 +811,7 @@ static void test_ul_tbf_n3104_timeout(void) rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, pdu_llc_gmm_att_req, sizeof(pdu_llc_gmm_att_req)); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_GMM; + rlcmac_prim->grr.unitdata_req.radio_prio = 1; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); OSMO_ASSERT(rc == 0); } @@ -853,6 +859,7 @@ static void test_ul_tbf_t3182_timeout(void) rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, pdu_llc_gmm_att_req, sizeof(pdu_llc_gmm_att_req)); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_GMM; + rlcmac_prim->grr.unitdata_req.radio_prio = 1; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); ccch_imm_ass_pkt_ul_tbf_normal[7] = last_rach_req_ra; /* Update RA to match */ @@ -910,6 +917,7 @@ static void test_ul_tbf_last_data_cv0_retrans_max(void) rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, pdu_llc_gmm_att_req, sizeof(pdu_llc_gmm_att_req)); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_GMM; + rlcmac_prim->grr.unitdata_req.radio_prio = 1; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); ccch_imm_ass_pkt_ul_tbf_normal[7] = last_rach_req_ra; /* Update RA to match */ @@ -980,6 +988,7 @@ static void test_ul_tbf_countdown_procedure(void) memset(msgb_data(llc_msg), 0xab, msgb_length(llc_msg)); rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, msgb_data(llc_msg), msgb_length(llc_msg)); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_SNDCP3; + rlcmac_prim->grr.unitdata_req.radio_prio = 2; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); ccch_imm_ass_pkt_ul_tbf_normal[7] = last_rach_req_ra; /* Update RA to match */ @@ -1111,6 +1120,7 @@ static void test_dl_tbf_ccch_assign_requests_ul_tbf_pacch(void) /* Submit 14 bytes to fit in 1 RLCMAC block to shorten test and end up in FINISHED state quickly: */ rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_grr_unitdata_req(tlli, pdu_llc_gmm_att_req, 14); rlcmac_prim->grr.unitdata_req.sapi = OSMO_GPRS_RLCMAC_LLC_SAPI_GMM; + rlcmac_prim->grr.unitdata_req.radio_prio = 1; rc = osmo_gprs_rlcmac_prim_upper_down(rlcmac_prim); OSMO_ASSERT(rc == 0); diff --git a/tests/rlcmac/rlcmac_prim_test.err b/tests/rlcmac/rlcmac_prim_test.err index 6b84f2c..913c9da 100644 --- a/tests/rlcmac/rlcmac_prim_test.err +++ b/tests/rlcmac/rlcmac_prim_test.err @@ -1,7 +1,7 @@ DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly DLGLOBAL INFO DL_TBF_ASS{IDLE}: Allocated -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=1 DLGLOBAL INFO UL_TBF{NEW}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START @@ -76,7 +76,7 @@ DLGLOBAL INFO DL_TBF_ASS{IDLE}: Deallocated DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly DLGLOBAL INFO DL_TBF_ASS{IDLE}: Allocated -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=1 DLGLOBAL INFO UL_TBF{NEW}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START @@ -181,7 +181,7 @@ DLGLOBAL INFO DL_TBF_ASS{IDLE}: Deallocated DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly DLGLOBAL INFO DL_TBF_ASS{IDLE}: Allocated -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=1 DLGLOBAL INFO UL_TBF{NEW}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START @@ -335,7 +335,7 @@ DLGLOBAL DEBUG Rx SI13 from lower layers DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly DLGLOBAL INFO DL_TBF_ASS{IDLE}: Allocated -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=1 DLGLOBAL INFO UL_TBF{NEW}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START @@ -345,7 +345,7 @@ DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7a DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=1 DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_ESTABLISH.request DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: Received Event RX_CCCH_IMM_ASS @@ -511,7 +511,7 @@ DLGLOBAL INFO UL_TBF{FLOW}: Deallocated DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly DLGLOBAL INFO DL_TBF_ASS{IDLE}: Allocated -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=1 DLGLOBAL INFO UL_TBF{NEW}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START @@ -579,7 +579,7 @@ DLGLOBAL INFO DL_TBF_ASS{IDLE}: Deallocated DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly DLGLOBAL INFO DL_TBF_ASS{IDLE}: Allocated -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=33 SAPI=GMM radio_prio=1 DLGLOBAL INFO UL_TBF{NEW}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START @@ -693,7 +693,7 @@ DLGLOBAL DEBUG Rx SI13 from lower layers DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly DLGLOBAL INFO DL_TBF_ASS{IDLE}: Allocated -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=200 SAPI=SNDCP3 radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=200 SAPI=SNDCP3 radio_prio=2 DLGLOBAL INFO UL_TBF{NEW}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START @@ -803,7 +803,7 @@ DLGLOBAL INFO UL_TBF{FINISHED}: Deallocated DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly DLGLOBAL INFO DL_TBF_ASS{IDLE}: Allocated -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=14 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=14 SAPI=GMM radio_prio=1 DLGLOBAL INFO UL_TBF{NEW}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START @@ -854,7 +854,7 @@ DLGLOBAL DEBUG UL_TBF{FINISHED}: Final ACK received DLGLOBAL INFO UL_TBF{FINISHED}: state_chg to RELEASING DLGLOBAL DEBUG Register POLL (TS=7 FN=17, reason=UL_ACK) DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request -DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=14 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00002342) Enqueueing LLC-PDU len=14 SAPI=GMM radio_prio=1 DLGLOBAL DEBUG Rx from lower layers: L1CTL-PDCH_RTS.indication DLGLOBAL DEBUG (ts=7,fn=17,usf=0) Tx Pkt Resource Request (UL ACK/NACK poll) DLGLOBAL INFO UL_TBF{NEW}: Allocated @@ -947,7 +947,7 @@ DLGLOBAL INFO DL_TBF{FLOW}: Received Event LAST_DL_DATA_RECVD DLGLOBAL INFO DL_TBF{FLOW}: state_chg to FINISHED DLGLOBAL DEBUG Register POLL (TS=7 FN=21, reason=DL_ACK) DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request -DLGLOBAL DEBUG GRE(00000001) Enqueueing LLC-PDU len=14 SAPI=GMM radio_prio=0 +DLGLOBAL DEBUG GRE(00000001) Enqueueing LLC-PDU len=14 SAPI=GMM radio_prio=1 DLGLOBAL DEBUG Rx from lower layers: L1CTL-PDCH_RTS.indication DLGLOBAL DEBUG (ts=7,fn=21,usf=0) Tx DL ACK/NACK FinalAck=1 DLGLOBAL DEBUG TBF(DL:NR-0:TLLI-00000001) - SSN 1, V(N): "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIR" R=Received I=Invalid, FINAL_ACK=1 diff --git a/tests/rlcmac/rlcmac_prim_test.ok b/tests/rlcmac/rlcmac_prim_test.ok index daea0f2..d601794 100644 --- a/tests/rlcmac/rlcmac_prim_test.ok +++ b/tests/rlcmac/rlcmac_prim_test.ok @@ -201,7 +201,7 @@ sys={0.000000}, mono={0.000000}: clock_override_set test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_DL_TBF.request dl_tbf_nr=0 dl_slotmask=0x80 dl_tfi=0 test_rlcmac_prim_up_cb(): Rx GRR-UNITDATA.indication TLLI=0x00000001 ll=[43 c0 01 2b 2b 2b ] -test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=21 ts=7 data_len=23 data=[40 08 10 20 00 00 00 00 00 00 00 30 40 00 00 00 00 03 2b 2b 2b 2b 2b ] +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=21 ts=7 data_len=23 data=[40 08 10 20 00 00 00 00 00 00 00 30 00 00 00 00 00 03 2b 2b 2b 2b 2b ] test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0xc0 test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=43 ts=7 data_len=23 data=[40 04 00 00 00 04 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b ] test_rlcmac_prim_up_cb(): Rx GMMRR-LLC_TRANSMITTED.indication TLLI=0x00000001 |