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>
This commit is contained in:
committed by
David S. Miller
parent
8fea0f0db8
commit
1bb482f8a4
@@ -576,7 +576,8 @@ struct netxen_adapter_stats {
|
||||
u64 rxdropped;
|
||||
u64 txdropped;
|
||||
u64 csummed;
|
||||
u64 no_rcv;
|
||||
u64 rx_pkts;
|
||||
u64 lro_pkts;
|
||||
u64 rxbytes;
|
||||
u64 txbytes;
|
||||
};
|
||||
@@ -958,7 +959,8 @@ typedef struct {
|
||||
#define NX_NIC_H2C_OPCODE_PROXY_STOP_DONE 20
|
||||
#define NX_NIC_H2C_OPCODE_GET_LINKEVENT 21
|
||||
#define NX_NIC_C2C_OPCODE 22
|
||||
#define NX_NIC_H2C_OPCODE_LAST 23
|
||||
#define NX_NIC_H2C_OPCODE_CONFIG_HW_LRO 24
|
||||
#define NX_NIC_H2C_OPCODE_LAST 25
|
||||
|
||||
/*
|
||||
* Firmware --> Driver
|
||||
@@ -984,6 +986,19 @@ typedef struct {
|
||||
#define VPORT_MISS_MODE_ACCEPT_ALL 1 /* accept all packets */
|
||||
#define VPORT_MISS_MODE_ACCEPT_MULTI 2 /* accept unmatched multicast */
|
||||
|
||||
#define NX_NIC_LRO_REQUEST_FIRST 0
|
||||
#define NX_NIC_LRO_REQUEST_ADD_FLOW 1
|
||||
#define NX_NIC_LRO_REQUEST_DELETE_FLOW 2
|
||||
#define NX_NIC_LRO_REQUEST_TIMER 3
|
||||
#define NX_NIC_LRO_REQUEST_CLEANUP 4
|
||||
#define NX_NIC_LRO_REQUEST_ADD_FLOW_SCHEDULED 5
|
||||
#define NX_TOE_LRO_REQUEST_ADD_FLOW 6
|
||||
#define NX_TOE_LRO_REQUEST_ADD_FLOW_RESPONSE 7
|
||||
#define NX_TOE_LRO_REQUEST_DELETE_FLOW 8
|
||||
#define NX_TOE_LRO_REQUEST_DELETE_FLOW_RESPONSE 9
|
||||
#define NX_TOE_LRO_REQUEST_TIMER 10
|
||||
#define NX_NIC_LRO_REQUEST_LAST 11
|
||||
|
||||
#define NX_FW_CAPABILITY_LINK_NOTIFICATION (1 << 5)
|
||||
#define NX_FW_CAPABILITY_SWITCHING (1 << 6)
|
||||
#define NX_FW_CAPABILITY_PEXQ (1 << 7)
|
||||
@@ -1064,6 +1079,7 @@ typedef struct {
|
||||
|
||||
#define NETXEN_NIC_MSI_ENABLED 0x02
|
||||
#define NETXEN_NIC_MSIX_ENABLED 0x04
|
||||
#define NETXEN_NIC_LRO_ENABLED 0x08
|
||||
#define NETXEN_IS_MSI_FAMILY(adapter) \
|
||||
((adapter)->flags & (NETXEN_NIC_MSI_ENABLED | NETXEN_NIC_MSIX_ENABLED))
|
||||
|
||||
@@ -1290,6 +1306,8 @@ void netxen_advert_link_change(struct netxen_adapter *adapter, int linkup);
|
||||
|
||||
int nx_fw_cmd_set_mtu(struct netxen_adapter *adapter, int mtu);
|
||||
int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu);
|
||||
int netxen_config_hw_lro(struct netxen_adapter *adapter, int enable);
|
||||
int netxen_send_lro_cleanup(struct netxen_adapter *adapter);
|
||||
|
||||
int netxen_nic_set_mac(struct net_device *netdev, void *p);
|
||||
struct net_device_stats *netxen_nic_get_stats(struct net_device *netdev);
|
||||
|
Reference in New Issue
Block a user