Francisco
63913ff2b2
remove uneeded assert condition. change pdcp log when notified pdcp pdu doesnt exist to info.
4 years ago
Francisco
9efb959471
bugfix, scheduler - fix bit counter specializations for 32 and 64 bits.
4 years ago
Francisco
6137e4569b
fix srsran_assert definition when asserts are disabled
4 years ago
Francisco
3b78bf3730
bugfix - fix memcheck warnings. move instructions with side effects outside of asserts
4 years ago
David Rupprecht
a064e85c54
rename common lte header
4 years ago
David Rupprecht
81ad72b0ff
Refactor srb and drb handling
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
Xavier Arteaga
53e41a165c
Revert zeros around DC REs in NR PDSCH
4 years ago
Xavier Arteaga
1c1d7e2447
Revert "Review soft demodulator zero check"
...
This reverts commit b8a9a7fc70
.
4 years ago
Francisco
ac375f07d9
add precompiler guards to restrict builtin use to gcc and clang
4 years ago
Francisco
22024ac35d
implemented bounded_bitset::find_lowest(...) for both reverse and non-reverse bit ordering. Applied this method to UL scheduling search for PRB intervals
4 years ago
Francisco
3f15fc2811
implemented bounded_bitset::find_first(...)
4 years ago
David Rupprecht
db9dd85783
Parse carrier config in NR RRC reconfig
4 years ago
David Rupprecht
f42d4dbc28
Refactored carrier config
4 years ago
Xavier Arteaga
8ffced7e88
NR PHY logging minor corrections
4 years ago
Xavier Arteaga
abfc1da921
Multiple NR-PUSCH fixes
4 years ago
Xavier Arteaga
01ce0718be
NR-PUSCH RE mapping correction and NR-SCH detailed grant information
4 years ago
David Rupprecht
bfe2ad98ef
Added parsing for NR DL HARQ cfg
4 years ago
Andre Puschmann
b9ae064338
mac_nr: add DL HARQ
...
this commit adds a complete DL HARQ entity to the MAC of the UE.
It also refactors demux into an own class and adapts the PHY-MAC
interface to use the new MAC capabilities.
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
faluco
e1752c0878
Replace the queue in thread pool in favour of a static circular buffer to avoid allocations.
4 years ago
David Rupprecht
1cbd1c9d26
Deleted hardcoded phy config
4 years ago
David Rupprecht
fe8727050b
Added new rrc_nr to phy flattening functions and fixes
4 years ago
Ismael Gomez
635db8dde1
Initialize metrics in hub
4 years ago
Xavier Arteaga
e4e3456d76
Refactored PDSCH/PUSCH decoder for LDPC early stopping
4 years ago
Xavier Arteaga
422d479852
Added CRC match function and optimised byte packing
4 years ago
Xavier Arteaga
5aa7f9dd8b
Condensed LDPC Decoder config arguments into an structure and unified common decoder code
4 years ago
Francisco
1f1233782f
timers - fix old gcc compilation issue. Changed free list to intrusive list.
4 years ago
Francisco
e37968410e
simplification of timers handler design, relying solely on one time wheel.
4 years ago
Francisco
60896e30b5
implementation of time wheel-based timer handler, using a circular array and intrusive list
4 years ago
Ismael Gomez
77b11b82ac
Release UE if no activity in DRB ( #2658 )
...
* Count user activity with DRB only and SRBs for initial procedures. Add counter to release user after max KO in UL.
4 years ago
Francisco
4838cd2f5e
implement cell measurement bandwidth feature
4 years ago
Francisco
14d32db92f
implement Handover direct forwarding path availability configuration feature
4 years ago
faluco
582ad5f6de
Replace the std::stack member in the buffer_pool class for a vector to avoid reallocs.
4 years ago
Francisco
b8fa1d1b61
fix rrc mobility test
4 years ago
Francisco
66988ffd32
s1ap - simplified erab setup procedure. Handle correctly the failure to setup causes
4 years ago
Francisco
f401683960
s1ap - simplified erab modify procedure
4 years ago
Francisco
76978f0d14
s1ap - simplified erab release procedure
4 years ago
Francisco
c5fc543516
s1ap - handling of ts1 reloc overall timer.
4 years ago
Andre Puschmann
44baea6666
mac_nr: add UL HARQ
...
this patch adds a basic UL HARQ entity for NR.
The patch also updates some interfaces between MAC/RA/HARQ,
i.e. get_temp_crnti().
It also adds a Msg3 unit test.
4 years ago
Andre Puschmann
b7146c41b2
nr: add NDI for PUSCH grant to sch cfg struct
4 years ago
faluco
a474a0f293
SRSLOG: Avoid calling unordered_map::emplace if element already exists since it will allocate even if the insertion is not going to take place.
4 years ago
Xavier Arteaga
7823bfc28c
Fix append NR to loggers for NR components
4 years ago
Francisco
c2a99a8112
handover - support for handover cancellation causes, check for E-RAB QoS requirements, cancellation of handover if E-RABs are not supported in the target eNB
4 years ago
faluco
a2f6e13138
Add a tag to the string memory pool in fmt to discriminate between pool vs heap allocated buffers. Heap allocated buffers are used as a fallback mechanism when the buffer runs out of space.
4 years ago
faluco
0465f6badd
Implement a pool in FMT to avoid allocating heap memory when passing a char* to the backend, usually when formatting a %s argument.
...
Previously since a char* can have any length, this was managed by FMT by converting it into a std::string.
Now we store it into a configurable size node that can store a fixed size string, otherwise it falls back to std::string.
4 years ago
Xavier Arteaga
2f453b43ba
Initial NR PHY interface
4 years ago
Francisco
d2c404b166
handover - setup s1ap cause in case of handover failure at the target enb
4 years ago
Francisco
49bd895e29
s1ap - handle invalid or repeated erab ids in s1ap erab release command
4 years ago
Francisco
7842e3bff3
s1ap - add unit test to check correct handling of invalid E-RAB ids in modification request. Fix s1ap in order for the test to pass
4 years ago
Francisco
985846e3bd
s1ap - set multiple erab ids cause in replay when s1ap erab modify request has repeated ids.
4 years ago
David Rupprecht
5a3a2a6d6f
Added functions for adding phr and tag config
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
Andre Puschmann
c9da21c9bb
mac_nr: add error handling when unpacking SCH MAC PDU
...
* only handle PDU if unpacking was successfull
* add TC unpacking with malformed PDU
4 years ago
Xavier Arteaga
b8a9a7fc70
Review soft demodulator zero check
4 years ago
Xavier Arteaga
17a3c76540
Fix NR TDD pattern configuration
4 years ago
Xavier Arteaga
3889f1369f
Added partial NR time resource mapping tables
4 years ago
Xavier Arteaga
2e3c00aa97
NR PDSCH zeroes RE around the DC. Added delay and CFO emulation to phy_dl_nr_test
4 years ago
Xavier Arteaga
667cc0b552
NR PDSCH/PUSCH DMRS estimation precompensates Synch error and CFO before interpolation
4 years ago
Francisco
685c971dc2
fix recursive call to get rb name
4 years ago
Francisco
f7a8b8bf94
separate drb srb ids into separate enum types
4 years ago
Francisco
21718af3b6
avoid allocating std::string to get lcid radio bearer name. Refactored the lte radio bearer enum type
4 years ago
Francisco
437db3af03
forbid allocations when dispatching task to thread pool
4 years ago
Andre Puschmann
8024bf7820
mux_nr: improve logging when building UL MAC PDU
4 years ago
Andre Puschmann
9950278a12
nr,mac_sch_pdu,mux: fix packing of MAC subPDUs with 16bit L field
...
the created RLC PDU was too large to fit inside the MAC grant
because only the header room for the short L field was used.
The patch determines the correct size before passing the opportunity to RLC.
It also improves logging in error case by using the MAC logger instead of
stderr/stdout when error occurs.
4 years ago
Francisco
ff8a43f6b0
avoid allocation of dl_sched_list and ul_sched_t by converting a std::vector to bounded_vector
4 years ago
Francisco
f1c67f5b2b
pool - avoid concurrent batch allocations in background threads
4 years ago
Francisco
75e9700de0
rlc - usage of memory pool to allocate RLC bearers
4 years ago
Francisco
71f1f1b556
enb - log warning when rnti-specific memory block is full
4 years ago
Francisco
a890a22ccd
enb - rnti memory pool now fallbacks to new/delete if rnti-specific memory block is full
4 years ago
Francisco
a780a6a7b6
fix obj pool interface
4 years ago
Francisco
60d5c6df7b
implementation of memory pool with individual memory blocks per UE that get accessed via their rnti
4 years ago
Andre Puschmann
db496df1e6
mac_nr: add support for periodic BSR reporting
...
building on the previous refactor this patch now adds support
for peridoic BSR reporting (using short BSR). It furthermore does
the following changes:
* add BSR packing
* add proc_bsr_nr unit test
* move mac_nr test code into test folder under src (needs to be done with other test code too)
4 years ago
Andre Puschmann
6dd8c21073
mac_sch_pdu_nr: add unpacking of TA CE in DL-SCH
...
also add basic test to verify correct unpacking
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
David Rupprecht
cc6d8128ad
Added gw interface if it is running
4 years ago
David Rupprecht
f9ea02b6bf
Added functions for rrc reestablishing procedure if nr reconfig failes
4 years ago
Xavier Arteaga
991c6e7016
Refactored NR HARQ-ACK feedback enqueue
4 years ago
Xavier Arteaga
bd11b66b6c
Fix unitialised NR PHY arguments
4 years ago
Francisco
b7d4a72ea1
adt - fix circular map clear() and erase(it) functions
4 years ago
Francisco
d02cc51e33
use mutex or atomic in running flag to signal the interruption of a thread
4 years ago
Xavier Arteaga
49731ab5a1
Initial NR-DCI refactor
...
Added NR DCI 1_1 size
Several DCI NR fixes
4 years ago
Xavier Arteaga
01990c2e1d
SRSUE: Add PHY-MAC SR related interfaces
4 years ago
Xavier Arteaga
3568f633c3
Use LDPC RM number of useful LLR and rename functions
4 years ago
Francisco
cdf72248f3
Reimplement batch-based background object/memory pool
...
Main changes:
- addition of pool utilities
- The node size/alignment and batch allocation threshold are now runtime arguments
- object pool and memory pool are not anymore based on the same class.
The object pool cannot use intrusive free list because it would overwrite the object
memory
4 years ago
Francisco
62a6d9a8dc
fix background memory pool destruction
4 years ago
Francisco
b004c2024d
integration of object pool in mac::ue for allocation of softbuffers. Definition of common object pool interface class
4 years ago
Francisco
460d7a8f4f
fix memory pool test - placed the pool state into a shared_ptr so that the callbacks still have a valid handle when the pool is destroyed
4 years ago
Francisco
9bec13731a
adt unit test - fix memory pool test
4 years ago
Francisco
ec3cd9ffea
adt - added background object pool test, and fix existing bugs related to the creation of pools with objects that are too small to be used in free lists
4 years ago
Francisco
d1c5b000dc
adt - creation of pre-initialized object pool, that leverages the background memory pool allocator
4 years ago
Francisco
2fc2280c3b
adt pool - replace uint8_t* for void* to represent memory blocks
4 years ago
Francisco
a79ca92020
refactor type storage and pool tests
4 years ago
Francisco
046633674a
refactor - removal of stack-gtpu interface, and use of socket manager interface instead
4 years ago
Francisco
c24e382c19
Refactor of socket manager class
...
- use of inheritance to simplify testing
- removal of global network manager
- pass of custon socket manager to s1ap and gtpu ctors
- overhauled the registration of socket fd,callback in socket manager
4 years ago
Francisco
4aac7ac238
use global rx multisocket handler, and remove stack-s1ap interface
4 years ago
Francisco
39de2efa69
multisocket handler - use blocking socket remove method
4 years ago
Francisco
bf96d897ee
network utils refactor - renaming of socket handle to unique socket and cleanup of its methods
4 years ago
Pedro Alvarez
8194b5ec73
Added check for consequetive KOs in MAC. Change set_activity_user to pass activity and max KOs to RRC and trigger RLF timeout.
4 years ago
Francisco
23ae9967cf
replaced present+value for optional field in s1ap mme_ue_s1ap_id context field
4 years ago
Francisco
c3482b45e1
s1ap - handle erroneous enb/mme s1ap ue id in received s1ap messages from the MME
4 years ago
Francisco
ced757a11b
adt - add optional construct that closely emulates std::optional<T>
4 years ago
faluco
54fab314c0
Enhance RRC eNB events:
...
- Implement a common event "log_rrc" for all RRC events and discriminate by procedure using an enum.
- Log events for connection, reestablishment, reconfig, reject and release.
- Log the corresponding ASN1 message used by each procedure.
- Redefine the JSON object for this event to match the new structure.
Fixed a compilation error detected by the static analyzer in gcc9.3 where bounded_vector::data() was using taking the address of the internal buffer which confused it, prefer to use the data method of std::array.
4 years ago
Andre Puschmann
d135ae4d29
proc_bsr: initial BSR procedure for NR
...
* refactor some common methods to mac_common.cc
* add common mux_base class
* move UL PDU generation to mux class
* add logical channel registration to MAC, MUX, BSR
* add initial proc BSR
* add basic MAC NR test
* rework MAC interfaces
4 years ago
Francisco
d04a19f8bc
refactor - increase code reuse in adt files
4 years ago
Francisco
5eccfad05b
gtpu - added comments, updated expected construct, handled in rrc the case a gtpu teid fails to allocate
4 years ago
Francisco
ab2bd9a2d2
gtpu refactor - handle dl path state activation internally in gtpu tunnel manager class
4 years ago
Francisco
cfd24f6a0e
gtpu - leverage byte_buffer_pool to store buffered sdus in gtpu
4 years ago
Francisco
c201eb7708
use of more space efficient sorted vector structure for lcid tunnels of a rnti
4 years ago
Francisco
eba0edea4a
creation of static id obj pool class. Application of this class to gtpu tunnels container to avoid allocations
4 years ago
Francisco
60cd7e6cfe
adt - improved concurrent fixed memory pool policy to send buffers from thread cache to central cache
4 years ago
Francisco
eb38ff43ab
fixed size buffer pool bugfix - deleted threads now return the cached memory blocks to the pool shared memory block container
4 years ago
Francisco
be771e5c23
performance - use of new concurrent fixed size pool for byte_buffer pool
4 years ago
Francisco
e1523692c2
implementation of concurrent fixed size pool that leverages thread local caches to avoid mutexing
4 years ago
faluco
e2c7809abb
- Introduce a new tracer scoped object that only records if the event duration exceeds the programmed threshold.
4 years ago
Andre Puschmann
bde7b49ca3
ue,mac_nr: add basic SR procedure
...
the current implementation support only one SR config
and doesn't support the prohibit timer
4 years ago
Xavier Arteaga
6219500148
Added NR-RRC RACH parsing
4 years ago
faluco
3c1a97f450
- Use fprintf in the srsran_assert context incase the assert is being triggered by srslog producing a circular loop.
...
- Switch to use a dynamic circular buffer for the log backend queue.
4 years ago
faluco
4b5e15cd70
- Fixed missing return statements in base_circular_buffer::try_push.
...
- Fixed array index calculation in base_circular_buffer::clear.
- Removed redundant explicit in srslog::backend_worker.
4 years ago
faluco
b06ef3f390
Switch the queue of the log backend to use a circular buffer.
4 years ago
David Rupprecht
8c86d2084d
Adding NR phy config RRC parsing
...
Added error handling
Reworked flattening error handling
4 years ago
Andre Puschmann
48c106ae64
rlc_um_nr: fix packing/unpacking of PDUs with 12bit SN
...
* fix SN extraction/writing
* fix packed header size calculation
* fix segmentation logic and take variable header lenght into account
4 years ago
AlaiaL
fd3c2b855e
- Renamed log to logger.
...
- Added a log entry in the metrics when skipping a measurement due to
time constrains
4 years ago
AlaiaL
bbaebd1274
Added a warning in the log when the cpu metrics are not registered due
...
to the number cpu cores is greater than supported.
4 years ago
AlaiaL
c9d1c77e8c
- Deleted the magic number of maximum supported cores, now it is a
...
constexpr.
- When the system has more cores that the maximum supported, the cpu
metrics will not be registered.
4 years ago
AlaiaL
6cd9bba641
Added the cpu metrics to the system metrics.
4 years ago
Xavier Arteaga
5bdf2c93b3
Initial NR PDSCH CSI-RS RE skip and other changes
4 years ago
Pedro Alvarez
5bc55ec48c
Changed discard_if to appyly_if in circular_buffer.h.
...
This was done so it would work when circular buffer holds other things
that are not unique_pointers. Queue and pop_func had to be made public
to be able to call the pop_func when an SDU is discarded.
4 years ago
Francisco
6d9709fe54
adt - make circular buffer work with types without default ctor
4 years ago
Francisco
ef5329bec0
adt - extend circular map unit test to test the container with move-only types
4 years ago
faluco
e8395c7474
- Implement a pool to store dyn arg store objects in srslog to avoid allocations when passing arguments to the backend.
...
- Use string views inside the log formatters to avoid allocations.
- Avoid a std::string when using fmt::vsprintf, instead favour fmt::vprintf.
4 years ago
Andre Puschmann
1a0891df51
all: check return value of make_byte_buffer() and handle them safely
4 years ago
Francisco
46d46e70ff
add documentation for srsran_assert and srsran_expect macros
4 years ago
Francisco
dd336c53ea
changed srsran_warning to srsran_expect. Applied new macro to rlc am
4 years ago
Francisco
b5692037a2
created macros for assertions and warnings. The assert macro prints the whole callstack on crash. The warning macro can just log a warning or call an assertion fail depending on the cmake flag STOP_ON_WARNING
4 years ago
Andre Puschmann
26e7964694
mac_pcap_base: increase PDU queue size to 512
4 years ago
Pedro Alvarez
d91119baf6
RLC discard ( #2515 )
...
* Added ability to discard to dyn_block_queue
* Change way of keeping track of SDUs
* Check nullptr in poping callback. Starting to check for nullptr in RLC read_pdu.
* Adding RLC discard tests
* Clearing PDCP info when RLC discard happens
* Read SDUs until they are no longer nullptr
* Changed discard_if to use template argument
4 years ago
Francisco
88f5add1fb
adt - fix circular map erase function and added extra asserts
4 years ago
Francisco
5d676199ab
adt bugfix - fix copy/move ctor of circular map
4 years ago
Francisco
4869b14de3
application of new circular map to mac::ue_db
4 years ago
Francisco
98d0637ded
adt addition - implemented reusable circular map
4 years ago
Codebot
4523ee6087
rename srsLTE to srsRAN
4 years ago
Francisco
977c194cbc
gtpu,bugfix - handle the case when gtpu fails to allocate buffer for end marker. Also, added a timer that when expired, it autoremoves the GTPU handover tunnel
4 years ago
Xavier Arteaga
2782d96170
SRSUE: compute speed from TA commands
4 years ago
Francisco
fb48f4484c
sched refactor - removal or cleanup of unused sched methods
4 years ago
Francisco
0d91802495
sched optimization - swap c-arrays for bounded_vector in sched_interface to reduce time performing bzero/memcpy in the scheduler
4 years ago
Xavier Arteaga
f9689ec956
Added PUSCH CFO estimation
4 years ago
Xavier Arteaga
f3c0360842
Applied aesthetical changes
4 years ago
Xavier Arteaga
d9780e1f13
Fix duplicated NR-DCI in different search spaces and CORESET and other aesthetic modification
4 years ago
Xavier Arteaga
be8e8cbe3e
Fix radio decimation Rx stream stall
4 years ago
Xavier Arteaga
1153555ae1
SRSUE: Added UE specific cell space
4 years ago
Xavier Arteaga
fb1a0b6bce
SRSUE: added NR-PDCCH information
4 years ago
Xavier Arteaga
d3cfb00211
SRSUE: Added TDD DL/UL slot detection
4 years ago
Xavier Arteaga
6f6c20e194
SRSUE: Added procedure for multiplexing UCI in NR-PUSCH
4 years ago
faluco
e43f555fc0
- Provide a fast path for logging pre-formatted strings that are small and fit in 64 bytes without any allocations.
...
- Use this new feature in the tracer.
4 years ago
Francisco
2e18827259
avoid accessing C-array via &[0] for initialized buffer
4 years ago
Francisco
80104c7e65
adt, bugfix - fix assert when accessing bounded_vector::data() member
4 years ago
Francisco
ca7fe1349e
remove unnecessary sfinae from bounded_vector. Use bounded_vector for UE cc buffers. Set ue cc used buffers remove_pdu method to private
4 years ago
Francisco
d27e0be609
created special class to manage mac::ue currently allocated rx UL buffers. This class avoids mallocs
4 years ago
Ismael Gomez
7b33c48fe7
Use static queue in pdu_queue
4 years ago
Pedro Alvarez
f02694dd3e
PDCP status report: Fix issue in keeping track of Rx'ed COUNTs after eNB reestablishment. Fixed issue in logic that limits the size of the rx_counts info vector.
4 years ago
Pedro Alvarez
d2ef541957
Changed the structure to store rx_counts info to std::vector, to reduce
...
memory allocations.
Update the rx_count_info queue if the queue size is too large.
4 years ago
Pedro Alvarez
3f79cd6281
Changed generation of status report to use rx_counts instead of
...
undeliverd_sdus_queue. Added a queue to store information about
rx_counts received.
Added unit test for when the SNs wrap-around in status report genaration
4 years ago
Francisco
6159cb3817
add assert to ensure a valid ptr is passed to memory pool deallocator
4 years ago
Francisco
20928651c7
created batch allocator that leverages background worker pool
4 years ago
Francisco
3e9f93eb8a
refactor - remove old log_filter and logmap libraries from the codebase
4 years ago
Francisco
3b491ab06b
optimize .count() method of bounded_bitset to leverage popcount special instructions. Confirmed to work for gcc in -msse4 flag is passed.
4 years ago
Francisco
7dcb703d06
adt lib,bugfix - fix bounded_bitset resize to clear bits outside of mask correctly
4 years ago
Francisco
d1483dc0f8
sched,bugfix - fix bitmask formatting. fix msg3 adaptive retx pdcch allocation
4 years ago
faluco
173dcdd421
- Import latest srslog version.
...
- Remove string allocs in some log lines in radio.cc.
Add new tracing buffer capcity options into srsenb and srsue.
Add missing file.
4 years ago
faluco
82db6544fb
Add instrumentation points to rlc_am_lte::rlc_am_lte_tx::handle_control_pdu using srslog.
4 years ago
Ismael Gomez
8e9d28e7e0
Change wait_for interface for wait_until in circular_buffer
4 years ago
Andre Puschmann
16de8668e0
rlc_am_lte: convert mutexes to std::mutex
...
replace all pthread_mutex with std::mutex and use lock_guard and unique_lock (where needed)
4 years ago
Andre Puschmann
20cbc48f90
rlc_am_lte: refactor PDCP/RLC interface to use fix sized data structure
...
this patch replaces the std::vector type used in the interface between
PDCP and RLC to signal delivery status between both layers. The new
data type is a configurable but fixed-size vector.
The RLC AM doesn't need to dynamically allocate the vector for every SN but
uses the tx_window for storage.
4 years ago
Francisco
ee77343f26
fix compilation issue for centos7
4 years ago
Francisco
20e341d0a1
mac,bugfix - fixed formatting of MAC and scheduler user-defined types
4 years ago
Francisco
f72cd4151c
rlc am,bugfix - fixed formatting of RLC AM header and status pdu
4 years ago
Francisco
4c1067bcf6
bitset - fix compilation issue for centos7
4 years ago
Francisco
0f9d73012f
use srslte::move_callback instead of std::function in timers to avoid allocations
4 years ago
Francisco
5a1bf28fe1
optimization - minimization of number of std::string allocations for logging
4 years ago
Francisco
1ffc4cef86
rlc am,optimization - change helper log methods to avoid mallocs
4 years ago
Francisco
d77b6e1d9c
sched,optimization,refactor - use of custom formatter that avoids mallocs for getting bitmasks strings in hex and binary formats
4 years ago
Xavier Arteaga
2b9bd1173e
More NR-PUSCH UCI bit multiplexing
4 years ago
Xavier Arteaga
289fff9c22
Removed carrier set in UCI NR module
4 years ago
Xavier Arteaga
97435b085e
Added CSI part1 and 1/2 bit HARQ-ACK multiplexing on PUSCH
4 years ago
Xavier Arteaga
dc2542901a
Verified HARQ-ACK in PUSCH
4 years ago
Xavier Arteaga
9dffad87f2
Initial UCI bits multiplexing in PUSCH
4 years ago
Xavier Arteaga
f4e9d00ea8
Initial HARQ-ACK multiplex in PUSCH
4 years ago
Francisco
0b6293c676
adt lib additions - add the ability to perform timedwait for popping from a blocking queue
4 years ago
Francisco
f0ed1e06a8
documentation,bugfix - added documentation to new blocking queues, changed class names, and removed blocking pushes from the critical path
4 years ago
Francisco
d1236fd62f
stack,optimization - replaced previous block_queue design for new bounded queue in several places in the enb
4 years ago
Francisco
28ef5833a2
fix compilation issue for centos7
4 years ago
Francisco
0ba93d274f
converted byte_buffer_queue to use new circular buffer-based queue to avoid mallocs
4 years ago
Francisco
822e26b63f
implemented circular buffer-based queue
4 years ago
Andre Puschmann
ceacf8508d
rlc_am_lte: fix handling of maxretx
...
this patch fixes the actions/handling after RLC detected
maxRetx reached for a given SN.
According to the TS, RLC should only inform upper layers and
not try to recover from the event itself.
As a consequence, we won't manipulate the Tx or Rx window.
As a result of this, we might retransmit a SN more than
the specified amount of times.
It's the task of RRC to reestablish the bearer to recover
from that.
4 years ago
Francisco
fb04fdbe69
sched,bugfix - fix mcs/tbs computation for 256-QAM.
4 years ago
Andre Puschmann
62b2327178
rlc_am_lte: fix header reconstruction
...
* optimize processing of status PDU (SN is removed from window immediately)
* fix maxRetx signaling for segments
* make tx_window_t a template class, rename and use for rx_window as well
4 years ago
faluco
dc6a2e5160
Implement a log spy to check if a certain message has been logged.
4 years ago
Francisco
9eeddcec5f
disabled prach vs pucch collision detection temporarily until enb cfg files are updated in the rfci
4 years ago
Francisco
102cb196e1
Addition of enb cfg option to choose between PUCCH with multiplexing and without. Change default prach offset to 4.
...
- The new prach offset of 4 accounts for the size of the PUCCH-ACK region with 100 prbs
4 years ago
Francisco
39aea96c69
fix sched tests UL HARQs. Set common pucch cfg in the sched tests
4 years ago
David Rupprecht
9e72d89fa1
MAC PCAP move run thread in base class
4 years ago
David Rupprecht
894e4d3501
Added mac pcap network class that dumps the packets to a udp network sink
4 years ago
David Rupprecht
a58f0642cb
created pcap base class for main handling
4 years ago
David Rupprecht
da658ed2d4
Changable UE ID for enodeb
4 years ago
David Rupprecht
5a95cbdfae
Disable rat assignment in pcap class
4 years ago
David Rupprecht
24bea9a860
Refactored functions for pcap udp packing and write lte mac pcap with udp frame
4 years ago
David Rupprecht
bb3e87302d
Added new pcap enable option and mac nr
4 years ago
AlaiaL
390a4c0f76
[metrics] Changing variable types.
...
Adjusting the license.
4 years ago
AlaiaL
723c56051e
[metrics] Changed the extension from cpp to cc.
...
- Fix date of CMakeLists.txt.
- Initialization of the used variables in the cpu usage calculation.
4 years ago
AlaiaL
41cf15f5ad
[metrics] Adjusted function names and documentation
4 years ago
AlaiaL
0ba7cd7df9
[metrics] Added system metrics to the enb's stdout
4 years ago
AlaiaL
3a86c210f9
[metrics] Added the system metrics to the ue stdout
4 years ago
Francisco
290f39d805
fix crnti mac ce handling in the rrc in normal (no handover) case
4 years ago
Xavier Arteaga
784f4be72e
SRSUE: NR CSI report fixes
4 years ago
Xavier Arteaga
4679e9f871
Initial NR CSI reports
4 years ago
Francisco
be7e78da53
limit allocation of PDCP SDU+Timer buffer to DRB+RLC AM cases
4 years ago
Francisco
a3cb21d378
move undelivered_pdcp_sdus class methods to .cc file. Fixed the forwarding of pending PDCP SNs during S1 handover
4 years ago
Francisco
17fa79f24c
couple the pdcp discard timers and sdu buffer management into same subclass. Add asserts to ensure there is no ambiguity in the PDCP SN assignment and buffering. Extend the discard timer and pdcp sdu buffering to SN lengths above 12
4 years ago
Pedro Alvarez
4723dd0aa9
Converted undelivered sdus queue in the PDCP to use a vector.
...
This was done to improve the performance of the notify_delivery().
4 years ago
Francisco
a72a659fdf
fix timers interface to avoid accessing to a timer after its release. fix gtpu tunnel activation during s1 handover
4 years ago
Xavier Arteaga
1e55d68b55
Removed set RNTI from API
4 years ago
Xavier Arteaga
576a923a4c
Added i8 zero vector
4 years ago
Francisco
1cd3576134
fix gcc compilation issue
4 years ago
Francisco
5ea2e8f45d
remove more srslte.h includes from upper layers
4 years ago
Francisco
766018f2b4
fix gcc compilation issue
4 years ago
Francisco
b329e25bbb
move ue phy interfaces to separate interfaces header file
4 years ago
Francisco
13d805ef56
move ue rrc interfaces to separate interfaces header file
4 years ago
Francisco
b1706b9197
move ue nas interfaces to separate interfaces header file
4 years ago
Francisco
b8bd869d0f
move ue rlc interfaces to separate interfaces header file
4 years ago
Francisco
a988351f46
move ue pdcp interfaces to separate interfaces header file
4 years ago
Francisco
ea04104e8e
move ue gw interfaces to separate interfaces header file
4 years ago
Francisco
186285ffd3
move ue usim interfaces to separate interfaces header file
4 years ago
Francisco
f610a7b83d
Change background worker pool to become a global variable
...
Allocate rrc::ue objects in batches in the background worker pool
4 years ago
Xavier Arteaga
11cffdcbec
Minor comment
4 years ago
Xavier Arteaga
126fc09b7d
SRSUE: Added initial SR procedure for NR
4 years ago
Francisco
0b6b62324f
convert rlc am retx_queue to circular buffer
4 years ago
Andre Puschmann
9c4146442a
mac,phy: refactor NR MAC/PHY UL data passing interface
...
inspired by accepted (but not yet merged) PR to include the
(unique_)byte_buffer_t for MAC/PHY interfacing, this patch adds
a few more useful bits to that. Buffer management for UL data is now
done in MAC and only a pointer to the data is passed in the UL action.
* Move Tx softbuffer to MAC (until UL HARQ class is ready)
* Remove temparal data member in cc_worker
* Remove memcpy after packing MAC PDU
4 years ago
Pedro Alvarez
976b5c12c1
Releasing the UE when max retransmissions are reached in the RLC. ( #2385 )
4 years ago
Francisco
138685399e
remove allocations from rlc_am_tx::handle_control_pdu
4 years ago
David Rupprecht
1fcd006a7c
fixed segfaulting
4 years ago
Xavier Arteaga
b768002a93
SRSUE Added RAR unpacking and other fixes
4 years ago
David Rupprecht
82a8dcc77a
Change interface to unique_byte_buffer
...
logging message for msg3 preparing
4 years ago
Xavier Arteaga
760ad3a746
SRSUE: Interface stack and PHY for NR-RA procedure
4 years ago
Francisco
9a6512f4e8
fix RLC AM undelivered PDCN SNs reset bug
4 years ago
Francisco
1ede82bb30
use circular array for buffered PDCP SNs in RLC AM to limit memory allocations
4 years ago
Francisco
2a65bf9636
fix undelivered PDCP SNs buffers in RLC AM to handle SN=-1 case
4 years ago
Francisco
bad2302e31
avoid the use of two arrays for managing buffered pdcp sns in RLC AM
4 years ago
Francisco
299634b319
use of vector to store undelivered PDCP SNs in RLC AM
4 years ago
Xavier Arteaga
c2c05d1e8f
Initialise to zeros NR PHY configuration by default
4 years ago
Pedro Alvarez
d8f3878ce1
RLC failure to deliver notifications and discard timer limits to 1500ms ( #2368 )
...
* Added interfaces for the RLC to notify the PDCP of failure to transmit
SDU
* Limit discard timer to 1500ms, to avoid issues of lingering SDUs in the undeliverd_sdus_queue.
* Fix bug in early exit of notify_delivery and notify_failure
* fix compilation issue in rlc-pdcp notification
Co-authored-by: Francisco <francisco.paisana@softwareradiosystems.com>
4 years ago
Francisco
2f75abcc7a
fix failing rlc am test
4 years ago
Francisco
1d185fb152
use macro for rlc tx window size. refactor tx window clearing
4 years ago
Francisco
abe4f4c7eb
use tx_window to store the map of rlc sn to pdcp sns
4 years ago
Francisco
f86eb84876
conversion of RLC AM tx window from std::map to array
4 years ago
Francisco
047dd2a56d
use function helper for discard timer lookup and stopping in the PDCP
4 years ago
Francisco
82bb0a7d81
implementation of pdcp discard timers using a vector for efficiency
4 years ago
Andre Puschmann
40d7934267
rlc: call PDCP notify without holding Tx lock
...
move notify_info_vec as stack variable and unlock mutex
before calling PDCP notify
4 years ago
Francisco
93b1450e03
fix enb crash during close down of enb and epc
4 years ago
Francisco Paisana
cd8ee37f74
Use a reverse lookup to avoid iteration over a std::map ( #2363 )
...
* reuse vector capacity for pdcp sn notification
* use an extra lookup data structure to find PDCP SNs that an RLC SN contains
* fix rlc sn->pdcp sn lookup datastructure in rlc
* fix rlc failing test
4 years ago
Xavier Arteaga
b8b27709b9
Radio: implement resampling buffer protection
4 years ago
Pedro Alvarez
6ecd6e273c
Make sure that the status report is sent in RLF and PDCP reestablishment triggered by Handover
4 years ago
Pedro Alvarez
33808a5cb8
Making sure that SNs don't wrap-around in PDCP with RLC AM.
4 years ago
faluco
a940e169a3
Add the enb_cc_idx value to S1 events.
4 years ago
faluco
b750647cd8
- Remove the cause field in the rrc disconnect event.
...
- Add the sib9 enb home name field to the sectors events, but leave the value as a TODO.
4 years ago
faluco
7b9dab3a73
Rename cc_idx variable to enb_cc_idx for specific upper layer events.
4 years ago
faluco
a4605883f0
Implement second revision of the events and metrics document.
4 years ago
Pedro Alvarez
0e828aeb4b
Remove unecessary mutex. PDCP metrics are accessed from the stack thread.
4 years ago
Pedro Alvarez
451c305790
Add mutex to isolate metrics_hub thread from the stack thread when
...
getting the metrics from the PDCP
4 years ago
David Rupprecht
a7949e69c8
configure and start ra proc
...
Fix crash due to missing init
4 years ago
David Rupprecht
876858b44c
Added mac nr prach common config convert function with test case
4 years ago
David Rupprecht
a3be380e3b
workaround to mitigate the linking error
4 years ago
Pedro Alvarez
cfd94441a5
Added metrics to srsenb PDCP
4 years ago
Pedro Alvarez
8873b7c42f
Added computation for the metrics
4 years ago
Pedro Alvarez
d34aba8065
Added interfaces to get metrics from PDCP entities.
4 years ago
Pedro Alvarez
eb2f5b978f
Starting to add metrics to lib/upper/pdcp.cc
4 years ago
Pedro Alvarez
dd6a292d79
Added structure to hold PDCP metrics
4 years ago
Xavier Arteaga
bdef411855
SRSUE: Aesthetic changes
4 years ago
Xavier Arteaga
96a47fb93a
Add NR RRC interface types
4 years ago
Xavier Arteaga
784a33583b
SRSUE: Initial NR MAC-PHY interfaces
...
SRSUE Fix compilation
SRSUE: temporary fixes LTE/NR PHY/Stack interface problem
fix
fix
4 years ago
Francisco
6a178693a8
handle rrc configs with pdcp with sn=15 or 18 bits
4 years ago
Francisco
faf2adde90
set last_submitted_pdcp_rx_sn to -1 of the next ul rx sn
4 years ago
Xavier Arteaga
1e073b8b67
PRACH: avoid general cexp for sequence generation using LUT
4 years ago
Pedro Alvarez
e0542a4651
Fix issue in sending PDCP status PDU from the eNB due to non-existing LCID at the RLC.
4 years ago
Pedro Alvarez
b0fe302f8e
Added interfaces so the upper layers can trigger the PDCP status report. Added ability to the UE to send Status Report aftre reestablishment.
4 years ago
Pedro Alvarez
89a23cec7e
Added statusReportRequired to the PDCP entity config.
4 years ago
David Rupprecht
24123313bf
Added MAC NR RA procedure with a minimal test case
4 years ago
Xavier Arteaga
d9805f7ba7
Added AVX512 LDPC
4 years ago
Xavier Arteaga
2e39e103f8
Minor NR related corrections
4 years ago
Xavier Arteaga
24cfed6489
Fix scrambling sequence for PUCCH format2
4 years ago
Xavier Arteaga
d807ccc3dd
SRSUE: Initial NR-PUCCH HARQ feedback
4 years ago
Xavier Arteaga
ff5fbbf0a0
Added vector sprint for bit
4 years ago
Xavier Arteaga
818f3ea7c7
Initial NR-PDSCH HARQ-ACK/NACK procedure
4 years ago