update copyright date to 2013
[dpdk.git] / app / test-pmd / testpmd.h
index 6a5a6d4..c54bd99 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  * 
- *   Copyright(c) 2010-2012 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2013 Intel Corporation. All rights reserved.
  *   All rights reserved.
  * 
  *   Redistribution and use in source and binary forms, with or without 
 int main(int argc, char **argv);
 #endif
 
+#define RTE_PORT_ALL            (~(portid_t)0x0)
+
+#define RTE_TEST_RX_DESC_MAX    2048
+#define RTE_TEST_TX_DESC_MAX    2048
+
+#define RTE_PORT_STOPPED        (uint16_t)0
+#define RTE_PORT_STARTED        (uint16_t)1
+#define RTE_PORT_CLOSED         (uint16_t)2
+#define RTE_PORT_HANDLING       (uint16_t)3
+
 /*
  * Default size of the mbuf data buffer to receive standard 1518-byte
  * Ethernet frames in a mono-segment memory buffer.
@@ -111,7 +121,7 @@ struct fwd_stream {
 /**
  * The data structure associated with each port.
  * tx_ol_flags is slightly different from ol_flags of rte_mbuf.
- *      Bit  0: Insert IP checksum
+ *   Bit  0: Insert IP checksum
  *   Bit  1: Insert UDP checksum
  *   Bit  2: Insert TCP checksum
  *   Bit  3: Insert SCTP checksum
@@ -133,6 +143,12 @@ struct rte_port {
        uint64_t                rx_bad_l4_csum; /**< rx pkts with bad 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_reconfig;  /**< need reconfiguring port or not */
+       uint8_t                 need_reconfig_queues; /**< need reconfiguring queues or not */
+       uint8_t                 rss_flag;   /**< enable rss or not */
+       struct rte_eth_rxconf   rx_conf;    /**< rx configuration */
+       struct rte_eth_txconf   tx_conf;    /**< tx configuration */
 };
 
 /**
@@ -199,6 +215,34 @@ struct fwd_config {
        portid_t   nb_fwd_ports;    /**< Nb. of ports involved. */
 };
 
+/**
+ * DCB mode enable
+ */
+enum dcb_mode_enable
+{
+       DCB_VT_ENABLED,
+       DCB_ENABLED
+};
+
+/*
+ * DCB general config info
+ */
+struct dcb_config {
+       enum dcb_mode_enable dcb_mode;
+       uint8_t vt_en;
+       enum rte_eth_nb_tcs num_tcs;
+       uint8_t pfc_en;
+};
+/*
+ * In DCB io FWD mode, 128 RX queue to 128 TX queue mapping
+ */
+enum dcb_queue_mapping_mode {
+       DCB_VT_Q_MAPPING = 0,
+       DCB_4_TCS_Q_MAPPING,
+       DCB_8_TCS_Q_MAPPING
+};
+
 #define MAX_TX_QUEUE_STATS_MAPPINGS 1024 /* MAX_PORT of 32 @ 32 tx_queues/port */
 #define MAX_RX_QUEUE_STATS_MAPPINGS 4096 /* MAX_PORT of 32 @ 128 rx_queues/port */
 
@@ -253,10 +297,17 @@ extern uint16_t nb_rxd;
 extern uint16_t nb_txd;
 
 extern uint16_t rx_free_thresh;
+extern uint8_t rx_drop_en;
 extern uint16_t tx_free_thresh;
 extern uint16_t tx_rs_thresh;
+extern uint32_t txq_flags;
+
+extern uint8_t dcb_config;
+extern uint8_t dcb_test;
+extern enum dcb_queue_mapping_mode dcb_q_mapping;
 
 extern uint16_t mbuf_data_size; /**< Mbuf data space size. */
+extern uint32_t param_total_num_mbufs;
 
 extern struct rte_fdir_conf fdir_conf;
 
@@ -358,6 +409,8 @@ void fwd_config_display(void);
 void rxtx_config_display(void);
 void fwd_config_setup(void);
 void set_def_fwd_config(void);
+int init_fwd_streams(void);
+
 
 void port_reg_bit_display(portid_t port_id, uint32_t reg_off, uint8_t bit_pos);
 void port_reg_bit_set(portid_t port_id, uint32_t reg_off, uint8_t bit_pos,
@@ -372,16 +425,22 @@ void port_reg_set(portid_t port_id, uint32_t reg_off, uint32_t value);
 void rx_ring_desc_display(portid_t port_id, queueid_t rxq_id, uint16_t rxd_id);
 void tx_ring_desc_display(portid_t port_id, queueid_t txq_id, uint16_t txd_id);
 
-void set_fwd_lcores_list(unsigned int *lcorelist, unsigned int nb_lc);
-void set_fwd_lcores_mask(uint64_t lcoremask);
+int set_fwd_lcores_list(unsigned int *lcorelist, unsigned int nb_lc);
+int set_fwd_lcores_mask(uint64_t lcoremask);
 void set_fwd_lcores_number(uint16_t nb_lc);
 
 void set_fwd_ports_list(unsigned int *portlist, unsigned int nb_pt);
 void set_fwd_ports_mask(uint64_t portmask);
 void set_fwd_ports_number(uint16_t nb_pt);
 
-void rx_vlan_filter_set(portid_t port_id, uint16_t vlan_id, int on);
+void rx_vlan_strip_set(portid_t port_id, int on);
+void rx_vlan_strip_set_on_queue(portid_t port_id, uint16_t queue_id, int on);
+
+void rx_vlan_filter_set(portid_t port_id, int on);
 void rx_vlan_all_filter_set(portid_t port_id, int on);
+void rx_vft_set(portid_t port_id, uint16_t vlan_id, int on);
+void vlan_extend_set(portid_t port_id, int on);
+void vlan_tpid_set(portid_t port_id, uint16_t tp_id);
 void tx_vlan_set(portid_t port_id, uint16_t vlan_id);
 void tx_vlan_reset(portid_t port_id);
 
@@ -396,6 +455,12 @@ void set_nb_pkt_per_burst(uint16_t pkt_burst);
 void set_pkt_forwarding_mode(const char *fwd_mode);
 void start_packet_forwarding(int with_tx_first);
 void stop_packet_forwarding(void);
+void init_port_config(void);
+int init_port_dcb_config(portid_t pid,struct dcb_config *dcb_conf);
+void start_port(portid_t pid);
+void stop_port(portid_t pid);
+void close_port(portid_t pid);
+int all_ports_stopped(void);
 void pmd_test_exit(void);
 
 void fdir_add_signature_filter(portid_t port_id, uint8_t queue_id,