Francisco
823da24a8e
removed uneeded sched method to set sched algorithm, and made configured flag atomic
4 years ago
Francisco
6b3cf6c597
moved pdcch sched to separate file
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
Francisco
a4423ff690
sched: fix compilation issue for gcc4.8
4 years ago
Francisco
a7f4dfab2c
sched: added checks for localized RBG assignment in case of DCI format1A
4 years ago
Francisco Paisana
34d4dc3974
set DCI format 1A while RRC setup/reestablishment/reconfiguration is on-going
4 years ago
Francisco Paisana
929b8650a3
handle byte buffer allocation error in s1ap
4 years ago
Francisco Paisana
c40ad81a90
cleanup s1ap methods. remove hard coded erab list in s1ap handover required message.
4 years ago
Francisco
dc4283c572
added cmake functions as helpers to set labels in ctests
4 years ago
Francisco
23459dee28
Created enb_{rlc/pdcp/gtpu/phy_interfaces.h files.
4 years ago
Francisco
43e57df00b
breaking enb_interfaces.h into multiple files on a layer basis. Created enb_rrc_interfaces.h, enb_mac_interfaces.h and enb_s1ap_interfaces.h
4 years ago
Pedro Alvarez
dd6d6f731d
Passing SN provided by upper layers to PDCP entity. Using it to calculate TX_COUNT if passed.
4 years ago
Pedro Alvarez
fcaaf72187
Starting to add discard functionality to PDCP LTE entity.
...
This includes:
- Adding a queue (implemented with std::map) for undelivered PDUs.
This queue uses the SN used for TX as the key.
- Added discard timer that is started upon reception of the SDU. Upon
expiry of the timeout a discard callback removes undelivered PDUs
from the queue.
- Added the mechanisms to the notify_delivery to remove PDUs from the
undelivered queue when the PDU is ACK'ed.
- Added test case for both timer expiry and acknowledgment.
- Fix up the getter for buffered SDUs to return the undelivered SDUs
- Changed default PDCP discard timer, so AM has a discard timer by
default.
4 years ago
faluco
5c8923123a
Misc compilation fixes from the fapi repo.
4 years ago
faluco
6359a2d948
- Upgrade the gtpu class in lib dir to srslog.
...
- Propagate old log elimination through all the dependencies of gtpu.
4 years ago
faluco
62fcf04083
Ported the all radio classes to use srslog.
4 years ago
Francisco
ddd1f28820
fix uninit memory access in rrc_nr_test
4 years ago
Francisco
4188b5146e
fix uninitialized memory access in gtpu_test and liblte_mme unpacking
4 years ago
Ismael Gomez
77f905dc64
Move TTI to PID mapping to MAC
4 years ago
faluco
9d15a44c73
Port lib/phy to srslog ( #2298 )
...
* - Ported the channel class to srslog.
- Removed all newlines of log messages in lib/phy.
* Remove more newlines that use the C debug macros.
4 years ago
Francisco
3265d940ec
remove byte buffer pool cached member variables as they are unnecessary now.
4 years ago
Francisco
04ab4eefcd
use new make_byte_buffer() helper method to create unique_byte_buffers
4 years ago
Xavier Arteaga
a19671802e
Added SRSUE NR-PUSCH initial procedures
4 years ago
Pedro Alvarez
de90b4753f
Added the ability of the RLC AM to notify the PDCP of the acknowledged
...
PDCP PDUs. This includes:
- Modifying the byte_buffer_t to include PDCP SN meta-data. This way,
the RLC can keep track of the ack'ed bytes for a specific PDCP PDU.
- Added in the RLC an `undelivered_sdu_info queue`, to keep track of the
amount of ack'ed bytes and the total size of the PDCP PDU,
so the RLC can know when delivery is finished.
- Added an interface between the PDCP and the RLC so that the RLC can
notify the PDCP when it receives an ack from the status PDUs. The RLC
passes to the PDCP a vector of all the ack'ed pdus in a rx'ed status PDU.
- Added some tests to the notify functionality. This includes some tests
where the PDUs are acked imediatly, and one test where the PDU is
retx'ed.
4 years ago
David Rupprecht
3dab82c42f
Added interface that allows to update the lcid in case of a nr reconfiguration
...
nr rrc updates gw lcid if reconf was received
4 years ago
faluco
821925a273
- Upgrade to srslog the loggers in lib/mac.
...
- Adapted users of these classes and tests.
4 years ago
AlaiaL
9c764c299d
- Removed the try/catch. Checking the allocation with std::nothrow
...
- Adjusting the code with the coding style.
4 years ago
AlaiaL
f1cd4b1f0d
- fixes crash on initialization. Now the program exits cleanly
4 years ago
Xavier Arteaga
77f0a53abd
Added DCI Format 0_0 unpacking and more NR-PUSCH procedures
4 years ago
Xavier Arteaga
b150e45129
Renamed NR-PHY state and fix license headers
4 years ago
Francisco
c4a50b7de0
avoid loss of pdcp sdus' SNs buffered in gtpu during handover
4 years ago
Francisco
9e25e95545
fix S1AP UE Capability Indication message. Created helper to log received S1AP messages
4 years ago
Francisco
78d1b8083a
fix GTPU tunneling. Avoid forwarding packets to PDCP while the PDCP bearer is not yet created
4 years ago
Andre Puschmann
8e13f04684
mac_pcap: refactor MAC PCAP and include NR RAT into same object
...
after adding the thread-safe PCAP writer functionality to the EUTRA
MAC object it became clear that we don't wont to replicate the
same for the NR object.
This patch therefore refactors the class that now supports both EUTRA and
NR rats. The old mac_nr_pcap.[h/cc] has been deleted. All test-cases
and usages now use the new object that needs to pass the RAT type in
the ctor.
this patch addresses the last open point of #2160
4 years ago
faluco
199f1c953e
Remove unneeded logmap headers.
4 years ago
faluco
b30845fae4
Remove unused variable in enb vnf_phy_nr.
4 years ago
faluco
1a5799a6ca
- Replace loggers is network utils.
...
- Adapt tests that use network utils and callers.
4 years ago
faluco
79eca0980d
- Ported fsm.h to srslog.
...
- Adapted and removed old loggers in tests and code that used fsm.h
4 years ago
faluco
d37a07a47f
Replaced loggers in buffer_pool.h
4 years ago
faluco
f8485fb799
Replaced loggers to srslog in PNF and VNF classes.
4 years ago
faluco
96c07a69c0
Report the RLF event to the JSON event file in the enb.
4 years ago
Francisco
ec14a6e50b
verify correctness of input to gtpu::write_pdu
4 years ago
Francisco
411946c752
Improvements on GTPU message logging
...
- Avoid multiple lines per each SDU Rx or Tx
- log info relative to source and destination of each SDU
- log info relative to whether the Rx SDU has been forwarded into a tunnel
- log info relative to whether the Rx SDUs are being buffered.
4 years ago
Xavier Arteaga
92c4a38fc2
Fix logger for NR PHY
4 years ago
Xavier Arteaga
2421f2cd99
Multiple PHY fixes and NR-PHY configuration refactor
4 years ago
Francisco
cd68e604b0
fix s1ap UE find method
4 years ago
Francisco
2bde28252c
send UE capability indication through S1AP
4 years ago
Francisco
d64ce7df77
implementation of S1 E-RAB Release Indication and Error Indication messages
4 years ago
faluco
ac62e3c398
Fix the priority of logging levels in places where we before logging we check if a certain log level is enabled.
4 years ago
herlesupreeth
47fff7226a
Send NAS PDU in E-RAB Release Command and issue RRCConnectionReconfiguration to UE
...
This commit addresses the following points
- If a NAS-PDU IE is contained in the E-RAB RELEASE COMMAND message, the eNB shall pass it to the UE.
- Issue RRCConnectionReconfiguration for the DRB to be removed
- Cleaning of DRB in RLC and GTP-U
- Fix for Malformed E-RAB Setup Response upon reaching max. DRBs
4 years ago
Andre Puschmann
da9e3363f1
mac_pdu_nr: rename MAC PDU class for NR to adhere naming conventions
...
* mainly to have _nr as trailing name for filename and class
* also add "sch" to class and filename (RAR PDU will have extra class)
4 years ago
Francisco
2befbd1825
setup of forwarding tunnels during enb s1 handover
4 years ago
Francisco
ee3d8a5c77
fix gtpu_test memcpy param overlap bug
4 years ago
Francisco
b9271f26da
change naming from mme to sgw in gtpu_test
4 years ago
Francisco
e8f6a436af
update gtpu test to account for scenario of buffered PDCP SNs, and buffering of direct path until indirect tunnel is closed
4 years ago
Francisco
a55c4cdca5
avoid gtpu extension header pdcp number magic number
4 years ago
Francisco
56ec2c286e
add gtpu test for tunneling
4 years ago
Francisco
13649e4e19
Implement new GTPU functionality:
...
- multiple tunnels per E-RAB
- data forwarding between connected GTPU tunnels
- forwarding GTPU End Marker between connected tunnels
- TeNB GTPU handles in-sequence delivery when multiple tunnels for the same ERAB exist.
4 years ago
faluco
711438f756
Port enb specific classes to use srslog ( #2155 )
...
* - Started porting the enb PHY layer to use srslog loggers.
- Updated srslog to manage the none level.
* Finished porting enb phy layer including the NR part.
* Ported MAC, GTPU, PDCP, RLC and S1AP enb classes to use srslog.
* Use new stack logger.
* Ported the enb RRC clases to use srslog.
* Remove unused log macros.
* Replace loggers in sched, sched_carrier, sched_helpers.
* Replaced loggers in sched grid.
* Replaced loggers in sched harq.
* Replaced loggers in sched ue.
* Replaced loggers in sched ue ctrl.
* Replace loggers in sched ue ctrl TPC.
* Replaced loggers in sched subclasses.
* Replaced loggers in rrc_meascfg_test
* Configure loggers in rrc_mobility_test.
* Fix compilation errors left out after the rebase.
* - Implement a custom log sink that will serve as a test spy to intercept and count the number of error and warning log entries.
- Adapt the erab_test_setup and rrc_mobility tests to use this new class and make them pass again.
* - Remove trailing new lines introduced in the rebase.
- Ported the sched_ue_cell class to srslog.
* Remove unused log member.
* Ported mac tests to srslog.
* - Removed remaining trailing newlines from log entries.
* Fix compiler errors detected in CI.
* Fix another static variable without definition passed to log lines.
* Fixed a bug in srslog::flush that would never end when the backend queue is full.
* Fetch the RRC logger instead of injecting it in the constructor.
4 years ago
yagoda
1420c23863
adding RAR buffers for multiple carriers, previously RARs into different carriers in the same TTI would overwrite each other
4 years ago
Xavier Arteaga
2baccc8b13
Set NR-PDSCH default table to 256QAM
4 years ago
Francisco
26086252ba
fix resetting of harqs in the scheduler during intra-enb handover
4 years ago
Ismael Gomez
fed4e0ad82
Protect access to ul buffers ( #2227 )
...
* Protect access to ul buffers
* Fix interval calculation when removing old buffers
4 years ago
Francisco
e0937d1dd1
add lcid check and increase limit to 10
4 years ago
Francisco
a24091edf8
fix handover regression. The new pcell was not being correctly reactivated
4 years ago
Francisco
9b20e35b8f
add comment regarding implementation of false position method in the scheduler
4 years ago
Francisco
927938c7be
fix sched_ue configuration process when a carrier is set to 'not configured'
4 years ago
Francisco
4ed87babff
extend sched_ue_cell interface
4 years ago
Francisco
3d7a83cb6e
delete cc_sched_ue class
4 years ago
Francisco Paisana
c1ff03bd1a
moved uci feedback and state variables from cc_sched_ue to sched_ue_cell class
4 years ago
Francisco Paisana
dadee757a1
moved harq entity and tpc to sched_ue_cell
4 years ago
Francisco Paisana
3892194d98
sched refactor, use enb_cc_idx rather than ue_cc_idx primarily to avoid uneeded conversions
4 years ago
Francisco
30439c12e0
fix 'maybe be used uninitialized' error
4 years ago
Ismael Gomez
47dbd6ed70
Merge pull request #2214 from softwareradiosystems/pr_mac_buffers
...
Limit the number of UL buffers in MAC and deallocate old ones
4 years ago
Francisco
e27ded9e55
add comment explaining the need to warn in case of failed allocate a TB in the scheduler when there are still pending bytes
4 years ago
Francisco
9ab7373251
Encode correctly DCI format2A when one of the TBs is empty
4 years ago
Ismael Gomez
8c85ddea0f
Fix ue_cc_idx naming convention
4 years ago
Ismael Gomez
44e411be2b
Track UL buffers per TTI instead of per PID and remove old ones periodically
4 years ago
Francisco
7f6f3f7912
fix sched test check for ConRes DCI format.
4 years ago
Francisco
8330793da9
use DCI format1A in edge case where the enb has more than one cell and the nof_prbs=15
4 years ago
Ismael Gomez
a6423442c2
Refactor NR RA files and fix header includes all over library ( #2162 )
...
* Refactor NR resource allocation classes. Use DCI instead of grant for dummy PDSCH UE/eNB test
* Minor refactors in NR workers and ue_dl
* Fix include issues
* fix compilation issues
4 years ago
Ismael Gomez
d5f0634975
Add PUCCH SNR measurement ( #2175 )
...
* Add PUCCH SNR measurement
* Fix PUCCH SNR estimation
* Reverted PUCCH noise estimation
* use fpclassify instead of iszero
Co-authored-by: Xavier Arteaga <xavier@softwareradiosystems.com>
4 years ago
Ismael Gomez
c1c5fa426c
Fix issue with new way of managing ul buffers not working with CA
4 years ago
Ismael Gomez
7d2c1b636b
Release pointer even if length is zero
4 years ago
Ismael Gomez
e413086576
Limit the number of UL buffers in MAC and deallocate old ones
4 years ago
Ismael Gomez
0780f3caea
pdu_queue must be non-blocking in order to avoid the ue or enb to block in the event of a memory leak and the buffer pool running out of buffers. In that case, the null return shall be handled properly and error logged. This commit restores commit c4c44c33f4
.
4 years ago
Francisco Paisana
5391001c46
remove unused variable
4 years ago
Francisco Paisana
d4242f2db7
precompute nof_re_table[sf][prb][slot][cfi] for faster nof_re computation and for more accurate lower bound nof_re computation
4 years ago
Francisco Paisana
d0a17b0a40
created sched_ue_cell class that is indexed based on enb_cc_idx
4 years ago
Francisco Paisana
8b306c81e2
refactor tbs/mcs computation in sched
4 years ago
Francisco Paisana
32c47d4fac
change sched warning when it fails to fit srb0 data in grant to info
4 years ago
Francisco Paisana
1dd211c91c
fix log initialization in sched_helpers.cc
4 years ago
Francisco Paisana
afef5188a6
move sched_harq to subfolder
4 years ago
Francisco Paisana
233e604cfe
cleanup sched_ue, moving some unrelated functions to sched_helpers
4 years ago
Francisco Paisana
7e6744037c
fix error check in ue addition
4 years ago
Francisco Paisana
9c7c190074
when the rrc fails to allocate the ue cell resources, it should erase the ue from all stack layers
4 years ago
Andre Puschmann
eb515c5205
enb,mac: check return value when packing RAR PDU
...
this make sure that we only send valid MAC PDUs in the DL.
4 years ago
Francisco Paisana
0d9ff3ecc7
fixed RBG<->PRB conversion. Changed PHICH logging to be single line
4 years ago
Francisco Paisana
68e7df1248
allocate PUCCH resources in RRC UE only in case UE CA is activated
4 years ago
Ismael Gomez
a360580999
Run PRACH workers before cc_workers fixes memory corruption when PRACH workers run in foreground (eg in ZMQ)
4 years ago
Francisco Paisana
0761a8f08b
Add RLF-Report handling functions to srsENB
4 years ago
Francisco Paisana
434bdfca68
decoupled srsenb rrc ue mac controller from the rrc::ue class
4 years ago
Francisco Paisana
f8b7351e1b
implementation of object memory pool via class-specific operator new/delete
4 years ago
Francisco Paisana
8912a8ce6c
added extra comments to memory pool code. generalized object pool to mutexed and non-mutexed cases
4 years ago
Francisco Paisana
768a4fa627
added growth policy for rrc::ue memory pool. Fixed memory leak
4 years ago
Francisco Paisana
a73cbcdc9d
added mem_pool for growing object pools. Applied the mem pool to the rrc::ue creation
4 years ago
Francisco Paisana
9883dc2171
remove warning when RAR fails to allocate in a given TTI due to lack of space
4 years ago
Francisco Paisana
bc8e65c82f
bug fix in the PF scheduler. The correct history was not being stored for newtxs
4 years ago
Andre Puschmann
02b0f251aa
prach_worker: move variable to function body
...
the variable was only used inside the run_tti() function
and isn't needed elsewhere. refactor therefore.
4 years ago
Francisco Paisana
02d4dde1f5
issue 2170 fix: add extra check that UL harq is empty before allocating it
4 years ago
Francisco Paisana
f45d31d899
add fairness coefficient to UL.
4 years ago
Francisco Paisana
ea8ad153c4
add configurable fairness parameter to pf scheduler
4 years ago
Francisco Paisana
2abe486e18
separate control loops for PUCCH and PUSCH TPC
4 years ago
Andre Puschmann
f0138d45fe
srsenb,phy: fix setting of PHY log level
...
same regression that was fixed for the UE in 52da9eb46f
4 years ago
Andre Puschmann
732a108982
mac: convert rar_pdu_msg[] from vector into array and protect access
...
attempt to address ASAN detected issue:
RACH: tti=821, cc=3, preamble=11, offset=0, temp_crnti=0x47
ASAN:DEADLYSIGNAL
=================================================================
m==25385==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000024 (pc 0x564b19a26c93 bp 0x7fa0e5f1a8c0 sp 0x7fa0e5f1a798 T8)
==25385==The signal is caused by a WRITE memory access.
==25385==Hint: address points to the zero page.
------DL--------------------------------UL------------------------------------
rnti cqi ri mcs brate ok nok (%) snr phr mcs brate ok nok (%) bsr
46 0.10 0 0.0 0 0 0 0% 0 0.0 0 0 0 0 0% 0.0
47 0.10 0 0.0 0 0 0 0% 0 0.0 0 0 0 0 0% 0.0
#0 0x564b19a26c92 in srslte::rar_subh::set_ta_cmd(unsigned int) /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/lib/src/mac/pdu.cc:1136
#1 0x564b19577f7e in srsenb::mac::assemble_rar(srsenb::sched_interface::dl_sched_rar_grant_t*, unsigned int, int, unsigned int, unsigned int) /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/srsenb/src/stack/mac/mac.cc:837
#2 0x564b19591765 in srsenb::mac::get_dl_sched(unsigned int, std::vector<srsenb::mac_interface_phy_lte::dl_sched_t, std::allocator<srsenb::mac_interface_phy_lte::dl_sched_t> >&) /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/srsenb/src/stack/mac/mac.cc:653
#3 0x564b19497ee2 in srsenb::lte::sf_worker::work_imp() /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/srsenb/src/phy/lte/sf_worker.cc:208
#4 0x564b199f8db4 in
4 years ago
Xavier Arteaga
b3200d9ef5
Renaming common UL/DL DMRS related types and initial NR PUSCH implementation
4 years ago
Andre Puschmann
d0d7ab4662
srsenb: log cell gain updates
...
add a logline in info whenever the user updates the cell individual
gain. Note that this log happens before checking whether the
cell even exists and can be updated. This is mainly because
phy_common doesn't have an own logger object.
4 years ago
Xavier Arteaga
909e5de34f
Fix NR workers
4 years ago
Ismael Gomez
6348ddefd5
Add option to run prach_worker in the caller thread instead of by a background worker. This is useful when running simulations with ZMQ, to avoid the prach worker to take too much time and miss the RAR deadline
4 years ago
Francisco Paisana
9de318c7e6
avoid allocating DL harqs when respective acks are still pending, when there is a reordering of ttis in the phy
4 years ago
faluco
92b11c1adb
Backport misc changes from the fapi repo.
4 years ago
faluco
88611fe0ab
Added the latency and buffered bytes bearer metrics.
4 years ago
faluco
d3964c70ea
Dump to the json reporter the missing bearer metrics.
4 years ago
Francisco Paisana
66aa34d173
update RRC NR ASN1 to 2020-09 v15.11
4 years ago
Pedro Alvarez
0c20b7a455
Added support for S1AP modify bearer request support. This includes:
...
- Handle received E-RAB S1AP at s1ap.cc.
- Added methods to rrc.cc, rrc_ue.cc and rrc_bearer_cfg.cc to handle erab modify request.
- Made RLC add_bearer() function capable of re-creating the RLC entity.
- Send RRC reconfiguration to the UE and reply to the EPC with S1AP
modify bearer response.
This commit also adds support to srsEPC to send S1AP modify bearer request for
testing purposes.
4 years ago
Francisco Paisana
099dad8cb1
disable PHR handling in the UL sched by default
4 years ago
Ismael Gomez
f9a02299f9
Use MAC PDU pointer instead of tti_rx and rnti as a key to associate buffers. Decouple crc_info() and push_pdu() functions. This allows for different timing architectures in the PHY
4 years ago
Ismael Gomez
0498439d41
Backport some changes from FAPI branch ( #2124 )
...
* Reorder DCI FORMAT enum
* Fix endianness issue
* Fix return codes in phy_ue_db
* Log members should be destructed after the layers.
* Add JSON metrics and Events. Add Alarm log channel. Simplify MAC metrics struct.
* Restore metrics_stdout change
4 years ago
Francisco Paisana
1304746bce
use of fmt lib in asn1 utils
4 years ago
Francisco Paisana
7869c66fb7
avoid overwriting phy config ul64qam config for scell
4 years ago
Francisco Paisana
442843e276
enb metric bound check. Fix of heap-buffer overflow issue
4 years ago
Francisco Paisana
82eb31f70f
add rlc metrics to enb
4 years ago
Francisco
e2654e69ec
Enable pdu stack latency measurements in the eNB.
4 years ago
Francisco
b0a7506a8a
add extra check to verify if erab is still available for rrc metric extraction
4 years ago
faluco
8c42ec26c3
Fix error in previous rebase from dev.
4 years ago
faluco
343587b32d
Update NR classes after metrics interface changes.
4 years ago
faluco
f20b75a05f
Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct.
4 years ago
faluco
5529943172
Add a per sector rach preable counter for the metrics.
4 years ago
Francisco
f1c05f6826
add sector id to ues in mac metrics
4 years ago
Francisco
43e0a3209d
fill enb rrc metrics with drb info
4 years ago
faluco
dcd1157d39
- Prototype the extension of enb metrics.
4 years ago
Ismael Gomez
5d85307a98
Fix 256QAM reconfiguration
4 years ago
Ismael Gomez
a9673e3c53
Use number of configured cells before reconfiguration for DCI calculation
4 years ago
Ismael Gomez
e654062a7a
Do not stash all PHY configuration in eNB during reconfiguration. Stash only number of CC used by DCI
4 years ago
Pedro Alvarez
7eebd71627
Added S1AP E-RAB release command/response handling to srsENB.
...
Added the ability to srsEPC to send the E-RAB release command.
4 years ago
Francisco
783131a4e1
sched rand test refactor: removal of redundant tests
4 years ago
Francisco
cba0cc457f
sched rand test refactor: creation of abstract sched simulator class for testing
4 years ago
Francisco
aed36eb273
sched rand tester refactor: elimination of ue_ctxt_test obsolete class
4 years ago