aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers/net/intelxlvf.h
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2022-08-16 13:21:49 +0100
committerMichael Brown <mcb30@ipxe.org>2022-08-16 17:58:46 +0100
commitb52ea208411e65a6583c70c9efdc0cd8eda2d7d7 (patch)
treeda241423c845a8f75cbbd0e0ac0882f013452651 /src/drivers/net/intelxlvf.h
parentcad1cc6b449b63415ffdad8e12f13df4256106fb (diff)
downloadipxe-b52ea208411e65a6583c70c9efdc0cd8eda2d7d7.tar.gz
[intelxl] Show virtual function packet statistics for debugging
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/intelxlvf.h')
-rw-r--r--src/drivers/net/intelxlvf.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/drivers/net/intelxlvf.h b/src/drivers/net/intelxlvf.h
index 5c2227577..c537f6a15 100644
--- a/src/drivers/net/intelxlvf.h
+++ b/src/drivers/net/intelxlvf.h
@@ -253,6 +253,33 @@ struct intelxlvf_admin_promisc_buffer {
uint16_t flags;
} __attribute__ (( packed ));
+/** Admin Queue VF Get Statistics opcode */
+#define INTELXLVF_ADMIN_GET_STATS 0x0000000f
+
+/** VF statistics */
+struct intelxlvf_admin_stats {
+ /** Bytes */
+ uint64_t bytes;
+ /** Unicast packets */
+ uint64_t unicasts;
+ /** Multicast packets */
+ uint64_t multicasts;
+ /** Broadcast packets */
+ uint64_t broadcasts;
+ /** Discarded packets */
+ uint64_t discards;
+ /** Errors */
+ uint64_t errors;
+} __attribute__ (( packed ));
+
+/** Admin Queue VF Get Statistics data buffer */
+struct intelxlvf_admin_stats_buffer {
+ /** Receive statistics */
+ struct intelxlvf_admin_stats rx;
+ /** Transmit statistics */
+ struct intelxlvf_admin_stats tx;
+} __attribute__ (( packed ));
+
/** Admin queue data buffer */
union intelxlvf_admin_buffer {
/** Original 40 Gigabit Ethernet data buffer */
@@ -271,6 +298,8 @@ union intelxlvf_admin_buffer {
struct intelxlvf_admin_promisc_buffer promisc;
/** VF IRQ Map data buffer */
struct intelxlvf_admin_irq_map_buffer irq;
+ /** VF Get Statistics data buffer */
+ struct intelxlvf_admin_stats_buffer stats;
} __attribute__ (( packed ));
/** Admin queue descriptor */