diff options
Diffstat (limited to 'sys/dev/ixgbe/ixgbe.h')
-rw-r--r-- | sys/dev/ixgbe/ixgbe.h | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/sys/dev/ixgbe/ixgbe.h b/sys/dev/ixgbe/ixgbe.h index 813ee4f..44e7c3c 100644 --- a/sys/dev/ixgbe/ixgbe.h +++ b/sys/dev/ixgbe/ixgbe.h @@ -90,8 +90,11 @@ #include <sys/pcpu.h> #include <sys/smp.h> #include <machine/smp.h> +#include <sys/sbuf.h> #include "ixgbe_api.h" +#include "ixgbe_common.h" +#include "ixgbe_phy.h" #include "ixgbe_vf.h" /* Tunables */ @@ -146,7 +149,11 @@ #define IXGBE_TX_CLEANUP_THRESHOLD (adapter->num_tx_desc / 8) #define IXGBE_TX_OP_THRESHOLD (adapter->num_tx_desc / 32) -#define IXGBE_MAX_FRAME_SIZE 0x3F00 +/* These defines are used in MTU calculations */ +#define IXGBE_MAX_FRAME_SIZE 9728 +#define IXGBE_MTU_HDR (ETHER_HDR_LEN + ETHER_CRC_LEN + \ + ETHER_VLAN_ENCAP_LEN) +#define IXGBE_MAX_MTU (IXGBE_MAX_FRAME_SIZE - IXGBE_MTU_HDR) /* Flow control constants */ #define IXGBE_FC_PAUSE 0xFFFF @@ -227,6 +234,17 @@ #define IXGBE_BULK_LATENCY 1200 #define IXGBE_LINK_ITR 2000 +/* MAC type macros */ +#define IXGBE_IS_X550VF(_adapter) \ + ((_adapter->hw.mac.type == ixgbe_mac_X550_vf) || \ + (_adapter->hw.mac.type == ixgbe_mac_X550EM_x_vf)) + +#define IXGBE_IS_VF(_adapter) \ + (IXGBE_IS_X550VF(_adapter) || \ + (_adapter->hw.mac.type == ixgbe_mac_X540_vf) || \ + (_adapter->hw.mac.type == ixgbe_mac_82599_vf)) + + /* ***************************************************************************** * vendor_info_array @@ -323,8 +341,8 @@ struct tx_ring { u32 bytes; /* used for AIM */ u32 packets; /* Soft Stats */ - u64 tx_bytes; unsigned long tso_tx; + unsigned long no_tx_map_avail; unsigned long no_tx_dma_setup; u64 no_desc_avail; u64 total_packets; @@ -419,6 +437,13 @@ struct adapter { u32 link_speed; bool link_up; u32 vector; + u16 dmac; + bool eee_support; + bool eee_enabled; + + /* Power management-related */ + bool wol_support; + u32 wufc; /* Mbuf cluster size */ u32 rx_mbuf_sz; @@ -432,6 +457,7 @@ struct adapter { int fdir_reinit; struct task fdir_task; #endif + struct task phy_task; /* PHY intr tasklet */ struct taskqueue *tq; /* @@ -467,7 +493,7 @@ struct adapter { unsigned long mbuf_header_failed; unsigned long mbuf_packet_failed; unsigned long watchdog_events; - unsigned long vector_irq; + unsigned long link_irq; union { struct ixgbe_hw_stats pf; struct ixgbevf_hw_stats vf; @@ -540,12 +566,17 @@ struct adapter { #define IXGBE_SET_IQDROPS(sc, count) (sc)->ifp->if_iqdrops = (count) #endif +/* External PHY register addresses */ +#define IXGBE_PHY_CURRENT_TEMP 0xC820 +#define IXGBE_PHY_OVERTEMP_STATUS 0xC830 + /* Sysctl help messages; displayed with sysctl -d */ #define IXGBE_SYSCTL_DESC_ADV_SPEED \ "\nControl advertised link speed using these flags:\n" \ "\t0x1 - advertise 100M\n" \ "\t0x2 - advertise 1G\n" \ - "\t0x4 - advertise 10G" + "\t0x4 - advertise 10G\n\n" \ + "\t100M is only supported on certain 10GBaseT adapters.\n" #define IXGBE_SYSCTL_DESC_SET_FC \ "\nSet flow control mode using these values:\n" \ |