42 u32 hdrm = 32 << fdir_pballoc;
55 if_ctx_t ctx = context;
57 struct ifnet *ifp = iflib_get_ifp(ctx);
68 ifp->if_drv_flags |= IFF_DRV_RUNNING;
88 struct ether_vlan_header *eh;
94 eh = mtod(mp,
struct ether_vlan_header *);
95 if (eh->evl_encap_proto == htons(ETHERTYPE_VLAN)) {
96 ehdrlen = ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN;
97 etype = eh->evl_proto;
99 ehdrlen = ETHER_HDR_LEN;
100 etype = eh->evl_encap_proto;
104 if (etype != htons(ETHERTYPE_IP))
107 ip = (
struct ip *)(mp->m_data + ehdrlen);
108 ip_hlen = ip->ip_hl << 2;
113 th = (
struct tcphdr *)((caddr_t)ip + ip_hlen);
115 common.
port.
dst ^= th->th_sport;
116 common.
port.
src ^= th->th_dport;
120 uh = (
struct udphdr *)((caddr_t)ip + ip_hlen);
122 common.
port.
dst ^= uh->uh_sport;
123 common.
port.
src ^= uh->uh_dport;
131 if (mp->m_pkthdr.ether_vtag)
135 common.
ip ^= ip->ip_src.s_addr ^ ip->ip_dst.s_addr;
137 que = &sc->queues[txr->
me];
143 input, common, que->msix);
void ixgbe_atr(struct tx_ring *txr, struct mbuf *mp)
void ixgbe_reinit_fdir(void *context)
s32 ixgbe_reinit_fdir_tables_82599(struct ixgbe_hw *hw)
void ixgbe_fdir_add_signature_filter_82599(struct ixgbe_hw *hw, union ixgbe_atr_hash_dword input, union ixgbe_atr_hash_dword common, u8 queue)
s32 ixgbe_init_fdir_signature_82599(struct ixgbe_hw *hw, u32 fdirctrl)
#define ixgbe_init_fdir(_a)
#define IXGBE_FEATURE_FDIR
#define UNREFERENCED_2PARAMETER(_p, _q)
#define UNREFERENCED_PARAMETER(_p)
#define IXGBE_WRITE_REG(a, reg, val)
@ IXGBE_ATR_FLOW_TYPE_TCPV4
@ IXGBE_ATR_FLOW_TYPE_UDPV4
#define IXGBE_EIMS_FLOW_DIR
struct ixgbe_mac_info mac
struct ixgbe_mac_operations ops
void(* setup_rxpba)(struct ixgbe_hw *, int, u32, int)
struct ixgbe_atr_hash_dword::@20 port
struct ixgbe_atr_hash_dword::@19 formatted