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
2021-02-05 11:08:08 +01:00
Xavier Arteaga
a2d9b436d9
SRSUE: add NR stack to PHY and initial decoded PDU push
2021-02-04 10:51:47 +01:00
Francisco
78d1b8083a
fix GTPU tunneling. Avoid forwarding packets to PDCP while the PDCP bearer is not yet created
2021-02-03 17:20:07 +00:00
Andre Puschmann
f5c945dc2f
mac_nr: add interface to set C-RNTI and contention ID from RRC
...
used during contention-based/free RA
2021-02-02 14:13:25 +01:00
Francisco
2bde28252c
send UE capability indication through S1AP
2021-02-01 22:27:49 +00:00
Francisco
d64ce7df77
implementation of S1 E-RAB Release Indication and Error Indication messages
2021-02-01 22:27:49 +00:00
Francisco
2befbd1825
setup of forwarding tunnels during enb s1 handover
2021-01-29 18:46:11 +00:00
Francisco
56ec2c286e
add gtpu test for tunneling
2021-01-29 17:22:58 +00:00
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.
2021-01-29 17:22:58 +00:00
Andre Puschmann
4709bacefd
srsue: add DL NR-ARFCN param
...
* add PHY param to set DL NR-ARFCN
* use new band_helper class to convert ARFCNs to supported bands
* signal supported NR bands in UE capabilities
2021-01-28 12:06:02 +01:00
David Rupprecht
1b19ee40e7
Added usim features for key derivation
2021-01-27 10:37:09 +01:00
David Rupprecht
ceda458bb3
Added MAC NR to EUTRA and NR with stack interfaces including MAC config build
...
Moved MAC logical channel config to MAC interface types
2021-01-27 10:37:09 +01:00
David Rupprecht
a6046ca875
Added funcs for asn flat config RLC and PDCP
2021-01-27 10:37:09 +01:00
David Rupprecht
64299960bd
Added procedure for NR reconfiguration and RRC with NR complete
2021-01-27 10:37:09 +01:00
Francisco
e0937d1dd1
add lcid check and increase limit to 10
2021-01-21 17:04:38 +00:00
Francisco
bed979b722
fix out-of-bounds memory writing in the sched_interface::ue_cfg_t ue_bearers member
2021-01-21 17:04:38 +00:00
Ismael Gomez
47dbd6ed70
Merge pull request #2214 from softwareradiosystems/pr_mac_buffers
...
Limit the number of UL buffers in MAC and deallocate old ones
2021-01-20 21:12:39 +01:00
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
2021-01-20 15:46:46 +01:00
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>
2021-01-19 21:55:24 +01:00
Ismael Gomez
c1c5fa426c
Fix issue with new way of managing ul buffers not working with CA
2021-01-19 16:59:36 +01:00
Francisco Paisana
9c7c190074
when the rrc fails to allocate the ue cell resources, it should erase the ue from all stack layers
2021-01-15 00:10:42 +01:00
Francisco Paisana
ea8ad153c4
add configurable fairness parameter to pf scheduler
2021-01-11 11:56:13 +01:00
David Rupprecht
f7d313147a
Added infrastrukture for measurements
...
Init rrc_nr as part of the LTE stack
2021-01-08 17:20:08 +01:00
David Rupprecht
b79eef0860
Introducing nr_rrc <-> rrc interface for eutra and nr cap query
2021-01-08 17:20:08 +01:00
David Rupprecht
9eb0b72cb4
Added rrc function has_nr_dc
2021-01-08 17:20:08 +01:00
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.
2020-12-18 10:52:51 +00:00
Francisco Paisana
099dad8cb1
disable PHR handling in the UL sched by default
2020-12-17 17:56:42 +01:00
David Rupprecht
62b558fccf
Move rat type to common header
...
Removed phy measurement from rrc interface phy
Updated rrc interface for handling measurements
2020-12-16 14:12:38 +01:00
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
2020-12-16 13:49:29 +01:00
Francisco Paisana
82eb31f70f
add rlc metrics to enb
2020-12-14 16:59:09 +01:00
faluco
f20b75a05f
Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct.
2020-12-14 13:16:13 +01:00
faluco
5529943172
Add a per sector rach preable counter for the metrics.
2020-12-14 13:16:13 +01:00
faluco
dcd1157d39
- Prototype the extension of enb metrics.
2020-12-14 13:16:13 +01:00
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.
2020-12-12 15:59:27 +01:00
Francisco
cba0cc457f
sched rand test refactor: creation of abstract sched simulator class for testing
2020-12-12 15:59:27 +01:00
Francisco
2598989f7d
replace msg3grant type from C-array to bounded vector
2020-12-12 15:59:27 +01:00
Francisco
22229adf08
fix: normal phr is only sent for PCell
2020-12-12 15:59:27 +01:00
Francisco
479602ed1d
add option to specify target ul sinr for UL power control to the enb rr.conf parser
2020-12-12 15:59:27 +01:00
Francisco
5865df39d1
created class that implements the scheduler transmit power control and PHR handling
2020-12-12 15:59:27 +01:00
Xavier Arteaga
b501f2eeaf
SRSENB/UE: Added NR workers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
ac930003be
SRSUE: Integrated NR workers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
c6798653be
SRSUE: created initial PHY LTE worker pool
2020-12-12 15:59:26 +01:00
Francisco
8fb3ea6922
Added the ability to choose scheduling policy from enb.conf
...
- The two options provided at the moment are time-domain RR and PF
2020-12-12 15:59:26 +01:00
Andre Puschmann
07d2bc4fe8
change license header to agnostic version with hint to root LICENSE file
2020-12-12 15:59:25 +01:00
Francisco
f07e52129c
increase mcs ul upper bound to 24 when ue is cat4 and enb supports 64qam. Simplified max_mcs computation
2020-12-12 15:59:25 +01:00
Francisco
7a74bf28d1
forward declare s1ap types in enb interfaces
2020-12-12 15:59:25 +01:00
Francisco
66712023bb
remove unneeded includes of full rrc asn1 lib
2020-12-12 15:59:25 +01:00
Francisco
68eda336bd
remove ENB_METRICS_MAX_USERS compile time macro and use run-time variable to set maximum number of UEs the srseNB can have connected at a given instant.
2020-12-12 15:59:25 +01:00
yagoda
bdc1964335
consolidating RRC eMBMS configuration into single function, setting some parameters to const
2020-12-12 15:58:34 +01:00
yagoda
b90574975b
refactoring asn1 eMBMS code, removing asn1 from PHY and MAC in eNodeB
2020-12-12 15:58:34 +01:00
Francisco
1cb65f07f1
enable meas gaps in RRC and enb parser
2020-12-12 15:58:34 +01:00
Francisco Paisana
9579931f16
added meas gap checks to scheduler ue
2020-12-12 15:58:34 +01:00
Xavier Arteaga
f64c268a69
SRSUE: Refactored MAC/RRC SCell Activation/Deactivation
2020-12-12 15:58:33 +01:00
Francisco Paisana
fdec451a9d
disable mcs>20 if eNB supports UL 64QAM but UE doesn't
2020-12-12 15:58:33 +01:00
Francisco Paisana
bf7c587e4f
add UL 64QAM support to eNB RRC and scheduler
2020-12-12 15:58:33 +01:00
Pedro Alvarez
454162cea7
Deleted nas_interface_stack.
2020-12-12 15:58:33 +01:00
Pedro Alvarez
604e79214d
Changed NAS is_attached interface to is_registered.
2020-12-12 15:58:33 +01:00
Pedro Alvarez
14844a168a
Created new class to hold all NAS states for the NAS state machine. Added EMM-DEREGISTERED substates and EMM-REGISTERED substates.
...
Decoupled PLMN selection, attach request and service request. Removed RRC connect procedure from NAS.
2020-12-12 15:58:33 +01:00
Francisco Paisana
510959b50f
update nr asn1 files, and asn1 tests
2020-12-12 15:58:32 +01:00
Francisco Paisana
a865858db3
disable srbs UL during handover to avoid UL grants and scheduling requests before the handover is complete
2020-10-30 21:51:58 +00:00
Xavier Arteaga
58be68f856
Changed cell gain command from cell index to cell id
2020-10-26 10:13:02 +01:00
Andre Puschmann
bb1dd0f4cf
gnb_interface: remove FIXME
2020-10-18 15:56:16 +02:00
Francisco Paisana
9b10acff06
implemented logical channel prioritization in DL scheduler
2020-10-14 22:55:12 +01:00
Andre Puschmann
fab86382c1
mac,rrc: add interface to set SR config explicitly without touching any other MAC function
...
when releasing PUCCH/SRS (see 5.3.13 in 36.331) we need to reset the SR config as well.
In our case, SR is handled by MAC so we need to (re-)configure MAC, not all of
MAC though, just SR.
2020-10-13 17:38:45 +02:00
Xavier Arteaga
da54e2b501
Better docs in RRC interface types and apply clang-format
2020-10-07 09:58:23 +02:00
Xavier Arteaga
6ae47b6510
SRSUE: Deafult PUCCH/SRS does not imply full PHY dedicated defaults
2020-10-07 09:58:23 +02:00
Francisco Paisana
137e554eb3
reestablish pdcp bearers is required in case of AM bearers
2020-10-01 16:57:08 +01:00
Xavier Arteaga
ef9d77c966
SRSUE: add PRACH config present field in PHY configuration structure
2020-09-30 17:10:48 +02:00
Andre Puschmann
795db30338
pdcp: drop PDCP control PDUs
...
this patch adds a check to drop all PDCP control PDUs
in order to prevent handling them as data PDUs.
This could happen when the size exceeded the arbitrary length check.
This should fix #1787
2020-09-29 15:29:04 +02:00
Ismael Gomez
76bfc78147
Fix issues with Sounding-RS ( #1761 )
...
* Fix deadlock caused by update_measurements calling in_sync
* Fix overlapping SRS condition
* Do not use shortened PUSCH in transmissions and retx from RAR
* Revert "Fix deadlock caused by update_measurements calling in_sync"
This reverts commit f58c8c8c766f8f95baa3a3bf8287d8e25b2057ba.
2020-09-24 22:25:24 +02:00
Pedro Alvarez
86f4d469c6
Added some functions to save and restore AS keys for the case of failed handover in the USIM
2020-09-24 13:30:08 +01:00
Andre Puschmann
1afc137032
[REBASE] Make PHY non-blocking and fefactor HO procedure ( #1753 )
...
* Make PHY non-blocking and fefactor HO procedure
* makes entire PHY non-blocking through command interface
* adds dedicated queue for cell_search/cell_select commands
* refactor HO procedure to run faster, in one stack cycle. Looks closer to the specs
* force ue to always apply SIB2 configuration during reestablishment
* Run update_measurements in all workers
Co-authored-by: Ismael Gomez <ismagom@gmail.com>
2020-09-22 21:47:16 +02:00
Andre Puschmann
6a56476b2a
rlc: increase RLC Tx SDU queue
...
the Tx SDU has been set to 128 PDUs because this gives approx.
150kByte UL buffer state (max value for Rel 8 BSR).
Previously, however, we've always reported too much pending UL
data because we weren't subtracting the transmitted data from
the reported data.
with this newer BSR reporting, however, even with full buffers we would
never report full buffers because the queues size is too short.
This seems to cause issues for iperf TCP sessions not resulting
in full DL rate, see isse #1703 . It seems that the TCP bandwitdh
probing works better with larger buffers (in our case this can
only be achieved with more PDUs in the pool).
This should fix #1703
2020-09-08 22:27:21 +02:00
Ismael Gomez
f49fbd6d02
Fix the order of HO/reest measurement actions ( #1696 )
2020-09-04 12:18:12 +02:00
Xavier Arteaga
af8898943f
SRSENB: implement console cell_gain command
...
SRSENB: fix 5GNR compilation
SRSENB: fix override methods
2020-09-01 09:37:52 +02:00
Francisco Paisana
92221eb780
update of rrc_interface_mac to remove signal from mac to rrc that RA failed in case of handover failure
2020-08-29 20:06:08 +01:00
Ismael Gomez
a4835dd2c8
More accurate MCS reduction when PUSCH carries UCI ( #1630 )
2020-08-25 22:30:35 +02:00
Francisco Paisana
bb5dd92dca
implemented s1 handover cancellation procedure to force the target enb to release the ue ctxt
2020-08-21 00:05:58 +01:00
Francisco Paisana
8c9e596f89
refactored s1ap handover request interface. cleaned up rrc tenb s1 handover code
2020-08-21 00:05:58 +01:00
Francisco Paisana
5d1343fe75
implemented S1 bearer status transfer
2020-08-18 13:55:17 +01:00
Francisco Paisana
db8af399f8
extended rrc tenb s1 handover test. implemented layer reconfig during s1 handover
2020-08-18 13:55:17 +01:00
Francisco Paisana
7605c7df23
added s1ap handover notification, fixed s1ap asn1 bug, and fixed bad fields for admitted erabs in ho req ack
2020-08-18 13:55:17 +01:00
Francisco Paisana
26f46ea067
add S1 Handover Request handling in target eNB
2020-08-14 14:28:56 +01:00
Ismael Gomez
382811e10e
Update S1AP RNTI context when doing Reestablishment ( #1582 )
2020-08-12 23:48:20 +02:00
Ismael Gomez
dda91b14f7
Remove duplicate add_rnti() function since already done in set_config
2020-07-27 17:58:06 +02:00
Andre Puschmann
9550bd3ef8
rlc: revisit interface for MAC and RRC
...
* add locked and unlocked version of has_data() since one is
called from stack and one from PHY threads
* add comments in each interface section as to why locking
is required or not
* remove RLC rwlock when not required
* move calls only used by RRC to RRC section
2020-07-21 11:56:43 +02:00
Francisco Paisana
58c4bcf288
reduce mcs for UL grants carrying UCI
2020-07-21 10:51:11 +01:00
Andre Puschmann
a7911f0dab
pdcp,rlc: refactor SDU queueing policy
...
this patch refactors the SDU queuing and dropping policy of the RLC and PDCP layer.
the previous design had issues when packets have been generated at a higher
rate above the PDCP than they could be consumed below the RLC.
When the RLC SDU queues were full, we allowed two policies, one to block on the write
and the other to drop the SDU. Both options are not ideal because they either
lead to a blocking stack thread or to lost PDCP PDUs.
To avoid this, this patch makes the following changes:
* PDCP monitors RLC's SDU queue and drops packets on its north-bound SAP if queues are full
* a new method sdu_queue_is_full() has been added to the RLC interface for PDCP
* remove blocking write from pdcp and rlc write_sdu() interface
* all writes into queues need to be non-blocking
* if Tx queues are overflowing, SDUs are dropped above PDCP, not RLC
* log warning if RLC still needs to drop SDUs
* this case should be avoided with the monitoring mechanism
2020-07-13 17:05:28 +02:00
Francisco Paisana
5e06430455
removal of stack handler interface
2020-07-13 11:19:25 +01:00
Francisco Paisana
fe8f8be62d
apply separate cqi configurations to scells
2020-07-09 18:56:01 +02:00
Francisco Paisana
cb7f620254
created separate class to manage bearers buffers/status reports in the scheduler
2020-06-29 17:31:07 +01:00
Ismael Gomez
493b7ea2da
Remove SNR threshold based link failure detection
2020-06-25 22:57:31 +02:00
Francisco Paisana
2de702f50e
disable carrier aggregation when ue release is below 10 or category is below 5
2020-06-25 21:13:11 +01:00
Francisco Paisana
42969ad992
add tb size as argument to gnb
2020-06-18 23:37:26 +01:00
Pedro Alvarez
9c1a7d2cf1
Removed get_bearer_status in PDCP. Renamed get_state/set_state to
...
get_bearer_state/set_bearer_state.
2020-06-18 12:13:57 +01:00
Pedro Alvarez
208a539499
Split PDCP tx_count state variable into tx_hfn and next_pdcp_tx_sn
...
variables.
2020-06-18 12:13:57 +01:00
Pedro Alvarez
08578a7331
Switched to use a struct to hold the PDCP entity state variables. Deleted some unecessary setters.
2020-06-18 12:13:57 +01:00
Pedro Alvarez
66d4f320e5
Added intereface to set PDCP state after reestablishment.
2020-06-18 12:13:57 +01:00
Pedro Alvarez
33567d81db
Added interface to get internal PDCP state.
2020-06-18 12:13:57 +01:00
Xavier Arteaga
e0e8405285
SRSUE: initial scell sync
...
SRSUE: SCell Synch feedbacks delay
SRSUE: Implemented SCell Radio offset correction
2020-06-18 09:51:51 +02:00