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_main.c File Reference
#include <linux/types.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/vmalloc.h>
#include <linux/string.h>
#include <linux/in.h>
#include <linux/interrupt.h>
#include <linux/ip.h>
#include <linux/tcp.h>
#include <linux/sctp.h>
#include <linux/pkt_sched.h>
#include <linux/ipv6.h>
#include <linux/slab.h>
#include <net/checksum.h>
#include <net/ip6_checksum.h>
#include <linux/ethtool.h>
#include <linux/if.h>
#include <linux/if_vlan.h>
#include <linux/prefetch.h>
#include <scsi/fc/fc_fcoe.h>
#include "ixgbe.h"
#include "ixgbe_common.h"
#include "ixgbe_dcb_82599.h"
#include "ixgbe_sriov.h"

Go to the source code of this file.

Data Structures

struct  ixgbe_reg_info
 

Macros

#define MAJ   3
 
#define MIN   9
 
#define BUILD   15
 
#define DRV_VERSION
 
#define DEFAULT_MSG_ENABLE   (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)
 
#define TX_WAKE_THRESHOLD   (DESC_NEEDED * 2)
 
#define IXGBE_SRRCTL_BSIZEHDRSIZE_SHIFT   2
 
#define IXGBE_MAX_RX_DESC_POLL   10
 
#define IXGBE_ETH_FRAMING   20
 
#define IXGBE_TXD_CMD
 

Enumerations

enum  latency_range {
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255
}
 

Functions

 MODULE_DEVICE_TABLE (pci, ixgbe_pci_tbl)
 
 module_param (allow_unsupported_sfp, uint, 0)
 
 MODULE_PARM_DESC (allow_unsupported_sfp,"Allow unsupported and untested SFP+ modules on 82599-based adapters")
 
 module_param (debug, int, 0)
 
 MODULE_PARM_DESC (debug,"Debug level (0=none,...,16=all)")
 
 MODULE_AUTHOR ("Intel Corporation, <[email protected]>")
 
 MODULE_DESCRIPTION ("Intel(R) 10 Gigabit PCI Express Network Driver")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_VERSION (DRV_VERSION)
 
void ixgbe_unmap_and_free_tx_resource (struct ixgbe_ring *ring, struct ixgbe_tx_buffer *tx_buffer)
 
void ixgbe_alloc_rx_buffers (struct ixgbe_ring *rx_ring, u16 cleaned_count)
 
void ixgbe_write_eitr (struct ixgbe_q_vector *q_vector)
 
int ixgbe_poll (struct napi_struct *napi, int budget)
 
void ixgbe_configure_tx_ring (struct ixgbe_adapter *adapter, struct ixgbe_ring *ring)
 
void ixgbe_disable_rx_queue (struct ixgbe_adapter *adapter, struct ixgbe_ring *ring)
 
void ixgbe_configure_rx_ring (struct ixgbe_adapter *adapter, struct ixgbe_ring *ring)
 
void ixgbe_set_rx_mode (struct net_device *netdev)
 
void ixgbe_reinit_locked (struct ixgbe_adapter *adapter)
 
void ixgbe_up (struct ixgbe_adapter *adapter)
 
void ixgbe_reset (struct ixgbe_adapter *adapter)
 
void ixgbe_down (struct ixgbe_adapter *adapter)
 
int ixgbe_setup_tx_resources (struct ixgbe_ring *tx_ring)
 
int ixgbe_setup_rx_resources (struct ixgbe_ring *rx_ring)
 
void ixgbe_free_tx_resources (struct ixgbe_ring *tx_ring)
 
void ixgbe_free_rx_resources (struct ixgbe_ring *rx_ring)
 
void ixgbe_update_stats (struct ixgbe_adapter *adapter)
 
netdev_tx_t ixgbe_xmit_frame_ring (struct sk_buff *skb, struct ixgbe_adapter *adapter, struct ixgbe_ring *tx_ring)
 
void ixgbe_do_reset (struct net_device *netdev)
 
int ixgbe_wol_supported (struct ixgbe_adapter *adapter, u16 device_id, u16 subdevice_id)
 
 module_init (ixgbe_init_module)
 
 module_exit (ixgbe_exit_module)
 

Variables

char ixgbe_driver_name [] = "ixgbe"
 
const char ixgbe_driver_version [] = DRV_VERSION
 

Macro Definition Documentation

#define BUILD   15

Definition at line 67 of file ixgbe_main.c.

#define DEFAULT_MSG_ENABLE   (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)

Definition at line 145 of file ixgbe_main.c.

#define DRV_VERSION
Value:
__stringify(BUILD) "-k"

Definition at line 68 of file ixgbe_main.c.

#define IXGBE_ETH_FRAMING   20

Definition at line 3711 of file ixgbe_main.c.

#define IXGBE_MAX_RX_DESC_POLL   10

Definition at line 3057 of file ixgbe_main.c.

#define IXGBE_SRRCTL_BSIZEHDRSIZE_SHIFT   2

Definition at line 2922 of file ixgbe_main.c.

#define IXGBE_TXD_CMD
Value:
IXGBE_TXD_CMD_RS)

Definition at line 6046 of file ixgbe_main.c.

#define MAJ   3

Definition at line 65 of file ixgbe_main.c.

#define MIN   9

Definition at line 66 of file ixgbe_main.c.

#define TX_WAKE_THRESHOLD   (DESC_NEEDED * 2)

Enumeration Type Documentation

Enumerator:
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 

Definition at line 1957 of file ixgbe_main.c.

Function Documentation

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_configure_rx_ring ( struct ixgbe_adapter adapter,
struct ixgbe_ring 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 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.

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.

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.

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_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_unmap_and_free_tx_resource ( struct ixgbe_ring ring,
struct ixgbe_tx_buffer 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 skb,
struct ixgbe_adapter adapter,
struct ixgbe_ring tx_ring 
)

Definition at line 6339 of file ixgbe_main.c.

MODULE_AUTHOR ( "Intel  Corporation,
< linux.nics @intel.com >"   
)
MODULE_DESCRIPTION ( "Intel(R) 10 Gigabit PCI Express Network Driver"  )
MODULE_DEVICE_TABLE ( pci  ,
ixgbe_pci_tbl   
)
module_exit ( ixgbe_exit_module  )
module_init ( ixgbe_init_module  )
MODULE_LICENSE ( "GPL"  )
module_param ( allow_unsupported_sfp  ,
uint  ,
 
)
module_param ( debug  ,
int  ,
 
)
MODULE_PARM_DESC ( allow_unsupported_sfp  ,
"Allow unsupported and untested SFP+ modules on 82599-based adapters"   
)
MODULE_PARM_DESC ( debug  ,
"Debug level (0=none,...,16=all)"   
)
MODULE_VERSION ( DRV_VERSION  )

Variable Documentation

char ixgbe_driver_name[] = "ixgbe"

Definition at line 55 of file ixgbe_main.c.

const char ixgbe_driver_version[] = DRV_VERSION

Definition at line 70 of file ixgbe_main.c.