X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=app%2Ftest-pmd%2Ftestpmd.h;h=3ff11e6442c508dd51035737d9063539ccc9559a;hb=8a37f37fc243;hp=c07bee85e0d2516f58619cb08e5852a2f8354b8a;hpb=c77ad9de2a425b74fc0f306e08a7b532e65eefb3;p=dpdk.git diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index c07bee85e0..3ff11e6442 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -5,6 +5,8 @@ #ifndef _TESTPMD_H_ #define _TESTPMD_H_ +#include + #include #include #include @@ -179,6 +181,7 @@ struct rte_port { uint8_t tx_queue_stats_mapping_enabled; uint8_t rx_queue_stats_mapping_enabled; volatile uint16_t port_status; /**< port started or not */ + uint8_t need_setup; /**< port just attached */ uint8_t need_reconfig; /**< need reconfiguring port or not */ uint8_t need_reconfig_queues; /**< need reconfiguring queues or not */ uint8_t rss_flag; /**< enable rss or not */ @@ -196,6 +199,9 @@ struct rte_port { #ifdef SOFTNIC struct softnic_port softport; /**< softnic params */ #endif + /**< metadata value to insert in Tx packets. */ + rte_be32_t tx_metadata; + const struct rte_eth_rxtx_callback *tx_set_md_cb[MAX_QUEUE_ID+1]; }; /** @@ -326,6 +332,7 @@ extern uint8_t lsc_interrupt; /**< disabled by "--no-lsc-interrupt" parameter */ extern uint8_t rmv_interrupt; /**< disabled by "--no-rmv-interrupt" parameter */ extern uint32_t event_print_mask; /**< set by "--print-event xxxx" and "--mask-event xxxx parameters */ +extern bool setup_on_probe_event; /**< disabled by port setup-on iterator */ extern uint8_t hot_plug; /**< enable by "--hot-plug" parameter */ extern int do_mlockall; /**< set by "--mlockall" or "--no-mlockall" parameter */ @@ -509,6 +516,68 @@ struct nvgre_encap_conf { }; struct nvgre_encap_conf nvgre_encap_conf; +/* L2 encap parameters. */ +struct l2_encap_conf { + uint32_t select_ipv4:1; + uint32_t select_vlan:1; + rte_be16_t vlan_tci; + uint8_t eth_src[ETHER_ADDR_LEN]; + uint8_t eth_dst[ETHER_ADDR_LEN]; +}; +struct l2_encap_conf l2_encap_conf; + +/* L2 decap parameters. */ +struct l2_decap_conf { + uint32_t select_vlan:1; +}; +struct l2_decap_conf l2_decap_conf; + +/* MPLSoGRE encap parameters. */ +struct mplsogre_encap_conf { + uint32_t select_ipv4:1; + uint32_t select_vlan:1; + uint8_t label[3]; + rte_be32_t ipv4_src; + rte_be32_t ipv4_dst; + uint8_t ipv6_src[16]; + uint8_t ipv6_dst[16]; + rte_be16_t vlan_tci; + uint8_t eth_src[ETHER_ADDR_LEN]; + uint8_t eth_dst[ETHER_ADDR_LEN]; +}; +struct mplsogre_encap_conf mplsogre_encap_conf; + +/* MPLSoGRE decap parameters. */ +struct mplsogre_decap_conf { + uint32_t select_ipv4:1; + uint32_t select_vlan:1; +}; +struct mplsogre_decap_conf mplsogre_decap_conf; + +/* MPLSoUDP encap parameters. */ +struct mplsoudp_encap_conf { + uint32_t select_ipv4:1; + uint32_t select_vlan:1; + uint8_t label[3]; + rte_be16_t udp_src; + rte_be16_t udp_dst; + rte_be32_t ipv4_src; + rte_be32_t ipv4_dst; + uint8_t ipv6_src[16]; + uint8_t ipv6_dst[16]; + rte_be16_t vlan_tci; + uint8_t eth_src[ETHER_ADDR_LEN]; + uint8_t eth_dst[ETHER_ADDR_LEN]; +}; +struct mplsoudp_encap_conf mplsoudp_encap_conf; + +/* MPLSoUDP decap parameters. */ +struct mplsoudp_decap_conf { + uint32_t select_ipv4:1; + uint32_t select_vlan:1; +}; +struct mplsoudp_decap_conf mplsoudp_decap_conf; + static inline unsigned int lcore_num(void) { @@ -712,7 +781,7 @@ void stop_port(portid_t pid); void close_port(portid_t pid); void reset_port(portid_t pid); void attach_port(char *identifier); -void detach_port(portid_t port_id); +void detach_port_device(portid_t port_id); int all_ports_stopped(void); int port_is_stopped(portid_t port_id); int port_is_started(portid_t port_id); @@ -777,6 +846,13 @@ void add_rx_dump_callbacks(portid_t portid); void remove_rx_dump_callbacks(portid_t portid); void add_tx_dump_callbacks(portid_t portid); void remove_tx_dump_callbacks(portid_t portid); +void configure_rxtx_dump_callbacks(uint16_t verbose); + +uint16_t tx_pkt_set_md(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_md_callback(portid_t portid); +void remove_tx_md_callback(portid_t portid); /* * Work-around of a compilation error with ICC on invocations of the