Commit Graph

750 Commits

Author SHA1 Message Date
Francisco Paisana 0f3ef11f8b now the scheduler only activates a scell after receiving a valid CQI for the SCell 2020-03-02 16:33:31 +00:00
Francisco Paisana f571b7c16b cleaned up some of the log error messages in the sched tester 2020-03-02 16:33:31 +00:00
Francisco Paisana c595696ec2 no need for a separate class for the CA tester 2020-03-02 16:33:31 +00:00
Francisco Paisana b44754f0ae the CA and random sched testers now use same structs and common interface. 2020-03-02 16:33:31 +00:00
Francisco Paisana 385fa226e0 started to use a type-safe tti counter for comparisons. Uniformized the common_sched_tester api. Next, need to use the same struct to register events. 2020-03-02 16:33:31 +00:00
Francisco Paisana 518f813f13 now the CA testing generation and simulation happen simultaneously. This way we can do more tti/event specific checks 2020-03-02 16:33:31 +00:00
Francisco Paisana b319f8dfcd created first version of CA test. Now we need to create actual asserts 2020-03-02 16:33:31 +00:00
Francisco Paisana 507bc2d2a2 created a test for CA. Currently is quite empty 2020-03-02 16:33:31 +00:00
Xavier Arteaga 2c534c9059 Correction of TX_DELAY and FDD_HARQ_DELAY_MS uses in srsenb PHY 2020-03-02 12:19:09 +01:00
Xavier Arteaga ae6f52bf0b Fix CLang Warnings in PHY eNb Test 2020-03-02 12:19:09 +01:00
Xavier Arteaga 0556dea01a Refactored eNb PHY test to accept arguments and added unit test 2020-03-02 12:19:09 +01:00
Xavier Arteaga 9a54930430 Minor log messages and dynamic number of buffer allocation 2020-03-02 12:19:09 +01:00
Xavier Arteaga 2a6f54e13f SRSENB: phy method cleanup and CLang tidy warning fixes 2020-03-02 12:19:09 +01:00
Xavier Arteaga 4c61ffd391 SRSENB: set UE common PHY configuration in RRC::UE constructor 2020-03-02 12:19:09 +01:00
Xavier Arteaga 5893f66364 SRSENB: fixes, srsUE attaches srsENB 2020-03-02 12:19:09 +01:00
Xavier Arteaga b45223c880 Fix minor MAC Clang warnings 2020-03-02 12:19:09 +01:00
Xavier Arteaga f35ed14f76 SRSENB: refactored PHY common UE database 2020-03-02 12:19:09 +01:00
Xavier Arteaga 2fc0832f05 Addition of DL HARQ-ACK generation procedure for eNb DL and minor aesthetic changes 2020-03-02 12:19:09 +01:00
Andre Puschmann dc8c5687c6 fix rwlock in PDCP
we've used a rdlock but since the users struct is modified, we should be
really using a rwlock
2020-03-01 18:26:45 +01:00
Andre Puschmann 9e113f8b27 pdcp: allow to configure security for rx/tx seperately
previously PDCP security (integrity and ciphering) could only
be enabled for both Rx and Tx at the same time.

this, however, caused an issue during the conformance testing in which,
in TC_8_2_1_1() for example, the eNB sends a SecModeCommand and a
RRC Reconfiguration in the same MAC TB. In this case, the eNB
needs to be able to enable DL security right after sending the SecModeCmd
in order to send the RRCReconfig encrypted. However, enabling UL security needs
to be postponed until after the SecModeComplete is received.

This patch allows to enable PDCP security for rx/tx independently if
that is needed. The default way is like before, enabling it for tx/rx at
the same time.
2020-03-01 18:26:45 +01:00
Francisco Paisana ac52208409 removed most of clang-tidy warnings, introduced logmap in asn1, fixed info object naming in s1ap and ngap for successful and unsuccessful outcomes 2020-02-28 18:03:29 +00:00
Francisco Paisana e859d622c7 added logref class to forbid logmap pointer invalidation. Created a test for the logref, and introduced it in the scheduler, rrc and nas 2020-02-28 11:33:26 +00:00
Francisco Paisana b8b8740258 fix wraparound in si proc and error in scell parsing 2020-02-28 10:08:01 +01:00
Francisco Paisana 052892916e fix mme/enb id assignment. Also, now using the macro for invalid rnti and a boolean flag for the uninitialized mme s1ap id 2020-02-26 15:17:45 +00:00
Francisco Paisana 2f57db5352 changed invalid rnti to 0 2020-02-26 15:17:45 +00:00
Francisco Paisana 7557ef45c8 changed the s1ap to allow the insertion of users without rnti 2020-02-26 15:17:45 +00:00
Francisco Paisana c29f08d8d5 refactored si acquisition procedure to use stack timers. Also created an interface that is going to be used for the task/timer handling 2020-02-20 20:48:36 +01:00
Ismael Gomez a5b7dcdf16
Remove boost string (#936)
* Remove boost string

* Make sure that int/enc algos can be specified in capital case in the MME.

* Use == instead of compare for comparing strings with const chars

Co-authored-by: Pedro Alvarez <pedro.alvarez@softwareradiosystems.com>
2020-02-16 21:32:49 +01:00
Francisco Paisana 42449b079a now the scell_activation CE is only for 1 octet. The 4 octet one is not yet supported. 2020-02-14 21:49:01 +00:00
Francisco Paisana d831522692 addition of SCell Activation CE Cmd to scheduler and MAC 2020-02-14 21:49:01 +00:00
Francisco Paisana 838053e8f2 added SCell Activation CE to scheduler. Handling this CE in the MAC is still missing 2020-02-14 21:49:01 +00:00
Francisco Paisana a0407dd6f7 created a lock guard for pthread rwlocks. This will avoid using gotos in many cases, and the RAII technique avoids many accidents. 2020-02-14 14:53:57 +00:00
Xavier Arteaga 385102fa2d SRSENB: minor format, renaming and interface changes 2020-02-13 10:29:00 +01:00
Xavier Arteaga bf4ecc8064 Fix srsenb PHY and unit/component tests 2020-02-13 10:29:00 +01:00
Xavier Arteaga f9c3dd2748 more fixes in the srsenb 2020-02-13 10:29:00 +01:00
Xavier Arteaga 5dbc96458a Sets PUCCH decode threshold as macro 2020-02-13 10:29:00 +01:00
Xavier Arteaga 231431f569 SRSENB: enabled CA PUCCH decode in eNb 2020-02-13 10:29:00 +01:00
Xavier Arteaga 73c63b10f2 Fix compilation of dummy classes 2020-02-13 10:29:00 +01:00
Xavier Arteaga db9cd1683a SRSENB: improved phy test 2020-02-13 10:29:00 +01:00
Xavier Arteaga fd29944bf9 [Temporal] Disabled by default enb phy test 2020-02-13 10:29:00 +01:00
Xavier Arteaga 3f5c270fce SRSENB: added initial component PHY test 2020-02-13 10:29:00 +01:00
Xavier Arteaga 40772eae19 SRSENB: UE PHY dedicated takes a flat configuration structure 2020-02-13 10:29:00 +01:00
Xavier Arteaga 35f4e5d69a Initial PUCCH 1B with channel selection 2020-02-13 10:29:00 +01:00
Francisco Paisana c9ac42f11d renamed rlc pdu / mac sdu allocate functions, and added some comments describing what these functions do 2020-02-10 16:55:18 +00:00
Francisco Paisana 87038375d5 fixed the building of MAC SDUs in the scheduler. Now, we ensure there is always space for the MAC subheader and RLC header. The MAC subheader is correctly discounted from the remaining bytes in a TB. 2020-02-10 16:55:18 +00:00
Francisco Paisana 089f72d573 ensure minimum tbs. If it cant do it, increase mcs until it can. 2020-02-10 16:55:18 +00:00
Andre Puschmann cccabdaf4f removing unneeded install targets for static libs (reported by Filipe) 2020-02-10 17:38:42 +01:00
Francisco Paisana c8fc0d91b3 changed the supported cc list to a vector of structs 2020-02-07 15:06:46 +00:00
Francisco Paisana 42b15c7bed use common ue_cfg interface to set the ue antenna info 2020-02-07 15:06:46 +00:00
Francisco Paisana 5f557700f2 changed the sched::ue_cfg(...) function to allow diff configurations. The RRC now activates all carriers after rrc reconf complete 2020-02-07 15:06:46 +00:00
Francisco Paisana b66bc3a6b0 create a sched_interface struct for antenna info dedicated. This way we remove the asn1 as a dependency in the scheduler 2020-02-07 15:06:46 +00:00
Francisco Paisana 88a22e7dbf support cc cfg from rrc 2020-02-07 15:06:46 +00:00
Francisco Paisana 095d0cda5a fix regs leak 2020-02-07 15:06:46 +00:00
Francisco Paisana e86862611c update the scheduler interfaces to accommodate the configuration of multiple carriers 2020-02-07 15:06:46 +00:00
Francisco Paisana 73c528793f add interface changes to dummy classes and scheduler test 2020-02-07 15:06:46 +00:00
Francisco Paisana 2dc31ea440 added interface to configure multiple cells from the RRC 2020-02-07 15:06:46 +00:00
Pau Espin Pedrol 4949df257e Proper shutdown on SIGHUP
If a process exits and has a controlling terminal, everything under
it gets a SIGHUP by the kernel. That's the case for instance when
running a srsUE over ssh with some specific parameters. As a result,
when the ssh client is killed, SIGHUP is sent to srsUE, which will be
killed immediatelly without proper release, which means in turn that log
buffers are not flushed.
Let's do proper shutdown when SIGHUP is received so that everyone can
get log files.
2020-02-06 16:19:40 +01:00
Andre Puschmann ed179fd311 timers: rename value() to time_elapsed()
this seems to be better readable than value() since
we've sometimes confused it with the timeout value
2020-02-06 14:40:47 +01:00
Andre Puschmann 926f256afa fix RLC dummy class that was missing suspend/resume 2020-02-03 16:26:15 +01:00
Andre Puschmann a32d4ebf59 move PRACH config check into cfg parser 2020-02-03 16:26:15 +01:00
Andre Puschmann 179fd394b2 enb: add SRB2+DRB1 to scheduler AFTER receiving Reconfig Complete
this commit fixes and issue where, after receiving paging and the resulting
PRACH from the UE, the eNB would create DRB1 and already schedule DL traffic
on this bearer. However, since the UE has not received the reconfig message
yet, the DL traffic is dropped since DRB1 isn't set up yet.

the commit also does not reset the BSR state of the bearer inside MAC since
this caused to a stall of the received DL PDU. The value would initially be set to
a non-zero value (after receiving the DL PDU from EPC). But when the bearer
was (re-)introduced to MAC, it would reset the BSR to zero, and, since
MAC never polls RLC, the PDU wasn't sent down until the next PDU arrives
and sets the BSR to a non-zero value again.
2020-02-03 16:26:15 +01:00
Andre Puschmann d3cb2eac83 add RLC suspend/resume to eNB interface 2020-02-03 16:26:15 +01:00
Andre Puschmann 369592544c store last RRC Connection Reconfig with transaction identifier 2020-02-03 16:26:15 +01:00
Andre Puschmann f999e256f9 add error handling for RRC msg packing in eNB 2020-02-03 16:26:15 +01:00
Andre Puschmann ad304207b3 patch PRACH offset parameter for 6 PRB
the 6 PRB eNB requires a different PRACH offset than the default
value of 2 in the SIB1 example. In order to avoid having
to use a separate SIB config with just a single different value,
the patch patches the value to the only right configuration, if it's wrong.
It continues operation but still issues a warning so the user
can change it in the config.
2020-02-03 16:26:15 +01:00
Francisco Paisana c19d033dbc set SIB scheduling to debug mode 2020-01-29 17:38:46 +00:00
Francisco Paisana c8cd12ac53 updated the test logging utils 2020-01-29 17:15:35 +00:00
Francisco Paisana daf471be1f moved test of pdsch collisions for separate test file 2020-01-29 17:15:35 +00:00
Francisco Paisana c537d38650 separated sched tests based on output into a separate file. Added scheduler random tester to unit tests 2020-01-29 17:15:35 +00:00
Francisco Paisana af0b80b0a7 fix test for prb==6 and accidental adaptive retx in UL 2020-01-28 17:15:23 +00:00
Francisco Paisana a9b8c3fd55 fix msg3 prb limit for prb==6. It has to collide with PUCCH 2020-01-28 17:15:23 +00:00
Francisco Paisana 39fff9ed68 fix potential bug with grouping of RARs with same RA-RNTI but different prach_tti. The scheduler might not clear the old tti on time before the grouping. 2020-01-28 17:15:23 +00:00
Francisco Paisana de195e9521 changed the RAR schedule to support the allocation of nof_grants lower than the current nof_grants in the queue with same ra-rnti 2020-01-28 17:15:23 +00:00
Francisco Paisana e9ca6e3d52 fix rar size 2020-01-28 17:15:23 +00:00
Francisco Paisana a74dcd947f changed rar/msg3 scheduling to accommodate multiple rars per TTI 2020-01-28 17:15:23 +00:00
Francisco Paisana dc782e514b change the naming from tti --> sf for scheduling operations specific to a subframe 2020-01-28 17:15:23 +00:00
Xavier Arteaga a6105a3020 SRSENB: made possible custom UL/DL frequencies for each carrier 2020-01-28 11:22:50 +01:00
Xavier Arteaga 604e61810e SRSENB: moved set tx/rx frequency to txrx class 2020-01-28 11:22:50 +01:00
Xavier Arteaga c5dcc5e95b SRSENB: moved backwards compatibility enb conf check 2020-01-28 11:22:50 +01:00
Xavier Arteaga c2b23d273b SRSENB: keep backwards compatibility of enb.conf 2020-01-28 11:22:50 +01:00
Xavier Arteaga 5dcb6b5960 SRSENB: Set default PRACH sequence root index in SIB2 2020-01-28 11:22:50 +01:00
Xavier Arteaga 31dffb785f SRSENB: fix segmentation fault 2020-01-28 11:22:50 +01:00
Xavier Arteaga 9a853d8692 SRSUE: fix compilation 2020-01-28 11:22:50 +01:00
Xavier Arteaga 922481659b SRSENB: minor corrections 2020-01-28 11:22:50 +01:00
Xavier Arteaga b08c1f003e SRSENB: enabled multiple cells from rr.cfg 2020-01-28 11:22:50 +01:00
Francisco Paisana 5ae3afd2b8 created cbit_ref for unpacking const buffers 2020-01-23 12:22:19 +00:00
Francisco Paisana 5468189cd9 fix some variables' naming (e.g. x2_ap -> x2ap, e_rab -> erab) 2020-01-21 00:58:19 +00:00
Francisco Paisana 2a83eee0ee fix security key setup 2020-01-21 00:58:19 +00:00
Francisco Paisana 83758e4f55 fix integrity/ciphering bit setting 2020-01-21 00:58:19 +00:00
Francisco Paisana ee24b59924 converted s1ap to new s1ap asn1 lib. Cleaned up bitstring packing/unpacking and bitstring types 2020-01-21 00:58:19 +00:00
Francisco Paisana 25bb36cdc3 converted ho preparation to new s1ap asn1 lib. Extended s1ap test 2020-01-21 00:58:19 +00:00
Francisco Paisana 6d1172de71 converted enbstatustransfer and ulnastransport to the new s1ap asn1 lib 2020-01-21 00:58:19 +00:00
Francisco Paisana 40baed0b3e converted uecontextmodificationresponse, initial setup request, and s1setup request to the new s1ap asn1 lib 2020-01-21 00:58:19 +00:00
Francisco Paisana b1c5bf7185 reverse addrv4 packing in s1ap 2020-01-21 00:58:19 +00:00
Francisco Paisana a740fcb954 bug - wrong ue context release cmd 2020-01-21 00:58:19 +00:00
Francisco Paisana 3066b404ac fix integer ext asn1 generation 2020-01-21 00:58:19 +00:00
Francisco Paisana b6c53d786b updated s1ap rrc interface with new asn1 lib types 2020-01-21 00:58:19 +00:00
Andre Puschmann fef6893ce4 make user activity handling independent of system time
this commit removes the getsystime() call from the activity handling.
it uses a single timer per UE to handle its activity.

three different timer values exist. one for the Msg3 reception. This
is like before and is quite low to quickly remove fake UEs from the
RRC. The second is a generic value (set to 1s for now) that covers
the entire UE configuration phase where multiple messages are sent
back and forth until the UE is fully set up and the default
bearer runs. From there on, the UE inactivity timer is used which
may be much bigger than 1s.
2020-01-14 20:52:09 +01:00
Andre Puschmann e5ed6ac870 fix tiny memleak by not joining input thread 2020-01-14 20:52:09 +01:00
Andre Puschmann 13bc9196b0 fix uninit memory in metrics processing 2020-01-14 20:52:09 +01:00