166 Commits (eba0edea4a22264abbc371ab59135411e80f18b0)

Author SHA1 Message Date
Francisco Paisana 82eb31f70f add rlc metrics to enb 4 years ago
Francisco e2654e69ec Enable pdu stack latency measurements in the eNB. 4 years ago
Pedro Alvarez 7eebd71627 Added S1AP E-RAB release command/response handling to srsENB.
Added the ability to srsEPC to send the E-RAB release command.
4 years ago
Pedro Alvarez 49bcffcdf8 Fix issue packing TEID in Error indication. 4 years ago
Pedro Alvarez 235f373af7 Started to add ability to send error indication when G-PDU from invalid TEID is received. 4 years ago
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 4 years ago
Pedro Alvarez d05bc064b5 Reduced SCTP connect() timeout.
Added configuration for RTO_MAX. Cleanup debug prints.
4 years ago
Francisco Paisana 137e554eb3 reestablish pdcp bearers is required in case of AM bearers 4 years ago
faluco dfeed52514 - Rename out_stream function to console. 4 years ago
faluco 62faef7c71 - Replaced all uses of the log::console method. 4 years ago
Francisco Paisana dcf5a727f2 do not send RRC release in case the eNB receives a S1AP UEContextRelease command and the UE is doing handover. Handle GTPU end marker 4 years ago
Andre Puschmann 49655cd33c enb,s1ap: only log info in the s1ap connection procedure
the event is logged as error by the calling function already
4 years ago
Andre Puschmann 655c7ae8ae enb: fix warning when removing user
when removing a user from the eNB we iterated over all possible LCIDs
and set the buffer state to zero in the scheduler.

this resulted in following log entries:

13:57:23.856334 [RRC ] [I] Received Release Complete rnti=0x46
13:57:23.856352 [MAC ] [W] [ 5149] The provided lcid=6 is not valid
13:57:23.856362 [MAC ] [W] [ 5149] The provided lcid=7 is not valid
13:57:23.856368 [MAC ] [W] [ 5149] The provided lcid=8 is not valid
13:57:23.856371 [MAC ] [W] [ 5149] The provided lcid=9 is not valid
13:57:23.856376 [MAC ] [W] [ 5149] The provided lcid=10 is not valid

we now check if the bearer exits at RLC and only report those to the MAC.
4 years ago
Francisco Paisana bb5dd92dca implemented s1 handover cancellation procedure to force the target enb to release the ue ctxt 4 years ago
Francisco Paisana 8c9e596f89 refactored s1ap handover request interface. cleaned up rrc tenb s1 handover code 4 years ago
Andre Puschmann 8e631131c0 s1ap: fix uint64_t printf for 32bit machines 4 years ago
Francisco Paisana 5d1343fe75 implemented S1 bearer status transfer 4 years ago
Francisco Paisana db8af399f8 extended rrc tenb s1 handover test. implemented layer reconfig during s1 handover 4 years ago
Francisco Paisana 7605c7df23 added s1ap handover notification, fixed s1ap asn1 bug, and fixed bad fields for admitted erabs in ho req ack 4 years ago
Francisco Paisana 26f46ea067 add S1 Handover Request handling in target eNB 4 years ago
Ismael Gomez 382811e10e
Update S1AP RNTI context when doing Reestablishment (#1582) 4 years ago
Andre Puschmann a7911f0dab pdcp,rlc: refactor SDU queueing policy
this patch refactors the SDU queuing and dropping policy of the RLC and PDCP layer.
the previous design had issues when packets have been generated at a higher
rate above the PDCP than they could be consumed below the RLC.

When the RLC SDU queues were full, we allowed two policies, one to block on the write
and the other to drop the SDU. Both options are not ideal because they either
lead to a blocking stack thread or to lost PDCP PDUs.

To avoid this, this patch makes the following changes:

* PDCP monitors RLC's SDU queue and drops packets on its north-bound SAP if queues are full
  * a new method sdu_queue_is_full() has been added to the RLC interface for PDCP
* remove blocking write from pdcp and rlc write_sdu() interface
  * all writes into queues need to be non-blocking
  * if Tx queues are overflowing, SDUs are dropped above PDCP, not RLC
* log warning if RLC still needs to drop SDUs
  * this case should be avoided with the monitoring mechanism
4 years ago
Francisco Paisana 5e06430455 removal of stack handler interface 4 years ago
Francisco Paisana 1a9c04bf2f use of task scheduler handle in pdcp 4 years ago
Francisco Paisana 42969ad992 add tb size as argument to gnb 4 years ago
Francisco Paisana f0874b780b add radio_base/null classes 4 years ago
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
4 years ago
Pedro Alvarez 66d4f320e5 Added intereface to set PDCP state after reestablishment. 4 years ago
Pedro Alvarez 33567d81db Added interface to get internal PDCP state. 4 years ago
Pedro Alvarez 9df40c3af0 Added debug GTPU print. 4 years ago
Francisco Paisana f5174415f8 add srsenb::sdap class 4 years ago
Francisco Paisana 0916e29de4 add srsenb::rlc_nr class 4 years ago
Francisco Paisana 9001117b2d add srsenb::pdcp_nr class 4 years ago
Pedro Alvarez 960c0e97cd Added handling of RRC re-establishment to srsENB.
* Added the appropriate code for handling and sending the
   re-establishment procedure messages to rrc_ue.c/.h.
 * Triggered RRC reconfiguration after the reception of RRC
   re-establishment complete
 * Refreshed K_eNB at the reception of re-establishment
   request
 * Changed the mapping of TEIDs to RNTIs in the GTP-U layer,
   as the RNTI might change with reestablishment.
4 years ago
Francisco Paisana 452c043370 created a global map of lcids to srbs/drbs for NR 5 years ago
Francisco Paisana 026628a84f use of reestablishment method to reset the RLC bearers during handover 5 years ago
Ismael Gomez a1f0f8de35
Add callback to RLC to indicate BSR for TX and reTX queues (used in ENB) (#1361) 5 years ago
Francisco Paisana e8aff22e1b using new rrc obj id util methods in handover code 5 years ago
Francisco Paisana f43985b6cd small updates for testing handover and configuring the rrc 5 years ago
Pedro Alvarez 218531b418 Making sure the eNB only sends S1AP context release requests if it has a MME-UE-S1AP-ID assigned. 5 years ago
jmasterfunk84 7f51fcb419 Update s1ap.cc 5 years ago
Francisco Paisana 0526ae8ab1 updated rrc mobility parsing. added some utility methods 5 years ago
Andre Puschmann b994255b35 enb: fix handling of GTPU and S1AP init return values
if the eNB stack startup fails, for example due to binding
the wrong GTPU socket or similar issues, the eNB should stop
and log a message. Previously the return values for
S1AP and GTPU init were not even evaluated.
5 years ago
Francisco Paisana 30ae2226c1 common interface for stack multiqueue tasks, background tasks and timers 5 years ago
Francisco Paisana 344eaf49ec use logmap in the whole enb and ue 5 years ago
Xavier Arteaga e832769ae6 Updated copyright 5 years ago
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.
5 years ago
Pedro Alvarez 08a4ce0970 Added the ability to save S1AP pcaps at the eNB. 5 years ago
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.
5 years ago
Pau Espin Pedrol 91a5d1a74e gtpu: Log bind failure cause 5 years ago
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
5 years ago
Pedro Alvarez bd3598f774 Moved srsEPC to the new S1AP library. Deleted liblte_s1ap.cc and liblte_s1ap.h. 5 years ago
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 5 years ago
Francisco Paisana d10e950650 fix ue streamid assignment in s1ap 5 years ago
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
5 years ago
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.
5 years ago
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 5 years ago
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 5 years ago
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 5 years ago
Francisco Paisana 7557ef45c8 changed the s1ap to allow the insertion of users without rnti 5 years ago
Andre Puschmann cccabdaf4f removing unneeded install targets for static libs (reported by Filipe) 5 years ago
Andre Puschmann d3cb2eac83 add RLC suspend/resume to eNB interface 5 years ago
Andre Puschmann 369592544c store last RRC Connection Reconfig with transaction identifier 5 years ago
Francisco Paisana 5ae3afd2b8 created cbit_ref for unpacking const buffers 5 years ago
Francisco Paisana 5468189cd9 fix some variables' naming (e.g. x2_ap -> x2ap, e_rab -> erab) 5 years ago
Francisco Paisana 2a83eee0ee fix security key setup 5 years ago
Francisco Paisana ee24b59924 converted s1ap to new s1ap asn1 lib. Cleaned up bitstring packing/unpacking and bitstring types 5 years ago
Francisco Paisana 25bb36cdc3 converted ho preparation to new s1ap asn1 lib. Extended s1ap test 5 years ago
Francisco Paisana 6d1172de71 converted enbstatustransfer and ulnastransport to the new s1ap asn1 lib 5 years ago
Francisco Paisana 40baed0b3e converted uecontextmodificationresponse, initial setup request, and s1setup request to the new s1ap asn1 lib 5 years ago
Francisco Paisana b1c5bf7185 reverse addrv4 packing in s1ap 5 years ago
Francisco Paisana a740fcb954 bug - wrong ue context release cmd 5 years ago
Francisco Paisana 3066b404ac fix integer ext asn1 generation 5 years ago
Francisco Paisana b6c53d786b updated s1ap rrc interface with new asn1 lib types 5 years ago
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
5 years ago
yagoda 845c0fc2c0 fixing lcid issue with eMBMS, adding MRNTI user to stdout metrics 5 years ago
Andre Puschmann 476f970ee1 replace FIXME with TODO 5 years ago
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
5 years ago
Francisco Paisana 1212d403c6 added {} in if condition 5 years ago
Francisco Paisana 6b4488d5c1 added sending of enb status transfer from SeNB 5 years ago
Francisco Paisana c7f11e5690 fixed issue with the liblte_s1ap transparent container packing 5 years ago
Francisco Paisana 39fcf25e0d added extra tests for handover. Did a some refactoring to move boilerplate out of the test mobility function 5 years ago
Francisco Paisana b792a3158c removed magic numbers for s1ap timers, and handled the error in the s1 ho cmd 5 years ago
Francisco Paisana 524c80a804 added handling of ho command 5 years ago
Pedro Alvarez e1cdd51eba Clang-formated before pull request 5 years ago
Pedro Alvarez a049ec6b82 Finished to add boiler plate code to support PDCP discard notifications to RLC. 5 years ago
Pedro Alvarez 2e7ddef038 Continue to add discard_sdu to RLC interfaces. 5 years ago
Pedro Alvarez d4fb4d8c86 Fixup clang-format in pdcp before PR. 5 years ago
Pedro Alvarez 15613465cf Moving some initialization from init function to constructor in the PDCP entities. 5 years ago
Francisco Paisana 77f63f7bcd removed gtpu mutex 5 years ago
Francisco Paisana e8487211e4 changed the naming of mch to m1u in the gtpu class 5 years ago
Francisco Paisana 2512e0fd79 removed thread from GTPU MCH 5 years ago
Francisco Paisana 1400777639 removed 1st thread from GTPU 5 years ago
Francisco Paisana a9a33256e9 fixed some of the net utils functions 5 years ago
Francisco Paisana 546ee98879 fixed small issue that was causing compilation errors 5 years ago
Francisco Paisana 76673d2d40 cleaned up socket util methods, and made the S1AP non-blocking. 5 years ago
Francisco Paisana ff62ae6ad0 created the method chain in RRC to receive and handle the response to a S1AP HORequired 5 years ago
Francisco Paisana 50ed2ccfec added the handling of ho preparation failure and an ue class to s1ap 5 years ago
Francisco Paisana 57cd40ca31 added an ho required message send from SeNB to MME 5 years ago
Francisco Paisana d2c56caf7e applied new timer class to the whole code base 5 years ago