numam-dpdk/drivers/common/dpaax
Franck Lenormand 3ba2e519ea common/dpaax/caamflib: support PDCP-SDAP
The SDAP is a protocol in the LTE stack on top of PDCP. It is
dedicated to QoS.

The difficulty of implementing this protocol is because the
PDCP change behavior regarding encryption and authentication
of the SDU it receives. In effect PDCP shall not encrypt the
SDAP SDU but must authenticate it (when encryption and
authentication is enabled).

The current version of SEC does not support the SDAP and the
change of behavior of PDCP prevent the use of the PDCP
protocol command available.

The way to do it is to reuse the PDCP implementation but to
not use the PDCP protocol and to have descriptors which
performs the PDCP protocol.

It is implemented by doing small changes of code:
        #ifdef SDAP_SUPPORT
                length += SDAP_BYTE_SIZE;
                offset -= SDAP_BYTE_SIZE;
        #endif
after having computed the size of the SN to read from the
input data, then
        #ifdef SDAP_SUPPORT
                MATHI(p, MATH0, LSHIFT, 8, MATH1, 8, 0);
                MATHB(p, MATH1, AND, sn_mask, MATH1, 8, IFB | IMMED2);
        #else
                MATHB(p, MATH0, AND, sn_mask, MATH1, 8, IFB | IMMED2);
        #endif
It will keep the SN and the SDAP header in MATH0, then shift
it to remove the SDAP header and store the result in MATH1.

Signed-off-by: Franck Lenormand <franck.lenormand@nxp.com>
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
2020-10-14 22:24:41 +02:00
..
caamflib common/dpaax/caamflib: support PDCP-SDAP 2020-10-14 22:24:41 +02:00
caamflib.c drivers/crypto: fix build with -fno-common 2020-05-15 19:43:17 +02:00
compat.h config: remap flags used for Arm platforms 2020-10-13 16:35:48 +02:00
dpaa_list.h common/dpaax: move OF library from DPAA bus 2019-10-23 16:43:08 +02:00
dpaa_of.c common/dpaax: move OF library from DPAA bus 2019-10-23 16:43:08 +02:00
dpaa_of.h common/dpaax: mark internal symbols 2020-05-19 15:49:53 +02:00
dpaax_iova_table.c mem: remove physical address aliases 2020-09-19 00:25:35 +02:00
dpaax_iova_table.h common/dpaax: mark internal symbols 2020-05-19 15:49:53 +02:00
dpaax_logs.h common/dpaax: move OF library from DPAA bus 2019-10-23 16:43:08 +02:00
meson.build drivers/crypto: fix build with -fno-common 2020-05-15 19:43:17 +02:00
rte_common_dpaax_version.map drivers: drop workaround for internal libraries version 2020-07-07 12:48:59 +02:00