security: modify PDCP xform to support SDAP

The SDAP is a protocol in the LTE stack on top of PDCP for
QOS. A particular PDCP session may or may not have
SDAP enabled. But if it is enabled, SDAP header should be
authenticated but not encrypted if both confidentiality and
integrity is enabled. Hence, the driver should be intimated
from the xform so that it skip the SDAP header while encryption.

A new field is added in the PDCP xform to specify SDAP is enabled.
The overall size of the xform is not changed, as hfn_ovrd is just
a flag and does not need uint32. Hence, it is converted to uint8_t
and a 16 bit reserved field is added for future.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
Akhil Goyal 2020-10-12 19:40:00 +05:30
parent 3ba2e519ea
commit 486f067a41
2 changed files with 19 additions and 2 deletions

View File

@ -203,6 +203,11 @@ New Features
also known as Mount Bryce. See the
:doc:`../bbdevs/acc100` BBDEV guide for more details on this new driver.
* **Updated rte_security library to support SDAP.**
``rte_security_pdcp_xform`` in ``rte_security`` lib is updated to enable
5G NR processing of SDAP header in PMDs.
* **Added Marvell OCTEON TX2 regex PMD.**
Added a new PMD driver for hardware regex offload block for OCTEON TX2 SoC.
@ -375,6 +380,10 @@ API Changes
``RTE_CRYPTODEV_SCHEDULER_MAX_NB_SLAVES`` to
``RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS``.
* security: ``hfn_ovrd`` field in ``rte_security_pdcp_xform`` is changed from
``uint32_t`` to ``uint8_t`` so that a new field ``sdap_enabled`` can be added
to support SDAP.
* ipsec: ``RTE_SATP_LOG2_NUM`` has been dropped from ``enum`` and
subsequently moved ``rte_ipsec`` lib from experimental to stable.

View File

@ -1,5 +1,5 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright 2017,2019 NXP
* Copyright 2017,2019-2020 NXP
* Copyright(c) 2017-2020 Intel Corporation.
*/
@ -290,7 +290,15 @@ struct rte_security_pdcp_xform {
* per packet HFN in place of IV. PMDs will extract the HFN
* and perform operations accordingly.
*/
uint32_t hfn_ovrd;
uint8_t hfn_ovrd;
/** In case of 5G NR, a new protocol (SDAP) header may be set
* inside PDCP payload which should be authenticated but not
* encrypted. Hence, driver should be notified if SDAP is
* enabled or not, so that SDAP header is not encrypted.
*/
uint8_t sdap_enabled;
/** Reserved for future */
uint16_t reserved;
};
/** DOCSIS direction */