/**< allocate mempool natively, but populate using anonymous memory */
MP_ALLOC_XMEM,
/**< allocate and populate mempool using anonymous memory */
- MP_ALLOC_XMEM_HUGE
+ MP_ALLOC_XMEM_HUGE,
/**< allocate and populate mempool using anonymous hugepage memory */
+ MP_ALLOC_XBUF
+ /**< allocate mempool natively, use rte_pktmbuf_pool_create_extbuf */
};
#ifdef RTE_TEST_PMD_RECORD_BURST_STATS
*/
extern const struct rss_type_info rss_type_table[];
+/**
+ * Dynf name array.
+ *
+ * Array that holds the name for each dynf.
+ */
+extern char dynf_names[64][RTE_MBUF_DYN_NAMESIZE];
+
/**
* The data structure associated with a forwarding stream between a receive
* port/queue and a transmit port/queue.
/**< metadata value to insert in Tx packets. */
uint32_t tx_metadata;
const struct rte_eth_rxtx_callback *tx_set_md_cb[RTE_MAX_QUEUES_PER_PORT+1];
+ /**< dynamic flags. */
+ uint64_t mbuf_dynf;
+ const struct rte_eth_rxtx_callback *tx_set_dynf_cb[RTE_MAX_QUEUES_PER_PORT+1];
};
/**
rte_panic("lcore_id of current thread not found in fwd_lcores_cpuids\n");
}
+void
+parse_fwd_portlist(const char *port);
+
static inline struct fwd_lcore *
current_fwd_lcore(void)
{
const struct rte_flow_action *actions);
int port_flow_destroy(portid_t port_id, uint32_t n, const uint32_t *rule);
int port_flow_flush(portid_t port_id);
+int port_flow_dump(portid_t port_id, const char *file_name);
int port_flow_query(portid_t port_id, uint32_t rule,
const struct rte_flow_action *action);
void port_flow_list(portid_t port_id, uint32_t n, const uint32_t *group);
void add_tx_md_callback(portid_t portid);
void remove_tx_md_callback(portid_t portid);
+uint16_t tx_pkt_set_dynf(uint16_t port_id, __rte_unused uint16_t queue,
+ struct rte_mbuf *pkts[], uint16_t nb_pkts,
+ __rte_unused void *user_param);
+void add_tx_dynf_callback(portid_t portid);
+void remove_tx_dynf_callback(portid_t portid);
+
/*
* Work-around of a compilation error with ICC on invocations of the
* rte_be_to_cpu_16() function.