2 /* SPDX-License-Identifier: BSD-3-Clause
3 * Copyright(C) 2019 Marvell International Ltd.
12 * HIGIG2 headers definition.
14 * It is a layer 2.5 protocol and used in Broadcom switches.
18 #include <rte_byteorder.h>
28 struct rte_higig2_frc {
29 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
42 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
61 * higig2 ppt type0 header
63 struct rte_higig2_ppt_type0 {
64 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
66 uint32_t mirror_done:1;
67 uint32_t mirror_only:1;
68 uint32_t ingress_tagged:1;
72 uint32_t label_present:1;
84 uint32_t hdr_ext_length:3;
85 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
88 uint32_t ingress_tagged:1;
89 uint32_t mirror_only:1;
90 uint32_t mirror_done:1;
94 uint32_t label_present:1;
104 uint32_t hdr_ext_length:3;
112 * higig2 ppt type1 header.
115 struct rte_higig2_ppt_type1 {
116 uint16_t classification;
119 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
125 uint16_t hdr_ext_len:3;
126 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
131 uint16_t hdr_ext_len:3;
141 struct rte_higig2_hdr {
142 struct rte_higig2_frc fcr;
144 struct rte_higig2_ppt_type0 ppt0;
145 struct rte_higig2_ppt_type1 ppt1;
153 #endif /* RTE_HIGIG_H_ */