FreeBSD kernel IXGBE device code
if_ixv.c File Reference
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_rss.h"
#include "ixgbe.h"
#include "ifdi_if.h"
#include <net/netmap.h>
#include <dev/netmap/netmap_kern.h>
Include dependency graph for if_ixv.c:

Go to the source code of this file.

Macros

#define UPDATE_STAT_32(reg, last, count)
 
#define UPDATE_STAT_36(lsb, msb, last, count)
 
#define QUEUE_NAME_LEN   32
 

Functions

static void * ixv_register (device_t)
 
static int ixv_if_attach_pre (if_ctx_t)
 
static int ixv_if_attach_post (if_ctx_t)
 
static int ixv_if_detach (if_ctx_t)
 
static int ixv_if_rx_queue_intr_enable (if_ctx_t, uint16_t)
 
static int ixv_if_tx_queues_alloc (if_ctx_t, caddr_t *, uint64_t *, int, int)
 
static int ixv_if_rx_queues_alloc (if_ctx_t, caddr_t *, uint64_t *, int, int)
 
static void ixv_if_queues_free (if_ctx_t)
 
static void ixv_identify_hardware (if_ctx_t)
 
static void ixv_init_device_features (struct ixgbe_softc *)
 
static int ixv_allocate_pci_resources (if_ctx_t)
 
static void ixv_free_pci_resources (if_ctx_t)
 
static int ixv_setup_interface (if_ctx_t)
 
static void ixv_if_media_status (if_ctx_t, struct ifmediareq *)
 
static int ixv_if_media_change (if_ctx_t)
 
static void ixv_if_update_admin_status (if_ctx_t)
 
static int ixv_if_msix_intr_assign (if_ctx_t, int)
 
static int ixv_if_mtu_set (if_ctx_t, uint32_t)
 
static void ixv_if_init (if_ctx_t)
 
static void ixv_if_local_timer (if_ctx_t, uint16_t)
 
static void ixv_if_stop (if_ctx_t)
 
static int ixv_negotiate_api (struct ixgbe_softc *)
 
static void ixv_initialize_transmit_units (if_ctx_t)
 
static void ixv_initialize_receive_units (if_ctx_t)
 
static void ixv_initialize_rss_mapping (struct ixgbe_softc *)
 
static void ixv_setup_vlan_support (if_ctx_t)
 
static void ixv_configure_ivars (struct ixgbe_softc *)
 
static void ixv_if_enable_intr (if_ctx_t)
 
static void ixv_if_disable_intr (if_ctx_t)
 
static void ixv_if_multi_set (if_ctx_t)
 
static void ixv_if_register_vlan (if_ctx_t, u16)
 
static void ixv_if_unregister_vlan (if_ctx_t, u16)
 
static uint64_t ixv_if_get_counter (if_ctx_t, ift_counter)
 
static bool ixv_if_needs_restart (if_ctx_t, enum iflib_restart_event)
 
static void ixv_save_stats (struct ixgbe_softc *)
 
static void ixv_init_stats (struct ixgbe_softc *)
 
static void ixv_update_stats (struct ixgbe_softc *)
 
static void ixv_add_stats_sysctls (struct ixgbe_softc *)
 
static int ixv_sysctl_debug (SYSCTL_HANDLER_ARGS)
 
static void ixv_set_ivar (struct ixgbe_softc *, u8, u8, s8)
 
static u8ixv_mc_array_itr (struct ixgbe_hw *, u8 **, u32 *)
 
static int ixv_msix_que (void *)
 
static int ixv_msix_mbx (void *)
 
 DRIVER_MODULE (ixv, pci, ixv_driver, ixv_devclass, 0, 0)
 
 IFLIB_PNP_INFO (pci, ixv_driver, ixv_vendor_info_array)
 
 MODULE_DEPEND (ixv, iflib, 1, 1, 1)
 
 MODULE_DEPEND (ixv, pci, 1, 1, 1)
 
 MODULE_DEPEND (ixv, ether, 1, 1, 1)
 
 TUNABLE_INT ("hw.ixv.flow_control", &ixv_flow_control)
 
 TUNABLE_INT ("hw.ixv.hdr_split", &ixv_header_split)
 
static void ixv_enable_queue (struct ixgbe_softc *sc, u32 vector)
 
static void ixv_disable_queue (struct ixgbe_softc *sc, u32 vector)
 
static bool ixv_if_needs_restart (if_ctx_t ctx __unused, enum iflib_restart_event event)
 
static void ixv_print_debug_info (struct ixgbe_softc *sc)
 

Variables

char ixv_driver_version [] = "2.0.1-k"
 
static pci_vendor_info_t ixv_vendor_info_array []
 
static device_method_t ixv_methods []
 
static driver_t ixv_driver
 
devclass_t ixv_devclass
 
static device_method_t ixv_if_methods []
 
static driver_t ixv_if_driver
 
static int ixv_flow_control = ixgbe_fc_full
 
static int ixv_header_split = false
 
static u32 ixv_shadow_vfta [IXGBE_VFTA_SIZE]
 
struct if_txrx ixgbe_txrx
 
static struct if_shared_ctx ixv_sctx_init
 

Macro Definition Documentation

◆ QUEUE_NAME_LEN

#define QUEUE_NAME_LEN   32

◆ UPDATE_STAT_32

#define UPDATE_STAT_32 (   reg,
  last,
  count 
)
Value:
{ \
u32 current = IXGBE_READ_REG(hw, reg); \
if (current < last) \
count += 0x100000000LL; \
last = current; \
count &= 0xFFFFFFFF00000000LL; \
count |= current; \
}
#define IXGBE_READ_REG(a, reg)
Definition: ixgbe_osdep.h:224

Definition at line 1759 of file if_ixv.c.

◆ UPDATE_STAT_36

#define UPDATE_STAT_36 (   lsb,
  msb,
  last,
  count 
)
Value:
{ \
u64 cur_lsb = IXGBE_READ_REG(hw, lsb); \
u64 cur_msb = IXGBE_READ_REG(hw, msb); \
u64 current = ((cur_msb << 32) | cur_lsb); \
if (current < last) \
count += 0x1000000000LL; \
last = current; \
count &= 0xFFFFFFF000000000LL; \
count |= current; \
}

Definition at line 1769 of file if_ixv.c.

Function Documentation

◆ DRIVER_MODULE()

DRIVER_MODULE ( ixv  ,
pci  ,
ixv_driver  ,
ixv_devclass  ,
,
 
)

◆ IFLIB_PNP_INFO()

IFLIB_PNP_INFO ( pci  ,
ixv_driver  ,
ixv_vendor_info_array   
)

◆ ixv_add_stats_sysctls()

◆ ixv_allocate_pci_resources()

static int ixv_allocate_pci_resources ( if_ctx_t  ctx)
static

◆ ixv_configure_ivars()

static void ixv_configure_ivars ( struct ixgbe_softc sc)
static

Definition at line 1687 of file if_ixv.c.

References ixgbe_softc::hw, IXGBE_EITR_DEFAULT, IXGBE_VTEITR, IXGBE_WRITE_REG, ixv_set_ivar(), ix_rx_queue::msix, ixgbe_softc::rx_queues, ix_rx_queue::sc, and ixgbe_softc::vector.

Referenced by ixv_if_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ixv_disable_queue()

static void ixv_disable_queue ( struct ixgbe_softc sc,
u32  vector 
)
inlinestatic

Definition at line 692 of file if_ixv.c.

References ixgbe_softc::hw, IXGBE_EIMS_RTX_QUEUE, IXGBE_VTEIMC, and IXGBE_WRITE_REG.

Referenced by ixv_msix_que().

Here is the caller graph for this function:

◆ ixv_enable_queue()

static void ixv_enable_queue ( struct ixgbe_softc sc,
u32  vector 
)
inlinestatic

Definition at line 678 of file if_ixv.c.

References ixgbe_softc::hw, IXGBE_EIMS_RTX_QUEUE, IXGBE_VTEIMS, and IXGBE_WRITE_REG.

Referenced by ixv_if_enable_intr(), and ixv_if_rx_queue_intr_enable().

Here is the caller graph for this function:

◆ ixv_free_pci_resources()

static void ixv_free_pci_resources ( if_ctx_t  ctx)
static

Definition at line 1132 of file if_ixv.c.

References ixgbe_softc::ctx, ixgbe_softc::irq, ixgbe_softc::pci_mem, ix_rx_queue::que_irq, ixgbe_softc::rx_queues, and ix_rx_queue::sc.

Referenced by ixv_if_attach_pre(), and ixv_if_detach().

Here is the caller graph for this function:

◆ ixv_identify_hardware()

◆ ixv_if_attach_post()

static int ixv_if_attach_post ( if_ctx_t  ctx)
static

Definition at line 530 of file if_ixv.c.

References ixgbe_softc::ctx, ixgbe_softc::dev, ixv_add_stats_sysctls(), ixv_init_stats(), ixv_save_stats(), and ixv_setup_interface().

Here is the call graph for this function:

◆ ixv_if_attach_pre()

◆ ixv_if_detach()

static int ixv_if_detach ( if_ctx_t  ctx)
static

Definition at line 562 of file if_ixv.c.

References ixgbe_softc::ctx, INIT_DEBUGOUT, and ixv_free_pci_resources().

Here is the call graph for this function:

◆ ixv_if_disable_intr()

static void ixv_if_disable_intr ( if_ctx_t  ctx)
static

Definition at line 1631 of file if_ixv.c.

References ixgbe_softc::ctx, ixgbe_softc::hw, IXGBE_VTEIAC, IXGBE_VTEIMC, IXGBE_WRITE_FLUSH, and IXGBE_WRITE_REG.

Referenced by ixv_if_stop().

Here is the caller graph for this function:

◆ ixv_if_enable_intr()

static void ixv_if_enable_intr ( if_ctx_t  ctx)
static

Definition at line 1608 of file if_ixv.c.

References ixgbe_softc::ctx, ixgbe_softc::hw, IXGBE_EIMS_ENABLE_MASK, IXGBE_EIMS_LSC, IXGBE_EIMS_OTHER, IXGBE_VTEIAC, IXGBE_VTEIMS, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, ixv_enable_queue(), ix_rx_queue::msix, ixgbe_softc::rx_queues, and ix_rx_queue::sc.

Referenced by ixv_if_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ixv_if_get_counter()

static uint64_t ixv_if_get_counter ( if_ctx_t  ctx,
ift_counter  cnt 
)
static

◆ ixv_if_init()

◆ ixv_if_local_timer()

static void ixv_if_local_timer ( if_ctx_t  ctx,
uint16_t  qid 
)
static

Definition at line 898 of file if_ixv.c.

◆ ixv_if_media_change()

static int ixv_if_media_change ( if_ctx_t  ctx)
static

Definition at line 790 of file if_ixv.c.

References ixgbe_softc::ctx, ixgbe_softc::dev, and INIT_DEBUGOUT.

◆ ixv_if_media_status()

static void ixv_if_media_status ( if_ctx_t  ctx,
struct ifmediareq *  ifmr 
)
static

◆ ixv_if_msix_intr_assign()

◆ ixv_if_mtu_set()

static int ixv_if_mtu_set ( if_ctx_t  ctx,
uint32_t  mtu 
)
static

Definition at line 575 of file if_ixv.c.

References ixgbe_softc::ctx, IOCTL_DEBUGOUT, IXGBE_MAX_FRAME_SIZE, and IXGBE_MTU_HDR.

◆ ixv_if_multi_set()

static void ixv_if_multi_set ( if_ctx_t  ctx)
static

Definition at line 844 of file if_ixv.c.

References ixgbe_softc::ctx, ixgbe_softc::hw, IOCTL_DEBUGOUT, IXGBE_ETH_LENGTH_OF_ADDRESS, ixv_mc_array_itr(), ixgbe_hw::mac, MAX_NUM_MULTICAST_ADDRESSES, ixgbe_mac_info::ops, and ixgbe_mac_operations::update_mc_addr_list.

Referenced by ixv_if_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ixv_if_needs_restart() [1/2]

static bool ixv_if_needs_restart ( if_ctx_t ctx  __unused,
enum iflib_restart_event  event 
)
static

Definition at line 1212 of file if_ixv.c.

◆ ixv_if_needs_restart() [2/2]

static bool ixv_if_needs_restart ( if_ctx_t  ,
enum  iflib_restart_event 
)
static

◆ ixv_if_queues_free()

static void ixv_if_queues_free ( if_ctx_t  ctx)
static

Definition at line 355 of file if_ixv.c.

References ixgbe_softc::ctx, ixgbe_softc::rx_queues, tx_ring::sc, ix_tx_queue::sc, ixgbe_softc::tx_queues, tx_ring::tx_rsq, and ix_tx_queue::txr.

Referenced by ixv_if_rx_queues_alloc(), and ixv_if_tx_queues_alloc().

Here is the caller graph for this function:

◆ ixv_if_register_vlan()

static void ixv_if_register_vlan ( if_ctx_t  ctx,
u16  vtag 
)
static

Definition at line 1575 of file if_ixv.c.

References ixgbe_softc::ctx, ixv_shadow_vfta, and ixgbe_softc::num_vlans.

◆ ixv_if_rx_queue_intr_enable()

static int ixv_if_rx_queue_intr_enable ( if_ctx_t  ctx,
uint16_t  rxqid 
)
static

Definition at line 1643 of file if_ixv.c.

References ixgbe_softc::ctx, ixv_enable_queue(), rx_ring::me, ixgbe_softc::rx_queues, ix_rx_queue::rxr, and ix_rx_queue::sc.

Here is the call graph for this function:

◆ ixv_if_rx_queues_alloc()

static int ixv_if_rx_queues_alloc ( if_ctx_t  ctx,
caddr_t *  vaddrs,
uint64_t *  paddrs,
int  nrxqs,
int  nrxqsets 
)
static

◆ ixv_if_stop()

◆ ixv_if_tx_queues_alloc()

static int ixv_if_tx_queues_alloc ( if_ctx_t  ctx,
caddr_t *  vaddrs,
uint64_t *  paddrs,
int  ntxqs,
int  ntxqsets 
)
static

◆ ixv_if_unregister_vlan()

static void ixv_if_unregister_vlan ( if_ctx_t  ctx,
u16  vtag 
)
static

Definition at line 1593 of file if_ixv.c.

References ixgbe_softc::ctx, ixv_shadow_vfta, and ixgbe_softc::num_vlans.

◆ ixv_if_update_admin_status()

static void ixv_if_update_admin_status ( if_ctx_t  ctx)
static

◆ ixv_init_device_features()

◆ ixv_init_stats()

◆ ixv_initialize_receive_units()

◆ ixv_initialize_rss_mapping()

◆ ixv_initialize_transmit_units()

◆ ixv_mc_array_itr()

static u8 * ixv_mc_array_itr ( struct ixgbe_hw hw,
u8 **  update_ptr,
u32 vmdq 
)
static

Definition at line 878 of file if_ixv.c.

References IXGBE_ETH_LENGTH_OF_ADDRESS.

Referenced by ixv_if_multi_set().

Here is the caller graph for this function:

◆ ixv_msix_mbx()

static int ixv_msix_mbx ( void *  arg)
static

Definition at line 722 of file if_ixv.c.

References ixgbe_softc::ctx, ixgbe_softc::hw, IXGBE_EICR_LSC, IXGBE_EIMS_OTHER, IXGBE_READ_REG, IXGBE_VTEICR, IXGBE_VTEICS, IXGBE_VTEIMS, IXGBE_WRITE_REG, and ixgbe_softc::link_irq.

Referenced by ixv_if_msix_intr_assign().

Here is the caller graph for this function:

◆ ixv_msix_que()

static int ixv_msix_que ( void *  arg)
static

Definition at line 707 of file if_ixv.c.

References ix_rx_queue::irqs, ixv_disable_queue(), ix_rx_queue::msix, and ix_rx_queue::sc.

Referenced by ixv_if_msix_intr_assign().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ixv_negotiate_api()

static int ixv_negotiate_api ( struct ixgbe_softc sc)
static

Definition at line 819 of file if_ixv.c.

References ixgbe_softc::hw, ixgbe_mbox_api_10, ixgbe_mbox_api_11, ixgbe_mbox_api_12, ixgbe_mbox_api_unknown, and ixgbevf_negotiate_api_version().

Referenced by ixv_if_attach_pre(), and ixv_if_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ixv_print_debug_info()

static void ixv_print_debug_info ( struct ixgbe_softc sc)
static

Definition at line 1889 of file if_ixv.c.

References ixgbe_softc::dev, ixgbe_softc::hw, IXGBE_ERRBC, IXGBE_READ_REG, ixgbe_softc::link_irq, and rx_ring::sc.

Referenced by ixv_sysctl_debug().

Here is the caller graph for this function:

◆ ixv_register()

static void * ixv_register ( device_t  dev)
static

Definition at line 237 of file if_ixv.c.

References ixv_sctx_init.

◆ ixv_save_stats()

◆ ixv_set_ivar()

static void ixv_set_ivar ( struct ixgbe_softc sc,
u8  entry,
u8  vector,
s8  type 
)
static

Definition at line 1662 of file if_ixv.c.

References ixgbe_softc::hw, IXGBE_IVAR_ALLOC_VAL, IXGBE_READ_REG, IXGBE_VTIVAR, IXGBE_VTIVAR_MISC, and IXGBE_WRITE_REG.

Referenced by ixv_configure_ivars().

Here is the caller graph for this function:

◆ ixv_setup_interface()

static int ixv_setup_interface ( if_ctx_t  ctx)
static

Definition at line 1159 of file if_ixv.c.

References ixgbe_softc::ctx, INIT_DEBUGOUT, IXGBE_MTU_HDR, ixgbe_softc::media, and ixgbe_softc::shared.

Referenced by ixv_if_attach_post().

Here is the caller graph for this function:

◆ ixv_setup_vlan_support()

static void ixv_setup_vlan_support ( if_ctx_t  ctx)
static

◆ ixv_sysctl_debug()

static int ixv_sysctl_debug ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 1904 of file if_ixv.c.

References ixv_print_debug_info().

Referenced by ixv_if_attach_pre().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ixv_update_stats()

◆ MODULE_DEPEND() [1/3]

MODULE_DEPEND ( ixv  ,
ether  ,
,
,
 
)

◆ MODULE_DEPEND() [2/3]

MODULE_DEPEND ( ixv  ,
iflib  ,
,
,
 
)

◆ MODULE_DEPEND() [3/3]

MODULE_DEPEND ( ixv  ,
pci  ,
,
,
 
)

◆ TUNABLE_INT() [1/2]

TUNABLE_INT ( "hw.ixv.flow_control"  ,
ixv_flow_control 
)

◆ TUNABLE_INT() [2/2]

TUNABLE_INT ( "hw.ixv.hdr_split"  ,
ixv_header_split 
)

Variable Documentation

◆ ixgbe_txrx

struct if_txrx ixgbe_txrx
extern

Definition at line 62 of file ix_txrx.c.

Referenced by ixv_if_attach_pre().

◆ ixv_devclass

devclass_t ixv_devclass

Definition at line 146 of file if_ixv.c.

◆ ixv_driver

driver_t ixv_driver
static
Initial value:
= {
"ixv", ixv_methods, sizeof(struct ixgbe_softc),
}
static device_method_t ixv_methods[]
Definition: if_ixv.c:132

Definition at line 142 of file if_ixv.c.

◆ ixv_driver_version

char ixv_driver_version[] = "2.0.1-k"

Definition at line 49 of file if_ixv.c.

◆ ixv_flow_control

int ixv_flow_control = ixgbe_fc_full
static

Definition at line 189 of file if_ixv.c.

◆ ixv_header_split

int ixv_header_split = false
static

Definition at line 198 of file if_ixv.c.

◆ ixv_if_driver

driver_t ixv_if_driver
static
Initial value:
= {
"ixv_if", ixv_if_methods, sizeof(struct ixgbe_softc)
}
static device_method_t ixv_if_methods[]
Definition: if_ixv.c:153

Definition at line 180 of file if_ixv.c.

◆ ixv_if_methods

device_method_t ixv_if_methods[]
static
Initial value:
= {
DEVMETHOD(ifdi_attach_pre, ixv_if_attach_pre),
DEVMETHOD(ifdi_attach_post, ixv_if_attach_post),
DEVMETHOD(ifdi_detach, ixv_if_detach),
DEVMETHOD(ifdi_init, ixv_if_init),
DEVMETHOD(ifdi_stop, ixv_if_stop),
DEVMETHOD(ifdi_msix_intr_assign, ixv_if_msix_intr_assign),
DEVMETHOD(ifdi_intr_enable, ixv_if_enable_intr),
DEVMETHOD(ifdi_intr_disable, ixv_if_disable_intr),
DEVMETHOD(ifdi_tx_queue_intr_enable, ixv_if_rx_queue_intr_enable),
DEVMETHOD(ifdi_rx_queue_intr_enable, ixv_if_rx_queue_intr_enable),
DEVMETHOD(ifdi_tx_queues_alloc, ixv_if_tx_queues_alloc),
DEVMETHOD(ifdi_rx_queues_alloc, ixv_if_rx_queues_alloc),
DEVMETHOD(ifdi_queues_free, ixv_if_queues_free),
DEVMETHOD(ifdi_update_admin_status, ixv_if_update_admin_status),
DEVMETHOD(ifdi_multi_set, ixv_if_multi_set),
DEVMETHOD(ifdi_mtu_set, ixv_if_mtu_set),
DEVMETHOD(ifdi_media_status, ixv_if_media_status),
DEVMETHOD(ifdi_media_change, ixv_if_media_change),
DEVMETHOD(ifdi_timer, ixv_if_local_timer),
DEVMETHOD(ifdi_vlan_register, ixv_if_register_vlan),
DEVMETHOD(ifdi_vlan_unregister, ixv_if_unregister_vlan),
DEVMETHOD(ifdi_get_counter, ixv_if_get_counter),
DEVMETHOD(ifdi_needs_restart, ixv_if_needs_restart),
}
static void ixv_if_update_admin_status(if_ctx_t)
Definition: if_ixv.c:915
static int ixv_if_attach_pre(if_ctx_t)
Definition: if_ixv.c:391
static int ixv_if_tx_queues_alloc(if_ctx_t, caddr_t *, uint64_t *, int, int)
Definition: if_ixv.c:246
static void ixv_if_enable_intr(if_ctx_t)
Definition: if_ixv.c:1608
static int ixv_if_msix_intr_assign(if_ctx_t, int)
Definition: if_ixv.c:1030
static int ixv_if_detach(if_ctx_t)
Definition: if_ixv.c:562
static void ixv_if_disable_intr(if_ctx_t)
Definition: if_ixv.c:1631
static void ixv_if_queues_free(if_ctx_t)
Definition: if_ixv.c:355
static uint64_t ixv_if_get_counter(if_ctx_t, ift_counter)
Definition: if_ixv.c:1182
static int ixv_if_rx_queues_alloc(if_ctx_t, caddr_t *, uint64_t *, int, int)
Definition: if_ixv.c:305
static int ixv_if_mtu_set(if_ctx_t, uint32_t)
Definition: if_ixv.c:575
static int ixv_if_media_change(if_ctx_t)
Definition: if_ixv.c:790
static int ixv_if_rx_queue_intr_enable(if_ctx_t, uint16_t)
Definition: if_ixv.c:1643
static void ixv_if_register_vlan(if_ctx_t, u16)
Definition: if_ixv.c:1575
static int ixv_if_attach_post(if_ctx_t)
Definition: if_ixv.c:530
static void ixv_if_multi_set(if_ctx_t)
Definition: if_ixv.c:844
static void ixv_if_media_status(if_ctx_t, struct ifmediareq *)
Definition: if_ixv.c:751
static bool ixv_if_needs_restart(if_ctx_t, enum iflib_restart_event)
static void ixv_if_unregister_vlan(if_ctx_t, u16)
Definition: if_ixv.c:1593
static void ixv_if_stop(if_ctx_t)
Definition: if_ixv.c:963
static void ixv_if_init(if_ctx_t)
Definition: if_ixv.c:603
static void ixv_if_local_timer(if_ctx_t, uint16_t)
Definition: if_ixv.c:898
#define DEVMETHOD_END
Definition: ixgbe.h:205

Definition at line 153 of file if_ixv.c.

◆ ixv_methods

device_method_t ixv_methods[]
static
Initial value:
= {
DEVMETHOD(device_register, ixv_register),
DEVMETHOD(device_probe, iflib_device_probe),
DEVMETHOD(device_attach, iflib_device_attach),
DEVMETHOD(device_detach, iflib_device_detach),
DEVMETHOD(device_shutdown, iflib_device_shutdown),
}
static void * ixv_register(device_t)
Definition: if_ixv.c:237

Definition at line 132 of file if_ixv.c.

◆ ixv_sctx_init

struct if_shared_ctx ixv_sctx_init
static
Initial value:
= {
.isc_magic = IFLIB_MAGIC,
.isc_q_align = PAGE_SIZE,
.isc_tx_maxsize = IXGBE_TSO_SIZE + sizeof(struct ether_vlan_header),
.isc_tx_maxsegsize = PAGE_SIZE,
.isc_tso_maxsize = IXGBE_TSO_SIZE + sizeof(struct ether_vlan_header),
.isc_tso_maxsegsize = PAGE_SIZE,
.isc_rx_maxsize = MJUM16BYTES,
.isc_rx_nsegments = 1,
.isc_rx_maxsegsize = MJUM16BYTES,
.isc_nfl = 1,
.isc_ntxqs = 1,
.isc_nrxqs = 1,
.isc_admin_intrcnt = 1,
.isc_vendor_info = ixv_vendor_info_array,
.isc_driver_version = ixv_driver_version,
.isc_driver = &ixv_if_driver,
.isc_flags = IFLIB_IS_VF | IFLIB_TSO_INIT_IP,
.isc_nrxd_min = {MIN_RXD},
.isc_ntxd_min = {MIN_TXD},
.isc_nrxd_max = {MAX_RXD},
.isc_ntxd_max = {MAX_TXD},
.isc_nrxd_default = {DEFAULT_RXD},
.isc_ntxd_default = {DEFAULT_TXD},
}
char ixv_driver_version[]
Definition: if_ixv.c:49
static pci_vendor_info_t ixv_vendor_info_array[]
Definition: if_ixv.c:60
static driver_t ixv_if_driver
Definition: if_ixv.c:180
#define DEFAULT_TXD
Definition: ixgbe.h:100
#define DEFAULT_RXD
Definition: ixgbe.h:115
#define MAX_RXD
Definition: ixgbe.h:117
#define MAX_TXD
Definition: ixgbe.h:102
#define MIN_RXD
Definition: ixgbe.h:118
#define IXGBE_TSO_SIZE
Definition: ixgbe.h:184
#define MIN_TXD
Definition: ixgbe.h:103

Definition at line 209 of file if_ixv.c.

Referenced by ixv_register().

◆ ixv_shadow_vfta

u32 ixv_shadow_vfta[IXGBE_VFTA_SIZE]
static

Definition at line 206 of file if_ixv.c.

Referenced by ixv_if_register_vlan(), ixv_if_unregister_vlan(), and ixv_setup_vlan_support().

◆ ixv_vendor_info_array

pci_vendor_info_t ixv_vendor_info_array[]
static
Initial value:
=
{
PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_VF, "Intel(R) X520 82599 Virtual Function"),
PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540_VF, "Intel(R) X540 Virtual Function"),
PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550_VF, "Intel(R) X550 Virtual Function"),
PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_VF, "Intel(R) X552 Virtual Function"),
PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_VF, "Intel(R) X553 Virtual Function"),
PVID_END
}
#define IXGBE_INTEL_VENDOR_ID
Definition: ixgbe_osdep.h:122
#define IXGBE_DEV_ID_X550EM_A_VF
Definition: ixgbe_type.h:155
#define IXGBE_DEV_ID_X540_VF
Definition: ixgbe_type.h:130
#define IXGBE_DEV_ID_82599_VF
Definition: ixgbe_type.h:126
#define IXGBE_DEV_ID_X550_VF
Definition: ixgbe_type.h:154
#define IXGBE_DEV_ID_X550EM_X_VF
Definition: ixgbe_type.h:157

Definition at line 60 of file if_ixv.c.