We do some sanity checks for incoming rlc control packets. One of them is to check that so_start is not > so_end when present. But when 'range' is present and bigger than 1 it means that so_start refers to one PDU and so_end to another one. So we may well have so_start > so_end. This commit fixes that and reorganizes a bit the code to do the check before processing and rejecting the PDU if the values are not correct. (Before this commit we were NACKing the whole PDUs if so_start > so_end.)
20 lines
448 B
C
20 lines
448 B
C
/*
|
|
* am test (SN field size 18):
|
|
* test "range" in NACK, generate a case where so_start > so_end
|
|
* (so so_start and so_end are not from the same PDU)
|
|
*/
|
|
|
|
TIME, 1,
|
|
GNB_AM, 100000, 100000, 45, 35, 0, -1, -1, 8, 18,
|
|
UE_AM, 100000, 100000, 45, 35, 0, -1, -1, 8, 18,
|
|
GNB_PDU_SIZE, 40,
|
|
UE_PDU_SIZE, 80,
|
|
GNB_SDU, 0, 50,
|
|
GNB_SDU, 1, 50,
|
|
GNB_SDU, 2, 50,
|
|
TIME, 2,
|
|
UE_RECV_FAILS, 1,
|
|
TIME, 4,
|
|
UE_RECV_FAILS, 0,
|
|
TIME, -1
|