struct pkt_burst_stats tx_burst_stats;
};
+/**
+ * Age action context types, must be included inside the age action
+ * context structure.
+ */
+enum age_action_context_type {
+ ACTION_AGE_CONTEXT_TYPE_FLOW,
+ ACTION_AGE_CONTEXT_TYPE_SHARED_ACTION,
+};
+
/** Descriptor for a single flow. */
struct port_flow {
struct port_flow *next; /**< Next flow in list. */
struct port_flow *tmp; /**< Temporary linking. */
uint32_t id; /**< Flow rule ID. */
struct rte_flow *flow; /**< Opaque flow object returned by PMD. */
- struct rte_flow_conv_rule rule; /* Saved flow rule description. */
+ struct rte_flow_conv_rule rule; /**< Saved flow rule description. */
+ enum age_action_context_type age_type; /**< Age action context type. */
uint8_t data[]; /**< Storage for flow rule description */
};
uint32_t id; /**< Shared action ID. */
enum rte_flow_action_type type; /**< Action type. */
struct rte_flow_shared_action *action; /**< Shared action handle. */
+ enum age_action_context_type age_type; /**< Age action context type. */
};
struct port_flow_tunnel {
extern uint16_t hairpin_mode;
-#ifdef RTE_LIBRTE_LATENCY_STATS
+#ifdef RTE_LIB_LATENCYSTATS
extern uint8_t latencystats_enabled;
extern lcoreid_t latencystats_lcore_id;
#endif
-#ifdef RTE_LIBRTE_BITRATESTATS
+#ifdef RTE_LIB_BITRATESTATS
extern lcoreid_t bitrate_lcore_id;
extern uint8_t bitrate_enabled;
#endif
*/
extern uint16_t rx_pkt_seg_lengths[MAX_SEGS_BUFFER_SPLIT];
extern uint8_t rx_pkt_nb_segs; /**< Number of segments to split */
+extern uint16_t rx_pkt_seg_offsets[MAX_SEGS_BUFFER_SPLIT];
+extern uint8_t rx_pkt_nb_offs; /**< Number of specified offsets */
/*
* Configuration of packet segments used by the "txonly" processing engine.
void set_verbose_level(uint16_t vb_level);
void set_rx_pkt_segments(unsigned int *seg_lengths, unsigned int nb_segs);
void show_rx_pkt_segments(void);
+void set_rx_pkt_offsets(unsigned int *seg_offsets, unsigned int nb_offs);
+void show_rx_pkt_offsets(void);
void set_tx_pkt_segments(unsigned int *seg_lengths, unsigned int nb_segs);
void show_tx_pkt_segments(void);
void set_tx_pkt_times(unsigned int *tx_times);
int port_is_stopped(portid_t port_id);
int port_is_started(portid_t port_id);
void pmd_test_exit(void);
+#if defined(RTE_NET_I40E) || defined(RTE_NET_IXGBE)
void fdir_get_infos(portid_t port_id);
+#endif
void fdir_set_flex_mask(portid_t port_id,
struct rte_eth_fdir_flex_mask *cfg);
void fdir_set_flex_payload(portid_t port_id,
void set_vf_traffic(portid_t port_id, uint8_t is_rx, uint16_t vf, uint8_t on);
+int
+rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,
+ uint16_t nb_rx_desc, unsigned int socket_id,
+ struct rte_eth_rxconf *rx_conf, struct rte_mempool *mp);
+
int set_queue_rate_limit(portid_t port_id, uint16_t queue_idx, uint16_t rate);
int set_vf_rate_limit(portid_t port_id, uint16_t vf, uint16_t rate,
uint64_t q_msk);