Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
ixgbe.h File Reference
#include <linux/bitops.h>
#include <linux/types.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/cpumask.h>
#include <linux/aer.h>
#include <linux/if_vlan.h>
#include "ixgbe_type.h"
#include "ixgbe_common.h"
#include "ixgbe_dcb.h"

Go to the source code of this file.

Data Structures

struct  vf_data_storage
 
struct  vf_macvlans
 
struct  ixgbe_tx_buffer
 
struct  ixgbe_rx_buffer
 
struct  ixgbe_queue_stats
 
struct  ixgbe_tx_queue_stats
 
struct  ixgbe_rx_queue_stats
 
struct  ixgbe_ring
 
struct  ixgbe_ring_feature
 
struct  ixgbe_ring_container
 
struct  ixgbe_q_vector
 
struct  ixgbe_adapter
 
struct  ixgbe_fdir_filter
 
struct  ixgbe_cb
 

Macros

#define pr_fmt(fmt)   KBUILD_MODNAME ": " fmt
 
#define IXGBE_DEFAULT_TXD   512
 
#define IXGBE_DEFAULT_TX_WORK   256
 
#define IXGBE_MAX_TXD   4096
 
#define IXGBE_MIN_TXD   64
 
#define IXGBE_DEFAULT_RXD   512
 
#define IXGBE_MAX_RXD   4096
 
#define IXGBE_MIN_RXD   64
 
#define IXGBE_MIN_FCRTL   0x40
 
#define IXGBE_MAX_FCRTL   0x7FF80
 
#define IXGBE_MIN_FCRTH   0x600
 
#define IXGBE_MAX_FCRTH   0x7FFF0
 
#define IXGBE_DEFAULT_FCPAUSE   0xFFFF
 
#define IXGBE_MIN_FCPAUSE   0
 
#define IXGBE_MAX_FCPAUSE   0xFFFF
 
#define IXGBE_RXBUFFER_256   256 /* Used for skb receive header */
 
#define IXGBE_RXBUFFER_2K   2048
 
#define IXGBE_RXBUFFER_3K   3072
 
#define IXGBE_RXBUFFER_4K   4096
 
#define IXGBE_MAX_RXBUFFER   16384 /* largest size for a single descriptor */
 
#define IXGBE_RX_HDR_SIZE   IXGBE_RXBUFFER_256
 
#define MAXIMUM_ETHERNET_VLAN_SIZE   (ETH_FRAME_LEN + ETH_FCS_LEN + VLAN_HLEN)
 
#define IXGBE_RX_BUFFER_WRITE   16 /* Must be power of 2 */
 
#define IXGBE_TX_FLAGS_CSUM   (u32)(1)
 
#define IXGBE_TX_FLAGS_HW_VLAN   (u32)(1 << 1)
 
#define IXGBE_TX_FLAGS_SW_VLAN   (u32)(1 << 2)
 
#define IXGBE_TX_FLAGS_TSO   (u32)(1 << 3)
 
#define IXGBE_TX_FLAGS_IPV4   (u32)(1 << 4)
 
#define IXGBE_TX_FLAGS_FCOE   (u32)(1 << 5)
 
#define IXGBE_TX_FLAGS_FSO   (u32)(1 << 6)
 
#define IXGBE_TX_FLAGS_TXSW   (u32)(1 << 7)
 
#define IXGBE_TX_FLAGS_TSTAMP   (u32)(1 << 8)
 
#define IXGBE_TX_FLAGS_NO_IFCS   (u32)(1 << 9)
 
#define IXGBE_TX_FLAGS_VLAN_MASK   0xffff0000
 
#define IXGBE_TX_FLAGS_VLAN_PRIO_MASK   0xe0000000
 
#define IXGBE_TX_FLAGS_VLAN_PRIO_SHIFT   29
 
#define IXGBE_TX_FLAGS_VLAN_SHIFT   16
 
#define IXGBE_MAX_VF_MC_ENTRIES   30
 
#define IXGBE_MAX_VF_FUNCTIONS   64
 
#define IXGBE_MAX_VFTA_ENTRIES   128
 
#define MAX_EMULATION_MAC_ADDRS   16
 
#define IXGBE_MAX_PF_MACVLANS   15
 
#define VMDQ_P(p)   ((p) + adapter->ring_feature[RING_F_VMDQ].offset)
 
#define IXGBE_82599_VF_DEVICE_ID   0x10ED
 
#define IXGBE_X540_VF_DEVICE_ID   0x1515
 
#define IXGBE_MAX_TXD_PWR   14
 
#define IXGBE_MAX_DATA_PER_TXD   (1 << IXGBE_MAX_TXD_PWR)
 
#define TXD_USE_COUNT(S)   DIV_ROUND_UP((S), IXGBE_MAX_DATA_PER_TXD)
 
#define DESC_NEEDED   ((MAX_SKB_FRAGS * TXD_USE_COUNT(PAGE_SIZE)) + 4)
 
#define check_for_tx_hang(ring)   test_bit(__IXGBE_TX_DETECT_HANG, &(ring)->state)
 
#define set_check_for_tx_hang(ring)   set_bit(__IXGBE_TX_DETECT_HANG, &(ring)->state)
 
#define clear_check_for_tx_hang(ring)   clear_bit(__IXGBE_TX_DETECT_HANG, &(ring)->state)
 
#define ring_is_rsc_enabled(ring)   test_bit(__IXGBE_RX_RSC_ENABLED, &(ring)->state)
 
#define set_ring_rsc_enabled(ring)   set_bit(__IXGBE_RX_RSC_ENABLED, &(ring)->state)
 
#define clear_ring_rsc_enabled(ring)   clear_bit(__IXGBE_RX_RSC_ENABLED, &(ring)->state)
 
#define IXGBE_MAX_RSS_INDICES   16
 
#define IXGBE_MAX_VMDQ_INDICES   64
 
#define IXGBE_MAX_FDIR_INDICES   64
 
#define MAX_RX_QUEUES   IXGBE_MAX_FDIR_INDICES
 
#define MAX_TX_QUEUES   IXGBE_MAX_FDIR_INDICES
 
#define IXGBE_82599_VMDQ_8Q_MASK   0x78
 
#define IXGBE_82599_VMDQ_4Q_MASK   0x7C
 
#define IXGBE_82599_VMDQ_2Q_MASK   0x7E
 
#define ixgbe_rx_pg_size(_ring)   (PAGE_SIZE << ixgbe_rx_pg_order(_ring))
 
#define ixgbe_for_each_ring(pos, head)   for (pos = (head).ring; pos != NULL; pos = pos->next)
 
#define MAX_RX_PACKET_BUFFERS
 
#define MAX_TX_PACKET_BUFFERS   MAX_RX_PACKET_BUFFERS
 
#define IXGBE_MIN_RSC_ITR   24
 
#define IXGBE_100K_ITR   40
 
#define IXGBE_20K_ITR   200
 
#define IXGBE_10K_ITR   400
 
#define IXGBE_8K_ITR   500
 
#define IXGBE_RX_DESC(R, i)   (&(((union ixgbe_adv_rx_desc *)((R)->desc))[i]))
 
#define IXGBE_TX_DESC(R, i)   (&(((union ixgbe_adv_tx_desc *)((R)->desc))[i]))
 
#define IXGBE_TX_CTXTDESC(R, i)   (&(((struct ixgbe_adv_tx_context_desc *)((R)->desc))[i]))
 
#define IXGBE_MAX_JUMBO_FRAME_SIZE   9728 /* Maximum Supported Size 9.5KB */
 
#define OTHER_VECTOR   1
 
#define NON_Q_VECTORS   (OTHER_VECTOR)
 
#define MAX_MSIX_VECTORS_82599   64
 
#define MAX_Q_VECTORS_82599   64
 
#define MAX_MSIX_VECTORS_82598   18
 
#define MAX_Q_VECTORS_82598   16
 
#define MAX_Q_VECTORS   MAX_Q_VECTORS_82599
 
#define MAX_MSIX_COUNT   MAX_MSIX_VECTORS_82599
 
#define MIN_MSIX_Q_VECTORS   1
 
#define MIN_MSIX_COUNT   (MIN_MSIX_Q_VECTORS + NON_Q_VECTORS)
 
#define IXGBE_TRY_LINK_TIMEOUT   (4 * HZ)
 
#define IXGBE_FLAG_MSI_CAPABLE   (u32)(1 << 0)
 
#define IXGBE_FLAG_MSI_ENABLED   (u32)(1 << 1)
 
#define IXGBE_FLAG_MSIX_CAPABLE   (u32)(1 << 2)
 
#define IXGBE_FLAG_MSIX_ENABLED   (u32)(1 << 3)
 
#define IXGBE_FLAG_RX_1BUF_CAPABLE   (u32)(1 << 4)
 
#define IXGBE_FLAG_RX_PS_CAPABLE   (u32)(1 << 5)
 
#define IXGBE_FLAG_RX_PS_ENABLED   (u32)(1 << 6)
 
#define IXGBE_FLAG_IN_NETPOLL   (u32)(1 << 7)
 
#define IXGBE_FLAG_DCA_ENABLED   (u32)(1 << 8)
 
#define IXGBE_FLAG_DCA_CAPABLE   (u32)(1 << 9)
 
#define IXGBE_FLAG_IMIR_ENABLED   (u32)(1 << 10)
 
#define IXGBE_FLAG_MQ_CAPABLE   (u32)(1 << 11)
 
#define IXGBE_FLAG_DCB_ENABLED   (u32)(1 << 12)
 
#define IXGBE_FLAG_VMDQ_CAPABLE   (u32)(1 << 13)
 
#define IXGBE_FLAG_VMDQ_ENABLED   (u32)(1 << 14)
 
#define IXGBE_FLAG_FAN_FAIL_CAPABLE   (u32)(1 << 15)
 
#define IXGBE_FLAG_NEED_LINK_UPDATE   (u32)(1 << 16)
 
#define IXGBE_FLAG_NEED_LINK_CONFIG   (u32)(1 << 17)
 
#define IXGBE_FLAG_FDIR_HASH_CAPABLE   (u32)(1 << 18)
 
#define IXGBE_FLAG_FDIR_PERFECT_CAPABLE   (u32)(1 << 19)
 
#define IXGBE_FLAG_FCOE_CAPABLE   (u32)(1 << 20)
 
#define IXGBE_FLAG_FCOE_ENABLED   (u32)(1 << 21)
 
#define IXGBE_FLAG_SRIOV_CAPABLE   (u32)(1 << 22)
 
#define IXGBE_FLAG_SRIOV_ENABLED   (u32)(1 << 23)
 
#define IXGBE_FLAG2_RSC_CAPABLE   (u32)(1 << 0)
 
#define IXGBE_FLAG2_RSC_ENABLED   (u32)(1 << 1)
 
#define IXGBE_FLAG2_TEMP_SENSOR_CAPABLE   (u32)(1 << 2)
 
#define IXGBE_FLAG2_TEMP_SENSOR_EVENT   (u32)(1 << 3)
 
#define IXGBE_FLAG2_SEARCH_FOR_SFP   (u32)(1 << 4)
 
#define IXGBE_FLAG2_SFP_NEEDS_RESET   (u32)(1 << 5)
 
#define IXGBE_FLAG2_RESET_REQUESTED   (u32)(1 << 6)
 
#define IXGBE_FLAG2_FDIR_REQUIRES_REINIT   (u32)(1 << 7)
 
#define IXGBE_FLAG2_RSS_FIELD_IPV4_UDP   (u32)(1 << 8)
 
#define IXGBE_FLAG2_RSS_FIELD_IPV6_UDP   (u32)(1 << 9)
 
#define IXGBE_FLAG2_OVERFLOW_CHECK_ENABLED   (u32)(1 << 10)
 
#define IXGBE_FLAG2_PTP_PPS_ENABLED   (u32)(1 << 11)
 
#define IXGBE_CB(skb)   ((struct ixgbe_cb *)(skb)->cb)
 

Enumerations

enum  ixgbe_ring_state_t {
  __IXGBE_TX_FDIR_INIT_DONE, __IXGBE_TX_DETECT_HANG, __IXGBE_HANG_CHECK_ARMED, __IXGBE_RX_RSC_ENABLED,
  __IXGBE_RX_CSUM_UDP_ZERO_ERR, __IXGBE_RX_FCOE
}
 
enum  ixgbe_ring_f_enum {
  RING_F_NONE = 0, RING_F_VMDQ, RING_F_RSS, RING_F_FDIR,
  RING_F_ARRAY_SIZE
}
 
enum  ixgbe_state_t {
  __IXGBE_TESTING, __IXGBE_RESETTING, __IXGBE_DOWN, __IXGBE_SERVICE_SCHED,
  __IXGBE_IN_SFP_INIT
}
 
enum  ixgbe_boards { board_82598, board_82599, board_X540 }
 

Functions

void ixgbe_up (struct ixgbe_adapter *adapter)
 
void ixgbe_down (struct ixgbe_adapter *adapter)
 
void ixgbe_reinit_locked (struct ixgbe_adapter *adapter)
 
void ixgbe_reset (struct ixgbe_adapter *adapter)
 
void ixgbe_set_ethtool_ops (struct net_device *netdev)
 
int ixgbe_setup_rx_resources (struct ixgbe_ring *)
 
int ixgbe_setup_tx_resources (struct ixgbe_ring *)
 
void ixgbe_free_rx_resources (struct ixgbe_ring *)
 
void ixgbe_free_tx_resources (struct ixgbe_ring *)
 
void ixgbe_configure_rx_ring (struct ixgbe_adapter *, struct ixgbe_ring *)
 
void ixgbe_configure_tx_ring (struct ixgbe_adapter *, struct ixgbe_ring *)
 
void ixgbe_disable_rx_queue (struct ixgbe_adapter *adapter, struct ixgbe_ring *)
 
void ixgbe_update_stats (struct ixgbe_adapter *adapter)
 
int ixgbe_init_interrupt_scheme (struct ixgbe_adapter *adapter)
 
int ixgbe_wol_supported (struct ixgbe_adapter *adapter, u16 device_id, u16 subdevice_id)
 
void ixgbe_clear_interrupt_scheme (struct ixgbe_adapter *adapter)
 
netdev_tx_t ixgbe_xmit_frame_ring (struct sk_buff *, struct ixgbe_adapter *, struct ixgbe_ring *)
 
void ixgbe_unmap_and_free_tx_resource (struct ixgbe_ring *, struct ixgbe_tx_buffer *)
 
void ixgbe_alloc_rx_buffers (struct ixgbe_ring *, u16)
 
void ixgbe_write_eitr (struct ixgbe_q_vector *)
 
int ixgbe_poll (struct napi_struct *napi, int budget)
 
int ethtool_ioctl (struct ifreq *ifr)
 
s32 ixgbe_reinit_fdir_tables_82599 (struct ixgbe_hw *hw)
 
s32 ixgbe_init_fdir_signature_82599 (struct ixgbe_hw *hw, u32 fdirctrl)
 
s32 ixgbe_init_fdir_perfect_82599 (struct ixgbe_hw *hw, u32 fdirctrl)
 
s32 ixgbe_fdir_add_signature_filter_82599 (struct ixgbe_hw *hw, union ixgbe_atr_hash_dword input, union ixgbe_atr_hash_dword common, u8 queue)
 
s32 ixgbe_fdir_set_input_mask_82599 (struct ixgbe_hw *hw, union ixgbe_atr_input *input_mask)
 
s32 ixgbe_fdir_write_perfect_filter_82599 (struct ixgbe_hw *hw, union ixgbe_atr_input *input, u16 soft_id, u8 queue)
 
s32 ixgbe_fdir_erase_perfect_filter_82599 (struct ixgbe_hw *hw, union ixgbe_atr_input *input, u16 soft_id)
 
void ixgbe_atr_compute_perfect_hash_82599 (union ixgbe_atr_input *input, union ixgbe_atr_input *mask)
 
void ixgbe_set_rx_mode (struct net_device *netdev)
 
void ixgbe_tx_ctxtdesc (struct ixgbe_ring *, u32, u32, u32, u32)
 
void ixgbe_do_reset (struct net_device *netdev)
 

Variables

struct ixgbe_ring ____cacheline_internodealigned_in_smp
 
struct ixgbe_info ixgbe_82598_info
 
struct ixgbe_info ixgbe_82599_info
 
struct ixgbe_info ixgbe_X540_info
 
char ixgbe_driver_name []
 
const char ixgbe_driver_version []
 

Macro Definition Documentation

#define check_for_tx_hang (   ring)    test_bit(__IXGBE_TX_DETECT_HANG, &(ring)->state)

Definition at line 206 of file ixgbe.h.

#define clear_check_for_tx_hang (   ring)    clear_bit(__IXGBE_TX_DETECT_HANG, &(ring)->state)

Definition at line 210 of file ixgbe.h.

#define clear_ring_rsc_enabled (   ring)    clear_bit(__IXGBE_RX_RSC_ENABLED, &(ring)->state)

Definition at line 216 of file ixgbe.h.

#define DESC_NEEDED   ((MAX_SKB_FRAGS * TXD_USE_COUNT(PAGE_SIZE)) + 4)

Definition at line 154 of file ixgbe.h.

#define IXGBE_100K_ITR   40

Definition at line 386 of file ixgbe.h.

#define IXGBE_10K_ITR   400

Definition at line 388 of file ixgbe.h.

#define IXGBE_20K_ITR   200

Definition at line 387 of file ixgbe.h.

#define IXGBE_82599_VF_DEVICE_ID   0x10ED

Definition at line 122 of file ixgbe.h.

#define IXGBE_82599_VMDQ_2Q_MASK   0x7E

Definition at line 293 of file ixgbe.h.

#define IXGBE_82599_VMDQ_4Q_MASK   0x7C

Definition at line 292 of file ixgbe.h.

#define IXGBE_82599_VMDQ_8Q_MASK   0x78

Definition at line 291 of file ixgbe.h.

#define IXGBE_8K_ITR   500

Definition at line 389 of file ixgbe.h.

#define IXGBE_CB (   skb)    ((struct ixgbe_cb *)(skb)->cb)

Definition at line 629 of file ixgbe.h.

#define IXGBE_DEFAULT_FCPAUSE   0xFFFF

Definition at line 75 of file ixgbe.h.

#define IXGBE_DEFAULT_RXD   512

Definition at line 66 of file ixgbe.h.

#define IXGBE_DEFAULT_TX_WORK   256

Definition at line 62 of file ixgbe.h.

#define IXGBE_DEFAULT_TXD   512

Definition at line 61 of file ixgbe.h.

#define IXGBE_FLAG2_FDIR_REQUIRES_REINIT   (u32)(1 << 7)

Definition at line 482 of file ixgbe.h.

#define IXGBE_FLAG2_OVERFLOW_CHECK_ENABLED   (u32)(1 << 10)

Definition at line 485 of file ixgbe.h.

#define IXGBE_FLAG2_PTP_PPS_ENABLED   (u32)(1 << 11)

Definition at line 486 of file ixgbe.h.

#define IXGBE_FLAG2_RESET_REQUESTED   (u32)(1 << 6)

Definition at line 481 of file ixgbe.h.

#define IXGBE_FLAG2_RSC_CAPABLE   (u32)(1 << 0)

Definition at line 475 of file ixgbe.h.

#define IXGBE_FLAG2_RSC_ENABLED   (u32)(1 << 1)

Definition at line 476 of file ixgbe.h.

#define IXGBE_FLAG2_RSS_FIELD_IPV4_UDP   (u32)(1 << 8)

Definition at line 483 of file ixgbe.h.

#define IXGBE_FLAG2_RSS_FIELD_IPV6_UDP   (u32)(1 << 9)

Definition at line 484 of file ixgbe.h.

#define IXGBE_FLAG2_SEARCH_FOR_SFP   (u32)(1 << 4)

Definition at line 479 of file ixgbe.h.

#define IXGBE_FLAG2_SFP_NEEDS_RESET   (u32)(1 << 5)

Definition at line 480 of file ixgbe.h.

#define IXGBE_FLAG2_TEMP_SENSOR_CAPABLE   (u32)(1 << 2)

Definition at line 477 of file ixgbe.h.

#define IXGBE_FLAG2_TEMP_SENSOR_EVENT   (u32)(1 << 3)

Definition at line 478 of file ixgbe.h.

#define IXGBE_FLAG_DCA_CAPABLE   (u32)(1 << 9)

Definition at line 458 of file ixgbe.h.

#define IXGBE_FLAG_DCA_ENABLED   (u32)(1 << 8)

Definition at line 457 of file ixgbe.h.

#define IXGBE_FLAG_DCB_ENABLED   (u32)(1 << 12)

Definition at line 461 of file ixgbe.h.

#define IXGBE_FLAG_FAN_FAIL_CAPABLE   (u32)(1 << 15)

Definition at line 464 of file ixgbe.h.

#define IXGBE_FLAG_FCOE_CAPABLE   (u32)(1 << 20)

Definition at line 469 of file ixgbe.h.

#define IXGBE_FLAG_FCOE_ENABLED   (u32)(1 << 21)

Definition at line 470 of file ixgbe.h.

#define IXGBE_FLAG_FDIR_HASH_CAPABLE   (u32)(1 << 18)

Definition at line 467 of file ixgbe.h.

#define IXGBE_FLAG_FDIR_PERFECT_CAPABLE   (u32)(1 << 19)

Definition at line 468 of file ixgbe.h.

#define IXGBE_FLAG_IMIR_ENABLED   (u32)(1 << 10)

Definition at line 459 of file ixgbe.h.

#define IXGBE_FLAG_IN_NETPOLL   (u32)(1 << 7)

Definition at line 456 of file ixgbe.h.

#define IXGBE_FLAG_MQ_CAPABLE   (u32)(1 << 11)

Definition at line 460 of file ixgbe.h.

#define IXGBE_FLAG_MSI_CAPABLE   (u32)(1 << 0)

Definition at line 449 of file ixgbe.h.

#define IXGBE_FLAG_MSI_ENABLED   (u32)(1 << 1)

Definition at line 450 of file ixgbe.h.

#define IXGBE_FLAG_MSIX_CAPABLE   (u32)(1 << 2)

Definition at line 451 of file ixgbe.h.

#define IXGBE_FLAG_MSIX_ENABLED   (u32)(1 << 3)

Definition at line 452 of file ixgbe.h.

#define IXGBE_FLAG_NEED_LINK_CONFIG   (u32)(1 << 17)

Definition at line 466 of file ixgbe.h.

#define IXGBE_FLAG_NEED_LINK_UPDATE   (u32)(1 << 16)

Definition at line 465 of file ixgbe.h.

#define IXGBE_FLAG_RX_1BUF_CAPABLE   (u32)(1 << 4)

Definition at line 453 of file ixgbe.h.

#define IXGBE_FLAG_RX_PS_CAPABLE   (u32)(1 << 5)

Definition at line 454 of file ixgbe.h.

#define IXGBE_FLAG_RX_PS_ENABLED   (u32)(1 << 6)

Definition at line 455 of file ixgbe.h.

#define IXGBE_FLAG_SRIOV_CAPABLE   (u32)(1 << 22)

Definition at line 471 of file ixgbe.h.

#define IXGBE_FLAG_SRIOV_ENABLED   (u32)(1 << 23)

Definition at line 472 of file ixgbe.h.

#define IXGBE_FLAG_VMDQ_CAPABLE   (u32)(1 << 13)

Definition at line 462 of file ixgbe.h.

#define IXGBE_FLAG_VMDQ_ENABLED   (u32)(1 << 14)

Definition at line 463 of file ixgbe.h.

#define ixgbe_for_each_ring (   pos,
  head 
)    for (pos = (head).ring; pos != NULL; pos = pos->next)

Definition at line 330 of file ixgbe.h.

#define IXGBE_MAX_DATA_PER_TXD   (1 << IXGBE_MAX_TXD_PWR)

Definition at line 150 of file ixgbe.h.

#define IXGBE_MAX_FCPAUSE   0xFFFF

Definition at line 77 of file ixgbe.h.

#define IXGBE_MAX_FCRTH   0x7FFF0

Definition at line 74 of file ixgbe.h.

#define IXGBE_MAX_FCRTL   0x7FF80

Definition at line 72 of file ixgbe.h.

#define IXGBE_MAX_FDIR_INDICES   64

Definition at line 275 of file ixgbe.h.

#define IXGBE_MAX_JUMBO_FRAME_SIZE   9728 /* Maximum Supported Size 9.5KB */

Definition at line 413 of file ixgbe.h.

#define IXGBE_MAX_PF_MACVLANS   15

Definition at line 120 of file ixgbe.h.

#define IXGBE_MAX_RSS_INDICES   16

Definition at line 273 of file ixgbe.h.

#define IXGBE_MAX_RXBUFFER   16384 /* largest size for a single descriptor */

Definition at line 84 of file ixgbe.h.

#define IXGBE_MAX_RXD   4096

Definition at line 67 of file ixgbe.h.

#define IXGBE_MAX_TXD   4096

Definition at line 63 of file ixgbe.h.

#define IXGBE_MAX_TXD_PWR   14

Definition at line 149 of file ixgbe.h.

#define IXGBE_MAX_VF_FUNCTIONS   64

Definition at line 117 of file ixgbe.h.

#define IXGBE_MAX_VF_MC_ENTRIES   30

Definition at line 116 of file ixgbe.h.

#define IXGBE_MAX_VFTA_ENTRIES   128

Definition at line 118 of file ixgbe.h.

#define IXGBE_MAX_VMDQ_INDICES   64

Definition at line 274 of file ixgbe.h.

#define IXGBE_MIN_FCPAUSE   0

Definition at line 76 of file ixgbe.h.

#define IXGBE_MIN_FCRTH   0x600

Definition at line 73 of file ixgbe.h.

#define IXGBE_MIN_FCRTL   0x40

Definition at line 71 of file ixgbe.h.

#define IXGBE_MIN_RSC_ITR   24

Definition at line 385 of file ixgbe.h.

#define IXGBE_MIN_RXD   64

Definition at line 68 of file ixgbe.h.

#define IXGBE_MIN_TXD   64

Definition at line 64 of file ixgbe.h.

#define IXGBE_RX_BUFFER_WRITE   16 /* Must be power of 2 */

Definition at line 99 of file ixgbe.h.

#define IXGBE_RX_DESC (   R,
  i 
)    (&(((union ixgbe_adv_rx_desc *)((R)->desc))[i]))

Definition at line 406 of file ixgbe.h.

#define IXGBE_RX_HDR_SIZE   IXGBE_RXBUFFER_256

Definition at line 94 of file ixgbe.h.

#define ixgbe_rx_pg_size (   _ring)    (PAGE_SIZE << ixgbe_rx_pg_order(_ring))

Definition at line 318 of file ixgbe.h.

#define IXGBE_RXBUFFER_256   256 /* Used for skb receive header */

Definition at line 80 of file ixgbe.h.

#define IXGBE_RXBUFFER_2K   2048

Definition at line 81 of file ixgbe.h.

#define IXGBE_RXBUFFER_3K   3072

Definition at line 82 of file ixgbe.h.

#define IXGBE_RXBUFFER_4K   4096

Definition at line 83 of file ixgbe.h.

#define IXGBE_TRY_LINK_TIMEOUT   (4 * HZ)

Definition at line 434 of file ixgbe.h.

#define IXGBE_TX_CTXTDESC (   R,
  i 
)    (&(((struct ixgbe_adv_tx_context_desc *)((R)->desc))[i]))

Definition at line 410 of file ixgbe.h.

#define IXGBE_TX_DESC (   R,
  i 
)    (&(((union ixgbe_adv_tx_desc *)((R)->desc))[i]))

Definition at line 408 of file ixgbe.h.

#define IXGBE_TX_FLAGS_CSUM   (u32)(1)

Definition at line 101 of file ixgbe.h.

#define IXGBE_TX_FLAGS_FCOE   (u32)(1 << 5)

Definition at line 106 of file ixgbe.h.

#define IXGBE_TX_FLAGS_FSO   (u32)(1 << 6)

Definition at line 107 of file ixgbe.h.

#define IXGBE_TX_FLAGS_HW_VLAN   (u32)(1 << 1)

Definition at line 102 of file ixgbe.h.

#define IXGBE_TX_FLAGS_IPV4   (u32)(1 << 4)

Definition at line 105 of file ixgbe.h.

#define IXGBE_TX_FLAGS_NO_IFCS   (u32)(1 << 9)

Definition at line 110 of file ixgbe.h.

#define IXGBE_TX_FLAGS_SW_VLAN   (u32)(1 << 2)

Definition at line 103 of file ixgbe.h.

#define IXGBE_TX_FLAGS_TSO   (u32)(1 << 3)

Definition at line 104 of file ixgbe.h.

#define IXGBE_TX_FLAGS_TSTAMP   (u32)(1 << 8)

Definition at line 109 of file ixgbe.h.

#define IXGBE_TX_FLAGS_TXSW   (u32)(1 << 7)

Definition at line 108 of file ixgbe.h.

#define IXGBE_TX_FLAGS_VLAN_MASK   0xffff0000

Definition at line 111 of file ixgbe.h.

#define IXGBE_TX_FLAGS_VLAN_PRIO_MASK   0xe0000000

Definition at line 112 of file ixgbe.h.

#define IXGBE_TX_FLAGS_VLAN_PRIO_SHIFT   29

Definition at line 113 of file ixgbe.h.

#define IXGBE_TX_FLAGS_VLAN_SHIFT   16

Definition at line 114 of file ixgbe.h.

#define IXGBE_X540_VF_DEVICE_ID   0x1515

Definition at line 123 of file ixgbe.h.

#define MAX_EMULATION_MAC_ADDRS   16

Definition at line 119 of file ixgbe.h.

#define MAX_MSIX_COUNT   MAX_MSIX_VECTORS_82599

Definition at line 428 of file ixgbe.h.

#define MAX_MSIX_VECTORS_82598   18

Definition at line 424 of file ixgbe.h.

#define MAX_MSIX_VECTORS_82599   64

Definition at line 422 of file ixgbe.h.

#define MAX_Q_VECTORS   MAX_Q_VECTORS_82599

Definition at line 427 of file ixgbe.h.

#define MAX_Q_VECTORS_82598   16

Definition at line 425 of file ixgbe.h.

#define MAX_Q_VECTORS_82599   64

Definition at line 423 of file ixgbe.h.

#define MAX_RX_PACKET_BUFFERS
Value:

Definition at line 333 of file ixgbe.h.

#define MAX_RX_QUEUES   IXGBE_MAX_FDIR_INDICES

Definition at line 281 of file ixgbe.h.

#define MAX_TX_PACKET_BUFFERS   MAX_RX_PACKET_BUFFERS

Definition at line 335 of file ixgbe.h.

#define MAX_TX_QUEUES   IXGBE_MAX_FDIR_INDICES

Definition at line 282 of file ixgbe.h.

#define MAXIMUM_ETHERNET_VLAN_SIZE   (ETH_FRAME_LEN + ETH_FCS_LEN + VLAN_HLEN)

Definition at line 96 of file ixgbe.h.

#define MIN_MSIX_COUNT   (MIN_MSIX_Q_VECTORS + NON_Q_VECTORS)

Definition at line 431 of file ixgbe.h.

#define MIN_MSIX_Q_VECTORS   1

Definition at line 430 of file ixgbe.h.

#define NON_Q_VECTORS   (OTHER_VECTOR)

Definition at line 420 of file ixgbe.h.

#define OTHER_VECTOR   1

Definition at line 419 of file ixgbe.h.

#define pr_fmt (   fmt)    KBUILD_MODNAME ": " fmt

Definition at line 58 of file ixgbe.h.

#define ring_is_rsc_enabled (   ring)    test_bit(__IXGBE_RX_RSC_ENABLED, &(ring)->state)

Definition at line 212 of file ixgbe.h.

#define set_check_for_tx_hang (   ring)    set_bit(__IXGBE_TX_DETECT_HANG, &(ring)->state)

Definition at line 208 of file ixgbe.h.

#define set_ring_rsc_enabled (   ring)    set_bit(__IXGBE_RX_RSC_ENABLED, &(ring)->state)

Definition at line 214 of file ixgbe.h.

#define TXD_USE_COUNT (   S)    DIV_ROUND_UP((S), IXGBE_MAX_DATA_PER_TXD)

Definition at line 153 of file ixgbe.h.

#define VMDQ_P (   p)    ((p) + adapter->ring_feature[RING_F_VMDQ].offset)

Definition at line 121 of file ixgbe.h.

Enumeration Type Documentation

Enumerator:
board_82598 
board_82599 
board_X540 

Definition at line 631 of file ixgbe.h.

Enumerator:
RING_F_NONE 
RING_F_VMDQ 
RING_F_RSS 
RING_F_FDIR 
RING_F_ARRAY_SIZE 

Definition at line 261 of file ixgbe.h.

Enumerator:
__IXGBE_TX_FDIR_INIT_DONE 
__IXGBE_TX_DETECT_HANG 
__IXGBE_HANG_CHECK_ARMED 
__IXGBE_RX_RSC_ENABLED 
__IXGBE_RX_CSUM_UDP_ZERO_ERR 
__IXGBE_RX_FCOE 

Definition at line 197 of file ixgbe.h.

Enumerator:
__IXGBE_TESTING 
__IXGBE_RESETTING 
__IXGBE_DOWN 
__IXGBE_SERVICE_SCHED 
__IXGBE_IN_SFP_INIT 

Definition at line 612 of file ixgbe.h.

Function Documentation

int ethtool_ioctl ( struct ifreq ifr)
void ixgbe_alloc_rx_buffers ( struct ixgbe_ring rx_ring,
u16  cleaned_count 
)

ixgbe_alloc_rx_buffers - Replace used receive buffers : ring to place buffers on : number of buffers to replace

Definition at line 1181 of file ixgbe_main.c.

void ixgbe_atr_compute_perfect_hash_82599 ( union ixgbe_atr_input input,
union ixgbe_atr_input input_mask 
)

ixgbe_atr_compute_perfect_hash_82599 - Compute the perfect filter hash : input bitstream to compute the hash on : mask for the input bitstream

This function serves two main purposes. First it applys the input_mask to the atr_input resulting in a cleaned up atr_input data stream. Secondly it computes the hash and stores it in the bkt_hash field at the end of the input byte stream. This way it will be available for future use without needing to recompute the hash.

Definition at line 1373 of file ixgbe_82599.c.

void ixgbe_clear_interrupt_scheme ( struct ixgbe_adapter adapter)

ixgbe_clear_interrupt_scheme - Clear the current interrupt scheme settings : board private structure to clear interrupt scheme on

We go through and clear interrupt specific resources and reset the structure to pre-load conditions

Definition at line 1150 of file ixgbe_lib.c.

void ixgbe_configure_rx_ring ( struct ixgbe_adapter ,
struct ixgbe_ring  
)

Definition at line 3112 of file ixgbe_main.c.

void ixgbe_configure_tx_ring ( struct ixgbe_adapter adapter,
struct ixgbe_ring ring 
)

ixgbe_configure_tx_ring - Configure 8259x Tx ring after Reset : board private structure : structure containing ring specific data

Configure the Tx descriptor ring after a reset.

Definition at line 2723 of file ixgbe_main.c.

void ixgbe_disable_rx_queue ( struct ixgbe_adapter adapter,
struct ixgbe_ring  
)

Definition at line 3082 of file ixgbe_main.c.

void ixgbe_do_reset ( struct net_device netdev)

Definition at line 6797 of file ixgbe_main.c.

void ixgbe_down ( struct ixgbe_adapter adapter)

Definition at line 4323 of file ixgbe_main.c.

s32 ixgbe_fdir_add_signature_filter_82599 ( struct ixgbe_hw hw,
union ixgbe_atr_hash_dword  input,
union ixgbe_atr_hash_dword  common,
u8  queue 
)

ixgbe_atr_add_signature_filter_82599 - Adds a signature hash filter : pointer to hardware structure : unique input dword : compressed common input dword : queue index to direct traffic to

Definition at line 1309 of file ixgbe_82599.c.

s32 ixgbe_fdir_erase_perfect_filter_82599 ( struct ixgbe_hw hw,
union ixgbe_atr_input input,
u16  soft_id 
)

Definition at line 1638 of file ixgbe_82599.c.

s32 ixgbe_fdir_set_input_mask_82599 ( struct ixgbe_hw hw,
union ixgbe_atr_input input_mask 
)

Definition at line 1485 of file ixgbe_82599.c.

s32 ixgbe_fdir_write_perfect_filter_82599 ( struct ixgbe_hw hw,
union ixgbe_atr_input input,
u16  soft_id,
u8  queue 
)

Definition at line 1581 of file ixgbe_82599.c.

void ixgbe_free_rx_resources ( struct ixgbe_ring rx_ring)

ixgbe_free_rx_resources - Free Rx Resources : ring to clean the resources from

Free all receive software resources

Definition at line 4778 of file ixgbe_main.c.

void ixgbe_free_tx_resources ( struct ixgbe_ring tx_ring)

ixgbe_free_tx_resources - Free Tx Resources per Queue : Tx descriptor ring for a specific queue

Free all transmit software resources

Definition at line 4740 of file ixgbe_main.c.

s32 ixgbe_init_fdir_perfect_82599 ( struct ixgbe_hw hw,
u32  fdirctrl 
)

ixgbe_init_fdir_perfect_82599 - Initialize Flow Director perfect filters : pointer to hardware structure : value to write to flow director control register, initially contains just the value of the Rx packet buffer allocation

Definition at line 1188 of file ixgbe_82599.c.

s32 ixgbe_init_fdir_signature_82599 ( struct ixgbe_hw hw,
u32  fdirctrl 
)

ixgbe_init_fdir_signature_82599 - Initialize Flow Director signature filters : pointer to hardware structure : value to write to flow director control register, initially contains just the value of the Rx packet buffer allocation

Definition at line 1164 of file ixgbe_82599.c.

int ixgbe_init_interrupt_scheme ( struct ixgbe_adapter adapter)

ixgbe_init_interrupt_scheme - Determine proper interrupt scheme : board private structure to initialize

We determine which interrupt scheme to use based on...

  • Kernel support (MSI, MSI-X)
    • which can be user-defined (via MODULE_PARAM)
  • Hardware queue count (num_*_queues)
    • defined by miscellaneous hardware support/features (RSS, etc.)

Definition at line 1112 of file ixgbe_lib.c.

int ixgbe_poll ( struct napi_struct napi,
int  budget 
)

ixgbe_poll - NAPI Rx polling callback : structure for representing this polling device : how many packets driver is allowed to clean

This function is used for legacy and MSI, NAPI mode

Definition at line 2427 of file ixgbe_main.c.

s32 ixgbe_reinit_fdir_tables_82599 ( struct ixgbe_hw hw)

ixgbe_reinit_fdir_tables_82599 - Reinitialize Flow Director tables. : pointer to hardware structure

Definition at line 1048 of file ixgbe_82599.c.

void ixgbe_reinit_locked ( struct ixgbe_adapter adapter)

Definition at line 4122 of file ixgbe_main.c.

void ixgbe_reset ( struct ixgbe_adapter adapter)

Definition at line 4151 of file ixgbe_main.c.

void ixgbe_set_ethtool_ops ( struct net_device netdev)

Definition at line 2737 of file ixgbe_ethtool.c.

void ixgbe_set_rx_mode ( struct net_device netdev)

ixgbe_set_rx_mode - Unicast, Multicast and Promiscuous mode set : network interface device structure

The set_rx_method entry point is called whenever the unicast/multicast address list or the network interface flags are updated. This routine is responsible for configuring the hardware for proper unicast, multicast and promiscuous mode.

Definition at line 3550 of file ixgbe_main.c.

int ixgbe_setup_rx_resources ( struct ixgbe_ring rx_ring)

ixgbe_setup_rx_resources - allocate Rx resources (Descriptors) : rx descriptor ring (for a specific queue) to setup

Returns 0 on success, negative on failure

Definition at line 4654 of file ixgbe_main.c.

int ixgbe_setup_tx_resources ( struct ixgbe_ring tx_ring)

ixgbe_setup_tx_resources - allocate Tx resources (Descriptors) : tx descriptor ring (for a specific queue) to setup

Return 0 on success, negative on failure

Definition at line 4572 of file ixgbe_main.c.

void ixgbe_tx_ctxtdesc ( struct ixgbe_ring ,
u32  ,
u32  ,
u32  ,
u32   
)

Definition at line 1159 of file ixgbe_lib.c.

void ixgbe_unmap_and_free_tx_resource ( struct ixgbe_ring ,
struct ixgbe_tx_buffer  
)

Definition at line 593 of file ixgbe_main.c.

void ixgbe_up ( struct ixgbe_adapter adapter)

Definition at line 4143 of file ixgbe_main.c.

void ixgbe_update_stats ( struct ixgbe_adapter adapter)

ixgbe_update_stats - Update the board statistics counters. : board private structure

Definition at line 5110 of file ixgbe_main.c.

int ixgbe_wol_supported ( struct ixgbe_adapter adapter,
u16  device_id,
u16  subdevice_id 
)

ixgbe_wol_supported - Check whether device supports WoL : hw specific details : the device ID : the subsystem device ID

This function is used by probe and ethtool to determine which devices have WoL support

Definition at line 7028 of file ixgbe_main.c.

void ixgbe_write_eitr ( struct ixgbe_q_vector q_vector)

ixgbe_write_eitr - write EITR register in hardware specific way : structure containing interrupt and ring information

This function is made to be called by ethtool and by the driver when it needs to update EITR registers at runtime. Hardware specific quirks/differences are taken care of here.

Definition at line 2033 of file ixgbe_main.c.

netdev_tx_t ixgbe_xmit_frame_ring ( struct sk_buff ,
struct ixgbe_adapter ,
struct ixgbe_ring  
)

Definition at line 6339 of file ixgbe_main.c.

Variable Documentation

struct ixgbe_ring_feature ____cacheline_internodealigned_in_smp
struct ixgbe_info ixgbe_82598_info

Definition at line 1307 of file ixgbe_82598.c.

struct ixgbe_info ixgbe_82599_info

Definition at line 2161 of file ixgbe_82599.c.

char ixgbe_driver_name[]

Definition at line 55 of file ixgbe_main.c.

const char ixgbe_driver_version[]

Definition at line 70 of file ixgbe_main.c.

struct ixgbe_info ixgbe_X540_info

Definition at line 888 of file ixgbe_x540.c.