Some minor comments style may need adjust. With above fixed, Acked-by: Chengwen Feng <fengcheng...@huawei.com>
On 2024/2/15 14:21, Tyler Retzlaff wrote: > Provide a macro that allows conditional expansion of RTE_MARKER fields > to empty to allow rte_mbuf to be used with MSVC. It is proposed that > we announce the fields to be __rte_deprecated (currently disabled). > > Introduce C11 anonymous unions to permit aliasing of well-known > offsets by name into the rte_mbuf structure by a *new* name and to > provide padding for cache alignment. > > Signed-off-by: Tyler Retzlaff <roret...@linux.microsoft.com> > --- ... > > - /* remaining bytes are set on RX when pulling packet from descriptor */ > - RTE_MARKER rx_descriptor_fields1; > + uint64_t ol_flags; /**< Offload features. */ > > - /* > - * The packet type, which is the combination of outer/inner L2, L3, L4 > - * and tunnel types. The packet_type is about data really present in the > - * mbuf. Example: if vlan stripping is enabled, a received vlan packet > - * would have RTE_PTYPE_L2_ETHER and not RTE_PTYPE_L2_VLAN because the > - * vlan is stripped from the data. > - */ > - union { > - uint32_t packet_type; /**< L2/L3/L4 and tunnel information. */ > - __extension__ > - struct { > - uint8_t l2_type:4; /**< (Outer) L2 type. */ > - uint8_t l3_type:4; /**< (Outer) L3 type. */ > - uint8_t l4_type:4; /**< (Outer) L4 type. */ > - uint8_t tun_type:4; /**< Tunnel type. */ > + /* remaining bytes are set on RX when pulling packet > from descriptor */ > + __rte_marker(RTE_MARKER, rx_descriptor_fields1); > union { > - uint8_t inner_esp_next_proto; > - /**< ESP next protocol type, valid if > - * RTE_PTYPE_TUNNEL_ESP tunnel type is set > - * on both Tx and Rx. > - */ > + char mbuf_rx_descriptor_fields1[8]; > __extension__ > struct { > - uint8_t inner_l2_type:4; > - /**< Inner L2 type. */ > - uint8_t inner_l3_type:4; > - /**< Inner L3 type. */ > + /* > + * The packet type, which is the > combination of outer/inner > + * L2, L3, L4 and tunnel types. The > packet_type is about > + * data really present in the mbuf. > Example: if vlan > + * stripping is enabled, a received > vlan packet would have > + * RTE_PTYPE_L2_ETHER and not > RTE_PTYPE_L2_VLAN because the > + * vlan is stripped from the data. > + */ > + union { > + uint32_t packet_type; > + /**< L2/L3/L4 and tunnel > information. */ According dpdk doxygen guidelines [1], prefer prefix comment in above case. [1] https://doc.dpdk.org/guides/contributing/documentation.html#doxygen-guidelines > + __extension__ > + struct { > + uint8_t l2_type:4; > + /**< (Outer) L2 type. */ > + uint8_t l3_type:4; > + /**< (Outer) L3 type. */ > + uint8_t l4_type:4; > + /**< (Outer) L4 type. */ > + uint8_t tun_type:4; > + /**< Tunnel type. */ > + union { > + uint8_t > inner_esp_next_proto; > + /**< ESP next > protocol type, valid > + * if > RTE_PTYPE_TUNNEL_ESP tunnel > + * type is set > on both Tx and Rx. > + */ > + __extension__ > + struct { > + uint8_t > inner_l2_type:4; > + /**< > Inner L2 type. */ > + uint8_t > inner_l3_type:4; > + /**< > Inner L3 type. */ > + }; > + }; > + uint8_t inner_l4_type:4; > + /**< Inner L4 type. */ > + }; > + }; > + uint32_t pkt_len; > + /**< Total pkt len: sum of all > segments. */ The above should also use prefix comment type. > }; > }; > - uint8_t inner_l4_type:4; /**< Inner L4 type. */ > - }; > - }; > ...