> -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Andrew Rybchenko > Sent: Sunday, June 9, 2019 22:24 > To: Yongseok Koh <ys...@mellanox.com>; shah...@mellanox.com; > tho...@monjalon.net; Yigit, Ferruh > <ferruh.yi...@intel.com>; adrien.mazarg...@6wind.com; olivier.m...@6wind.com > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] [RFC 1/3] ethdev: extend flow metadata > > On 6/4/19 12:32 AM, Yongseok Koh wrote: > > Currently, metadata can be set on egress path via mbuf tx_meatadata field > > with PKT_TX_METADATA flag and RTE_FLOW_ITEM_TYPE_RX_META matches metadata. > > > > This patch extends the usability. > > > > 1) RTE_FLOW_ACTION_TYPE_SET_META > > > > When supporting multiple tables, Tx metadata can also be set by a rule and > > matched by another rule. This new action allows metadata to be set as a > > result of flow match. > > > > 2) Metadata on ingress > > > > There's also need to support metadata on packet Rx. Metadata can be set by > > SET_META action and matched by META item like Tx. The final value set by > > the action will be delivered to application via mbuf metadata field with > > PKT_RX_METADATA ol_flag. > > > > For this purpose, mbuf->tx_metadata is moved as a separate new field and > > renamed to 'metadata' to support both Rx and Tx metadata. > > > > For loopback/hairpin packet, metadata set on Rx/Tx may or may not be > > propagated to the other path depending on HW capability. > > > > Signed-off-by: Yongseok Koh <ys...@mellanox.com> > > There is a mark on Rx which is delivered to application in hash.fdir.hi. > Why do we need one more 32-bit value set by NIC and delivered to > application? > What is the difference between MARK and META on Rx? > When application should use MARK and when META? > Is there cases when both could be necessary? > In my understanding, MARK is FDIR related thing, META seems to be NIC specific. And we also need this kind of specific data field to export NIC's data to application.
> Moreover, the third patch adds 32-bit tags which are not delivered to > application. May be META/MARK should be simply a kind of TAG (e.g. with > index 0 or marked using additional attribute) which is delivered to > application? > > (It is either API breakage (if tx_metadata is removed) or ABI breakage > if metadata and tx_metadata will share new location after shinfo). > Make use of udata64 to export NIC metadata to application ? RTE_STD_C11 union { void *userdata; /**< Can be used for external metadata */ uint64_t udata64; /**< Allow 8-byte userdata on 32-bit */ uint64_t rx_metadata; }; > Andrew.