1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2019 Marvell International Ltd.
11 * HIGIG2 headers definition.
13 * It is a layer 2.5 protocol and used in Broadcom switches.
17 #include <rte_byteorder.h>
27 struct rte_higig2_frc {
28 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
41 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
60 * higig2 ppt type0 header
62 struct rte_higig2_ppt_type0 {
63 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
65 uint32_t mirror_done:1;
66 uint32_t mirror_only:1;
67 uint32_t ingress_tagged:1;
71 uint32_t label_present:1;
83 uint32_t hdr_ext_length:3;
84 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
87 uint32_t ingress_tagged:1;
88 uint32_t mirror_only:1;
89 uint32_t mirror_done:1;
93 uint32_t label_present:1;
103 uint32_t hdr_ext_length:3;
111 * higig2 ppt type1 header.
114 struct rte_higig2_ppt_type1 {
115 uint16_t classification;
118 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
124 uint16_t hdr_ext_len:3;
125 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
130 uint16_t hdr_ext_len:3;
140 struct rte_higig2_hdr {
141 struct rte_higig2_frc fcr;
143 struct rte_higig2_ppt_type0 ppt0;
144 struct rte_higig2_ppt_type1 ppt1;
152 #endif /* RTE_HIGIG_H_ */