nr: pdcp: accept "infinity" for t-reordering
"infinity" is -1 in the code.
This commit is contained in:
@@ -217,6 +217,10 @@ static void check_t_reordering(nr_pdcp_entity_t *entity)
|
|||||||
{
|
{
|
||||||
uint32_t count;
|
uint32_t count;
|
||||||
|
|
||||||
|
/* if t_reordering is set to "infinity" (seen as -1) then do nothing */
|
||||||
|
if (entity->t_reordering == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
if (entity->t_reordering_start == 0
|
if (entity->t_reordering_start == 0
|
||||||
|| entity->t_current <= entity->t_reordering_start + entity->t_reordering)
|
|| entity->t_current <= entity->t_reordering_start + entity->t_reordering)
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -55,8 +55,8 @@ typedef struct nr_pdcp_entity_t {
|
|||||||
int rb_id;
|
int rb_id;
|
||||||
|
|
||||||
int sn_size; /* SN size, in bits */
|
int sn_size; /* SN size, in bits */
|
||||||
int t_reordering; /* unit: ms */
|
int t_reordering; /* unit: ms, -1 for infinity */
|
||||||
int discard_timer; /* unit: ms */
|
int discard_timer; /* unit: ms, -1 for infinity */
|
||||||
|
|
||||||
int sn_max; /* (2^SN_size) - 1 */
|
int sn_max; /* (2^SN_size) - 1 */
|
||||||
int window_size; /* 2^(SN_size - 1) */
|
int window_size; /* 2^(SN_size - 1) */
|
||||||
|
|||||||
@@ -610,11 +610,17 @@ static void add_drb_am(int is_gnb, int rnti, struct NR_DRB_ToAddMod *s,
|
|||||||
nr_pdcp_ue_t *ue;
|
nr_pdcp_ue_t *ue;
|
||||||
|
|
||||||
int drb_id = s->drb_Identity;
|
int drb_id = s->drb_Identity;
|
||||||
int t_reordering = decode_t_reordering(*s->pdcp_Config->t_Reordering);
|
int t_reordering;
|
||||||
int sn_size_ul = decode_sn_size_ul(*s->pdcp_Config->drb->pdcp_SN_SizeUL);
|
int sn_size_ul = decode_sn_size_ul(*s->pdcp_Config->drb->pdcp_SN_SizeUL);
|
||||||
int sn_size_dl = decode_sn_size_dl(*s->pdcp_Config->drb->pdcp_SN_SizeDL);
|
int sn_size_dl = decode_sn_size_dl(*s->pdcp_Config->drb->pdcp_SN_SizeDL);
|
||||||
int discard_timer = decode_discard_timer(*s->pdcp_Config->drb->discardTimer);
|
int discard_timer = decode_discard_timer(*s->pdcp_Config->drb->discardTimer);
|
||||||
|
|
||||||
|
/* if pdcp_Config->t_Reordering is not present, it means infinity (-1) */
|
||||||
|
if (s->pdcp_Config->t_Reordering != NULL)
|
||||||
|
t_reordering = decode_t_reordering(*s->pdcp_Config->t_Reordering);
|
||||||
|
else
|
||||||
|
t_reordering = -1;
|
||||||
|
|
||||||
/* TODO(?): accept different UL and DL SN sizes? */
|
/* TODO(?): accept different UL and DL SN sizes? */
|
||||||
if (sn_size_ul != sn_size_dl) {
|
if (sn_size_ul != sn_size_dl) {
|
||||||
LOG_E(PDCP, "%s:%d:%s: fatal, bad SN sizes, must be same. ul=%d, dl=%d\n",
|
LOG_E(PDCP, "%s:%d:%s: fatal, bad SN sizes, must be same. ul=%d, dl=%d\n",
|
||||||
|
|||||||
Reference in New Issue
Block a user