55 Commits (123f76693585aa79370d3133be2f37e5e6fa0cc0)

Author SHA1 Message Date
Codebot 123f766935 Merge branch 'next' into agpl_next 3 years ago
Robert Falkenberg fbdbc81bdd lib,pdcp: fix modulus for SN increments 3 years ago
Codebot fb75a5ef0e Merge branch 'next' into agpl_next 3 years ago
Andre Puschmann 44a00feccb pdcp_entity_base: fix log typo 3 years ago
Codebot 5275f33360 Merge branch 'next' into agpl_next 3 years ago
Francisco c64be663d2 nr,gnb,pdcp: store the PDCP RB name in base class for easier use 3 years ago
Francisco 5b8d4c39af pdcp,lte: fix drb/srb id logging to account for dynamic mapping 3 years ago
Codebot 1cd26af06b Merge branch 'next' into agpl_next 3 years ago
Ismael Gomez d972fb368c
Some LGTM fixes (#3564)
* Fix LGTM issues

* ue: add logging to switch on function

* Fix new LGTM issues
3 years ago
Codebot 8c3332f894 Merge branch 'next' into agpl_next
# Conflicts:
#	srsenb/hdr/stack/upper/pdcp_nr.h
#	srsenb/hdr/stack/upper/rlc_nr.h
#	srsenb/src/stack/upper/pdcp_nr.cc
#	srsenb/src/stack/upper/rlc_nr.cc
3 years ago
Ismael Gomez 1c77998df5 Stop PDCP for data bearers before initiating HO 3 years ago
David Rupprecht bd0e641633 Added GTPU PDU Session header parsing 3 years ago
Codebot 585e3c51c1 Merge branch 'next' into agpl_next
# Conflicts:
#	srsenb/hdr/phy/nr/cc_worker.h
#	srsenb/hdr/phy/nr/sf_worker.h
#	srsenb/src/phy/nr/cc_worker.cc
#	srsenb/src/phy/nr/sf_worker.cc
#	test/phy/nr_phy_test.cc
3 years ago
Pedro Alvarez 171d5727be Moved lib RLC into it's own folder 3 years ago
Andre Puschmann 483a216bd5 ue,stack: refactor handling of radio bearears in UE stack
this is a rather large commit that is hard to split because
it touches quite a few components.

It's a preparation patch for adding NR split bearers in the next
step.

We realized that managing RLC and PDCP bearers for both NR and LTE
in the same entity doesn't work. This is because we use the LCID
as a key for all accesses. With NR dual connectivity however we
can have the same LCID active at the same time for both LTE and NR
carriers.

The patch solves that by creating a dedicated NR instance for RLC/PDCP
in the stack. But then the question arises for UL traffic on, e.g. LCID 4
what PDCP instance the GW should use for pushing SDUs. It doesnt' know
that. And in fact it doesn't need to. It just needs to know EPS
bearer IDs. So the next change was to remove the knowledge of what
LCIDs are from the GW. Make is agnostic and only work on EPS bearer IDs.

The handling and mapping between EPS bearer IDs and LCIDs for LTE
or NR (mainly PDCP for pushing data) is done in the Stack because
it has access to both.

The NAS also has a EPS bearer map but only knows about default and
dedicated bearers. It doesn't know on which logical channels they
are transmitted.
3 years ago
Andre Puschmann 7113e55d53 rlc: refactor RLC entity to use smart pointers for holding bearers
this patch mainly modernizes the bearer creation to use smart pointers.
that allows to simplify the error handling.

ue_stack is changed to match new interface. This commit compiles
but doesn't work.
3 years ago
David Rupprecht 6d5391756c Refactor build of RLC NR config 3 years ago
Codebot a2cc847747 Merge branch 'next' into agpl_next 3 years ago
Andre Puschmann 878142843e rlc_am_lte: add further sanity check when creating status PDU
the test verifies that the ACK_SN of a status PDU falls inside the
rx_window of the receiver. If not, than the RLC state has been
corrupted and the status PDU is likely invalid.
3 years ago
Codebot 73a61b884e Merge branch 'next' into agpl_next 3 years ago
Andre Puschmann 295b5fe8fb rlc_tm: fix stopping of entity detected with TSAN 3 years ago
Andre Puschmann c0be8187c8 rlc interface: convert entire read_pdu() interface to return uint32_t
we had it returning int but had a bug in using the return value properly,
i.e. handling when -1 was returned in RLC TM.

Thinking about it more, it doesn't make sense to have a negative return
value here anyway. Either the RLC can return a PDU or not. If it can't the
returned lenght is zero.
3 years ago
Andre Puschmann 1d34aa280f byte_buffer_queue: make class thread-safe by using atomics 3 years ago
Andre Puschmann 3102861ee3 rlc_am_lte: make func param const& 3 years ago
Codebot e77c197633 Merge branch 'next' into agpl_next
# Conflicts:
#	srsue/hdr/phy/scell/intra_measure.h
#	srsue/src/phy/scell/intra_measure.cc
4 years ago
Andre Puschmann 21b3635ae4 rlc_am_lte: refactor retransmit_pdu() to send different SNs
it seems that different SNs should be retransmitted depending
on the actual situation. In case of pollRetx timer expiration,
vt_s - 1 should actually be resent.

This patch prepares the function to accept different SNs but
leaves it to send vt_a by default. The RLC AM test would need
to changed as well to not fail.
4 years ago
Codebot 77908eed1c Merge branch 'next' into agpl_next 4 years ago
Andre Puschmann 598594c51a all: bunch of pass by const& changes suggested by LGTM 4 years ago
Codebot 887f1da10c Merge branch 'next' into agpl_next 4 years ago
AlaiaL 0535473895 Fixes coverity 369570 4 years ago
Codebot 0a15eeb57a Adding AGPL copyright to new files 4 years ago
Codebot 1bb31e42ab Merge branch 'next' into agpl_next
# Conflicts:
#	lib/include/srsran/interfaces/nr_common_interface_types.h
4 years ago
David Rupprecht 91ff8a2e6d Add rrc_nr to rlc init function 4 years ago
David Rupprecht 6b41ae7e8b Updated PDCP config struct for rat type 4 years ago
Codebot 34dbee4c7d Merge branch 'next' into agpl_next 4 years ago
Francisco e3e4564a7e fix inconsistency in use of invalid_sn and status_report_sn throughout rlc am code 4 years ago
Francisco c3ec28002b refactor - integration of segment list in rlc_amd_tx_pdu and pdcp_pdu_info classes 4 years ago
Francisco 7f0083a985 implementation of intrusive list abstract classes to be used in RLC for lists of segments 4 years ago
Francisco b06f16891d use of a single array-based pool of RLC AM PDU segments to build data PDUs, while
avoiding any allocations.
Each segment stores its own PDCP SN and RLC SN and has two pointers,
one for the next segment of the same RLC PDU, and another for the next segment
of the same PDCP PDU.
4 years ago
Andre Puschmann 48537f3fe7 pdcp,rlc: increase number of PDCP SDUs for notification from RLC
the current value of 256 limits the number of PDCP SDUs that can be
notified from RLC. The limit is quickly hit when too many SDUs
are in flight. This can cause unwanted log entries and weird PDCP
behaviour.

the patch increases the value to 1024, which still can be too few if
many smaller SDUs are traveling.

The patch also set the log level to warning to quicker spot
misconfigs in logs.

Fixes #2616
4 years ago
Codebot 6bf4bdaf5c Adding AGPL copyright to new files 4 years ago
Codebot c0282856d0 Merge branch 'next' into agpl_next
# Conflicts:
#	srsue/test/mac_nr/mac_nr_test.cc
4 years ago
Francisco 75e9700de0 rlc - usage of memory pool to allocate RLC bearers 4 years ago
Francisco dc763b5045 rlc am - fix bugs in buffered_pdcp_pdu_list
The count and container elements were not being correctly updated in the events
of SN overwrite, clear(), clear_pdcp_sdu(sn) of sn that doesnt exist
4 years ago
Francisco ebbb74e639 rlc am - use of circular_map container in RLC AM window
The window elements are not being correctly cleaned up when clear() is called
or when overwritten by newer SN. Furthermore, the window count member is not being
correctly updated when the insertion of a newer SN overwrites the previous one.

I used the circular_map container to avoid this sort of bugs
4 years ago
David Rupprecht 82c9636156 Refactor pdcp ctor seperate the configure function 4 years ago
David Rupprecht 56e947bf27 Added functionality for releasing a NR bearer 4 years ago
Codebot a047e13479 Merge branch 'next' into agpl_next
# Conflicts:
#	lib/include/srsran/adt/adt_utils.h
4 years ago
Francisco cfd24f6a0e gtpu - leverage byte_buffer_pool to store buffered sdus in gtpu 4 years ago
Codebot 24290dcae2 Adding AGPL copyright to new files 4 years ago