X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fliquidio%2Flio_struct.h;h=10e3976afd2342eca1649f0a537f0a72df21571b;hb=821f86e0f4d4c773316f537c16b46c9398a9060b;hp=c2293f7113ca3d6d594a09ed07652b6365b8887c;hpb=71867a4ee62f6c91f1e98fe2856802cf5e4fdfb0;p=dpdk.git diff --git a/drivers/net/liquidio/lio_struct.h b/drivers/net/liquidio/lio_struct.h index c2293f7113..10e3976afd 100644 --- a/drivers/net/liquidio/lio_struct.h +++ b/drivers/net/liquidio/lio_struct.h @@ -56,6 +56,49 @@ struct lio_version { uint16_t reserved; }; +/** Input Queue statistics. Each input queue has four stats fields. */ +struct lio_iq_stats { + uint64_t instr_posted; /**< Instructions posted to this queue. */ + uint64_t instr_processed; /**< Instructions processed in this queue. */ + uint64_t instr_dropped; /**< Instructions that could not be processed */ + uint64_t bytes_sent; /**< Bytes sent through this queue. */ + uint64_t tx_done; /**< Num of packets sent to network. */ + uint64_t tx_iq_busy; /**< Num of times this iq was found to be full. */ + uint64_t tx_dropped; /**< Num of pkts dropped due to xmitpath errors. */ + uint64_t tx_tot_bytes; /**< Total count of bytes sent to network. */ +}; + +/** Output Queue statistics. Each output queue has four stats fields. */ +struct lio_droq_stats { + /** Number of packets received in this queue. */ + uint64_t pkts_received; + + /** Bytes received by this queue. */ + uint64_t bytes_received; + + /** Packets dropped due to no memory available. */ + uint64_t dropped_nomem; + + /** Packets dropped due to large number of pkts to process. */ + uint64_t dropped_toomany; + + /** Number of packets sent to stack from this queue. */ + uint64_t rx_pkts_received; + + /** Number of Bytes sent to stack from this queue. */ + uint64_t rx_bytes_received; + + /** Num of Packets dropped due to receive path failures. */ + uint64_t rx_dropped; + + /** Num of vxlan packets received; */ + uint64_t rx_vxlan; + + /** Num of failures of rte_pktmbuf_alloc() */ + uint64_t rx_alloc_failure; + +}; + /** The Descriptor Ring Output Queue structure. * This structure has all the information required to implement a * DROQ. @@ -117,6 +160,9 @@ struct lio_droq { */ void *pkts_sent_reg; + /** Statistics for this DROQ. */ + struct lio_droq_stats stats; + /** DMA mapped address of the DROQ descriptor ring. */ size_t desc_ring_dma; @@ -285,6 +331,9 @@ struct lio_instr_queue { /** Number of instructions pending to be posted to Octeon. */ uint32_t fill_cnt; + /** Statistics for this input queue. */ + struct lio_iq_stats stats; + /** DMA mapped base address of the input descriptor ring. */ uint64_t base_addr_dma; @@ -635,6 +684,7 @@ struct lio_device { uint8_t nb_tx_queues; uint8_t port_configured; struct lio_rss_ctx rss_state; - uint8_t port_id; + uint16_t port_id; + char firmware_version[LIO_FW_VERSION_LENGTH]; }; #endif /* _LIO_STRUCT_H_ */