Commit Graph

52 Commits

Author SHA1 Message Date
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.
2020-03-11 09:00:38 +00: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 6b4488d5c1 added sending of enb status transfer from SeNB 2019-12-11 17:41:49 +00: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
Andre Puschmann e42449532b fix wrong namespace definition in various places 2019-08-07 15:32:49 +02:00
Pedro Alvarez 6efa944b5e Removed srslte prefix from pdcp_config_t 2019-07-30 15:01:50 +02:00
Pedro Alvarez 491695ab77 Clang-formated PDCP NR PR. 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 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 e0a28cf4c0 simplify PDCP init and also bypass it for SRB0 on eNB 2019-06-21 15:49:46 +02:00
Andre Puschmann 218f136254 remove default PDCP entity for SRB0 2019-06-21 15:49:46 +02:00
Ismael Gomez 14b526f2aa Add PDCP per-bearer reestablish 2019-06-06 14:34:25 +02:00
Andre Puschmann c14c3c23f1 pdcp: fix issue when setting SN length configuration 2019-05-30 13:05:02 +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
Andre Puschmann 4b01a2e4a0 update copyright notice 2019-04-29 09:20:02 +02:00
David Rupprecht eb3a83ac45 User Plane key in configuration interface 2019-04-11 21:38:01 +02:00
Andre Puschmann 53850e5353 delete MRB bearer during PDCP destruction 2018-12-30 22:58:41 +01:00
Eric Schreiber 46d41a5dc5 Remove undefined increment of an erased iterator. (#274) 2018-12-14 12:01:44 +01:00
Andre Puschmann 27459bf706 add API to change LCID of PDCP bearers 2018-09-17 13:10:44 +02:00
Andre Puschmann f56592b0fe add getter for PDCP ul/dl counter 2018-08-08 16:26:32 +02:00
Andre Puschmann 716b028023 reset PDCP entities 2018-08-06 15:48:52 +02:00
Andre Puschmann 91492b87ef add del_bearer for RLC/PDCP 2018-08-06 13:17:51 +02:00
Andre Puschmann ee5b055829 rename pdcp function for GW to is_lcid_enabled() 2018-07-25 15:09:19 +02:00
Andre Puschmann 40d19e2d32 fix PDCP reset 2018-07-25 15:08:35 +02:00
Andre Puschmann b8438e9cc3 extend PDCP interface to allow non-blocking write of SDUs 2018-07-24 15:49:09 +02:00
Andre Puschmann 2b86272c5e protect PCAP bearer additions with write lock 2018-07-24 09:43:33 +02:00
Andre Puschmann 800eea888f fix PDCP security config 2018-07-19 10:23:15 +02:00
Andre Puschmann 47a8b1343f add rwlock to PDCP 2018-07-17 15:27:04 +02:00
Andre Puschmann 93c11e4416 turn PDCP array into map 2018-07-17 12:50:10 +02:00
yagoda 49c3578f64 introducing embms support in common upper layer functions 2018-05-15 16:57:23 +02:00
Ismael Gomez 390a463d9f Check for PDU allocation and add warnings 2018-03-06 12:41:44 +01:00
Xavier Arteaga 99ef760b6f More Coverity fixes 2018-01-31 16:49:14 +01:00
Ismael Gomez c0bbf6c5ae Removed PDCP thread 2018-01-25 15:01:57 +01:00
Andre Puschmann 34d4017479 check if active state before stopping pdcp entity 2018-01-19 14:05:39 +01:00
Andre Puschmann 74138071db move radio bearer definition to RRC 2018-01-12 14:57:38 +01:00
Ismael Gomez 5c31800ccb Fixed HO with ciphering 2017-12-02 22:43:35 +01:00
Ismael Gomez 9a255b477a Merge branch 'crypto' into mobility_crypto 2017-12-02 12:23:05 +01:00
Paul Sutton 1a323770c9 Added support for AS ciphering 2017-12-01 19:19:38 +00:00
Paul Sutton 84724d2ab1 NAS-plane encryption working (thanks to David Rupprecht) 2017-11-30 17:09:12 +00:00
Ismael Gomez 408545dab8 X2 (constant NCC) working 2017-11-23 19:46:34 +01:00
Ismael Gomez 68b1782c86 Fixed Paging and reattachment in new state machine. Moved GW to srsue 2017-09-18 14:02:31 +02:00
Andre Puschmann 1e3b5f553e fix printf argument 2017-07-06 18:34:00 +02:00
Andre Puschmann 8030778809 fix PDCP initialization in eNB 2017-07-06 16:42:16 +02:00
Andre Puschmann 8dbabb2834 rework bearer/LCID handling
This is a larger patch that reworks the LCID handling throughout the
code.

- It first moves the RB/LCID mapping out of common.h into the RRC object
  because different RATs may have different mappings.
- It adds a interface to RRC that other objects like RLC/PDCP/etc. may
  use to get the bearer name of a specific LCID.
- The patch also introduces a PDCP config class.
2017-07-04 17:48:39 +02:00
Ismael Gomez 5e030dc805 renamed SRSUE_ constants to SRSLTE_ 2017-06-06 20:34:09 +02:00
Ismael Gomez 8a367bf825 changed srsue namespace to srslte for all common objects 2017-06-01 12:25:42 +02:00