Commit Graph

190 Commits

Author SHA1 Message Date
Francisco 949c34112e nr,gnb,sched: implement pusch allocator and fix prb grant allocation when UEs are using common SS 2021-12-09 14:26:19 +00:00
Francisco 70c5eff6d0 nr,gnb,sched: wrote unit test for sched PDSCH allocations 2021-12-09 14:26:19 +00:00
Francisco 8ba08032b5 nr,gnb,sched: implemented standalone PDSCH allocator class 2021-12-09 14:26:19 +00:00
Francisco 20b327c320 nr,gnb,sched: extend PDCCH allocator test to cover most allocation fail paths 2021-12-09 14:26:19 +00:00
Francisco 88461646ac nr,gnb,sched: fix failing sched unit test 2021-12-07 12:30:39 +00:00
Francisco bf275282ae nr,gnb,sched: simplify PDCCH allocation abortion api, and implemented method to print PDCCH allocations 2021-12-07 12:30:39 +00:00
Francisco 384004d8d1 nr,gnb,sched: implemented sched helper functions, wrote a unit test for PDCCH allocations 2021-12-07 12:30:39 +00:00
Francisco de13c68df7 nr,gnb,sched: make logging of PDCCH allocation failures consistent 2021-12-07 12:30:39 +00:00
Francisco 9a4a5345c4 nr,gnb,sched: improve sched sanity checks, and improve bwp_pdcch_allocator api 2021-12-07 12:30:39 +00:00
Francisco 5f36b9b116 nr,gnb,sched: rename pdcch scheduler to pdcch allocator 2021-12-07 12:30:39 +00:00
Francisco 0929177fa2 nr,gnb,sched: wrap coreset list in pdcch_scheduler 2021-12-07 12:30:39 +00:00
Bedran Karakoc 8f6ead0d55 nr,gnb,rrc: Added option to test RRC-NGAP integration with real core 2021-12-06 14:21:44 +01:00
Francisco 6c872a014e nr,gnb,sched: fix loop for searching for searchspace candidate in scheduler 2021-12-03 16:01:06 +00:00
Francisco ecaaf8d595 nr,gnb,sched: implement helper methods to check available PRBs in BWP, taking into account common SearchSpace BW limitations 2021-12-02 17:38:54 +00:00
Francisco 8a5ecfea40 nr,gnb,ngap: rename functions for extra clarity 2021-12-01 18:54:33 +00:00
Francisco 11b4a572a0 nr,gnb,rrc&ngap: implementation of NGAP UE Context Release Request and RRC Release for the case RRC_CONNECTED->RRC_IDLE 2021-12-01 18:54:33 +00:00
Andre Puschmann 091877fd2a gnb,rrc: inverse order of configuring lower layers when establishing bearer
start with lower layers first, so MAC, RLC then PDCP.
Since PDCP requires that the LCID is already registered at RLC to make config
checks. It checks for RLC mode (UM) in this case causing log entries like:

2021-12-01T13:47:40.453641 [RLC-NR ] [W] LCID 4 doesn't exist.
2021-12-01 17:44:10 +01:00
Andre Puschmann a27562cb58 gnb_stack_nr: init loglevel of common log channel
to avoid netsocket stuff to spam logs with:

2021-12-01T14:16:58.946080 [COMN   ] [D] [    0] Setting RTO_INFO options on SCTP socket. Association 0, Initial RTO 3000, Minimum RTO 1000, Maximum RTO 6000
2021-12-01T14:16:58.946084 [COMN   ] [D] [    0] Setting SCTP_INITMSG options on SCTP socket. Max attempts 3, Max init attempts timeout 5000
2021-12-01T14:16:58.946109 [COMN   ] [D] [    0] Successfully bound to address 10.8.1.22:0
2021-12-01T14:16:58.998936 [COMN   ] [D] [    0] RxSockets: socket fd=7 has been registered.
2021-12-01T14:16:58.999049 [COMN   ] [D] [    0] Successfully bound to address 10.8.1.22:2152
2021-12-01T14:16:58.999056 [COMN   ] [D] [    0] RxSockets: socket fd=8 has been registered.
2021-12-01 17:44:10 +01:00
Francisco d1ddd3da4d gnb,rrc: make plmn and cell id configurable in SIB1 2021-12-01 12:22:14 +01:00
Francisco 74fda904ac nr,gnb,stack: use common gtpu_pdcp_adapter class for both NSA and SA cases 2021-11-29 10:08:07 +00:00
Francisco 123d79724d nr,gnb,rrc: restart activity timer when new PDUs arrive in case of SA 2021-11-26 20:35:18 +00:00
Francisco b27c184d2f nr,gnb,stack: add bearer manager to gNB stack to correctly map between eps bearer ids and lcids 2021-11-26 20:33:47 +00:00
Francisco 6513520211 nr,gnb,rrc: ensure drb config is added in RRC reconf. Do not allow LCIDs<4 for DRBs 2021-11-26 20:33:47 +00:00
Carlo Galiotto f9ff6758aa rrc-nr: temporary fix to handle inactivity timeout
Fixes issue #3689

Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 19:42:58 +00:00
Francisco 68ec3eaba0 nr,gnb,rrc: remove obsolete TODO comment and set default rrc inactivity timeout 2021-11-26 17:20:18 +00:00
Francisco 61e923a6a6 nr,gnb,rrc: configurable RRC NR inactivity timeout 2021-11-26 17:20:18 +00:00
Pedro Alvarez 9f7ae7a2b2 gnb,ngap: Added simple allocation of lcids to ngap_ue_bearer_manager. 2021-11-26 16:26:08 +00:00
Francisco 14074f0430 nr,gnb: pass gtpu pointer to ngap init 2021-11-26 14:55:25 +00:00
Francisco b07385a50c nr,gnb,rrc: disable PHR in RRC setup 2021-11-26 14:34:53 +00:00
Francisco 40463c340d nr,gnb,rrc: fix schedulingRequest resource allocation in RRC setup message 2021-11-26 12:34:41 +00:00
Carlo Galiotto 787177bf3c rrc-nr: fix RRCReconf test failing
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Carlo Galiotto 34af2657f9 rrc-nr: add info log in establish_eps_bearer()
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Carlo Galiotto 6aad5d7786 rrc-nr,test: apply reviewer comments
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Carlo Galiotto 6fc2d82b2e rrc-nr,test: add log spy and clean NAS_msg
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Carlo Galiotto c9d92dd5ef rrc-nr,test: add test for RRCReconfiguration after...
EPS bearer establishment
2021-11-26 11:43:41 +01:00
Carlo Galiotto 9c7ef6f11e rrc-nr: send RRCReconfiguration after establish_rrc_bearer()
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Carlo Galiotto 66733fb347 rrc-nr: prevent master_cell_group to be sent if...
...there are no changes in the radio_bearer_configuration

In addition:
i)  Force RRCReconfiguration to be sent after receiving
    SecurityModeComplete
ii) Prevent RRCReconfiguration to be sent after establish_rrc_bearer()

Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Carlo Galiotto 18a85adc49 rrc-nr: trigger RRCReconfifguration from ...
establish_EPS_bearer

Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Carlo Galiotto 39d6eecf01 rrc-nr,test: add test for RRCReconfiguration
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Carlo Galiotto 7d230a260e rrc-nr,test: add tests for DL/ULInformationTransfer
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Carlo Galiotto 1417331edb rrc-nr,test: add test for initial_ue msg sent to ngap
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-26 11:43:41 +01:00
Pedro Alvarez 3e61448a41 gnb,ngap: added logging for Rx NGAP messages. 2021-11-26 00:05:12 +00:00
Francisco 5759d396d4 nr,gnb,sched: avoid that ConRes CE gets allocated twice 2021-11-25 23:02:05 +00:00
Francisco 744ede0876 nr,gnb,rrc: disable CSI in SA mode 2021-11-25 21:09:24 +01:00
Pedro Alvarez 1bea5a7ebe gnb,rrc_nr: make sure that we only push the NAS PDU on the SMC if it exists. 2021-11-25 19:03:30 +00:00
Pedro Alvarez f9a2850d74 gnb,ngap: Added interface so the NGAP can pass a NAS message to the RRC
upon starting the RRC Security Mode command. This allows the gNB to
pass this message only after the SM procedure is complete.

Also made sure that the RRC notifies the NGAP upon the end of the
reconfiguration procedure, to make sure that the NGAP sends the UE
context setup response.
2021-11-25 19:03:30 +00:00
Pedro Alvarez 9b622b3bff lib,rrc_nr: made separate function to create default PDCP SRB configs 2021-11-25 17:45:05 +00:00
Pedro Alvarez 3f59c6c642 gnb,rrc_nr: make sure chosen integrity algorithm is present 2021-11-25 16:11:09 +00:00
Pedro Alvarez 84f94b26b2 gnb,rlc_nr: re-used security algo preference list from LTE. Added the ability to enable integrity/encription at the PDCP upon the security mode command. 2021-11-25 16:11:09 +00:00
Francisco fe2a19c46d nr,gnb,sched: consider CORESET RB limits in the computation of DCI riv 2021-11-25 15:14:18 +00:00
Francisco ef1a99f29f nr,gnb,phy: ensure coreset0_bw of the DCI is set when CORESET#0 and format1_0 are used 2021-11-25 15:14:18 +00:00
Francisco 6df8b6bb9e nr,gnb,sched: account for CORESET RB offset in the DCI RB indexing in case of common search spaces 2021-11-25 15:14:18 +00:00
Francisco f91c41dcc9 nr,gnb,rrc: remove csi for SA mode 2021-11-24 12:30:00 +00:00
Francisco dc77260956 nr,gnb,mac: use mac cell config to generate ue phy cfg common 2021-11-24 12:30:00 +00:00
Francisco 9ecb3f516d nr,gnb,rrc: add helper function to derive rrc cfg parameters for all cells 2021-11-24 12:30:00 +00:00
Andre Puschmann 8ddc344cdb gnb,mac: rework DL MAC PDU packing and add ConRes handling
* store Msg3 when UL-CCCH is received
* add ConRes CE in DL-SCH when indicated by scheduler
* remove fixed LCID for packing SDUs
2021-11-24 12:10:17 +01:00
Francisco 45d59cf686 nr,gnb,sched: account type of RNTI in the choice of SearchSpace for PDSCH and PUSCH allocations 2021-11-24 11:07:41 +00:00
Francisco 1a985093f9 nr,gnb,sched: avoid that ConRes CE gets allocated multiple times for the same Msg4 2021-11-23 23:57:35 +00:00
Francisco afd7bb8631 auto scheduler ConRes CE when the DL CCCH buffer is filled 2021-11-23 23:57:35 +00:00
Pedro Alvarez 2fad9ded01 Make sure that the pcap is started before NGAP init, so that the NGSetupRequest is caught 2021-11-23 17:12:53 +00:00
Pedro Alvarez 5e22e42762 Added option to save NGAP pcaps. 2021-11-23 17:12:53 +00:00
Francisco a4e3d6144f nr,gnb,rrc: update rrc_nr_test unit test to not require any cmd line argument 2021-11-23 10:56:38 +00:00
Francisco ffc1ea5c86 nr,gnb,phy: decoupled gnb and enb phy config structs by moving them to separate files 2021-11-23 10:56:38 +00:00
Francisco 423681664c nr,gnb,rrc: remove conf parsing from rrc_nr_test 2021-11-23 10:56:38 +00:00
Francisco cc89b1607f nr,gnb,rrc: fix RRC setup to avoid configuring the SRB1 twice 2021-11-22 17:06:26 +00:00
Francisco 6ad6f4511e nr,gnb,sched: implement ConRes CE scheduling operations in NR sched and extend sched nr interface 2021-11-22 12:56:02 +00:00
Francisco 17f7a86647 nr,gnb,sched,test: extend scheduler testing to generate UL HARQ acks 2021-11-22 12:56:02 +00:00
Francisco ed1514cf68 nr,gnb,sched: implement ConRes CE scheduling command in NR sched 2021-11-22 12:56:02 +00:00
Francisco 64d65b1afa nr,gnb,cfg: in case of TDD, use PRACH config index 8 to give more time margin to schedule RAR 2021-11-20 15:54:52 +00:00
Francisco a5e2203ea6 nr,gnb,sched: do not fill dci.coreset0_bw if coreset used is not coreset0 2021-11-20 15:54:52 +00:00
Francisco 62d1a99223 nr,gnb,sched: fix sched RAR dci generation, in particular, the filling of CORESET#0 BW and RB offset 2021-11-20 15:54:52 +00:00
Francisco f797954650 nr,gnb,rrc: fix PRACH hard-coded parameters 2021-11-20 15:54:52 +00:00
Pedro Alvarez c0d2e8c11d gNB NR security context:
- changed variables to use nia/nea instead of eia/eea.
  - make rrc_nr_cfg a ref
  - Changed NR ciphering/integrity algo enums to their own enum
2021-11-19 18:24:03 +00:00
Pedro Alvarez e294311034 Added NR security context manager to RRC NR 2021-11-19 18:24:03 +00:00
Francisco 6e0eb3f10a nr,gnb,rrc: use SS type common1 for SearchSpace#1 2021-11-19 10:57:22 +00:00
Francisco d2ea9bfa5b nr,gnb,sched: design basic search algorithm to pick UE search space with valid dci format 2021-11-19 10:57:22 +00:00
Francisco 27d223de2a nr,gnb,rrc: extend RRC setup test to verify if UE-specific SearchSpaces and CORESETs are added at RRC setup complete and not before 2021-11-19 10:57:22 +00:00
Francisco 0a8a576263 nr,gnb,rrc: derive ssb_per_rach_occasion_and_cb_preambs_per_ssb from num_ra_preambles 2021-11-18 22:48:14 +00:00
Francisco 0c983d0b54 nr,gnb,rrc: set consistent rs_power for SIB1 and phy cfg 2021-11-18 22:48:14 +00:00
Francisco 79a018683f nr,gnb,rrc: consistent generation of rachConfig for phy, SIB1, and NSA reconf 2021-11-18 22:48:14 +00:00
Francisco a173c4f222 nr,gnb,rrc: set nas message presence flag only in case there is a pending NAS pdu 2021-11-18 21:06:32 +00:00
Andre Puschmann 894348fd75 gnb,mac: implement handling of CCCH subPdus 2021-11-18 21:02:32 +01:00
Pedro Alvarez eefb50fe9d Added some basic NGAP unit test for initial UE message. 2021-11-18 14:52:00 +00:00
Francisco adec23cbc5 nr,gnb,mac: avoid use of ue-specific coresets for Msg3 2021-11-18 09:39:41 +00:00
Francisco c875f88ee0 nr,gnb,rrc: generate asn1 coreset based on rrc cfg nr 2021-11-18 09:39:41 +00:00
Francisco 7ccb86c480 nr,gnb,mac: fix default ue cfg used when mac receives a RACH 2021-11-18 09:39:41 +00:00
Francisco 3f6d35bc6c nr,gnb,rrc: add coreset#2 and searchspace#2 to default rrc cfg nr 2021-11-18 09:39:41 +00:00
Francisco fbe3b066b5 nr,gnb,sched: abort PUSCH allocation if no PDCCH candidate is found while choosing search space 2021-11-18 09:39:41 +00:00
Francisco 9bebc06f97 nr,gnb,rrc: add functions to verify rrc cfg validity 2021-11-18 09:39:41 +00:00
Francisco e78c375075 nr,gnb,rrc: consistent generation of search spaces 0 and 1 in phy and asn1 2021-11-18 09:39:41 +00:00
Carlo Galiotto aa979708a0 rrc-nr,test: add fnc to trigger send_security_cmd
The SecurityModeCommand procedure was previously initiated by the
RRCSetupComplete msg. However, it should be trigger by the NGAP
through the InitialContextSetupRequest msg.
This commit implements this change and fills in the function of
the NGAP interface that starts the SecurityModeCommand procedure

Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-17 19:08:47 +00:00
Carlo Galiotto 1679df928b rrc-nr,test: remove unnecessary set_
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-17 19:08:47 +00:00
Carlo Galiotto 81cadac12e rrc-nr,test: add security_cmd helper test
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-17 19:08:47 +00:00
Francisco f9a2b8e068 nr,gnb,rrc: print correct context where PDU allocation fails, and handle case the CCCH/DCCH failed to be sent to the UE 2021-11-17 18:07:41 +00:00
Francisco 6221134b77 nr,gnb,rrc: return error in case of failure to add bearer to pdcp/rlc 2021-11-17 18:07:41 +00:00
Francisco 0f1b5bdcab nr,gnb,rrc: pack nas pdu in rrc reconfiguration message 2021-11-17 18:07:41 +00:00
Francisco 35507850d3 nr,gnb,rrc: check for nullptr return of byte buffer pool. 2021-11-17 18:07:41 +00:00
Francisco b35584ae70 nr,gnb,rrc: add code to add/mod/release bearers during rrc setup and reconfiguration 2021-11-17 18:07:41 +00:00
Pedro Alvarez 288df4572f Use #ifdef to select to use RLC AM NR or UM. 2021-11-17 10:50:35 +00:00
Pedro Alvarez 246e08f7a6 Hardcoded creation of RLC AM NR in RRC. 2021-11-17 10:50:35 +00:00