aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe.h
diff options
context:
space:
mode:
authorPeter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>2009-06-04 12:01:25 -0400
committerDavid S. Miller <davem@davemloft.net>2009-06-07 08:20:24 -0400
commitffff47720318860933b2af84d1912af8b2e621f2 (patch)
tree5cf714b04cb2ccf35eaa7016a30bd3918ae995dd /drivers/net/ixgbe/ixgbe.h
parentbfde493ee279b345d31e3178832971606b5b854f (diff)
ixgbe: Add Flow Director init and modify functions for 82599
This patch adds the functions for ixgbe to initialize Flow Director. It also has the function APIs to add Flow Director filters from the base driver. This also includes ATR, Application Targeted Routing, which is a feature set of Flow Director. This is the hash-based mechanism to automatically identify flows and add filters based on the hash, and direct the Rx of that flow back to that same CPU. Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe.h')
-rw-r--r--drivers/net/ixgbe/ixgbe.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/drivers/net/ixgbe/ixgbe.h b/drivers/net/ixgbe/ixgbe.h
index 59167d7e08ca..7adf959e2038 100644
--- a/drivers/net/ixgbe/ixgbe.h
+++ b/drivers/net/ixgbe/ixgbe.h
@@ -402,6 +402,61 @@ extern int ixgbe_init_interrupt_scheme(struct ixgbe_adapter *adapter);
402extern void ixgbe_clear_interrupt_scheme(struct ixgbe_adapter *adapter); 402extern void ixgbe_clear_interrupt_scheme(struct ixgbe_adapter *adapter);
403extern void ixgbe_write_eitr(struct ixgbe_q_vector *); 403extern void ixgbe_write_eitr(struct ixgbe_q_vector *);
404extern int ethtool_ioctl(struct ifreq *ifr); 404extern int ethtool_ioctl(struct ifreq *ifr);
405extern s32 ixgbe_reinit_fdir_tables_82599(struct ixgbe_hw *hw);
406extern s32 ixgbe_init_fdir_signature_82599(struct ixgbe_hw *hw, u32 pballoc);
407extern s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 pballoc);
408extern s32 ixgbe_fdir_add_signature_filter_82599(struct ixgbe_hw *hw,
409 struct ixgbe_atr_input *input,
410 u8 queue);
411extern s32 ixgbe_fdir_add_perfect_filter_82599(struct ixgbe_hw *hw,
412 struct ixgbe_atr_input *input,
413 u16 soft_id,
414 u8 queue);
415extern u16 ixgbe_atr_compute_hash_82599(struct ixgbe_atr_input *input, u32 key);
416extern s32 ixgbe_atr_set_vlan_id_82599(struct ixgbe_atr_input *input,
417 u16 vlan_id);
418extern s32 ixgbe_atr_set_src_ipv4_82599(struct ixgbe_atr_input *input,
419 u32 src_addr);
420extern s32 ixgbe_atr_set_dst_ipv4_82599(struct ixgbe_atr_input *input,
421 u32 dst_addr);
422extern s32 ixgbe_atr_set_src_ipv6_82599(struct ixgbe_atr_input *input,
423 u32 src_addr_1, u32 src_addr_2,
424 u32 src_addr_3, u32 src_addr_4);
425extern s32 ixgbe_atr_set_dst_ipv6_82599(struct ixgbe_atr_input *input,
426 u32 dst_addr_1, u32 dst_addr_2,
427 u32 dst_addr_3, u32 dst_addr_4);
428extern s32 ixgbe_atr_set_src_port_82599(struct ixgbe_atr_input *input,
429 u16 src_port);
430extern s32 ixgbe_atr_set_dst_port_82599(struct ixgbe_atr_input *input,
431 u16 dst_port);
432extern s32 ixgbe_atr_set_flex_byte_82599(struct ixgbe_atr_input *input,
433 u16 flex_byte);
434extern s32 ixgbe_atr_set_vm_pool_82599(struct ixgbe_atr_input *input,
435 u8 vm_pool);
436extern s32 ixgbe_atr_set_l4type_82599(struct ixgbe_atr_input *input,
437 u8 l4type);
438extern s32 ixgbe_atr_get_vlan_id_82599(struct ixgbe_atr_input *input,
439 u16 *vlan_id);
440extern s32 ixgbe_atr_get_src_ipv4_82599(struct ixgbe_atr_input *input,
441 u32 *src_addr);
442extern s32 ixgbe_atr_get_dst_ipv4_82599(struct ixgbe_atr_input *input,
443 u32 *dst_addr);
444extern s32 ixgbe_atr_get_src_ipv6_82599(struct ixgbe_atr_input *input,
445 u32 *src_addr_1, u32 *src_addr_2,
446 u32 *src_addr_3, u32 *src_addr_4);
447extern s32 ixgbe_atr_get_dst_ipv6_82599(struct ixgbe_atr_input *input,
448 u32 *dst_addr_1, u32 *dst_addr_2,
449 u32 *dst_addr_3, u32 *dst_addr_4);
450extern s32 ixgbe_atr_get_src_port_82599(struct ixgbe_atr_input *input,
451 u16 *src_port);
452extern s32 ixgbe_atr_get_dst_port_82599(struct ixgbe_atr_input *input,
453 u16 *dst_port);
454extern s32 ixgbe_atr_get_flex_byte_82599(struct ixgbe_atr_input *input,
455 u16 *flex_byte);
456extern s32 ixgbe_atr_get_vm_pool_82599(struct ixgbe_atr_input *input,
457 u8 *vm_pool);
458extern s32 ixgbe_atr_get_l4type_82599(struct ixgbe_atr_input *input,
459 u8 *l4type);
405#ifdef IXGBE_FCOE 460#ifdef IXGBE_FCOE
406extern void ixgbe_configure_fcoe(struct ixgbe_adapter *adapter); 461extern void ixgbe_configure_fcoe(struct ixgbe_adapter *adapter);
407extern int ixgbe_fso(struct ixgbe_adapter *adapter, 462extern int ixgbe_fso(struct ixgbe_adapter *adapter,