Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
ixgbe_82599.c File Reference
#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include "ixgbe.h"
#include "ixgbe_phy.h"
#include "ixgbe_mbx.h"

Go to the source code of this file.

Macros

#define IXGBE_82599_MAX_TX_QUEUES   128
 
#define IXGBE_82599_MAX_RX_QUEUES   128
 
#define IXGBE_82599_RAR_ENTRIES   128
 
#define IXGBE_82599_MC_TBL_SIZE   128
 
#define IXGBE_82599_VFT_TBL_SIZE   128
 
#define IXGBE_82599_RX_PB_SIZE   512
 
#define IXGBE_ATR_COMMON_HASH_KEY   (IXGBE_ATR_BUCKET_HASH_KEY & IXGBE_ATR_SIGNATURE_HASH_KEY)
 
#define IXGBE_COMPUTE_SIG_HASH_ITERATION(_n)
 
#define IXGBE_COMPUTE_BKT_HASH_ITERATION(_n)
 
#define IXGBE_STORE_AS_BE32(_value)
 
#define IXGBE_WRITE_REG_BE32(a, reg, value)   IXGBE_WRITE_REG((a), (reg), IXGBE_STORE_AS_BE32(ntohl(value)))
 
#define IXGBE_STORE_AS_BE16(_value)   ntohs(((u16)(_value) >> 8) | ((u16)(_value) << 8))
 

Functions

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)
 
void ixgbe_atr_compute_perfect_hash_82599 (union ixgbe_atr_input *input, union ixgbe_atr_input *input_mask)
 
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)
 

Variables

struct ixgbe_info ixgbe_82599_info
 

Macro Definition Documentation

#define IXGBE_82599_MAX_RX_QUEUES   128

Definition at line 37 of file ixgbe_82599.c.

#define IXGBE_82599_MAX_TX_QUEUES   128

Definition at line 36 of file ixgbe_82599.c.

#define IXGBE_82599_MC_TBL_SIZE   128

Definition at line 39 of file ixgbe_82599.c.

#define IXGBE_82599_RAR_ENTRIES   128

Definition at line 38 of file ixgbe_82599.c.

#define IXGBE_82599_RX_PB_SIZE   512

Definition at line 41 of file ixgbe_82599.c.

#define IXGBE_82599_VFT_TBL_SIZE   128

Definition at line 40 of file ixgbe_82599.c.

#define IXGBE_ATR_COMMON_HASH_KEY   (IXGBE_ATR_BUCKET_HASH_KEY & IXGBE_ATR_SIGNATURE_HASH_KEY)

Definition at line 1217 of file ixgbe_82599.c.

#define IXGBE_COMPUTE_BKT_HASH_ITERATION (   _n)
Value:
do { \
u32 n = (_n); \
if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << n)) \
bucket_hash ^= lo_hash_dword >> n; \
if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << (n + 16))) \
bucket_hash ^= hi_hash_dword >> n; \
} while (0);

Definition at line 1353 of file ixgbe_82599.c.

#define IXGBE_COMPUTE_SIG_HASH_ITERATION (   _n)
Value:
do { \
u32 n = (_n); \
if (IXGBE_ATR_COMMON_HASH_KEY & (0x01 << n)) \
common_hash ^= lo_hash_dword >> n; \
else if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << n)) \
bucket_hash ^= lo_hash_dword >> n; \
else if (IXGBE_ATR_SIGNATURE_HASH_KEY & (0x01 << n)) \
sig_hash ^= lo_hash_dword << (16 - n); \
if (IXGBE_ATR_COMMON_HASH_KEY & (0x01 << (n + 16))) \
common_hash ^= hi_hash_dword >> n; \
else if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << (n + 16))) \
bucket_hash ^= hi_hash_dword >> n; \
else if (IXGBE_ATR_SIGNATURE_HASH_KEY & (0x01 << (n + 16))) \
sig_hash ^= hi_hash_dword << (16 - n); \
} while (0);

Definition at line 1219 of file ixgbe_82599.c.

#define IXGBE_STORE_AS_BE16 (   _value)    ntohs(((u16)(_value) >> 8) | ((u16)(_value) << 8))

Definition at line 1482 of file ixgbe_82599.c.

#define IXGBE_STORE_AS_BE32 (   _value)
Value:
(((u32)(_value) >> 24) | (((u32)(_value) & 0x00FF0000) >> 8) | \
(((u32)(_value) & 0x0000FF00) << 8) | ((u32)(_value) << 24))

Definition at line 1475 of file ixgbe_82599.c.

#define IXGBE_WRITE_REG_BE32 (   a,
  reg,
  value 
)    IXGBE_WRITE_REG((a), (reg), IXGBE_STORE_AS_BE32(ntohl(value)))

Definition at line 1479 of file ixgbe_82599.c.

Function Documentation

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.

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.

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.

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.

Variable Documentation

struct ixgbe_info ixgbe_82599_info
Initial value:
= {
.get_invariants = &ixgbe_get_invariants_82599,
.mac_ops = &mac_ops_82599,
.eeprom_ops = &eeprom_ops_82599,
.phy_ops = &phy_ops_82599,
.mbx_ops = &mbx_ops_generic,
}

Definition at line 2161 of file ixgbe_82599.c.