From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 30C60A00C2; Sun, 14 Aug 2022 20:46:40 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 09520406B4; Sun, 14 Aug 2022 20:46:38 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 2CA304069C for ; Sun, 14 Aug 2022 20:46:37 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 27EEhofa027631; Sun, 14 Aug 2022 11:46:36 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=jdiUBfls0omf8YFNpHV3UgToF32ernQLyPOswIeNumQ=; b=fAFlyXg1eLDafEyvPyKTelbdNfOXAyo5pFHZIm3tOqvTjG2q0RDcEEesjlxiqk5IJbxe ILcrkh1YAgiXXVpZV5iFFhjzxb6RGiurFN7gedXlr5CXYVvgrGgBs9RAL2fr4SUzb2Hx GVEF0jMi+X721HrHKlbfUjyIQcBzY2CSz0TtY3/70uud2+kIXlbLlqMzWXUvV3ImauEE /qT4g6lDOlBad2yDdqxWVc2Uy2VKi3zCP/mrxFUL6QQ2R/3hKasMuO9fABp01GcIiput Tl1rZvYWKTFni+nmj2qeeTiL7iljMi4KpoJKZTq5L5U/to2SBpMnp34NaBU+mxeY4fX+ KA== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3hx9aq4dab-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 14 Aug 2022 11:46:36 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 14 Aug 2022 11:46:34 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sun, 14 Aug 2022 11:46:34 -0700 Received: from localhost.localdomain (unknown [10.28.36.102]) by maili.marvell.com (Postfix) with ESMTP id A1E633F7053; Sun, 14 Aug 2022 11:46:30 -0700 (PDT) From: Akhil Goyal To: CC: , , , , , , , , , , , , , Akhil Goyal Subject: [PATCH 1/3] net: add MACsec header Date: Mon, 15 Aug 2022 00:16:18 +0530 Message-ID: <20220814184620.512343-2-gakhil@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220814184620.512343-1-gakhil@marvell.com> References: <20220814184620.512343-1-gakhil@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: abyy_h2Xg1MD4MjjJ5_NJuFALQMFDaie X-Proofpoint-ORIG-GUID: abyy_h2Xg1MD4MjjJ5_NJuFALQMFDaie X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-14_11,2022-08-11_01,2022-06-22_01 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Added MACsec protocol header to be used for supporting MACsec protocol offload in hardware or directly in the application. Signed-off-by: Akhil Goyal --- doc/api/doxy-api-index.md | 3 ++- lib/net/meson.build | 1 + lib/net/rte_macsec.h | 56 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 lib/net/rte_macsec.h diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md index 186a258be4..99e49340d3 100644 --- a/doc/api/doxy-api-index.md +++ b/doc/api/doxy-api-index.md @@ -126,7 +126,8 @@ The public API headers are grouped by topics: [Geneve](@ref rte_geneve.h), [eCPRI](@ref rte_ecpri.h), [L2TPv2](@ref rte_l2tpv2.h), - [PPP](@ref rte_ppp.h) + [PPP](@ref rte_ppp.h), + [MACsec](@ref rte_macsec.h) - **QoS**: [metering](@ref rte_meter.h), diff --git a/lib/net/meson.build b/lib/net/meson.build index e899846578..3e63abaca8 100644 --- a/lib/net/meson.build +++ b/lib/net/meson.build @@ -21,6 +21,7 @@ headers = files( 'rte_geneve.h', 'rte_l2tpv2.h', 'rte_ppp.h', + 'rte_macsec.h', ) sources = files( diff --git a/lib/net/rte_macsec.h b/lib/net/rte_macsec.h new file mode 100644 index 0000000000..f1b59253f6 --- /dev/null +++ b/lib/net/rte_macsec.h @@ -0,0 +1,56 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(C) 2022 Marvell. + */ + +#ifndef _RTE_MACSEC_H_ +#define _RTE_MACSEC_H_ + +/** + * @file + * + * MACsec-related defines + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* SecTAG length = macsec ether header without the optional SCI */ +#define RTE_MACSEC_TAG_LEN 6 +#define RTE_MACSEC_SCI_LEN 8 + +#define RTE_MACSEC_TCI_VERSION 0x80 /**< Version mask for MACsec. Should be 0. */ +#define RTE_MACSEC_TCI_ES 0x40 /**< End station - SCI is not valid */ +#define RTE_MACSEC_TCI_SC 0x20 /**< SCI present */ +#define RTE_MACSEC_TCI_SCB 0x10 /**< Secure channel support EPON single copy broadcast */ +#define RTE_MACSEC_TCI_E 0x08 /**< User data is encrypted */ +#define RTE_MACSEC_TCI_C 0x04 /**< User data was changed (because of encryption) */ +#define RTE_MACSEC_AN_MASK 0x03 /**< Association number mask in tci_an */ +#define RTE_MACSEC_NUM_AN 4 /**< 2 bits for the association number */ +#define RTE_MACSEC_SALT_LEN 12 /**< Salt length for MACsec SA */ + +/** + * MACsec Header + */ +struct rte_macsec_hdr { + /* SecTAG */ + uint8_t tci_an; /**< Tag control information and Association number of SC */ +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN + uint8_t short_length : 6; /**< Short Length */ + uint8_t unused : 2; +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN + uint8_t unused : 2; + uint8_t short_length : 6; +#endif + rte_be32_t packet_number; /**< Packet number to support replay protection */ + uint8_t secure_channel_id[8]; /* optional */ +} __rte_packed; + +#ifdef __cplusplus +} +#endif + +#endif /* RTE_MACSEC_H_ */ -- 2.25.1