849 Commits (f9a668861acb40d033f526f9dd630bf4e8d95808)

Author SHA1 Message Date
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. 5 years ago
Pedro Alvarez f4fd6034ba Starting to add separate functions for PDCP handling for UM DRBs and AM DRBs 5 years ago
Pedro Alvarez 6cbcc5154d Starting to use received SN to do user plane decription. 5 years ago
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.
5 years ago
Pedro Alvarez 8f5ad55c4a Added attach request as a UL info trasnfer in the UE. Added interface to remove eps bearer map when going idle. Fixed bug in GW in assignment of IPv4 addresses. UE seems to rebound from the service reject now. 5 years ago
Andre Puschmann 82a69fb51c mux: fix packing of short MAC PDUs 5 years ago
Andre Puschmann 4aaa0473b9 pdu: remove unused variable total_sdu_len 5 years ago
Andre Puschmann b6d7fd5def improve error handling in PDU packing 5 years ago
Andre Puschmann da35f41dd5 rework MAC logical channel prioritization 5 years ago
Andre Puschmann e0a28cf4c0 simplify PDCP init and also bypass it for SRB0 on eNB 5 years ago
Andre Puschmann 0ef96f789b bypass PDCP for SRB0 processing chain 5 years ago
Andre Puschmann 218f136254 remove default PDCP entity for SRB0 5 years ago
Francisco Paisana ce29ed545d moved mac thread to the stack. Protect the interface of the stack with PHY and gateway via a queue of tasks 5 years ago
Francisco Paisana 10a56e2a84 moved GW out of the UE stack. This is important to keep concurrency out of the stack once it becomes single-threaded 5 years ago
Andre Puschmann 414e55fafc pcap: add dtor
this fixes issue if object is destroyed and PCAP is still open
5 years ago
Ismael Gomez 67b6a40c1b Use correlation for neighbour RSRP measurement 5 years ago
Andre Puschmann abef6ce152 move own ipv6 header definition into own header file and use it in tft filter 5 years ago
Guillem Foreman 50edd9a325 Initial 256QAM Modem and Demodulator 5 years ago
Joseph Giovatto 0bb7f590b3 Moved include complex.h from header files to impl files to prevent
error /wr to complex.h and c linkage in CentOS 7.
5 years ago
Andre Puschmann acbe7fabe4 rlc: fix class member initialization
uninitialized member detected by coverity, now converted all default
initialization to be done in class definition
5 years ago
Xavier Arteaga 1f4cf8121b SRSUE: Initial UL channel simulator 5 years ago
Andre Puschmann 2b7b4d0e7e remove hard-coded LCID for dedicated bearer in GW 6 years ago
Pedro Alvarez 2723aa9b12 Added EPS bearer id to apply_tft interface. Sending packets to the correct LCID if they match the packet filter. 6 years ago
Pedro Alvarez a7e0a0624b Starting to add interface apply_traffic_flow_template between NAS and GW. 6 years ago
Francisco Paisana 415d3418b6 reorganized enb to mirror ue director/class structure with a stack class 6 years ago
Pedro Alvarez d67d18cc6b Removing deplicated error codes. 6 years ago
Xavier Arteaga bd3ec34f7b SRSUE: Apply CLang format phy args structure 6 years ago
Xavier Arteaga fd3671a7e5 SRSUE: Enable AGC 6 years ago
Andre Puschmann e8d6236975 remove init for all RLC TM/UM/AM
- all RLC entities are now initialized during contruction
- there is no need to check for, e.g., existance of timers, during
  runtime
- there is also no need to call re-init during resume
- timers are freed in dtor
6 years ago
Ismael Gomez f24c0cef8c Use timer interface instead of local boolean to query timer state 6 years ago
Ismael Gomez c2e9817f41 Possible solution to RLC Reestablishment 6 years ago
Ismael Gomez 14b526f2aa Add PDCP per-bearer reestablish 6 years ago
Ismael Gomez ade720e032 Add RLC resume procedure 6 years ago
Andre Puschmann 3f613d7183 nas/gw/rrc: make LCID for DRB dynamic
- add interface to RRC to allow NAS to query the DRB for a given
  EPS bearer id
- extend interface for NAS to setup GW to also pass LCID of bearer
- in NAS, use this new interface to pass actual LCID of the default
  DRB when creating the TUN device
6 years ago
Andre Puschmann f357c995fc liblte_mme: fix packing and unpacking of modify EPS bearer context
this just skips the security bits but the packing/unpacking of
the values, i.e. new TFT may still be wrong
6 years ago
Ismael Gomez 594d62f229 Added read_block function to ringbuffer 6 years ago
Ismael Gomez 19cb5c172b Added read-and-convert function to ringbuffer 6 years ago
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.
6 years ago
Andre Puschmann 0e95867f13 remove task dispatcher class 6 years ago
Xavier Arteaga b903e61548 Initialise all channel emulator attributes by default 6 years ago
Xavier Arteaga 9c84f8e3fd SRSLTE: Added Uniform Random vector generator; Delay channel test; Fixed Delay channel SEGFAULT; SRSUE channel unique pointer; 6 years ago
Xavier Arteaga 2ffa1f9f1e SRSUE: Added RLF simulator in channel emulator and integrated it in SRSUE. Removed Zeros Command 6 years ago
Xavier Arteaga 7c97e40e63 SRSUE: Improved internal channel emulator help 6 years ago
Xavier Arteaga 9ab2b2de81 SRSUE: Created delay channel emulator and added fading to the UE 6 years ago
Andre Puschmann 709e769d0d pdu: fix formatting 6 years ago
Andre Puschmann ea2e692836 pdu: fix MAC RAR PDU packing and unpacking with backoff indicator 6 years ago
Andre Puschmann e97343579b liblte_mme: fix typo in header 6 years ago
Andre Puschmann 1c749ad559 add basic handling for deactivating eps bearer 6 years ago
Andre Puschmann f000e36f21 liblte_mme: fix dedicated bearer handling, add handling for UE testmode 6 years ago
Andre Puschmann 8fd4c42849 fix include in build_info.h template 6 years ago
Andre Puschmann 20c9f4687c remove duplicated code mac_cfg_t 6 years ago
Xavier Arteaga 7629863c5a SRSUE MAC: 36.331 v10 9.2.2 MAC main config defaults does not include RACH 6 years ago
Xavier Arteaga 2c78111666 SRSUE: Fixed CLang Tidy in ue.cc 6 years ago
Francisco Paisana 00256f2cd9 fix the hanging in the UE during shutdown 6 years ago
Francisco Paisana 4311c3121c avoid crash when converting nulltype to string 6 years ago
Andre Puschmann 58b09c8677 fix pool_allocate macros for new unique_buffer 6 years ago
Xavier Arteaga 080b4a327c SRSUE: Refactored asynchronous cell and ue_radio. CA Fixed. 6 years ago
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
6 years ago
Francisco Paisana 0e3baa0f2f Renamed the reset() method of byte_buffer_t to clear() 6 years ago
Francisco Paisana 3bedc93ba5 added _t to unique_byte_buffer type 6 years ago
Francisco Paisana bc01a5ecda changed block_queue api to return back the unique buffer in case it fails to push it to the queue 6 years ago
Francisco Paisana f4aa03154d change queue read and other functions apis 6 years ago
Francisco Paisana f469e2178b replaced byte_buffer_t allocated by the buffer pool for unique_byte_buffer which is safer and easier to use 6 years ago
Francisco Paisana 0976ea6f27 created a unique byte buffer that automatically deallocates 6 years ago
Andre Puschmann 4edcedd2b3 add helper to create cexp function for entire subframe 6 years ago
Andre Puschmann 4f42c0796c add CFO correction method with offset
- CFO correction which allows to specify the offset within
  the correction table to allow phase-continuity across
  multi-subframe transmissions (NB-IoT)
6 years ago
Andre Puschmann e647dac3e4 add simple cross-correlation method
- implements a cross-correlation that takes the complex conjugate
  of one of the input signals (filter)
- the fft of this input signal is only computed once
6 years ago
Andre Puschmann 13c17ad9e7 add text output capabilities to filesink 6 years ago
Andre Puschmann 62dad5e21d add nb-iot tag support to PCAP writer 6 years ago
Andre Puschmann 92f3f02f2d remove radio_sync object 6 years ago
Andre Puschmann dc9df36a24 remove unused radio_multi code 6 years ago
Francisco Paisana 7be183c223 rework scheduler 6 years ago
Xavier Arteaga 2aa36dd11c Added backtrace print helper 6 years ago
Andre Puschmann fcd086a1c5 fix metrics_hub compilation for older gcc using std::chrono 6 years ago
Andre Puschmann 0f6997170b fix unitialized var in pdu.h 6 years ago
Francisco Paisana aca1e9612d revert back from max_sizeof(...) to macros 6 years ago
Francisco Paisana 14b6a1d483 setter method for choice types 6 years ago
Ismael Gomez efe74e765b Fix coverty non-inititalized variables in tdec 6 years ago
yagoda c25f3b0acf increasing rlc UM window size for eMBMS, small adjustment to eMBMS PHY common 6 years ago
Francisco Paisana 896ef5ee64 added default init for booleans and integers 6 years ago
Francisco Paisana 37d104a2c5 max_sizeof(...) now does a divide a conquer to reduce recursion depth 6 years ago
Ismael Gomez 786830daf3 Fix minor issues for TDD 6 years ago
Andre Puschmann e77adbe5a5 fix uninitialized members in ue_interface 6 years ago
Andre Puschmann a559077b54 fixed uninitialized member in radio.h 6 years ago
Xavier Arteaga c18a59730c Solved PHY unit test memory leaks 6 years ago
Xavier Arteaga baac179d95 Added vector complex sine generator 6 years ago
Xavier Arteaga 7bd3a9a43b Added ringbuffer read function with timeout 6 years ago
Xavier Arteaga a1a797589a Added UE synchronization error metric (hard-coded disabled by default) 6 years ago
Xavier Arteaga 06a9d8eb6f Added vector estimate frequency 6 years ago
Xavier Arteaga 4187781268 Random module return pointer object and solved NAN issue 6 years ago
Francisco Paisana 1674c8939f automatically resolve invalid prach_offset for prb6 6 years ago
Ismael Gomez 47acbc1e08 Compute per-antenna and per-port chest metrics in chest_res 6 years ago
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
6 years ago
Andre Puschmann 4b01a2e4a0 update copyright notice 6 years ago
Andre Puschmann 205db6f229 add missing license headers 6 years ago
Ismael Gomez 7780b1aba5 add tdd/ca support 6 years ago
Andre Puschmann f2266bb264 add uint64 (sample based) time stamp helpers 6 years ago
Xavier Arteaga ed6b138cb2 Added safe and good quality random generator in phy/utils 6 years ago
Xavier Arteaga c42fbbe6a5 Created 3GPP fading channel emulator 6 years ago
David Rupprecht b84e49310e Enable encryption in reconfiguration and after security mode command (NOT TEST) 6 years ago
David Rupprecht eb3a83ac45 User Plane key in configuration interface 6 years ago
Pedro Alvarez ca603810ce Adding Downlink data notification and paging functionality to the EPC.
This entails:

  * Adding S1AP paging messaging to the MME.
  * Adding the Downlink Data Notification, Donlink Data Notification Acknoledgment, and Downlink Data Notification Failure Messages.
  * Adding the logic at the GTP-U to detect that Downlink Data notification needs to be sent.
  * Proper handling of the new GTP-C messages at the MME GTPC and SPGW GTPC classes
  * Add queuing mechanisms at the GTP-U while waiting for paging response. Queue is flushed when paging fails (timeout or other).
  * Make sure eNB's SCTP information is properly stored.
  * Make sure UE's GUTI information is properly stored.
6 years ago
Pedro Alvarez 1db959c661 Added NAS timer functionality to the EPC. This entails:
* Adding timer creation at NAS using timerfd_create
  * Adding the ability to add and remove the timer file descriptor to the MME main select loop
  * Adding the ability to the MME for the NAS to check if a timer is running
  * Adding the timer expiry handling functionality at the MME
6 years ago
Francisco Paisana dc0b903130 added default enum inits 6 years ago
Pedro Alvarez 5f7b6ba79e Split GTP-C and GTP-U functionality into seperate classes in the SPGW. Added GTP-U specific logging in the EPC. Added handle_s11_pdu function to both the MME GTP-C entity and the SPGW GTP-C entity. 6 years ago
Pedro Alvarez add60c1288 Applied clang-format to the EPC. 6 years ago
Francisco Paisana 7fd8ca82c6 fix complex.h issue 6 years ago
Andre Puschmann 1cc6ae3c60 enable c++11 support 6 years ago
Andre Puschmann e84d26ae4e fix RLC UM reestablishment 6 years ago
Francisco Paisana 80031d0846 shortened enumerated string/number conversion implementations. 6 years ago
Francisco Paisana ca3ea5e658 shortened enumerated types declarations 6 years ago
Francisco Paisana e50c062084 added extra separator comments 6 years ago
Andre Puschmann afb591ee97 add ctor for worker class in thread_pool 6 years ago
Andre Puschmann c8f8c16d50
make EIA and EEA algorithms configurable (#323)
this patch allows to configure the EIA and EEA algorithms
the UE uses and announces during attach. They can
be specified as a comma-separated list.

The patch also removes a dedicated NAS config class and uses
the default nas_args_t type for this. There was a full
duplication of members before.

The patch also converts nas_args_t and usim_args_t into a class
with a default constructor that initialize all booleans.
6 years ago
Andre Puschmann 86232c143e expose RLC tx queue length through config struct 6 years ago
Xavier Arteaga c782ef2aa5 Solved unitialised values in UE (up to prach) and free 6 years ago
Andre Puschmann 2e1b8240e6 fix uninitialized timeval struct in metrics_hub
This was causing issue in some builds done on the Ubuntu
PPA systems leading to an SIGILL when starting the UE/eNB
6 years ago
Andre Puschmann 77ca1d9882 load config file from user's home directory first before checking etc 6 years ago
Francisco Paisana 0204db2e12 new asn1 rrc library 6 years ago
Andre Puschmann 646eb9c0e3
Merge pull request #313 from softwareradiosystems/next_mme_encryption
NAS MME encryption
6 years ago
Andre Puschmann 4655ad92fe fix mem leak in radio 6 years ago
Pedro Alvarez 584c190773 Merge branch 'next' into next_mme_encryption
Updating next_mme_encryption to the latest next.
6 years ago
Pedro Alvarez 997c24c099 Added config of cipher_algo and integ_algo initialization in NAS class. 6 years ago
Andre Puschmann 955f5dd37a add mutex in pdcp entity
write_sdu and write_pdu are not re-entrant because all functions
that deal with the counters, e.g. integrity check and generate,
must be protected because MAC threads may call them at the same time.

this addresses issue #254
6 years ago
Andre Puschmann 0e7512f349 fix RLC UM params for eMBMS 6 years ago
Pedro Alvarez 3205121015 M2 interface packing/unpacking (#305)
* Starting to add M2AP serialization structures.

* Added M2AP procedure ids.

* Added some M2AP max values.

* Removing m2ap.cc for now.

* Adding cause IE.

* Adding dummy m2ap.cc to check correct compilation of m2ap.h

* Fixed compilation issues in m2ap.h

* Adding Cell Information IE.

* Added Criticality diagnostics IE.

* Adding eNB-MBMS-ConfigurationDataItem.

* Adding MBMS-Service-Area-Id-List

* Added MBMS Service Area Id.

* Added Global eNB Id IE.

* Added Global MCE id IE.

* Added MBMS-Service-associatedLogicalM2-ConnectionItem IE.

* Added MBSFN_SUBFRAME_CONFIGURATION IE

* Added MCCHrelatedBCCH-ConfigPerMBSFNArea IE.

* Added MCH scheduling period IE.

* Added PMCH-Configuration IE.

* Added Time-to-Wait IE.

* Added TNL-Information IE.

* Starting to add M2SetupRequest msg.

* Adding M2 Setup Request message.

* Fixed up enums related to initiating messages, successful outcome and unscesseful outcome.

* Starting to add m2ap apck/unpack PDU functions.

* Started to add a test for M2 Setup Request Pack/Unpack.

* Filling in M2SetupRequest structure.

* Adding packing of more IEs in the M2SetupRequest.

* Starting to add unpacking functions to M2SetupRequest.

* Continuing to unpack M2SetupRequest. Unpacking PLMN Identity correctly now.

* Fixed up enb_id unpacking. eNB Id and eNB name unpacking correctly now.

* Starting to add unpacking for dataconfiguration item.

* Adding support for eCGI unpacking.

* Adding MBSFN Synchronization Area id Unpacking.

* Adding service area unpacking.

* Added unpacking functionality to the rest of the IEs in the M2 Setup Request. Unpacking the M2 Setup Request is passing unit test.

* Fized mistake in packing eNB Id. Starting to add packing to eCGI.

* Starting to pack value in ENB MBMS Configuration item.

* Fixed packing of ENB MBMS configuration item header.

* Packing of M2 Setup request is now passing the unit test.

* Starting to add M2setup response.

* Starting to add packing/unpacking succeful outcome.

* Starting to add M2SetupResponse to test.

* Continue to add testing to setup response. Choice type seems OK.

* Starting to add unpacking to MCE Id.

* Adding MCEname packing/unpacking.

* Continue to unpack m2setupresponse.

* Adding MBMS Area Id unpacking

* Added pddch length unpacking.

* Adding more IE unpacking.

* Adding more code to unpack M2 Setup response.

* Added M2 Setup response unpacking.

* Added M2 response packing. Fixed mistake on eCGI packing/unpacking, which broke M2 Setup request.

* M2 setup request and response pack and unpacking seems to work.

* Starting to add MBMS Session Start Request.

* Continue to unpack MBMS session start request.

* Added TMGI unpacking.

* Continue to add unpacking to MBMS session start request

* Starting to add TNL Information unpacking

* Added unpack for MBMS session start request.

* Strating to add MBMS session start request packing.

* Adding MCE MBMS M2AP Id packing.

* Added MBMS Session Start Reqeust pack and unpack.

* Added MBMS Session start response packing/unpacking.

* Starting to add unpacking of MBMS Scheduling information.

* Adding MCCH Update time Unpacking.

* Adding MBSFN Area Configuration List Unpacking.

* Starting to add unpack PMCH configuration Item.

* Adding AllocatedSubframesEnd unpack

* Fixed multiple mistakes in unpacking PMCH configuration.

* Unpacking MCH Scheduling Period

* Continue to unpack MBMS Session List Per PMCH Item.

* Added unpacking of PMCH Configuration List. Starting to add unpacking of MBSFN Subframe Configuration List.

* Adding radioframe allocation period and offset unpacking.

* Added unpacking of MBMS Scheduling Information (needs testing.)

* Added more testing to MBMS Scheduling Info.

* Small commit.

* Added more testing to the unpacking of MBMS Scheduling Information. Unpacking correctly now.

* Continue to pack MBMS Scheduling information. Packing PMCH Configuration.

* Fixed mistach in packing PMCH configuration list.

* Adding more packing to MBMS scheduling info message.

* Fixed more mistakes in MBMS Scheduling information packing. Passing tests now.

* Added MBMS Scheduling Information Response.

* Remove debug prints.
6 years ago
Ismael Gomez a8a0c3ebe7 Fixed compilation in zynq 6 years ago
Ismael Gomez 8f541cf4e1 Merge branch 'next' into neon_windowed_tdec 6 years ago
yagoda 3762738bc1 adding windowed neon turbodecoder (can be further optimized) 6 years ago
Andre Puschmann c88cc35fdf try to load config files from /etc/srslte before checking users's home 6 years ago
Andre Puschmann d6196ba234 simplify RRC-NAS interface and only have msg as param (RRC selects LCID) 6 years ago
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
6 years ago
Andre Puschmann df40259c26 fix issue in PDCP when bearer ID for DRBs was not starting with 1 6 years ago
Pedro Alvarez dc727a192b Changing way UL NAS count is used to generate the K_enb. 6 years ago
yagoda 69dc16c4c8 changes to fix arm compilation 6 years ago
Xavier Arteaga 8c3a0153b9 Added missing AVX512 intrinsics and flags. Fixes #291. 6 years ago
Andre Puschmann db910cb84b add CSV metrics for eNB 6 years ago
Andre Puschmann 8a1368c8d6 send connection reject if MME isn't connected 6 years ago
Andre Puschmann b71dab87f1 add function to query if RLC bearer exists (the implementation) 6 years ago
Andre Puschmann 0af19b070c add function to query if RLC bearer exists to UE interface 6 years ago
Andre Puschmann 1ed225a10b add getter for IPv4 and IPv6 addresses 6 years ago
Pedro Alvarez 5c29dba741 Changed Interface between NAS and GW to avoid the GW start function being called twice in IPv4v6 mode. 6 years ago
Pedro Alvarez ac1c300126 Adding the ability to set the interface local link IPv6 address. 6 years ago
Pedro Alvarez 25108e2e2b Added configuration options to UE for IPv6 PDN. Starting to send PDN connectivity requesting IPv6. 6 years ago
Andre Puschmann 23836a8ab3 Merge branch 'next' into nas_cleanup 6 years ago
Andre Puschmann 3f36594f1e fix copy ctors in bit_buffer_t 6 years ago
Andre Puschmann 481a1829dd stop metrics hub thread before calling stop on listeners 6 years ago
Andre Puschmann 270707b7a8 add missing initialization in block_queue 6 years ago
Andre Puschmann 93d17fed3e disable buffer pool logging by default 6 years ago
Andre Puschmann 6ca0d4494a do not transmit new PDUs after calling stop 6 years ago