Commit Graph

4789 Commits

Author SHA1 Message Date
Francisco Paisana 2eb6145b99 reset carriers on each set_cfg call 2019-12-18 16:06:21 +01:00
Andre Puschmann 7e294f7325 move common helper for eNB tests into own header file and split mobility and erab tests 2019-12-18 15:27:42 +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
Andre Puschmann 41be303f27 fixing NAS PCAP ctor 2019-12-18 13:27:48 +01:00
yagoda 845c0fc2c0 fixing lcid issue with eMBMS, adding MRNTI user to stdout metrics 2019-12-18 12:18:58 +01:00
Tiago Ferreira Alves 3fed21ce3e PSSS and SSSS implementation 2019-12-18 11:27:10 +01:00
Andre Puschmann 476f970ee1 replace FIXME with TODO 2019-12-18 11:25:56 +01:00
Andre Puschmann f874722cfb fix error handling in UE init
previously we've returned the init() function when a sublayer
init failed. This leaves the pointers to the layers unset which, in turn,
breaks the stop() call for the UE
2019-12-18 11:25:36 +01:00
Andre Puschmann 0d1c8021f9 fix radio_multi interface if radio vector is still empty 2019-12-18 11:25:36 +01:00
Andre Puschmann 4a9e3728c9 add condtional variable for PHY initialization and configuration
adding a cond variable and mutex to protect init and (re-)config of PHY
currently this is only used during init. If the stack couldn't be
initialized but the PHY init thread was already started, we need to
properly wait until this is done
2019-12-18 11:25:36 +01:00
Andre Puschmann 705cd3c211 fix typos spotted by aleksander0m 2019-12-17 16:54:02 +01:00
Andre Puschmann 3127f59b4c wait with init of GUI until cell is found and initialized
with the stack refactor we've introduced a regression in which
the GUI was started too early when no cell was found yet.

this caused the GUI to be initilized with only one Tx port. When connecting
to a cell with ports, the GUI plotter would then write
into unitialized memory.
2019-12-16 21:03:08 +01:00
Andre Puschmann 4f5e991480 fix typo in RLC AM 2019-12-16 17:16:15 +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 2ed2e35aa7 fixing two size_t printfs 2019-12-16 14:06:26 +01:00
Andre Puschmann 4433c238e3 enable clang-8 on travis 2019-12-16 14:06:26 +01:00
Vasil Velichkov 87a0a25c18 M2AP: Align 8 bits in liblte_m2ap_unpack_protocolie_singlecontainer
Alignment with more then 8 bits is unusual for APER encoding.

It seems clangs uses different packing for the LIBLTE_BIT_MSG_STRUCT
struct then gcc and puts more bytes between N_bits and header.

typedef struct {
  uint32 N_bits;
  uint8  header[LIBLTE_MSG_HEADER_OFFSET];
  uint8  msg[LIBLTE_MAX_MSG_SIZE_BITS];
} LIBLTE_BIT_MSG_STRUCT __attribute__((aligned(8)));

Fixes a failure in srslte_asn1_m2ap_test when compiled with clang
272: Test command: lib/test/asn1/srslte_asn1_m2ap_test
272: Test timeout computed to be: 1500
272: 03:47:13.189195 [M2AP] [I] M2 Setup Request original message
272:              0000: 00 05 00 37 00 00 03 00 0d 00 08 00 00 f1 10 00
272:              0010: 1a 2d 00 00 0e 40 0a 03 80 65 6e 62 31 61 32 64
272:              0020: 30 00 0f 00 16 00 00 10 00 11 00 00 f1 10 1a 2d
272:              0030: 00 10 27 10 01 02 00 01 02 00 02
272: [m2_setup_request_test][Line 95]: FAIL at (plmn_id[0] & 0x0F) == 0 && (plmn_id[0] & 0xF0) >> 4 == 0 && (plmn_id[1] & 0x0F) == 1
1/1 Test #272: srslte_asn1_m2ap_test ............***Failed    0.00 sec
2019-12-16 14:06:26 +01:00
Vasil Velichkov 07c620c084 travis: Test with both gcc and clang 2019-12-16 14:06:26 +01:00
Vasil Velichkov 72f04a31b6 Fix typo in -Wno-parentheses
This fixes the following clang's warning

warning: unknown warning option '-Wno-parantheses'; did you mean
      '-Wno-parentheses'? [-Wunknown-warning-option]
2019-12-16 14:06:26 +01:00
Andre Puschmann 0d3710176d remove -Werror=incompatible-pointer-types as CXX flag
seems to be only a valid C flag
2019-12-16 14:06:26 +01:00
Andre Puschmann 42080e59f1 remove std::move when returning freshly created unique_ptr 2019-12-16 14:06:26 +01:00
Andre Puschmann c7ee887170 add factory function for creating PDCP config 2019-12-16 14:06:26 +01:00
Francisco Paisana 5b4c42ac77 pass argument by pointer to avoid gcc4.8 issue 2019-12-16 14:06:26 +01:00
Vasil Velichkov ef9d16a3cf PHY: Initialize pucch3_w_n_oc_5 using precomputed constants when compiled with clang
Fixes the following clang-7's error

srsLTE/lib/src/phy/phch/pucch.c:307:9: error: initializer element is not a compile-time constant
    {1, cexpf(I * 2 * M_PI / 5), cexpf(I * 4 * M_PI / 5), cexpf(I * 6 * M_PI / 5), cexpf(I * 8 * M_PI / 5)},
        ^~~~~~~~~~~~~~~~~~~~~~~

Add SRSLTE_PUCCH_FORMAT_3 in the pucch_test
2019-12-16 14:06:26 +01:00
Vasil Velichkov a44671fc77 PHY: Manually unroll loops that use _mm_extract_epi(8/16)
clang does not unroll those loops even though it supports the
-funroll-loops command line option, adding various #pragma unroll
options also does not help.

The unroll is needed to make the second argument a constant integer.

Enable the SSE/AVX turbo rate matching when compiling in debug mode.

srsLTE/lib/src/phy/fec/rm_turbo.c:590:33: error: argument to '__builtin_ia32_vec_ext_v16qi' must be a constant integer
          int8_t x  = (int8_t)  _mm_extract_epi8(xVal,   j+8);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib64/clang/7.0.1/include/smmintrin.h:1048:23: note: expanded from macro '_mm_extract_epi8'
  (int)(unsigned char)__builtin_ia32_vec_ext_v16qi((__v16qi)(__m128i)(X), \
                      ^
srsLTE/lib/src/phy/fec/rm_turbo.c:591:35: error: argument to '__builtin_ia32_vec_ext_v8hi' must be a constant integer
          uint16_t l = (uint16_t) _mm_extract_epi16(lutVal2, j);
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib64/clang/7.0.1/include/emmintrin.h:4273:24: note: expanded from macro '_mm_extract_epi16'
  (int)(unsigned short)__builtin_ia32_vec_ext_v8hi((__v8hi)(__m128i)(a), \
2019-12-16 14:06:26 +01:00
Vasil Velichkov af2b4ecc79 Use -Wno-unused-but-set-variable only if supported
This fixes the following clang's warning

warning: unknown warning option '-Wno-unused-but-set-variable'; did you mean
      '-Wno-unused-const-variable'? [-Wunknown-warning-option]
2019-12-16 14:06:26 +01:00
Andre Puschmann f7f956708c use helper function to print MIB content 2019-12-16 12:49:07 +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 0feb8d1362 fixing two more issues reported by lgtm in asn1 libs 2019-12-16 12:49:07 +01:00
Vasil Velichkov dc9df9f08f Check the format of modified lines only
Use the -U0 option to generate a patch that contains only the modified
lines without any context
2019-12-16 12:49:07 +01:00
Francisco Paisana 20ff016e40 fixed header guard of threads file 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
Andre Puschmann 4e4a3eeb6c fix printf parameter in asn1_utils 2019-12-16 12:49:07 +01:00
Andre Puschmann febd668820 add basic lgtm config 2019-12-16 12:49:07 +01:00
Andre Puschmann 31d40304ff add CMake option to force usage of MKL while default is fftw 2019-12-16 12:49:07 +01:00
Xavier Arteaga 78dd9d7854 SRSLTE: Added float and complex vector allocation 2019-12-16 12:37:19 +01:00
Francisco Paisana a0d53b0d84 included ngap and rrc nr asn1 in asn1/ folder and added a ngap_test 2019-12-16 12:12:08 +01:00
Andre Puschmann 486b42e5a7 dynamically allocate log_str buffer for hex dumps
the developer needs to make sure that [info,debug,warning,error]_hex() is used
wisely in the code as all log_str are now heap-allocated
2019-12-14 22:37:08 +01:00
Andre Puschmann cf1e742120 add a simple log_filter test to print a long hex message
the purpose of this is to show that the hex message is cut if the
lenght exceeds the size of the preallocated buffer
2019-12-14 22:37:08 +01:00
Xavier Arteaga 2ebaf39c5a ZMQ: transmit zeros if buffer is not provided 2019-12-13 16:40:46 +01:00
Andre Puschmann fa2821a4e7 fixing periodic measurment reporting
fixes various issues with unset timers, interval parameters, etc.
with those fixes, TC_8_3_1_1 and TC_8_3_1_2 pass
2019-12-13 13:25:24 +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
Ismael Gomez 9546f3ccc4 Make PDCP/RLC write_sdu() calls non-blocking by default 2019-12-12 16:32:23 +01:00
Andre Puschmann c379ef6cb1 fix uninit var 2019-12-12 16:29:04 +01:00
Andre Puschmann 94ca9bcf22 fix potential invalid array access 2019-12-12 16:29:04 +01:00
Andre Puschmann 9078b2baf1 rlc_am: add check to prevent out of bounds access 2019-12-12 16:29:04 +01:00
Andre Puschmann 45e0233fee add simple Github action for compilation and tests 2019-12-12 15:43:04 +01:00
Vasil Velichkov f3cdee4bb2 Compile without -Werror when compiling with clang
clang currently prints a lot of warnings that will be fixed in
subsequent commits
2019-12-12 15:34:29 +01:00
Aleksander Morgado 52ce1fbfd1 enb: fix list of logging layers in conf example
Added 'phy_lib' and 's1ap', removed 'nas'.

As per the srsenb help:
  $ srsenb --help | grep level | grep log
    --log.rf_level arg                    RF log level
    --log.phy_level arg                   PHY log level
    --log.phy_lib_level arg (=none)       PHY lib log level
    --log.mac_level arg                   MAC log level
    --log.rlc_level arg                   RLC log level
    --log.pdcp_level arg                  PDCP log level
    --log.rrc_level arg                   RRC log level
    --log.gtpu_level arg                  GTPU log level
    --log.s1ap_level arg                  S1AP log level
    --log.all_level arg (=info)           ALL log level
2019-12-12 15:31:25 +01:00
Ismael Gomez 44c23b1690 Fix bug in rrc_meas in ASN to_number() conversion, making the UE to generate Measurement reports every TTI 2019-12-12 13:04:50 +01:00