Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Enumerations | Functions
filter.h File Reference
#include <linux/types.h>

Go to the source code of this file.

Data Structures

struct  efx_filter_spec
 

Enumerations

enum  efx_filter_type {
  EFX_FILTER_TCP_FULL = 0, EFX_FILTER_TCP_WILD, EFX_FILTER_UDP_FULL, EFX_FILTER_UDP_WILD,
  EFX_FILTER_MAC_FULL = 4, EFX_FILTER_MAC_WILD, EFX_FILTER_UC_DEF = 8, EFX_FILTER_MC_DEF,
  EFX_FILTER_TYPE_COUNT, EFX_FILTER_UNSPEC = 0xf
}
 
enum  efx_filter_priority { EFX_FILTER_PRI_HINT = 0, EFX_FILTER_PRI_MANUAL, EFX_FILTER_PRI_REQUIRED }
 
enum  efx_filter_flags { EFX_FILTER_FLAG_RX_RSS = 0x01, EFX_FILTER_FLAG_RX_SCATTER = 0x02, EFX_FILTER_FLAG_RX = 0x08, EFX_FILTER_FLAG_TX = 0x10 }
 
enum  { EFX_FILTER_VID_UNSPEC = 0xffff }
 

Functions

int efx_filter_set_ipv4_local (struct efx_filter_spec *spec, u8 proto, __be32 host, __be16 port)
 
int efx_filter_get_ipv4_local (const struct efx_filter_spec *spec, u8 *proto, __be32 *host, __be16 *port)
 
int efx_filter_set_ipv4_full (struct efx_filter_spec *spec, u8 proto, __be32 host, __be16 port, __be32 rhost, __be16 rport)
 
int efx_filter_get_ipv4_full (const struct efx_filter_spec *spec, u8 *proto, __be32 *host, __be16 *port, __be32 *rhost, __be16 *rport)
 
int efx_filter_set_eth_local (struct efx_filter_spec *spec, u16 vid, const u8 *addr)
 
int efx_filter_get_eth_local (const struct efx_filter_spec *spec, u16 *vid, u8 *addr)
 
int efx_filter_set_uc_def (struct efx_filter_spec *spec)
 
int efx_filter_set_mc_def (struct efx_filter_spec *spec)
 

Enumeration Type Documentation

anonymous enum
Enumerator:
EFX_FILTER_VID_UNSPEC 

Definition at line 133 of file filter.h.

enum efx_filter_flags - flags for hardware filter specifications : Use RSS to spread across multiple queues. By default, matching packets will be delivered only to the specified queue. If this flag is set, they will be delivered to a range of queues offset from the specified queue number according to the indirection table. : Enable DMA scatter on the receiving queue. : Filter is for RX : Filter is for TX

Enumerator:
EFX_FILTER_FLAG_RX_RSS 
EFX_FILTER_FLAG_RX_SCATTER 
EFX_FILTER_FLAG_RX 
EFX_FILTER_FLAG_TX 

Definition at line 67 of file filter.h.

enum efx_filter_priority - priority of a hardware filter specification : Performance hint : Manually configured filter : Required for correct behaviour (user-level networking and SR-IOV)

Enumerator:
EFX_FILTER_PRI_HINT 
EFX_FILTER_PRI_MANUAL 
EFX_FILTER_PRI_REQUIRED 

Definition at line 49 of file filter.h.

enum efx_filter_type - type of hardware filter : Matching TCP/IPv4 4-tuple : Matching TCP/IPv4 destination (host, port) : Matching UDP/IPv4 4-tuple : Matching UDP/IPv4 destination (host, port) : Matching Ethernet destination MAC address, VID : Matching Ethernet destination MAC address : Matching all otherwise unmatched unicast : Matching all otherwise unmatched multicast : Match type is unspecified

Falcon NICs only support the TCP/IPv4 and UDP/IPv4 filter types.

Enumerator:
EFX_FILTER_TCP_FULL 
EFX_FILTER_TCP_WILD 
EFX_FILTER_UDP_FULL 
EFX_FILTER_UDP_WILD 
EFX_FILTER_MAC_FULL 
EFX_FILTER_MAC_WILD 
EFX_FILTER_UC_DEF 
EFX_FILTER_MC_DEF 
EFX_FILTER_TYPE_COUNT 
EFX_FILTER_UNSPEC 

Definition at line 29 of file filter.h.

Function Documentation

int efx_filter_get_eth_local ( const struct efx_filter_spec spec,
u16 vid,
u8 addr 
)

Definition at line 419 of file filter.c.

int efx_filter_get_ipv4_full ( const struct efx_filter_spec spec,
u8 proto,
__be32 host,
__be16 port,
__be32 rhost,
__be16 rport 
)

Definition at line 325 of file filter.c.

int efx_filter_get_ipv4_local ( const struct efx_filter_spec spec,
u8 proto,
__be32 host,
__be16 port 
)

Definition at line 268 of file filter.c.

int efx_filter_set_eth_local ( struct efx_filter_spec spec,
u16  vid,
const u8 addr 
)

efx_filter_set_eth_local - specify local Ethernet address and optional VID : Specification to initialise : VLAN ID to match, or EFX_FILTER_VID_UNSPEC : Local Ethernet MAC address

Definition at line 350 of file filter.c.

int efx_filter_set_ipv4_full ( struct efx_filter_spec spec,
u8  proto,
__be32  host,
__be16  port,
__be32  rhost,
__be16  rport 
)

efx_filter_set_ipv4_full - specify IPv4 hosts, transport protocol and ports : Specification to initialise : Transport layer protocol number : Local host address (network byte order) : Local port (network byte order) : Remote host address (network byte order) : Remote port (network byte order)

Definition at line 297 of file filter.c.

int efx_filter_set_ipv4_local ( struct efx_filter_spec spec,
u8  proto,
__be32  host,
__be16  port 
)

efx_filter_set_ipv4_local - specify IPv4 host, transport protocol and port : Specification to initialise : Transport layer protocol number : Local host address (network byte order) : Local port (network byte order)

Definition at line 225 of file filter.c.

int efx_filter_set_mc_def ( struct efx_filter_spec spec)

efx_filter_set_mc_def - specify matching otherwise-unmatched multicast : Specification to initialise

Definition at line 394 of file filter.c.

int efx_filter_set_uc_def ( struct efx_filter_spec spec)

efx_filter_set_uc_def - specify matching otherwise-unmatched unicast : Specification to initialise

Definition at line 377 of file filter.c.