eal/x86: add 128-bit atomic compare exchange
[dpdk.git] / app / test-pmd / testpmd.h
index ca2320c..a45988e 100644 (file)
@@ -5,6 +5,8 @@
 #ifndef _TESTPMD_H_
 #define _TESTPMD_H_
 
+#include <stdbool.h>
+
 #include <rte_pci.h>
 #include <rte_bus_pci.h>
 #include <rte_gro.h>
@@ -117,12 +119,12 @@ struct fwd_stream {
        unsigned int retry_enabled;
 
        /* "read-write" results */
-       unsigned int rx_packets;  /**< received packets */
-       unsigned int tx_packets;  /**< received packets transmitted */
-       unsigned int fwd_dropped; /**< received packets not forwarded */
-       unsigned int rx_bad_ip_csum ; /**< received packets has bad ip checksum */
-       unsigned int rx_bad_l4_csum ; /**< received packets has bad l4 checksum */
-       unsigned int rx_bad_outer_l4_csum;
+       uint64_t rx_packets;  /**< received packets */
+       uint64_t tx_packets;  /**< received packets transmitted */
+       uint64_t fwd_dropped; /**< received packets not forwarded */
+       uint64_t rx_bad_ip_csum ; /**< received packets has bad ip checksum */
+       uint64_t rx_bad_l4_csum ; /**< received packets has bad l4 checksum */
+       uint64_t rx_bad_outer_l4_csum;
        /**< received packets has bad outer l4 checksum */
        unsigned int gro_times; /**< GRO operation times */
 #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES
@@ -162,23 +164,16 @@ struct rte_port {
        struct rte_eth_conf     dev_conf;   /**< Port configuration. */
        struct ether_addr       eth_addr;   /**< Port ethernet address */
        struct rte_eth_stats    stats;      /**< Last port statistics */
-       uint64_t                tx_dropped; /**< If no descriptor in TX ring */
-       struct fwd_stream       *rx_stream; /**< Port RX stream, if unique */
-       struct fwd_stream       *tx_stream; /**< Port TX stream, if unique */
        unsigned int            socket_id;  /**< For NUMA support */
        uint16_t                parse_tunnel:1; /**< Parse internal headers */
        uint16_t                tso_segsz;  /**< Segmentation offload MSS for non-tunneled packets. */
        uint16_t                tunnel_tso_segsz; /**< Segmentation offload MSS for tunneled pkts. */
        uint16_t                tx_vlan_id;/**< The tag ID */
        uint16_t                tx_vlan_id_outer;/**< The outer tag ID */
-       void                    *fwd_ctx;   /**< Forwarding mode context */
-       uint64_t                rx_bad_ip_csum; /**< rx pkts with bad ip checksum  */
-       uint64_t                rx_bad_l4_csum; /**< rx pkts with bad l4 checksum */
-       uint64_t                rx_bad_outer_l4_csum;
-       /**< rx pkts with bad outer l4 checksum */
        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 */
@@ -329,6 +324,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 */
 
@@ -436,6 +432,8 @@ enum tx_pkt_split {
 
 extern enum tx_pkt_split tx_pkt_split;
 
+extern uint8_t txonly_multi_flow;
+
 extern uint16_t nb_pkt_per_burst;
 extern uint16_t mb_mempool_cache;
 extern int8_t rx_pthresh;
@@ -484,6 +482,7 @@ extern uint16_t gso_max_segment_size;
 struct vxlan_encap_conf {
        uint32_t select_ipv4:1;
        uint32_t select_vlan:1;
+       uint32_t select_tos_ttl:1;
        uint8_t vni[3];
        rte_be16_t udp_src;
        rte_be16_t udp_dst;
@@ -492,6 +491,8 @@ struct vxlan_encap_conf {
        uint8_t ipv6_src[16];
        uint8_t ipv6_dst[16];
        rte_be16_t vlan_tci;
+       uint8_t ip_tos;
+       uint8_t ip_ttl;
        uint8_t eth_src[ETHER_ADDR_LEN];
        uint8_t eth_dst[ETHER_ADDR_LEN];
 };
@@ -761,6 +762,8 @@ char *list_pkt_forwarding_modes(void);
 char *list_pkt_forwarding_retry_modes(void);
 void set_pkt_forwarding_mode(const char *fwd_mode);
 void start_packet_forwarding(int with_tx_first);
+void fwd_stats_display(void);
+void fwd_stats_reset(void);
 void stop_packet_forwarding(void);
 void dev_set_link_up(portid_t pid);
 void dev_set_link_down(portid_t pid);
@@ -777,7 +780,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);