ice: add support BIG TCP on IPv6
Enable sending BIG TCP packets on IPv6 in the ice driver using generic ipv6_hopopt_jumbo_remove helper for stripping HBH header. Tested: netperf -t TCP_RR -H 2001:db8:0:f101::1 -- -r80000,80000 -O MIN_LATENCY,P90_LATENCY,P99_LATENCY,TRANSACTION_RATE Tested on two different setups. In both cases, the following settings were applied after loading the changed driver: ip link set dev enp175s0f1np1 gso_max_size 130000 ip link set dev enp175s0f1np1 gro_max_size 130000 ip link set dev enp175s0f1np1 mtu 9000 First setup: Before: Minimum 90th 99th Transaction Latency Percentile Percentile Rate Microseconds Latency Latency Tran/s Microseconds Microseconds 134 279 410 3961.584 After: Minimum 90th 99th Transaction Latency Percentile Percentile Rate Microseconds Latency Latency Tran/s Microseconds Microseconds 135 178 216 6093.404 The other setup: Before: Minimum 90th 99th Transaction Latency Percentile Percentile Rate Microseconds Latency Latency Tran/s Microseconds Microseconds 218 414 478 2944.765 After: Minimum 90th 99th Transaction Latency Percentile Percentile Rate Microseconds Latency Latency Tran/s Microseconds Microseconds 146 238 266 4700.596 Signed-off-by: Pawel Chmielewski <pawel.chmielewski@intel.com> Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel) Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
Родитель
fcc2cef37f
Коммит
fce92dbc61
|
@ -123,6 +123,8 @@
|
|||
|
||||
#define ICE_MAX_MTU (ICE_AQ_SET_MAC_FRAME_SIZE_MAX - ICE_ETH_PKT_HDR_PAD)
|
||||
|
||||
#define ICE_MAX_TSO_SIZE 131072
|
||||
|
||||
#define ICE_UP_TABLE_TRANSLATE(val, i) \
|
||||
(((val) << ICE_AQ_VSI_UP_TABLE_UP##i##_S) & \
|
||||
ICE_AQ_VSI_UP_TABLE_UP##i##_M)
|
||||
|
|
|
@ -3436,6 +3436,8 @@ static void ice_set_netdev_features(struct net_device *netdev)
|
|||
* be changed at runtime
|
||||
*/
|
||||
netdev->hw_features |= NETIF_F_RXFCS;
|
||||
|
||||
netif_set_tso_max_size(netdev, ICE_MAX_TSO_SIZE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -2327,6 +2327,9 @@ ice_xmit_frame_ring(struct sk_buff *skb, struct ice_tx_ring *tx_ring)
|
|||
|
||||
ice_trace(xmit_frame_ring, tx_ring, skb);
|
||||
|
||||
if (unlikely(ipv6_hopopt_jumbo_remove(skb)))
|
||||
goto out_drop;
|
||||
|
||||
count = ice_xmit_desc_count(skb);
|
||||
if (ice_chk_linearize(skb, count)) {
|
||||
if (__skb_linearize(skb))
|
||||
|
|
Загрузка…
Ссылка в новой задаче