Print this page
11490 SRS ring polling disabled for VLANs
11491 Want DLS bypass for VLAN traffic
11492 add VLVF bypass to ixgbe core
2869 duplicate packets with vnics over aggrs
11489 DLS stat delete and aggr kstat can deadlock
Portions contributed by: Theo Schlossnagle <jesus@omniti.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Dan McDonald <danmcd@joyent.com>
*** 89,98 ****
--- 89,100 ----
#define IXGBE_INTR_ADJUST 0x40
#define IXGBE_ERROR 0x80
#define MAX_NUM_UNICAST_ADDRESSES 0x80
#define MAX_NUM_MULTICAST_ADDRESSES 0x1000
+ #define MAX_NUM_VLAN_FILTERS 0x40
+
#define IXGBE_INTR_NONE 0
#define IXGBE_INTR_MSIX 1
#define IXGBE_INTR_MSI 2
#define IXGBE_INTR_LEGACY 3
*** 385,394 ****
--- 387,405 ----
uint8_t group_index;
uint8_t addr[ETHERADDRL];
} mac;
} ixgbe_ether_addr_t;
+ /*
+ * The list of VLANs an Rx group will accept.
+ */
+ typedef struct ixgbe_vlan {
+ list_node_t ixvl_link;
+ uint16_t ixvl_vid; /* The VLAN ID */
+ uint_t ixvl_refs; /* Number of users of this VLAN */
+ } ixgbe_vlan_t;
+
typedef enum {
USE_NONE,
USE_COPY,
USE_DMA
} tx_type_t;
*** 587,603 ****
--- 598,617 ----
mac_ring_handle_t ring_handle;
uint64_t ring_gen_num;
struct ixgbe *ixgbe; /* Pointer to ixgbe struct */
} ixgbe_rx_ring_t;
+
/*
* Software Receive Ring Group
*/
typedef struct ixgbe_rx_group {
uint32_t index; /* Group index */
mac_group_handle_t group_handle; /* call back group handle */
struct ixgbe *ixgbe; /* Pointer to ixgbe struct */
+ boolean_t aupe; /* AUPE bit */
+ list_t vlans; /* list of VLANs to allow */
} ixgbe_rx_group_t;
/*
* structure to map interrupt cleanup to msi-x vector
*/
*** 660,669 ****
--- 674,684 ----
/*
* Receive Groups
*/
ixgbe_rx_group_t *rx_groups; /* Array of rx groups */
uint32_t num_rx_groups; /* Number of rx groups in use */
+ uint32_t rx_def_group; /* Default Rx group index */
/*
* Transmit Rings
*/
ixgbe_tx_ring_t *tx_rings; /* Array of tx rings */
*** 713,722 ****
--- 728,740 ----
uint32_t unicst_total;
ixgbe_ether_addr_t unicst_addr[MAX_NUM_UNICAST_ADDRESSES];
uint32_t mcast_count;
struct ether_addr mcast_table[MAX_NUM_MULTICAST_ADDRESSES];
+ boolean_t vlft_enabled; /* VLAN filtering enabled? */
+ boolean_t vlft_init; /* VLAN filtering initialized? */
+
ulong_t sys_page_size;
boolean_t link_check_complete;
hrtime_t link_check_hrtime;
ddi_periodic_t periodic_id; /* for link check timer func */