Commit Graph

165 Commits

Author SHA1 Message Date
Francisco Paisana 7a132f9ccd more enb interface comments 2020-04-22 13:34:37 +01:00
Francisco Paisana 0526ae8ab1 updated rrc mobility parsing. added some utility methods 2020-04-22 12:57:11 +01:00
Francisco Paisana 64557740fc use mac_buffer_state interface to schedule CEs in scheduler 2020-04-22 11:34:08 +01:00
Francisco Paisana ec94819f08 changed mechanism for conres ce scheduling to be controlled by rrc 2020-04-22 11:34:08 +01:00
Pedro Alvarez 882a610504 Fix mistake in adding dedicated DRB to scheduler. 2020-04-13 20:45:27 +02:00
Pedro Alvarez b176eef8e7 Using a single map to store erab_info messages. 2020-04-13 20:45:27 +02:00
Pedro Alvarez 84b012051c Added ability to reconfigure more than one DRB in the eNB RRC reconfiguration. 2020-04-13 20:45:27 +02:00
Pedro Alvarez 9b60d7977e Make sure that the NAS buffers for multiple erabs are initialized. 2020-04-13 20:45:27 +02:00
Pedro Alvarez cc2b474754 Starting to add array of erab_info messages. 2020-04-13 20:45:27 +02:00
Pedro Alvarez f872e6ec39 Marking nas_pending a vector to support multiple erab setup on sending RRC reconf. 2020-04-13 20:45:27 +02:00
Francisco Paisana ca7e667a22 small fix in list size check 2020-04-13 11:15:28 +01:00
Francisco Paisana 4d0068243b fixing scell activation in the enb rrc 2020-04-13 11:15:28 +01:00
Xavier Arteaga 5b7493cab5 Added 256QAM modulation tables to scheduler 2020-04-10 17:48:53 +02:00
Xavier Arteaga a4225b189b SRSENB: Added initial UE capability parser 2020-04-10 17:48:53 +02:00
Ismael Gomez 425c70c8d7 Fix CQI scheduling allocation for CA 2020-04-09 22:24:04 +02:00
Francisco Paisana 40da4495ce do a loop in rrc::tti_clock() to process all pending events 2020-04-06 15:55:20 +01:00
Francisco Paisana 076aa6b1f8 fix mobility test for when the eutra_capability is received 2020-04-01 19:27:11 +01:00
Pedro Alvarez 88f56721ee Fix issue where connection was still setup when no EPC was connected. 2020-03-25 22:19:26 +01:00
Francisco Paisana 344eaf49ec use logmap in the whole enb and ue 2020-03-25 15:50:30 +00:00
Francisco Paisana 4baeee10c5 avoid dangerous [] map operator 2020-03-24 17:48:29 +00:00
Francisco Paisana 1839b9a6e5 cleaned up paging code to avoid extra processing steps in worker threads 2020-03-24 17:48:29 +00:00
Francisco Paisana 9c028ab723 removed user_mutex from srsenb::rrc. All that needed to happen was the prach_worker calling add_user from stack thread (done in an earlier PR), and the get_metrics run in the stack thread. I achieved the latter with an extra metrics queue 2020-03-24 17:48:29 +00:00
Andre Puschmann dff00c77c0 srsenb: fix mobility test after adding UE cap enquiry 2020-03-22 18:28:25 +01:00
Andre Puschmann ce45aabfec srsenb: enable UE capability enquiry during attach
the UE capability information isn't used so far but can now
be analyzed in the PCAP
2020-03-22 18:28:25 +01:00
Ismael Gomez 5846e64a4d
Deallocate all CQI resources when deallocating users (#1097) 2020-03-20 12:24:46 +01:00
Ismael Gomez 73447972d8
Fix issue with simultaneous CQI and ACK/NACK transmission in CA (#1067)
* Fix memory corruption when phy calling mac scheduler and not yet initiated

* Do not drop CQI if collision with ACK/NACK and PUSCH

* Allocate CQI resources for SCell properly

* Use UE_PCELL_CC_IDX macro

* Protect ul_sched from being called if not yet started
2020-03-16 13:10:21 +01:00
Xavier Arteaga e832769ae6 Updated copyright 2020-03-16 11:26:06 +01:00
Andre Puschmann 1099e75e7c fix SCell carrier list population for MAC config
the issue caused to assign 0 as enb_cc_idx for the first SCell always
2020-03-13 18:41:24 +01:00
Francisco Paisana 567790c1a2 Renamed struct to store cell context in rrc. Moved sib buffers to this struct. Created helper methods for lookup 2020-03-13 11:46:12 +00:00
Francisco Paisana fe3195bb27 add default pcell to ue_cfg in RRC 2020-03-13 11:46:12 +00:00
Francisco Paisana 349aed5e0d use sib configuration to set SCellToAddModList 2020-03-13 11:46:12 +00:00
Andre Puschmann f14697cdaa schedule PMI for SCells right after PCell, disable SRS for SCells 2020-03-12 21:04:15 +01:00
Andre Puschmann fdb7b0fa41 fix simple typo 2020-03-12 20:55:47 +01:00
Andre Puschmann c534ee2b55 fix SCell packing in RRC reconfig 2020-03-12 12:22:41 +01:00
Andre Puschmann b7aad27d86 move packing of SCell list into extra method and add fill PHY config on the spot
previously we've packed the RRCReconfig with SCellToAddMod list and have then
parsed the message again to pack the PHY config dedicated for the new SCell carrier. This
is now done in one step.
2020-03-12 12:22:41 +01:00
Pedro Alvarez 96c82b3fc6 Moved PDCP configs to pdcp_config.h. Added `as_security_cfg_t` structure to hold access stratum keys.
Refactored PDCP, RRC and USIM accordingly.
2020-03-11 09:00:38 +00:00
Francisco Paisana 9ad80ee29f added initial_dl_cqi to the enb rr.cfg parser 2020-03-10 22:06:07 +00:00
Francisco Paisana 698899d309 added scells to enb rrc reconf message 2020-03-10 21:32:16 +01:00
Andre Puschmann f2e1bfa699 refactor naming for s/p/cell structs and {enb,ue}_cc_idx 2020-03-10 15:01:00 +01:00
Andre Puschmann 2edecea33e fix SIB transmission for CA
Avoid double buffering of SIBs in MAC as this would require one buffer for each CC.
Instead, use byte_buffer managed by RRC that contains packed SIBs to avoid
double memcpy for each SIB tx. Only use MAC provided buffer in error case.

Also avoid MAC calling RLC for each SIB and call RRC directly.
2020-03-09 14:18:09 +01:00
Andre Puschmann 120ad76c63 refactor cell param handling and fix SIB transmissions
- move cell specific eNB params to cell list in rr.conf
- make sure DL EARFCN and DL freq can be used to manually overwrite a single cell config
- fix SIB packing and transmission for multi cell configs
- introduce cell list to MAC
- adapt default enb.conf.example and rr.conf.example
2020-03-06 16:20:44 +01:00
Pedro Alvarez afc209711c Fix jump depending on uninitialized variable in srsenb::sched_ue::set_bearer_cfg_unlocked 2020-03-04 22:03:17 +01:00
Francisco Paisana 7210c35c6c checked all methods of srsenb::pdcp to see if they are called by different threads. Since it is all single-threaded, I removed the locks 2020-03-03 21:03:37 +00:00
Xavier Arteaga 4c61ffd391 SRSENB: set UE common PHY configuration in RRC::UE constructor 2020-03-02 12:19:09 +01: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 d831522692 addition of SCell Activation CE Cmd to scheduler and MAC 2020-02-14 21:49:01 +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
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 2dc31ea440 added interface to configure multiple cells from the RRC 2020-02-07 15:06:46 +00: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 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 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
Xavier Arteaga 5dcb6b5960 SRSENB: Set default PRACH sequence root index in SIB2 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 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
Francisco Paisana f280720564 this fix was detected by Syed in the mailing list 2020-01-08 13:45:26 +01:00
Andre Puschmann 75672324b9 fix RRC connection reconfig for new bearer
this fixes the packing of a RRC connection reconfig after creating
a new ERAB

it also adds a PDCP config factory based on the received request
2019-12-18 15:27:42 +01:00
yagoda 845c0fc2c0 fixing lcid issue with eMBMS, adding MRNTI user to stdout metrics 2019-12-18 12:18:58 +01:00
Andre Puschmann 476f970ee1 replace FIXME with TODO 2019-12-18 11:25:56 +01:00
Andre Puschmann c7ee887170 add factory function for creating PDCP config 2019-12-16 14:06:26 +01:00
Andre Puschmann 8a064cd3a6 pass msg_type from caller when logging RRC message
before the type of some message wasn't displayed correctly,
like SIBs, for example because the logger didn't
know the filed to retrieve the type string
2019-12-16 12:49:07 +01:00
Andre Puschmann 60d07f1656 assign msg-type to temp variable before logging ASN1 message in RRC 2019-12-16 12:49:07 +01:00
Francisco Paisana d270518d69 updated rrc to new srsasn1 version 2019-12-11 19:58:20 +00:00
Francisco Paisana a18a7e307e moved all the parsing of the libconfig files to separate functions that can be called from individual tests. Created several stack layer dummy classes for testing. Extended the rrc_mobility test to check correctness of RRC HOPreparation struct 2019-12-06 10:21:41 +00:00
Francisco Paisana 524c80a804 added handling of ho command 2019-12-05 17:36:15 +00:00
Pedro Alvarez e68956bcf6 Adding discard timer timeout to PDCP config. 2019-12-04 18:21:14 +01:00
Francisco Paisana 0f01b0acc2 clean paging_opportunity function 2019-11-20 15:52:21 +00:00
Francisco Paisana 77f63f7bcd removed gtpu mutex 2019-11-20 15:52:21 +00:00
Francisco Paisana 76673d2d40 cleaned up socket util methods, and made the S1AP non-blocking. 2019-11-15 17:57:36 +00:00
Andre Puschmann 30aac5a89a fix wrong c-type cast accessing UE database and uninit mem 2019-11-15 17:20:51 +01:00
Aleksander Morgado ed6044eb54 enb,rrc: always print full RRC message contents
Do not limit them to 1024 chars.
2019-11-15 16:34:10 +01:00
Francisco Paisana 177e880293 removed extra threads from enb rrc 2019-11-11 15:20:10 +00:00
Francisco Paisana ff62ae6ad0 created the method chain in RRC to receive and handle the response to a S1AP HORequired 2019-11-10 22:06:31 +00:00
Francisco Paisana 50ed2ccfec added the handling of ho preparation failure and an ue class to s1ap 2019-11-10 22:06:31 +00:00
Francisco Paisana 57cd40ca31 added an ho required message send from SeNB to MME 2019-11-10 22:06:31 +00:00
Francisco Paisana 690a9850e7 cleaned up some old patterns and run clang-format in RRC and scheduler 2019-11-08 13:59:38 +00:00
Andre Puschmann 2f00fd62ec fix PDCP config in TTCN3 SS 2019-11-07 14:12:08 +01:00
Pedro Alvarez b7fdcaabc5 Starting to add reordering timers at PDCP NR entity. Timeout seems to be triggered correctly and pass the SDUs to the upper layers when it expires. First tests passing. 2019-11-07 14:12:08 +01:00
Francisco Paisana b6b1dd1814 extended mobility test 2019-11-01 15:48:47 +00:00
Francisco Paisana 1524e28c3a finished the function to compute diffs between cells/measObjs of two var_meas_cfg objects. Added tests for this. Now the update of a UE's var_meas_cfg is made via a shared pointer. 2019-11-01 15:48:47 +00:00
Francisco Paisana 22f2781f28 fixed bug associated with the initialization of srsenb::rrc::ue. Disabled std::map::operator[] as a result 2019-10-30 14:27:37 +01:00
Francisco Paisana 7e62d6d1f9 added parser for rrc_cnfg section of rr.conf file, and dummy rrc_mobility class 2019-10-29 15:27:09 +00:00
Francisco Paisana d79e49ed4c moved the BC scheduling to a separate class/file 2019-10-23 18:06:32 +01:00
Ismael Gomez 3828e03f33
Refactor in eNodeB, add channel emulator and fixes in OFDM
* Added channel emulator to srsENB. Added support for fixed delay

* Bug in OFDM when using nonguru mode

* A few changes and refactor in eNodeB
2019-10-23 11:09:39 -05:00
Xavier Arteaga b3e8c4ae6a SRSENB: Schedule RI reporting 2019-09-30 15:15:18 +02:00
Ismael Gomez 6bb0790cf1
Fix coverty issues (#652) 2019-09-13 15:06:20 +02:00
Pedro Alvarez 004db4a067 Applied clang-format to zuc_support PR. 2019-09-10 13:46:21 +02:00
Pedro Alvarez 1ae8ccda8c Added EIA3 and EEA3 to default UE capabilities to srsUE. Added parsers for EEA3/EIA3 config options in srsENB and srsEPC 2019-09-10 13:46:21 +02:00