Commit Graph

252 Commits

Author SHA1 Message Date
Francisco Paisana c19d033dbc set SIB scheduling to debug mode 2020-01-29 17:38:46 +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 5dcb6b5960 SRSENB: Set default PRACH sequence root index in SIB2 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
yagoda 2db90c5dd3 allowing TA CE commands in Msg4 2020-01-14 16:53:57 +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 6ec573987a remove default value for 'blocking' param from pdcp::write_sdu()
there were two defaults and one was shadowing the other. This
commit removes both defaults and uses blocking-mode for RRC
calls to PDCP in the UE. The eNB write_sdu() uses the non-blocking
mode by default. We have to review the eNB's RRC perhaps and use blocking
there too and non-blocking only for data plane
2019-12-29 23:45:37 +01:00
Francisco Paisana 2eb6145b99 reset carriers on each set_cfg call 2019-12-18 16:06:21 +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 705cd3c211 fix typos spotted by aleksander0m 2019-12-17 16:54:02 +01:00
Pedro Alvarez c5979f59eb Clang format UE, eNB and lib (#850)
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
2019-12-16 16:04:22 +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 d59016ae68 use of srslte::log* type for ASN1 logging. Initialization of the asn1 and rrc_asn1 loggers done now in both the ue and enb 2019-12-12 15:45:24 +00:00
Andre Puschmann c379ef6cb1 fix uninit var 2019-12-12 16:29:04 +01:00
Francisco Paisana d270518d69 updated rrc to new srsasn1 version 2019-12-11 19:58:20 +00:00
Francisco Paisana 1212d403c6 added {} in if condition 2019-12-11 17:41:49 +00:00
Francisco Paisana 6b4488d5c1 added sending of enb status transfer from SeNB 2019-12-11 17:41:49 +00:00
Francisco Paisana c7f11e5690 fixed issue with the liblte_s1ap transparent container packing 2019-12-11 17:41:49 +00:00
Francisco Paisana 39fcf25e0d added extra tests for handover. Did a some refactoring to move boilerplate out of the test mobility function 2019-12-06 11:49:01 +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 b792a3158c removed magic numbers for s1ap timers, and handled the error in the s1 ho cmd 2019-12-05 17:36:15 +00:00
Francisco Paisana 524c80a804 added handling of ho command 2019-12-05 17:36:15 +00:00
Pedro Alvarez e1cdd51eba Clang-formated before pull request 2019-12-04 18:21:14 +01:00
Pedro Alvarez e68956bcf6 Adding discard timer timeout to PDCP config. 2019-12-04 18:21:14 +01:00
Pedro Alvarez a049ec6b82 Finished to add boiler plate code to support PDCP discard notifications to RLC. 2019-12-04 18:21:14 +01:00
Pedro Alvarez 2e7ddef038 Continue to add discard_sdu to RLC interfaces. 2019-12-04 18:21:14 +01:00
Francisco Paisana ab3d7dd413 updated sched interface for multiple carriers 2019-12-03 15:46:22 +00:00
Francisco Paisana 1da86df597 added map between cc_idx and enb cell specifier 2019-12-03 10:04:11 +00:00
Francisco Paisana eeb47f8fa4 fixed issue regarding repetition of ConRes tx 2019-12-03 10:04:11 +00:00
Francisco Paisana e94e0a8641 changed the logic associated with the tx of the conres CE 2019-12-03 10:04:11 +00:00
Francisco Paisana 3159a5b84a added cc_idx to dl_rach_info 2019-12-02 12:36:27 +00:00
Francisco Paisana 01847c5f5d phy_config_enabled is general to all the carriers of the ue 2019-12-02 12:36:27 +00:00
Francisco Paisana cab9327b1a updated scheduler interfaces to accommodate multiple carriers 2019-12-02 12:36:27 +00:00
Francisco Paisana 6d4f746a61 moved tti_sched_result out of carrier_sched. Removed interdependencies between the two classes. Simplified ra_sched and bc_sched initialization 2019-11-28 20:22:40 +00:00
Francisco Paisana 7990e2f563 use of a common tti_params struct to store all values derived from tti_rx 2019-11-28 20:22:40 +00:00
Francisco Paisana 36c45c7d64 added the changes in the enb stack from next 2019-11-28 11:57:41 +00:00
Francisco Paisana 54992e72f1 fixed and simplified multiqueue task api to avoid dangling pointers. 2019-11-28 11:57:41 +00:00
Francisco Paisana ac4d3b9624 std::functions do not accept move-only captures. So I had to create a wrapper earlier. In this PR, I cleaned a bit the previous API for the code to be a bit more readable 2019-11-28 11:57:41 +00:00
Francisco Paisana 011b2168a6 grouped different sched params/args/derived params into a single struct to simplify the ctor api of different sched sub components 2019-11-27 15:20:55 +00:00
Andre Puschmann 6f72cbffab fix snprintf of uint64 for ARM 2019-11-24 14:59:54 +01:00
Pedro Alvarez d4fb4d8c86 Fixup clang-format in pdcp before PR. 2019-11-21 13:18:30 +01:00
Pedro Alvarez 15613465cf Moving some initialization from init function to constructor in the PDCP entities. 2019-11-21 13:18:30 +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 73e06a0858 removed threads from eNB MAC 2019-11-20 15:52:21 +00:00
Francisco Paisana 151159e2c6 avoid passing stack vars by reference in callbacks 2019-11-20 10:34:35 +00:00
Francisco Paisana e8487211e4 changed the naming of mch to m1u in the gtpu class 2019-11-20 10:34:35 +00:00
Francisco Paisana 2512e0fd79 removed thread from GTPU MCH 2019-11-20 10:34:35 +00:00
Francisco Paisana 1400777639 removed 1st thread from GTPU 2019-11-20 10:34:35 +00:00
Francisco Paisana a9a33256e9 fixed some of the net utils functions 2019-11-15 17:57:36 +00:00
Francisco Paisana 546ee98879 fixed small issue that was causing compilation errors 2019-11-15 17:57:36 +00:00
Francisco Paisana 2de0eee9c7 clean up some comments 2019-11-15 17:57:36 +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 c8e50c1e19 DL/UL sched are called in a round-robin fashion 2019-11-08 16:02:27 +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
Francisco Paisana ee209fc0a2 added a stack thread to the eNB and move the tti_clock() method to this thread to avoid race conditions 2019-11-07 20:43:06 +01:00
Xavier Arteaga 2e1479e9d6 SRSENB: Added PHY CA PRACH workers 2019-11-07 16:01:01 +01: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 35c9f02579 added quant cfg parsing and addition to measCfg 2019-11-01 15:48:47 +00:00
Francisco Paisana b6b1dd1814 extended mobility test 2019-11-01 15:48:47 +00:00
Francisco Paisana 427fdb83fe using std::make_tuple now to support old compilers. Move operator== definitions for meascfg types to rrc_asn1_types 2019-11-01 15:48:47 +00:00
Francisco Paisana 200e18ee3a added diff computation for reportconfig and measid. Tests passing 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 b7559171b7 added logic to insert cells from conf file into var_meas_cfg and calculate diffs between meas_objs 2019-11-01 15:48:47 +00:00
Francisco Paisana b88b8fde7b moved the carrier scheduler and tti_result_t classes out of the main sched class. Now it is possible to instantiate more than one carrier_sched per sched 2019-10-31 16:01:04 +00:00
Francisco Paisana 2019fec37a moved dl/ul scheduling to the a separate class carrier_sched 2019-10-31 16:01:04 +00:00
Francisco Paisana 00d24872d9 clang-format on all the scheduler files 2019-10-31 16:01:04 +00:00
Francisco Paisana c1f9d8768c started to implement separate SIB scheduler, and its tests. This is particualrly important for CA 2019-10-31 16:01:04 +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 b0d2584795
Merge pull request #735 from softwareradiosystems/pr_sched_changes
Scheduler changes
2019-10-23 20:40:38 +01:00
Francisco Paisana 8440126d35 removal of srslte::timers class 2019-10-23 19:33:25 +01:00
Francisco Paisana d2c56caf7e applied new timer class to the whole code base 2019-10-23 19:33:25 +01:00
Francisco Paisana 6aec98e140 cleanup of some type names, and other minor changes 2019-10-23 18:47:37 +01:00
Francisco Paisana c19e0d9423 moved the RAR/Msg3 scheduling to a separate class 2019-10-23 18:46:26 +01:00
Francisco Paisana 388776d1fa provided a general way to access ue_db from the scheduler - part2 2019-10-23 18:07:42 +01:00
Francisco Paisana e0b8be61e5 provided a general way to access ue_db from the scheduler 2019-10-23 18:07:42 +01:00
Francisco Paisana d79e49ed4c moved the BC scheduling to a separate class/file 2019-10-23 18:06:32 +01:00
Francisco Paisana 837c16557f started to implement separate SIB scheduler, and its tests. This is particualrly important for CA 2019-10-23 17:48:47 +01:00
Francisco Paisana 84ac16826f modernized the scheduler code, and removed some clang-tidy warnings 2019-10-23 17:48:47 +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
Ismael Gomez 1d83bb08e2 Changes in ACK procedure to support CA. Tested 1 cell in SISO/MIMO 2019-10-14 11:20:35 +02:00
Xavier Arteaga b3e8c4ae6a SRSENB: Schedule RI reporting 2019-09-30 15:15:18 +02:00
Andre Puschmann a2ab043c0d fix memleaks and uninitialized vars found by cppcheck 2019-09-20 10:55:29 +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
Andre Puschmann 49279c89d8 send DL-DCCH on SRB2 after it has been established 2019-09-09 17:16:22 +02:00
Harald Welte 2e426948fe [ENB] Add CFSB support
This commit introduces CSFB (circuit switched fall-back) capabilities to
srsLTE.  Actually, all the eNB has to do is to send a
RrcConnectionRelease with the RedirectedCarrierInfo IE.

The MME triggers this by the S1AP CS Fallback Indicator IE, which may
be present either in the Initial Context Setup Requst or in the
UE Context Modification Request.

As srsLTE has no support for the UE Context Modification Request at all
yet (!), basic support for this message is introduced in this patch.

Both Mobile Originated and Mobile Terminated CSFB with a coupel of
different UE models have been verified using this patch in a setup
consisting of srsENB attached to an undisclosed EPC connected via SGsAP
to a complete  Osmocom 2G network.

Closes: #358
Closes: #363
2019-09-09 16:59:00 +02:00
Francisco Paisana 67d6a25194 Moving mac timers to stack timers (#638)
* first step towards moving MAC timers to stack. Mac is still using its own timers. srslte::timers class can be restructured.

* moved timers out of the UE MAC
2019-09-04 15:28:09 +02:00
Francisco Paisana 116dc0a57b fixed group extensions, removed extra presence flag for copy_ptr<T> types as it was just a source of bugs. 2019-09-02 20:21:54 +02:00
Harald Welte d01dd7fb91 [ENB] Fix builds with #define WRITE_SIB_PCAP
Building with WRITE_SIB_PCAP was broken in April 2019 in commit
7780b1aba5.  Let's make it work again.
2019-08-05 11:24:48 +02:00
Pedro Alvarez 6efa944b5e Removed srslte prefix from pdcp_config_t 2019-07-30 15:01:50 +02:00
Pedro Alvarez 494be243c0 Changed security direction to use an enum. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 964db869a6 Fix mistake in configuring SRB1's PDCP. 2019-07-30 15:01:50 +02:00
Pedro Alvarez d3b6828082 Changed PDCP configuration to explicitly have tx and rx direction. Decrypt on PDCP NR seems fine. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 73e30743d1 Added enum to PDCP config to replace two bools. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 457f35699d Reverted back to a single config structure between PDCP NR and PDCP LTE. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 005d03cb1a Starting to split pdcp_entity into pdcp_entity_lte and pdcp_entity_nr to support NR PDCP 2019-07-30 15:01:50 +02:00
Andre Puschmann 09610ce788 add type setter to sch_subh and use it for MCH PDUs 2019-07-23 15:38:21 +02:00
Andre Puschmann e60a4490d2 streamline embms parameters and fix MCS selection 2019-07-21 22:27:17 +02:00
yagoda 408400bee6 adding fixes and tests for eMBMS 2019-07-21 22:27:17 +02:00
Francisco Paisana 424876c5e4 added DL TTI mask for MBMS 2019-07-21 22:27:17 +02:00
Xavier Arteaga 5e49aca835
Merge pull request #570 from softwareradiosystems/feature_256qam_fix
Resource allocation extended tables and PDSCH table 2 for 256QAM
2019-07-12 12:32:47 -04:00
Andre Puschmann 4e86b2f6b2 introduce layerd architecture we use for UE to eNB
- this allows flexible use of different PHYs and radios
- use common radio_multi (moved to lib)
2019-07-12 04:17:56 +02:00
Ismael Gomez d595c4d882 Fixes issue #545 and unlocking of tti_sync condvar before closing causing deadlock at stop 2019-07-11 14:55:35 +02:00
Andre Puschmann 5faa819dcd fixing uninitialized class members found by coverity 2019-07-08 11:12:46 +01:00
Andre Puschmann 92f0d58856 mac: move further init/config into ctor to allow early logging, etc. 2019-07-05 17:24:06 +02:00
Andre Puschmann 6a11030ae1 enb: fix race condition in workers overwriting the DL tx buffer
this adds a own tx buffer for each HARQ PID
2019-07-05 10:48:30 +02:00
Francisco Paisana 58e2e51044 removed rlc_interfaces. The rlc_cnfg types are now part of the rrc_interface_types. Removed implicit RB initialization in the RLC. 2019-07-05 10:44:15 +02:00
Francisco Paisana b936629221 removed rrc asn1 header from bcd_helpers, from rlc_interface, and rlc tests 2019-07-05 10:44:15 +02:00
Guillem Foreman 535325bc37 srsLTE: added resource allocation extended tables for 256QAM and integration with PDSCH test 2019-07-04 15:49:43 +02:00
Andre Puschmann 62a4fa1c93 fix various potential buffer overruns
this is based on suggested fixes by Dirk Grabinski and David who
have fuzzed various parts of srsLTE using afl
2019-07-04 14:43:59 +02:00
Francisco Paisana 34fde16b40 change scheduler mutex to std::mutex (#546)
* change scheduler mutex to std::mutex

* rename lck to lock
2019-07-01 11:38:37 +02:00
Pedro Alvarez 498f1b8e4b Small PDCP fixes:
- Moved most the initialization of the pdcp_entity to the header.
  - Initilize some variables in gtpu_ntoa.
  - Removed debug print.
  - Format eNB GTP-u debugging code.
2019-06-27 17:09:52 +02:00
Pedro Alvarez 5d8dcbe4cb Make sure that PDCP SN is initialized properly in the eNB. UE attaches again when using encription. 2019-06-27 17:09:52 +02:00
Pedro Alvarez b97d1191f4 Added more debug info at eNB GTP-U. Changed the pdcp_entity to follow the standard more strictly for RLC AM DRBs. 2019-06-27 17:09:52 +02:00
Pedro Alvarez 09144a2c5f Added check of IP version to the eNB GTP-u. Helpfull for debug. 2019-06-27 17:09:52 +02:00
Andre Puschmann 58763fb714 stack: move initialization of log object into ctor
this fixes the issue when the stack is torn down if, for example,
the radio couldn't be loaded correctly. it will hence call stop() on all stack
components which are not initialzized yet, and logging therefore doesn't work.
the log object is know during contruction time and therefore can be passed
in as soon as possible.
2019-06-27 14:51:33 +02:00
Andre Puschmann da35f41dd5 rework MAC logical channel prioritization 2019-06-26 17:57:25 +02:00