X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fark%2Fark_global.h;h=6f9b3013d8ac5b6d30a13d3a3fc2bf5b73787f21;hb=23b096a374f6e43c91601319f53c27dfc944efc0;hp=91726ecc2014e4fb02f18d2ead98ef7e26cb0d3d;hpb=df96fd0d73955bdc7ca3909e772ff2ad903249c6;p=dpdk.git diff --git a/drivers/net/ark/ark_global.h b/drivers/net/ark/ark_global.h index 91726ecc20..6f9b3013d8 100644 --- a/drivers/net/ark/ark_global.h +++ b/drivers/net/ark/ark_global.h @@ -57,6 +57,23 @@ void *v; \ } name + +/* Extension hooks for extraction and placement of user meta data + * during RX an TX operations. These functions are the bridge + * between the mbuf struct and the tuser fields on the AXIS + * interfaces in the FPGA + */ +/* RX hook populates mbuf fields from user defined *meta up to 20 bytes */ +typedef void (*rx_user_meta_hook_fn)(struct rte_mbuf *mbuf, + const uint32_t *meta, + void *ext_user_data); +/* TX hook poplulate *meta, with up to 20 bytes. meta_cnt + * returns the number of uint32_t words populated, 0 to 5 + */ +typedef void (*tx_user_meta_hook_fn)(const struct rte_mbuf *mbuf, + uint32_t *meta, uint8_t *meta_cnt, + void *ext_user_data); + struct ark_user_ext { void *(*dev_init)(struct rte_eth_dev *, void *abar, int port_id); void (*dev_uninit)(struct rte_eth_dev *, void *); @@ -79,6 +96,9 @@ struct ark_user_ext { void (*mac_addr_set)(struct rte_eth_dev *, struct rte_ether_addr *, void *); int (*set_mtu)(struct rte_eth_dev *, uint16_t, void *); + /* user meta, hook functions */ + rx_user_meta_hook_fn rx_user_meta_hook; + tx_user_meta_hook_fn tx_user_meta_hook; }; struct ark_adapter {