> From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of > long...@viettel.com.vn > > Also for the bulk API, another option would be passing in a `uint64_t > malformed_mask` and let the bulk function set the correspond bit (1 << > pos) of that mask if the packet at position pos is malformed. > > void rte_hdr_parse_bulk(struct rte_mbuf **pkts, uint64_t > *malformed_mask, uint_fast16_t nb_pkts); > > The packet mask idea is used extensively in the packet framework > (rte_pipeline, rte_port, rte_table). >
A key property of the bulk function is to make it easy passing on the resulting array of non-malformed packets to the next bulk function, e.g. GRO. A malformed_mask would require an intermediate step of processing before the resulting array can be passed on. For functions like GRO, either the MBUF must contain a valid/malformed indication, or the array provided to them must contain only valid packets. Med venlig hilsen / kind regards - Morten Brørup