Commit Graph

976 Commits

Author SHA1 Message Date
Andre Puschmann 87f1b2a939 catch exceptions from eNB config parser
since the eNB config gets more complex, especially with CA,
we need to catch potential parsing errors from libconfig,
print an error with the position of the error and gracefully
stop the enb
2020-03-05 20:46:14 +01:00
Francisco Paisana 43e67b8536 created a harq entity that handles all harq procs. This entity accepts as arg the number of harq procs. 2020-03-05 17:51:33 +00:00
Francisco Paisana 1c041b2c1d created harq entity class 2020-03-05 17:51:33 +00:00
Francisco Paisana 9f266161cf increase tbs until allocation is big enough to fit MAC subheader and RLC header 2020-03-05 12:47:43 +00:00
Ismael Gomez 1f3aee2fc0 Fix incorrect parameters 2020-03-05 13:26:16 +01:00
Francisco Paisana 7e840bde86 fix tb idx assignment in scheduler mac sdu alloc 2020-03-05 12:18:05 +00:00
Francisco Paisana d1356568e0 separated sf sched result from sf_sched class. The interface became way simpler. No need for finish_tti() method, sf_sched::new_tti() is called automatically when we access the sf_sched. 2020-03-05 00:04:21 +00:00
Francisco Paisana bb38fa7119 fixed tti resetting after tti end 2020-03-05 00:04:21 +00:00
Francisco Paisana 47b05118ad simplified msg3 allocation. Now we can allocate resources ahead of time (e.g. msg3 is 2 ttis ahead) using the sf_sched interface. It's guaranteed that the given allocations wont be erased when the respective tti starts 2020-03-05 00:04:21 +00:00
Francisco Paisana 8f7890c60a store mask results in separate variables for testing, and reset sf_sched state at the end of the tti 2020-03-05 00:04:21 +00: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 5bdc603113 added error macros 2020-03-03 21:26:17 +00:00
Francisco Paisana b37d9b9930 fixed msg4 setting in sched tester 2020-03-03 21:26:17 +00:00
Francisco Paisana 3cc94c3694 simplified mutexing of the scheduler. One single mutex for everything, and removed rwlock 2020-03-03 21:26:17 +00: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
Francisco Paisana fed06138b9 moved rach_detected to stack thread. Created a more friendly interface to enqueue tasks in stack 2020-03-03 21:03:21 +00:00
Francisco Paisana d10e950650 fix ue streamid assignment in s1ap 2020-03-03 21:19:09 +01:00
Andre Puschmann c79e202fd9 fix typo 2020-03-03 17:20:44 +01:00
Andre Puschmann 8b46f631c1 add basic TTI stats in stack 2020-03-03 16:22:04 +01:00
Francisco Paisana ad9e126299 test for different enb_cc_idxs as pcell. Bug fixes 2020-03-02 16:33:31 +00:00
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 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
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 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
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 7557ef45c8 changed the s1ap to allow the insertion of users without rnti 2020-02-26 15:17:45 +00: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 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 e86862611c update the scheduler interfaces to accommodate the configuration of multiple carriers 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 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 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
Andre Puschmann b0bfc7956d use const& in metrics interface 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 be4ba504bd fix another bunch of uninit memory in tests, and one in srsENB 2020-01-07 11:12:34 +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
Xavier Arteaga 11eafa8ab4 srsLTE: FFTW wisdom gets loaded and saved by default 2019-12-23 22:57: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
Xavier Arteaga 8dd1c59e18 Added amplitude and power conversions to dB and viceversa 2019-12-02 09:47:22 +01: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 33aa858118 rr.conf.example fix 2019-11-11 14:48:33 +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
Xavier Arteaga 2b7ef9b4a8 SRSENB: Fixed rr.conf cell list example parsing errors and segfault 2019-11-08 17:33:35 +00:00
Francisco Paisana 56fdf047e6 added default cell_list config to the rr.conf, but commented 2019-11-08 17:33:35 +00:00
Francisco Paisana 37a9501db3 added scell parsing to the rr.conf 2019-11-08 17:33:35 +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
Xavier Arteaga 73517f981e Minor fixes 2019-10-21 16:17:37 +02:00
Xavier Arteaga 423475173d Refactored magnitude and argument extraction from sf_worker 2019-10-21 16:17:37 +02:00
Xavier Arteaga f9a795e985 SRSENB: cleanup and mutex rearange 2019-10-21 16:17:37 +02:00
Xavier Arteaga 8e92baf401 SRSENB: quitsafter entering 'q\n' 2019-10-21 16:17:37 +02:00
Xavier Arteaga 10480f62b3 SRSENB: Split sf_worker and cc_worker 2019-10-21 16:17:37 +02:00
Xavier Arteaga 4238c045a4 fix unitialised value 2019-10-14 14:43:59 +02:00
Xavier Arteaga ce9bcc1033 fix unitialised value 2019-10-14 14:42:34 +02: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
Francisco Paisana a2f1998350 fix issue with thread pool shut down 2019-10-04 10:24:21 +02:00
Francisco Paisana 6db0e474be moved RA waiting procedure to a background task of the stack thread pool 2019-10-02 11:04:47 +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
Ismael Gomez c92c61d560
Optimized front-end logging processing (#641)
Avoid memory allocation and stringstream in log frontend calls (executed from worker threads). Uses a buffer pool of fixed buffer and vsnprintf
2019-09-04 15:32:29 +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 756374419f SRSENB: Add SIB7 (GERAN neighbor) support
This adds the required missing bits to the eNB config file parser
to enable minimalistic support of parsing SIB7 configuration.

SIB7 contains GERAN (GSM) neighbor cell information, which is important
if you are operating a combined 2G+4G netowrk and want to assist the UEs
to reselect GSM cells once they move out of LTE coverage.

An example SIB7 section looks as follows:

sib7 = {
    t_resel_geran = 1;
    carrier_freqs_info_list =
    (
        {
            cell_resel_prio = 0;
            ncc_permitted = 255;
            q_rx_lev_min = 0;
            thresh_x_high = 7;
            thresh_x_low = 7;

            start_arfcn = 871;
            band_ind = "dcs1800";
            explicit_list_of_arfcns = ( 873, 875, 877 );
        }

    );
};

Closes: #357
2019-08-29 20:47:02 +02:00
Andre Puschmann 343c30be4a fix RF metrics/logging in eNB 2019-08-07 14:12:57 +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
Harald Welte 844994f2cd [ENB] Fix enabling of MAC pcap file
when using

[pcap]
enable = true
filename = /tmp/enb.pcap

in enb.conf, there is no pcap file created.

The problem is somewhere in the way how arguments are handled.
pcap.enable is properly parsed into args.pcap.  However, later on,
lte_stack->init(args.stack, rrc_cfg, lte_phy.get()) only passes
args.stack down the road, not args.pcap.  enb_stack_lte::init() then
basically uses args.stack.pcap and not args.pcap, and the latter appears
always false.

Let's remove pcap_args_t from all_args and only use the instance in
stack_args_t.

Closes: #359
2019-08-05 11:24:41 +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 e0bd7f156d replace remaining warning macros with pragma message 2019-07-23 15:38:21 +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
Ismael Gomez 0dac2ef59b Update SIB2 also when forcing p_b 2019-07-17 17:35:36 +02:00
Ismael Gomez feafec2725 Fix srsENB PHY log and reorganized expert args 2019-07-17 12:40:57 +02:00
Andre Puschmann 62eba8f3d8 fix default radio, channel and rx antenna setting in eNB (#594) 2019-07-16 14:32:02 +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
Andre Puschmann e0a28cf4c0 simplify PDCP init and also bypass it for SRB0 on eNB 2019-06-21 15:49:46 +02:00
Francisco Paisana 415d3418b6 reorganized enb to mirror ue director/class structure with a stack class 2019-06-07 15:41:56 +02:00
Andre Puschmann e47010130f extend thread class to set unique thread name in ctor
this will also extend all classes that use srslte::thread
to specify the name of the thread in the ctor as well
as to set the name of the worker threads in the thread pool
the thread name will be displayed in gdb.
2019-06-03 15:03:20 +02:00
Xavier Arteaga 1f52c32b84 SRSENB: Fixed CLang Tidy in enb.cc 2019-05-27 12:21:57 +02:00
Xavier Arteaga 080b4a327c SRSUE: Refactored asynchronous cell and ue_radio. CA Fixed. 2019-05-17 18:13:51 +02:00
Andre Puschmann 65f50cd7ba introduce new UE layer design
- abstract UE object now consists of a radio, a PHY, and a stack layer
- add new stack abstraction layer that combines MAC, RLC, RRC, PDCP, NAS and GW
- PHY layer now has a single stack interface and does not talk to MAC and RRC seperatly
2019-05-17 17:46:28 +02:00
Francisco Paisana 0e3baa0f2f Renamed the reset() method of byte_buffer_t to clear() 2019-05-16 12:35:01 +02:00
Francisco Paisana 3bedc93ba5 added _t to unique_byte_buffer type 2019-05-16 12:35:01 +02:00
Francisco Paisana f469e2178b replaced byte_buffer_t allocated by the buffer pool for unique_byte_buffer which is safer and easier to use 2019-05-16 12:35:01 +02:00
Francisco Paisana 0976ea6f27 created a unique byte buffer that automatically deallocates 2019-05-16 12:35:01 +02:00
Francisco Paisana 7be183c223 rework scheduler 2019-05-14 22:34:50 +02:00
Francisco Paisana b04cb0deb9 using the new choice set api in UE and eNB RRC 2019-05-10 11:59:34 +02:00
yagoda c25f3b0acf increasing rlc UM window size for eMBMS, small adjustment to eMBMS PHY common 2019-05-06 17:06:25 +02:00
Pedro Alvarez d4d7691fab Catch exception by reference to avoid compiler warning. 2019-05-02 11:41:59 +02:00
Ismael Gomez 5e5e797cb9 Adjust 75 PRB radio offset and clean log 2019-05-01 07:40:53 +02:00
Francisco Paisana a0235ccafe better error messages 2019-04-29 21:05:13 +02:00
Francisco Paisana e70e88b8b4 revert prach freq offset auto change 2019-04-29 21:05:13 +02:00
Francisco Paisana 82a0145593 added extra tests in the unpacking of rrc asn1 2019-04-29 17:33:08 +02:00
Francisco Paisana 1674c8939f automatically resolve invalid prach_offset for prb6 2019-04-29 15:53:59 +02:00
Andre Puschmann e4ea96aa79 add check for return value for RRC unpacking
- handle error cases accordingly
2019-04-29 12:39:02 +02:00
yagoda 3842beab0f - fixing pmch file test for standard LTE rates
- adding special value for MTCH stop
- adding error messages for config values incompatible with MBMS
2019-04-29 12:04:42 +02:00
Andre Puschmann 4b01a2e4a0 update copyright notice 2019-04-29 09:20:02 +02:00
Andre Puschmann 205db6f229 add missing license headers 2019-04-26 21:20:12 +02:00
Francisco Paisana 4ba1993815 fixed some race conditions in the scheduler (#411) 2019-04-26 15:52:06 +02:00
Pedro Alvarez c51a8bfe9d Fix compilation error when using GCC 8, C++11 and C complex functions. 2019-04-26 13:57:31 +02:00
Andre Puschmann 45de6c3305 fix selection for EEA0 and disallow EIA0 2019-04-26 12:10:40 +02:00
Ismael Gomez 7780b1aba5 add tdd/ca support 2019-04-25 20:57:58 +02:00
Andre Puschmann bdfb408857 fix uninitialized loop counter 2019-04-22 11:33:20 +02:00
Pedro Alvarez 435d63b871 Making sure errors in the enb.conf is handled gracefully 2019-04-12 16:24:57 +02:00
David Rupprecht 39c49ab1ef Configurable sec algo preference list 2019-04-11 21:38:01 +02:00
David Rupprecht fd34e22c84 Started with local preference selection algorithm 2019-04-11 21:38:01 +02:00
David Rupprecht 735f97ceb6 Fixed Bearer ID for data Bearer and changed debug type for enc data pdus 2019-04-11 21:38:01 +02:00
David Rupprecht b84e49310e Enable encryption in reconfiguration and after security mode command (NOT TEST) 2019-04-11 21:38:01 +02:00
David Rupprecht eb3a83ac45 User Plane key in configuration interface 2019-04-11 21:38:01 +02:00
Francisco Paisana 185242d5f5 default release for ack_nack_repeat 2019-04-11 09:44:20 +01:00
Francisco Paisana 8a0ae614c2 added default value to ack_nack_repeat 2019-04-02 11:03:37 +02:00
Francisco Paisana f778c6ca8d make mcch check 2019-04-02 11:03:37 +02:00
Francisco Paisana 41338293ea added a default radioframe alloc 2019-04-02 11:03:37 +02:00
Francisco Paisana dc0b903130 added default enum inits 2019-04-02 11:03:37 +02:00
Pedro Alvarez aa3a2a3dba Fix compilation issue with GCC 8.x using complex numbers. 2019-03-13 13:18:17 +01:00
Andre Puschmann 3702a6660e fix compilation for gcc 4.x 2019-03-11 14:39:47 +01:00
Andre Puschmann 8e38ef2ee4 print PDU length when logging RRC message 2019-03-07 21:25:10 +01:00
Francisco Paisana 75acb046d9 small p_a initialization fix 2019-02-20 16:14:58 +01:00
Andre Puschmann 6b04435edc move setting of EARFCNs straight into parse_args function 2019-02-20 16:14:53 +01:00
Andre Puschmann 4204321fde fix uninitialised variables in enb during startup 2019-02-20 16:14:42 +01:00
Francisco Paisana 43a8a8e195 checking the number of prbs available for DL requires an additional check for the prb=6 (#322) 2019-02-05 11:50:33 +01:00
Francisco Paisana 15abb2b020 set the correct size of the buffer for paging 2019-02-04 15:01:44 +00:00
Andre Puschmann a436baed39 fix build string for builds without valid .git folder 2019-01-22 12:09:52 +01:00
Francisco Paisana be06f260db fixed issues in the parsing of sibs 2019-01-21 16:39:00 +00:00
Pedro Alvarez c5dad67a16 Adding catch to boost program options parser. 2019-01-18 12:38:56 +00:00
Francisco Paisana 0204db2e12 new asn1 rrc library 2019-01-17 17:43:13 +01:00
Andre Puschmann df7ab7ffe8 Merge branch 'master' into next 2018-12-14 16:54:46 +01:00
Igor Kim 9def82d15b add error handling on binding s1c socket (#267) 2018-12-14 12:02:25 +01:00
Andre Puschmann d52ea8b602 decrease threshold for DL scheduler to allocate SDU
since the RLC buffer state now returns the actual number of
bytes, which may be as low as 2B for a single RLC AM status PDU waiting
to be transmitted, the current DL scheduler wasn't allocating the
PDU even though it was given a grant
2018-12-10 17:48:52 +01:00
Andre Puschmann c3441046c9 simplify RLC buffer status query procedures
- add a simple and low-overhead has_data() method to check whether
  an RLC entity has data to transmit or not
- use this method for all calls that are actually not interested
  in the amount of data to send
- use the more expensive get_buffer_state() for all cases where
  the actual size of the buffer is of importance
2018-12-10 17:48:52 +01:00
Andre Puschmann df40259c26 fix issue in PDCP when bearer ID for DRBs was not starting with 1 2018-12-10 16:58:08 +01:00
Andre Puschmann 4867b16e38 move config file parsing in enb to beginning of init
- this waits with initializing the radio until after the configs have been read
- in case the config files contain any mistake, the enb shuts down gracefully
2018-12-10 10:39:42 +01:00
rubund b801c3dd4e Fix some spelling errors detected by lintian (#271) 2018-12-03 10:36:15 +01:00
Andre Puschmann c60f7e9013 remove "disconnected" from enb console trace 2018-12-03 09:46:44 +01:00
Pedro Alvarez 548808ecee Changing RRC key logging from debug to info. Small readability fix. 2018-11-30 21:42:43 +01:00
Pedro Alvarez 645bd60d75 More debug prints 2018-11-30 21:42:43 +01:00
Andre Puschmann 05abdc9516 remove printf from eNB RRC 2018-11-20 18:36:00 +01:00
Andre Puschmann db910cb84b add CSV metrics for eNB 2018-11-20 12:15:04 +01:00
Andre Puschmann 8a1368c8d6 send connection reject if MME isn't connected 2018-11-16 14:56:39 +01:00
Andre Puschmann c35b467d57 suppress scheduler warning for failed PUCCH allocation for 6 PRBs 2018-10-05 15:12:06 +02:00
Andre Puschmann 5a3fa7c305 fix scheduler issues for 6 PRBs 2018-10-05 15:00:49 +02:00
Francisco Paisana d234f4a614 fix MCS assignment for 6 PRBs
- cherry-picked and resolved conflicts from 0960ef5c6dcd2f9b96169b3f4c266197b922c46e
2018-10-05 15:00:49 +02:00
Francisco Paisana bbfd09b62e add the prach fit checks for PRB=6 2018-10-05 15:00:49 +02:00
Andre Puschmann 15d439761a log build info in eNB/EPC logs 2018-10-05 14:58:09 +02:00
Pedro Alvarez a42c71f8ee Added some debug logs to the eNB GTPU. 2018-10-04 14:44:26 +02:00
Pedro Alvarez 2c761069d4 Adding m1u config to enb.conf.example. 2018-10-04 14:44:26 +02:00
Pedro Alvarez de75a74932 Fixed some compilation issues. 2018-10-04 14:44:26 +02:00
Pedro Alvarez 796e3fd707 Adding M1-U options to eNB config 2018-10-04 14:44:26 +02:00
Pedro Alvarez d443604661 Merge next into gtp_cleanup_sn. Fixed some conflicts. 2018-10-04 12:09:13 +01:00
Andre Puschmann c56fa3b46c only enable eMBMS if both the sib config is present and its enabled in enb config 2018-10-02 10:52:43 +02:00
Paul Sutton 0e4ab77fb0 GTPU cleanup, adding support for GTPU echo response (#265) 2018-10-01 22:18:11 +02:00
Andre Puschmann 0380c83175 remove RF device calibration settings from UE/eNB config
- this remove RF calibration parameters that were an extra
  section in the eNB/UE config but were hardly used (only old bladeRF)
- a better way to pass those parameter would be through the
  device args in the normal rf config section
2018-10-01 21:59:07 +02:00
Andre Puschmann af5a329fec print build-info during enb startup 2018-10-01 21:43:42 +02:00
Pedro Alvarez e925ef0a42 Added some more debug infor to error prints. Making sure that packet is not sent from the eNB if there is an error in the GTP-U header packing. Fixed error in checking msg_type. 2018-10-01 17:34:02 +01:00
Pedro Alvarez c1f633c5c7 Dropping bitfields for now. Using #defines and uint8_t for the flags. 2018-10-01 15:17:26 +01:00
Pedro Alvarez 7b4bc6f132 Integrity fail after service request (#268)
* Adding some debug prints to confirm the issue.
* Cleanup whitespaces.
* More debug prints
* Adding boolean to whether it is actually necessary to send NAS message in RRC reconfiguration.
* Deleting debug prints.
2018-09-28 21:04:01 +02:00
Pedro Alvarez e320c33aef Fixed last compilation issues. 2018-09-28 15:42:28 +01:00
Pedro Alvarez ee04639337 Changed gtpu header flags to use a bitfield. Fixing compilation issues. 2018-09-28 13:46:13 +01:00
Ismael Gomez 42e46bc599 Fix MBSFN section optional and default PRACH configuration for MBSFN example 2018-09-27 18:10:35 +02:00
Andre Puschmann b603125dea Revert "fix eNB config parsing issue causing eMBMS to be always disabled"
This reverts commit 09a47b51b2.

Causes issues when receiving PRACH from UE.
2018-09-26 17:56:37 +02:00
Andre Puschmann 09a47b51b2 fix eNB config parsing issue causing eMBMS to be always disabled 2018-09-26 11:29:36 +02:00
Paul Sutton 569a7cbc94 GTPU cleanup, adding support for GTPU echo response 2018-09-25 15:17:39 +01:00
Andre Puschmann 10a43f04ba Merge branch 'master' into next 2018-09-25 15:10:48 +02:00
Andre Puschmann b27ff06e79 Merge remote-tracking branch 'origin/issue_178' into next 2018-09-25 15:10:38 +02:00
Joseph Giovatto dc3e88079a moved earb_info from parent to be unique per ue to avoid overwrites (#234)
consult integrity check result before proceeding
2018-09-25 14:18:24 +02:00
Andre Puschmann 22599bffda fix bug in PUSCH decoding when multiple UEs provide HARQ feedback 2018-09-24 15:48:38 +02:00
Ismael Gomez 6f0c554445 TA estimate correction factor calibrated for all bandwidths 2018-09-24 15:39:14 +02:00
Pedro Alvarez 49c44a2bd4 Moved int_helpers to lib so that the EPC can use those functions too. 2018-09-24 14:08:00 +01:00
Ismael Gomez 13cba873d5 Make SIB2 mbsfn settings optional 2018-09-24 11:27:22 +02:00
Andre Puschmann d981f129e0 Merge branch 'master' into next 2018-09-20 12:54:05 +02:00
Ismael Gomez dabfbfb75a Fixes #250 2018-09-19 17:37:23 +02:00
Igor Kim 8d48613c38 fix typo in metrics rssi CMA calculation (#230) 2018-09-17 09:43:14 +02:00
Ismael Gomez 6a791f1416 Change TX mutex to semaphores (mutex implementation was violating lock ownership requirement) 2018-09-06 15:22:37 +02:00
Ismael Gomez bc9d342959
New optimization on the PHY for both UE and eNodeB (#251)
* New parallel Turbodecoder implementation in SSE/AVX 16-bit and 8-bit

* Optimised UL Interleaver

* Include TB CRC calculation in FEC encoder

* New threading priorities
2018-09-04 17:51:35 +02:00
Andre Puschmann 4da8bf26f8 use non-blocking PDCP write in GW 2018-07-24 15:50:14 +02:00
Andre Puschmann 27d3d697df refactor RLC part#2
- move metrics into entities
- make configure interface return true/false on success/failure
- add own srslte mode type
2018-07-23 17:30:32 +02:00
Andre Puschmann edfc9df77d Merge branch 'master' into next 2018-07-17 17:50:38 +02:00
yagoda a0fa2d5b01 small fix in eMBMS MAC 2018-07-17 17:04:12 +02:00
Andre Puschmann 47a8b1343f add rwlock to PDCP 2018-07-17 15:27:04 +02:00
Andre Puschmann be3b2fbc08
Merge pull request #239 from softwareradiosystems/epc_stacktrace
Epc stacktrace
2018-07-13 14:28:13 +02:00
Pedro Alvarez 597cf18b9d Changing common/debug.h to crash_handler.h 2018-07-13 11:57:15 +01:00
Ismael Gomez 2d5cdc4f35 Add log to pool deallocate 2018-07-12 18:13:27 +02:00
Ismael Gomez 5474f6d55f Add log to pool deallocate 2018-07-12 18:13:19 +02:00
Pedro Alvarez c3ef88e112 Fixing conflicts with next. 2018-07-12 15:43:27 +01:00
Ismael Gomez 685b368df2 Fix compilation error in previous commit 2018-07-12 11:50:56 +02:00
Ismael Gomez 7df91e1283 Fix compilation error in previous commit 2018-07-12 11:49:56 +02:00
Ismael Gomez 08f7dda0f3 Consider the case of calling gtpu::add_bearer() before initialization 2018-07-12 11:32:38 +02:00
Ismael Gomez d57bf0f786 Consider the case of calling gtpu::add_bearer() before initialization 2018-07-12 11:32:26 +02:00
Ismael Gomez 30dd539220 Add rwlock to sched class 2018-07-12 11:17:57 +02:00
Ismael Gomez d95d0e2e7a Fix issue #179 in master 2018-07-12 11:17:39 +02:00
Ismael Gomez 75e8df2e9f Merge branch 'next' of github.com:softwareradiosystems/srsLTE into next 2018-07-11 15:33:22 +02:00
Andre Puschmann 55b3b61ec1 Merge branch 'master' into next 2018-07-11 13:00:47 +02:00
Pedro Alvarez 7aaa9a1789 Moved srslte_debug_handle_crash to common/debug.c 2018-07-09 14:33:50 +01:00
Björn 23cc0ab011 enb: add bind address for s1ap connection (#128)
add s1c_bind_addr config option to specify the local bind address used for S1AP connections instead of using the GTP address.
This allows operation on setups with split S1U and S1C networks.
2018-07-09 11:52:17 +02:00
Ismael Gomez 881e278a10 Add rwlock to sched class 2018-07-07 12:17:55 +02:00
Ismael Gomez 7c7eed3ad1 Fix issue #179 in master 2018-07-07 11:12:28 +02:00
Ismael Gomez 1aa9951a04 Increased default inactivity timer to 60s 2018-07-06 16:28:54 +02:00
Ismael Gomez 2da9787907 Merge branch 'next' of github.com:softwareradiosystems/srsLTE into next 2018-07-06 15:31:29 +02:00
Ismael Gomez f394dc7aa6 Fix deadlock issue in rach_detect 2018-07-06 15:31:18 +02:00
Ismael Gomez a2615628aa Increase buffer pool size for enb 2018-07-06 15:30:51 +02:00
Ismael Gomez efea8f4436 Set Dropped to debug level and reduce eNodeB RLC TX size 2018-07-06 15:30:26 +02:00
Pedro Alvarez b460ece601 Merge branch 'mbms_tun' into next 2018-07-06 13:01:14 +01:00
Ismael Gomez 19ac35d933 Increased RLC UL buffer size 2018-07-05 18:11:47 +02:00
Ismael Gomez cf5a6f0580 Increased PUCCH RLF threshold and default number of errors 2018-07-05 14:09:46 +02:00
Ismael Gomez 589e569ce9
Changes on srsENB mutexing logic to fix general race condition and deadlock issues (#229)
* fixed some issues with the UL scheduling

* Hack to fix UL scheduler

* minor fix

* Cleaned up code and fixed issue with the update_allocation function

* fixed the console printing in the enb

* log/console fix

* fixed the log print

* added a normalization factor

* RLC: entity uses dynamic instances. Simplified stop/reset/reestablish procedure. Added non-blocking interface

* Limit decimals in metrics stdout

* Changed mutexes to rwlock in RLC/RRC/MAC/PDCP to fix race conditions when removing users

* Fix deadlock bug for MIMO

* Remove headers

* Fix missing unlock causing overflows

* Do not decrease CQI when PUCCH (this is a temporal fix, requires to reduce the maximum MCS)

* Fix mutex unlock in worker

* Configurable RLC tx buffer. Default to 512 for enodeb

* Check NULL SDU in write_sdu()

* Protect RLC objects and tx_queue from being destroyed while using it

* Remove superfluous code

* Disable SIB logging

* Fix block_queue for enb
2018-07-05 11:00:19 +02:00
Ismael Gomez c32ee8944f Merge branch 'next' of github.com:softwareradiosystems/srsLTE into next 2018-07-03 18:57:32 +02:00
Ismael Gomez a8f6081837 Minor changes in scheduler logs and style 2018-07-03 18:23:46 +02:00
Xavier Arteaga 92954c1aa4 Fixed UCI decoder defect in eNb. Improved PUSCH Unit Test. PUSCH CQI is printed like UE. 2018-07-03 17:29:22 +02:00
Pedro Alvarez 0e135adc6f Starting to change gtpu_read_header and gtpu_write_header to lib. 2018-07-03 14:30:20 +01:00
Pedro Alvarez 27dbbcca02 Stripping GTPU in eNB's M1-U. 2018-07-03 12:48:25 +01:00
jctallon 50589108c6 Mbms fixes (#225)
* fixing the threading structure for mbms in the gtpu

fixing some leaks in pmch tests

fixing stack overflow caused by radio objext

* adding sib.conf.mbsfn.example

* creating a different thread_mch object for the gtpu

* Make mch_thread an isolated class

* excluding mbsfn subframes from noise estimation and cfo estimation

* fixing pdsch ue plotting to only show pmch constellation when mbsfn is activated.
2018-07-02 17:51:09 +02:00
Ismael Gomez 115244657f Set GTPU socket to non-blocking 2018-06-29 16:58:38 +02:00
Ismael Gomez 8c92f3fddc
Improvements and fixes on srsENB scheduler (#228) 2018-06-29 11:25:22 +02:00
Andre Puschmann 91e1b27219 Merge branch 'master' into next 2018-06-27 11:43:01 +02:00
Andre Puschmann 492958fdba
Merge pull request #209 from softwareradiosystems/minor_fix
some allocated buffers in the s1ap were not being correctly deallocated
2018-06-26 12:37:58 +02:00
Andre Puschmann 90bdb730ee Merge branch 'est_cause' into next 2018-06-26 10:41:41 +02:00
Andre Puschmann 319f4f4ff2 Merge branch 'next' of github.com:softwareradiosystems/srsLTE into next 2018-06-26 10:41:07 +02:00
Ismael Gomez 9d18349a08 Reduced uhd timeout 2018-06-26 10:27:39 +02:00
Andre Puschmann 064d7bd2dc use original UE establishment cause in S1AP initial UE message 2018-06-25 18:19:57 +02:00
Andre Puschmann b551c82f7b fix bug in packing s1ap 2018-06-25 16:45:32 +02:00
yagoda cca8362a69 adding mbsfn conditional to gtpu to create mch thread only if mbsfn is enabled 2018-06-14 11:33:43 +02:00
Ismael Gomez 3c276e7ae3 Wait to stop ENB/PHY worker 2018-06-13 16:59:19 +02:00
Ismael Gomez 56d3b9297e Fix previous commit 2018-06-13 10:49:28 +02:00