18/01/2018 08:52, Andrew Rybchenko: > On 01/18/2018 10:16 AM, Andrew Rybchenko wrote: > > On 01/17/2018 08:33 PM, Thomas Monjalon wrote: > >> Hi, 2 comments below > >> > >> 11/01/2018 09:12, Andrew Rybchenko: > >>> From: Ivan Malov <ivan.ma...@oktetlabs.ru> > >>> > >>> +#define RTE_RX_OFFLOAD_BIT2STR(_name) \ > >>> + { DEV_RX_OFFLOAD_##_name, #_name } > >>> + > >>> +static const struct { > >>> + uint64_t offload; > >>> + const char *name; > >>> +} rte_rx_offload_names[] = { > >>> + RTE_RX_OFFLOAD_BIT2STR(VLAN_STRIP), > >>> + RTE_RX_OFFLOAD_BIT2STR(IPV4_CKSUM), > >>> + RTE_RX_OFFLOAD_BIT2STR(UDP_CKSUM), > >>> + RTE_RX_OFFLOAD_BIT2STR(TCP_CKSUM), > >>> + RTE_RX_OFFLOAD_BIT2STR(TCP_LRO), > >>> + RTE_RX_OFFLOAD_BIT2STR(QINQ_STRIP), > >>> + RTE_RX_OFFLOAD_BIT2STR(OUTER_IPV4_CKSUM), > >>> + RTE_RX_OFFLOAD_BIT2STR(MACSEC_STRIP), > >>> + RTE_RX_OFFLOAD_BIT2STR(HEADER_SPLIT), > >>> + RTE_RX_OFFLOAD_BIT2STR(VLAN_FILTER), > >>> + RTE_RX_OFFLOAD_BIT2STR(VLAN_EXTEND), > >>> + RTE_RX_OFFLOAD_BIT2STR(JUMBO_FRAME), > >>> + RTE_RX_OFFLOAD_BIT2STR(CRC_STRIP), > >>> + RTE_RX_OFFLOAD_BIT2STR(SCATTER), > >>> + RTE_RX_OFFLOAD_BIT2STR(TIMESTAMP), > >>> + RTE_RX_OFFLOAD_BIT2STR(SECURITY), > >>> +}; > >>> + > >>> +#undef RTE_RX_OFFLOAD_BIT2STR > >> Why this undef? > > > > It is a constant-local macro with assumption to be used as > > I mean context-local, sorry. > > > initializer of the corresponding structure. So, under is just to > > limit its context and be sure that it is will not clash or be reused > > most likely in a wrong way.
We do not take this precaution usually in DPDK. No strong opinion however.