aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netxen/netxen_nic.h
diff options
context:
space:
mode:
authorNarender Kumar <narender.kumar@qlogic.com>2009-08-23 04:35:09 -0400
committerDavid S. Miller <davem@davemloft.net>2009-08-23 22:00:20 -0400
commit1bb482f8a46000f77577948ff1c350275bba7dc9 (patch)
tree3003df5a4414af44af0756f670531d9445bad397 /drivers/net/netxen/netxen_nic.h
parent8fea0f0db87a4aaed41a93eed147af61cc5f9e3f (diff)
netxen: ethtool statistics and control for LRO
Add ethtool -K knob to control LRO in firmware. LRO path is completely separated from GRO, LRO packets are still fed with netif_receive_skb(). Also fix ethtool statistics to include LRO packets. Also use correct message type while configuring interrupt coalescing. Signed-off-by: Narender Kumar <narender.kumar@qlogic.com> Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen/netxen_nic.h')
-rw-r--r--drivers/net/netxen/netxen_nic.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h
index 5abb41e2d02c..fa43aa059c43 100644
--- a/drivers/net/netxen/netxen_nic.h
+++ b/drivers/net/netxen/netxen_nic.h
@@ -576,7 +576,8 @@ struct netxen_adapter_stats {
576 u64 rxdropped; 576 u64 rxdropped;
577 u64 txdropped; 577 u64 txdropped;
578 u64 csummed; 578 u64 csummed;
579 u64 no_rcv; 579 u64 rx_pkts;
580 u64 lro_pkts;
580 u64 rxbytes; 581 u64 rxbytes;
581 u64 txbytes; 582 u64 txbytes;
582}; 583};
@@ -958,7 +959,8 @@ typedef struct {
958#define NX_NIC_H2C_OPCODE_PROXY_STOP_DONE 20 959#define NX_NIC_H2C_OPCODE_PROXY_STOP_DONE 20
959#define NX_NIC_H2C_OPCODE_GET_LINKEVENT 21 960#define NX_NIC_H2C_OPCODE_GET_LINKEVENT 21
960#define NX_NIC_C2C_OPCODE 22 961#define NX_NIC_C2C_OPCODE 22
961#define NX_NIC_H2C_OPCODE_LAST 23 962#define NX_NIC_H2C_OPCODE_CONFIG_HW_LRO 24
963#define NX_NIC_H2C_OPCODE_LAST 25
962 964
963/* 965/*
964 * Firmware --> Driver 966 * Firmware --> Driver
@@ -984,6 +986,19 @@ typedef struct {
984#define VPORT_MISS_MODE_ACCEPT_ALL 1 /* accept all packets */ 986#define VPORT_MISS_MODE_ACCEPT_ALL 1 /* accept all packets */
985#define VPORT_MISS_MODE_ACCEPT_MULTI 2 /* accept unmatched multicast */ 987#define VPORT_MISS_MODE_ACCEPT_MULTI 2 /* accept unmatched multicast */
986 988
989#define NX_NIC_LRO_REQUEST_FIRST 0
990#define NX_NIC_LRO_REQUEST_ADD_FLOW 1
991#define NX_NIC_LRO_REQUEST_DELETE_FLOW 2
992#define NX_NIC_LRO_REQUEST_TIMER 3
993#define NX_NIC_LRO_REQUEST_CLEANUP 4
994#define NX_NIC_LRO_REQUEST_ADD_FLOW_SCHEDULED 5
995#define NX_TOE_LRO_REQUEST_ADD_FLOW 6
996#define NX_TOE_LRO_REQUEST_ADD_FLOW_RESPONSE 7
997#define NX_TOE_LRO_REQUEST_DELETE_FLOW 8
998#define NX_TOE_LRO_REQUEST_DELETE_FLOW_RESPONSE 9
999#define NX_TOE_LRO_REQUEST_TIMER 10
1000#define NX_NIC_LRO_REQUEST_LAST 11
1001
987#define NX_FW_CAPABILITY_LINK_NOTIFICATION (1 << 5) 1002#define NX_FW_CAPABILITY_LINK_NOTIFICATION (1 << 5)
988#define NX_FW_CAPABILITY_SWITCHING (1 << 6) 1003#define NX_FW_CAPABILITY_SWITCHING (1 << 6)
989#define NX_FW_CAPABILITY_PEXQ (1 << 7) 1004#define NX_FW_CAPABILITY_PEXQ (1 << 7)
@@ -1064,6 +1079,7 @@ typedef struct {
1064 1079
1065#define NETXEN_NIC_MSI_ENABLED 0x02 1080#define NETXEN_NIC_MSI_ENABLED 0x02
1066#define NETXEN_NIC_MSIX_ENABLED 0x04 1081#define NETXEN_NIC_MSIX_ENABLED 0x04
1082#define NETXEN_NIC_LRO_ENABLED 0x08
1067#define NETXEN_IS_MSI_FAMILY(adapter) \ 1083#define NETXEN_IS_MSI_FAMILY(adapter) \
1068 ((adapter)->flags & (NETXEN_NIC_MSI_ENABLED | NETXEN_NIC_MSIX_ENABLED)) 1084 ((adapter)->flags & (NETXEN_NIC_MSI_ENABLED | NETXEN_NIC_MSIX_ENABLED))
1069 1085
@@ -1290,6 +1306,8 @@ void netxen_advert_link_change(struct netxen_adapter *adapter, int linkup);
1290 1306
1291int nx_fw_cmd_set_mtu(struct netxen_adapter *adapter, int mtu); 1307int nx_fw_cmd_set_mtu(struct netxen_adapter *adapter, int mtu);
1292int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu); 1308int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu);
1309int netxen_config_hw_lro(struct netxen_adapter *adapter, int enable);
1310int netxen_send_lro_cleanup(struct netxen_adapter *adapter);
1293 1311
1294int netxen_nic_set_mac(struct net_device *netdev, void *p); 1312int netxen_nic_set_mac(struct net_device *netdev, void *p);
1295struct net_device_stats *netxen_nic_get_stats(struct net_device *netdev); 1313struct net_device_stats *netxen_nic_get_stats(struct net_device *netdev);