[dpdk-dev] [PATCH v6 1/2] ethdev: add packet integrity checks
Thomas Monjalon
thomas at monjalon.net
Sun Apr 18 20:11:36 CEST 2021
18/04/2021 17:51, Gregory Etelson:
> +__extension__
That still doesn't make sense, as in v5.
The things which require a macro are anonymous union,
anonymous struct and some bit fields with special sizes.
> +struct rte_flow_item_integrity {
> + /**< Tunnel encapsulation level the item should apply to.
> + * @see rte_flow_action_rss
> + */
> + uint32_t level;
Should have RTE_STD_C11 here.
> + union {
Should have RTE_STD_C11 here.
> + struct {
> + /**< The packet is valid after passing all HW checks. */
> + uint64_t packet_ok:1;
> + /**< L2 layer is valid after passing all HW checks. */
> + uint64_t l2_ok:1;
> + /**< L3 layer is valid after passing all HW checks. */
> + uint64_t l3_ok:1;
> + /**< L4 layer is valid after passing all HW checks. */
> + uint64_t l4_ok:1;
> + /**< L2 layer CRC is valid. */
> + uint64_t l2_crc_ok:1;
> + /**< IPv4 layer checksum is valid. */
> + uint64_t ipv4_csum_ok:1;
> + /**< L4 layer checksum is valid. */
> + uint64_t l4_csum_ok:1;
> + /**< The l3 length is smaller than the frame length. */
> + uint64_t l3_len_ok:1;
> + uint64_t reserved:56;
The reserved space looks useless since it is in an union.
> + };
I'm not sure about the 64-bit bitfields.
Maybe that's why you need __extension__.
I feel 32 bits are enough.
> + uint64_t value;
> + };
> +};
More information about the dev
mailing list