OpenLTE
Summary Page |
Wiki |
Download |
Browse Code |
Bug Tickets |
Mailing Lists |
Donations |
OpenLTE is an open source implementation of the 3GPP LTE specifications.
News (Last Updated February 14, 2021)
- February 14, 2021: Version 0.21.0 is available. This version includes a massive reformat, a new RRC library, migration of LTE_fdd_dl_file_gen and LTE_fdd_dl_file_scan from python to c++, turbo decoder improvements, and many bug fixes
- July 30, 2017: Version 0.20.5 is available. This version added two codeword support, refactored PUCCH channel decoding for 1, 1A, and 1B, added SR configuration index mapping, added liblte_common unit tests, and properly handling FI fields for multiple AMD PDUs in the LTE library, added helper functions and interprocess message queue support to the tools library, added SR support, moved GW, MME, and PDCP away from the singleton pattern, added direct IPC to a UE for MAC and PHY, removed QOS and fixed UL scheduling in favor of SR and BSR based UL scheduling, and refactored the AMD reception buffer to handle more than one PDU per SN in LTE_fdd_enodeb, and fixed a typo in lte_pucch_demod.m
- December 18, 2016: Version 00.20.04 is available. This version added band 26, 27, and 28 support (thanks to Jeremy Quirke), fixed the length skipping in liblte_mme_unpack_pdn_address_ie (thanks to Przemek Bereski), and fixed the turbo encoder tail bits (thanks to Laurent Louf and Jeremy Quirke) in the LTE library and fixed the handling of multiple RLC AMD PDUs throughout.
- October 09, 2016: Version 00.20.03 is available. This version properly discarding sequence type extensions in liblte_rrc, properly typecasting for bladerf_get_timestamp() in LTE_fdd_enodeb_radio, and updated enodeb_nat_script.sh to be more generic with ethernet interfaces.
- August 14, 2016: Version 00.20.02 is available. This version changed the QoS DL bytes per subframe for default data to ensure QPSK only for 5MHz other DL modulation schemes seem to not be functioning correctly.
- July 31, 2016: Version 00.20.01 is available. This version reworked the MAC RTS handling logic and limited the number of HARQ retransmissions in LTE_fdd_enodeb.
- July 16, 2016: Version 00.20.00 is available. This version increased the maximum messages size, fixed extended power headroom MAC CE, added classmark3 support, added tracking area update request support, fixed the fill bits in packing mobile ID IE for IMEISV and the length in unpacking UE security capabilities IE (thanks to Przemek Bereski for finding this), allowing NULL to be passed for key_256 in service reject message packing (thanks to Przemek Bereski and Peter Nguyen for finding this), added PDCCH size defines, added an error return to DCI 1C unpack, clearing punctered turbo decode bits before decoding, added AMD PDU segment support, padded all RRC enums to powers of 2, added support for several RRC IEs and messages (with the help of Przemek Bereski) in the LTE library, restructured the radio classes to ease the addition of new radio types, set the processor affinity to allow the PHY/Radio to run on a particular core, fixed memcpy lengths in MAC, fixed bugs in print_all_users (thanks to Sultan Qasim Khan for finding this) and when receiving a service request message for a non-existent user (thanks to Peter Nguyen for finding this), fixed a long standing PHY bug that was including UL PDCCH allocations in a check of DL PRB usage, added error logging for received AMD PDU segments, increased the DL datarate for default data QoS, using C-RNTI when no IMSI/IMEI are available for printing an attached user, Przemek Bereski added UE capability enquiry and UE capability information support and bladeRF support.
- March 26, 2016: Version 00.19.04 is available. This version fixed the calculation of n_prime_p in generate_dmrs_pucch.
- March 12, 2016: Version 00.19.03 is available. This version added support for PUCCH decode in liblte, added support for H-ARQ and PUCCH in LTE_fdd_enodeb, and fixed a bug related to improper cleanup of the inactivity timer in LTE_fdd_enodeb.
- February 13, 2016: Version 00.19.02 is available. This version pulled in unit tests for the turbo decoder from Ziming He, optimized the PBCH detection algorithm (thanks to Ziming He), and fixed the setting of id for IMEISV in Mobile Idenity IE (thanks to Mikhail Gudkov) in the LTE library, added the ability to print all registered users, removed extra boost includes, added an RRC connection reestablishment state machine, added a UE inactivity timer, actually properly constructing MNC (thanks to Mikhail Gudkov), memcpy-ing IP packet headers instead of typecasting (thanks to Damian Jarek), initialized present flags and changed packet filter evaluation precedence in activate dedicated EPS bearer context (thanks to Pedro Batista), moved the message queue empty error to a warning, and properly updating the user list iterator after erasing a user (thanks to Damian Jarek).
- December 6, 2015: Version 00.19.01 is available. This version added support for all ID types for the mobile identity IE in MME, added support for more PDU types in PDCP, added defines for sizes of fixed arrays in LIBLTE_PHY_STRUCT, fixed the order of sizes for rate match and unmatch arrays in LIBLTE_PHY_STRUCT (thanks to Ziming He), added return values for liblte_phy_get_n_cce (thanks to Damian Jarek) and liblte_rlc_unpack_status_pdu (thanks to Mikhail Gudkov) in the LTE library, added a scoped lock RAII class for sem_t and pthread_mutex_t in the tools library, changed from using boost::mutex to pthread_mutex_t and_sem_t throughout, added helper functions in MAC, changed user deletion and C-RNTI release procedures, properly initializing SIB scheduling info, properly construct MNC (thanks to Mikhail Gudkov), fixed an issue with RTS response in MAC, properly initialized PHY allocation structure in MAC (thanks to Markus Grab), fixed the updating of VT(A) in the RLC retransmission buffer, and changed the QoS parameters for default data in LTE_fdd_enodeb.
- August 1, 2015: Version 00.19.00 is available. This version removed rb_id from all MME pack routines (thanks to Przemek for finding this), fixed a bug with the default value of filter_coeff in LIBLTE_RRC_UL_POWER_CONTROL_DEDICATED_STRUCT (thanks to Paul Sutton for finding this), added the length indicator for eps_mobile_id (thanks to Paul Sutton for finding this), added an error return for dci_1a_unpack (thanks to Joel Carlson for the suggestion), properly initializing vd_w_metric (thanks for ziminghe for finding this), and limiting PUSCH allocations to 10 PRBs for performance reasons in the LTE library, added TX and RX gains to the config file, combined UL and DL schedule messages into a single PHY schedule message, moved QoS structure from RB class to the user class, fixed bugs related to the RLC AM TX and RX buffers, changed the default timer alignment timer to 10240 subframes, removed boost::lexical_casts from HSS, moved the dedicated bearer QoS to 9, and moved DRBs to RLC AMD mode in LTE_fdd_enodeb.
- March 11, 2015: Version 00.18.04 is available. This version fixed long BSR CE and added extended power headroom CE support, added PDCP data PDU with short SN support, and added header extension handling to RLC AMD to LTE library, added UmTRX support to LTE_fdd_dl_scan, fixed the start/stop/start issues by closing the TUN device on stop, fixed the RTS issues, added a mutex to the message queue circular buffer, fixed uninitialized variables in the configuration database, added header extension/multiple data support for RLC AMD, added detach handling, and added a common routine for formatting time.
- February 18, 2015:Version 00.18.03 is available. This version added more MME encoding and decoding, RLC UMD header extension support, and higher order modulation scheme support to PHY in the LTE library, split the error enum into common.h, moved to a new message queue using semaphores and circular buffers, added IP PCAP support, split UL/DL QoS TTI frequency, added user reset to RB class, added RLC UMD multiple data support, added UTC timestamps to the debug log port, added higher order modulation scheme support in MAC, fixed C-RNTI assign/release management, changed RTS timing, fixed user switch in MME/RRC, added clear RB support and fixed copy RB in the user class for LTE_fdd_enodeb.
- December 24, 2014:Version 00.18.02 is available. This version fixed several bugs in LTE_fdd_enodeb. Specifically, cleaned up the Time Zone and Time IE and added C-RNTI support to get_tbs_mcs_and_N_prb_for_dl in liblte, added asymmetric QoS support, dynamically determining MCS for downlink data, sending EMM information message, added more time spec information in radio debug, copying SRB1 PDCP config to SRB2, fixed a UMD reassembly bug, and did a hack to get around a crash when releasing a C-RNTI in LTE_fdd_enodeb.
- December 16, 2014:Version 00.18.01 is available. This version added more MME encoding and decoding to the LTE library, pulled in a patch from Ruben Merz to add USRP X300 support for LTE_fdd_dl_scan and LTE_fdd_enodeb, added to enodeb_nat_script.sh, added delayed user deletion, ol extension to all message queues, ability to send EMM information message, and QoS for default data services to LTE_fdd_enodeb.
- November 29, 2014: Version 00.18.00 is available. This version added IP packet support to LTE_fdd_enodeb. Specifically, added the liblte prefix to value_2_bits and bits_2_value, converted everything except PHY and RRC to byte message struct, added more MME decoding and encoding, added PDCP user plane support, added RLC UMD support, and fixed a bug in RRC connection reesablishment pack and unpack (thanks to Paul Sutton for tracking this down) in the LTE library. Added regeneration of eNodeB security data in HSS, service request, service reject, and activate dedicated EPS bearer context request support in MME, timer reset, and IP gateway support, using the latest LTE library, and refactored C-RNTI assignement and release in LTE_fdd_enodeb.
- November 09, 2014: Version 00.17.01 is available. This version added SIB13 packing and printing for LTE_fdd_dl_file_scan and pulled in a patch from Andrew Murphy to add SIB13 unpacking and printing for LTE_fdd_dl_scan.
- November 01, 2014: Version 00.17.00 is available. This version added more MME and RRC decoding and encoding and integrity protection of PDCP control messages in the LTE library. Added configuration and user file support, PDCP security, RRC security mode command, SRB2 setup, RRC connection reconfiguration, MME EMM attach, MME ESM default bearer setup, and M-TMSI assignment to LTE_fdd_enodeb.
- September 04, 2014: Version 00.16.00 is available. This version added more MME decoding and encoding and security functions for key generation and EIA2 to the LTE library and added authentication, security mode, and sequence number resynch support to MME/HSS, added read only parameters for UL EARFCN, DL center frequency, and UL center frequency, fixed bugs with stop and t_poll_retransmit, and combined the contention resolution identity and first DL RLC message in LTE_fdd_enodeb. Connect to the debug log port (30001) to see the MME messages for completion of authentication (you will need a USIM with known K).
- August 03, 2014: Version 00.15.00 is available. Major change for this version was the addition of MME processing up to authentication for LTE_fdd_enodeb. Specifically, added make requirement for polarSSL, common, pdcp, and security portions of liblte, more decoding/encoding to liblte_mme and liblterrc, NACK support to liblte_rlc, and many changes to LTE_fdd_enodeb (limit PCAP output, authentication vector support, HSS interface support, message parsers/senders and state machines for MME, RRC command messages, transmit functionality for PDCP, RLC, and RRC, and refactoring of user identities).
- July 22, 2014: Version 00.14.01 is available. This version pulled in patches from Mike Peters to fix an uninitialized N_bits value in liblte, Tim O'Shea to properly reference UHD libraries and include directories for cmake, Jeff Long to fix a mutex double unlock bug, Jeff Long to optimally set the master clock rate for USRP B2X0 in the LTE_fdd_dl_scan application, and added clock source as a configurable parameter in the LTE_fdd_enodeb application.
- June 18, 2014: Version 00.14.00 is available. The big new with this version is that MME attach request messages are processed all the way through the stack in LTE_fdd_enodeb. There are some major stability issues with LTE_fdd_enodeb in this release and it will most likely crash. These issues will be resolved in coming releases. The detailed changes are: split LIBLTE_MSG_STRUCT into bit and byte messages, fixed a bug when adding more than 1 CCE to PDCCH, added MME, RLC, MAC padding LCID, TPC for DCI 0, RRC UL DCCH message processing, and DCI 0 pack support to the LTE library, added PCAP support to LTE_fdd_dl_scan, added HSS, QoS, uplink scheduling, RRC and MME NAS message handling, and RLC AM processing support, omitting the path from __FILE__, and deleteing user on C-RNTI expiration in LTE_fdd_enodeb.
- May 5, 2014: Version 00.13.00 is available. This version added MAC control element handling, PHICH support, TPC support, and RRC DL CCCH message support to the LTE library, added PCAP support, UL and DL CCCH MAC support, communication up to RRC, UL CCCH RRC support, radio bearer, timer, and timer manager support to the eNodeB.
- April 13, 2014: Version 00.12.01 is available. This version pulled in patches from Astrasel to initialize the frequency offset estimate array in liblte_phy_dl_find_coarse_timing_and_freq_offset, from Jevgenij for supporting non-B2X0 USRPs in LTE_fdd_dl_scan, from Max Suraev for more descriptive start failures in LTE_fdd_enodeb, and from Andrew Murphy to add DCI 1C unpacking to the LTE library, also added support for PRB allocation differences in each slot and fixed a bug in lte_fdd_dl_transmit relating to PDCCH REG mapping.
- March 27, 2014: Version 00.12.00 is available. This version added PUSCH modulation and demoulation support to liblte and the octave code. This support was also added to the LTE_fdd_enodeb application.
- January 18, 2014: Version 00.11.00 is available. Fixed a bug with transmitting SIB2 for 1.4MHz bandwidth in LTE_fdd_dl_file_gen and LTE_fdd_enodeb, fixed several bugs in liblte_phy.cc, LTE_fdd_enodeb, and lte_prach_detector.m, and added PRACH detection processing in LTE_fdd_enodeb.
- December 30, 2013: Version 00.10.04 is available. Fixed a bug in LTE_fdd_enodeb dealing with saturation of baseband transmit samples.
- December 14, 2013: Version 00.10.03 is available. Fixed a PDSCH mapping bug in the lte_fdd_dl_transmit octave routine.
- December 2, 2013: Version 00.10.02 is available. Added support for for bladeRF in LTE_fdd_dl_scan and LTE_file_recorder, removed cmake requirements for rtl-sdr and hackrf.
- November 23, 2013: Version 00.10.01 is available. Fixed a problem with the receive size in LTE_fdd_enb_msgq.cc.
- November 15, 2013: Version 00.10.00 is available. Added the first version of a simple eNodeB application using USRP B2X0 with DL transmit only functionality. Future versions will add UL functionality beginning with PRACH. Added USRP B2X0 support to LTE_fdd_dl_scan and LTE_file_recorder and fixed a bug generating the references for the second slot in lte_generate_dmrs_pusch.m.
- September 28, 2013: Version 00.09.02 is available. Added support for setting the sample rate and output data type in the LTE_fdd_dl_file_gen app and the sample rate and input data type in the LTE_fdd_dl_file_scan app to make the LTE_fdd_dl_file_gen, LTE_fdd_dl_file_scan, and LTE_file_recorder applications compatible, added uplink demodulation reference signal generation to the octave code.
- September 16, 2013: Version 00.09.01 is available. Implemented liblte_phy routines for determining TBS, MCS, N_prb, and N_cce, fixed a bug in the RIV calculation of dci_1a_unpack, added error checking on sizes passed to memcpy in liblte_rrc, added support for changing the sample rate in the LTE_fdd_dl_file_gen app, and added finding FFTW to cmake.
- August 28, 2013: Version 00.09.00 is available. Updated to support GnuRadio 3.7, added PRACH support to liblte_phy, cleaned up PRACH support in octave, moved to using socket select with a timeout in libtools, added a new hardware discovery mechanism in LTE_fdd_dl_scan, and added a file recording application.
- July 28, 2013: Version 00.08.03 is available. MAC functionality was added to the LTE library, several RRC bugs were fixed in the LTE library, and hackrf and SIB decode and print support was added to the scanner app.
- July 4, 2013: Version 00.08.02 is available. Two indexing bugs were fixed in liblte_phy.cc.
- March 18, 2013: Version 00.08.01 is available. FFTW has been switched from double to single precision. Paging messages are now printed. Bugs were fixed in lte_fdd_dl_receive.m.
- March 03, 2013: Version 00.08.00 is available. Added a scanner application using rtl-sdr, updated the lte library, added a tools library, and updated the file scan and generator apps.
- January 21, 2013: Version 00.07.01 is available. Added -fPIC to the compile flags and updated README.
- January 07, 2013: Version 00.07.00 is available. Moved from automake to cmake.
- December 29, 2012: Version 00.06.05 is available. Added SIB3, SIB4, and SIB8 support to the file_gen app, fixed a bug in the PHICH mapping, fixed the file size bug with the file_gen app, and pulled in a patch for 64 bit support.
- December 02, 2012: Version 00.06.04 is available. This version optimized the psuedo random sequence generation, added pre configuration of the cell specific reference signals, and fixed 4 antenna support.
- November 17, 2012: Version 00.06.03 is available. This version added SIB2 support and interactive parameter configuration to the file_gen app. In addition, multiple eNB decoding was added to the file_scan app.
- October 06, 2012: Version 00.06.02 is available. This version added soft bit turbo decoding, random access and paging PDCCH decoding, and more RRCH support.
- August 19, 2012: Version 00.06.01 is available. This version added SIB2, SIB3, SIB4, and SIB8 packing and unpacking and a bug fix in liblte_phy.cc. In addition, the file scanner has had states and state memory added.
- June 17, 2012: Version 00.06.00 is available. This version has more bug fixes in liblte_phy and also increased to the BER tolerance on CFI decodes. In addition, a new gnuradio application was added that generates LTE FDD downlink baseband I/Q in a file.
- June 09, 2012: Version 00.05.04 is available. This version fixed several bugs in liblte_phy.cc in turbo_decode, rate_unmatch_turbo, pdsch_channel_encode, and pdcch_channel_encode. Number of bits used in SIB1 pack in liblte_rrc.cc was also added.
- June 02, 2012: Version 00.05.03 is available. This version rearranged liblte_phy to match the specs, added more FDD DL transmit functionality, and fixed several bugs in liblte_phy and LTE_fdd_dl_file_scan.
- May 13, 2012: Coming soon! FDD DL transmit functionality in C!!
- May 13, 2012: Version 00.05.02 is available. This version fixed a bug in liblte_phy relating to frame_start_idx going negative in find_sss.
- May 06, 2012: Version 00.05.01 is available. This version fixes two bugs in liblte_phy.cc. One in liblte_phy_find_pss_and_fine_timing and one in liblte_phy_find_sss.
- April 28, 2012: Version 00.05 is available. This version includes bug fixes for the C and octave version. It also includes PDSCH reception for SIB1 decoding (including turbo decoding).
- March 26, 2012: Version 00.04 is available. This version includes C support for LTE FDD downlink reception through MIB decoding. It also includes support for gnuradio with a flowgraph that reads from recorded files. Further support will be coming soon!
- March 2, 2012: Coming soon! C version to match the support in octave.
- February 20, 2012: Version 00.03 is available. This includes SIB1 encoding/decoding (including turbo coding) and fixes to the channel estimator.
- February 12, 2012: Coming soon! PDSCH support up to SIB1 encoding/decoding.
- January 30, 2012: Version 00.02 is available. This includes fixes in the license statement and in find_pss_and_fine_timing.
- December 31, 2011: Initial release (version 00.01) of matlab/octave files for LTE FDD downlink transmission and reception. This includes PSS, SSS, CRS, and PBCH. The receiver has been tested against a live LTE recording and the transmitter has been tested against the receiver.
Copyright 2011-2017,2021 Ben Wojtowicz