DPDK  24.11.0-rc3
rte_pdcp_hdr.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2023 Marvell.
3  */
4 
5 #ifndef RTE_PDCP_HDR_H
6 #define RTE_PDCP_HDR_H
7 
17 #include <rte_byteorder.h>
18 
24 #define RTE_PDCP_CTRL_PDU_SIZE_MAX 9000u
25 
31 #define RTE_PDCP_MAC_I_LEN 4
32 
38  RTE_PDCP_CTRL_PDU_TYPE_STATUS_REPORT = 0,
39  RTE_PDCP_CTRL_PDU_TYPE_ROHC_FEEDBACK = 1,
40  RTE_PDCP_CTRL_PDU_TYPE_EHC_FEEDBACK = 2,
41  RTE_PDCP_CRTL_PDU_TYPE_UDC_FEEDBACK = 3,
42 };
43 
51  RTE_PDCP_PDU_TYPE_CTRL = 0,
52  RTE_PDCP_PDU_TYPE_DATA = 1,
53 };
54 
58 __extension__
60 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
61  uint8_t sn_11_8 : 4;
62  uint8_t r : 4;
63 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
64  uint8_t r : 4;
65  uint8_t sn_11_8 : 4;
66 #endif
67  uint8_t sn_7_0;
68 } __rte_packed;
69 
73 __extension__
75 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
76  uint8_t sn_11_8 : 4;
77  uint8_t r : 3;
78  uint8_t d_c : 1;
79 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
80  uint8_t d_c : 1;
81  uint8_t r : 3;
82  uint8_t sn_11_8 : 4;
83 #endif
84  uint8_t sn_7_0;
85 } __rte_packed;
86 
90 __extension__
92 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
93  uint8_t sn_17_16 : 2;
94  uint8_t r : 5;
95  uint8_t d_c : 1;
96 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
97  uint8_t d_c : 1;
98  uint8_t r : 5;
99  uint8_t sn_17_16 : 2;
100 #endif
101  uint8_t sn_15_8;
102  uint8_t sn_7_0;
103 } __rte_packed;
104 
108 __extension__
110 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
111  uint8_t r : 4;
112  uint8_t pdu_type : 3;
113  uint8_t d_c : 1;
114 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
115  uint8_t d_c : 1;
116  uint8_t pdu_type : 3;
117  uint8_t r : 4;
118 #endif
119 
136  uint8_t bitmap[];
137 } __rte_packed;
138 
139 #endif /* RTE_PDCP_HDR_H */
uint32_t rte_be32_t
#define __rte_packed
Definition: rte_common.h:108
rte_pdcp_ctrl_pdu_type
Definition: rte_pdcp_hdr.h:37
rte_pdcp_pdu_type
Definition: rte_pdcp_hdr.h:50