nfp: limit the number of TSO segments
authorJakub Kicinski <jakub.kicinski@netronome.com>
Thu, 8 Feb 2018 04:55:25 +0000 (20:55 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Feb 2018 15:01:27 +0000 (10:01 -0500)
Most FWs limit the number of TSO segments a frame can produce
to 64.  This is for fairness and efficiency (of FW datapath)
reasons.  If a frame with larger number of segments is submitted
the FW will drop it.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
drivers/net/ethernet/netronome/nfp/nfp_net_ctrl.h

index 19e9892..a05be0a 100644 (file)
@@ -3750,6 +3750,8 @@ static void nfp_net_netdev_init(struct nfp_net *nn)
        netdev->min_mtu = ETH_MIN_MTU;
        netdev->max_mtu = nn->max_mtu;
 
+       netdev->gso_max_segs = NFP_NET_LSO_MAX_SEGS;
+
        netif_carrier_off(netdev);
 
        nfp_net_set_ethtool_ops(netdev);
index eeecef2..4499a73 100644 (file)
 #define NFP_NET_RX_OFFSET               32
 
 /**
- * Maximum header size supported for LSO frames
+ * LSO parameters
+ * %NFP_NET_LSO_MAX_HDR_SZ:    Maximum header size supported for LSO frames
+ * %NFP_NET_LSO_MAX_SEGS:      Maximum number of segments LSO frame can produce
  */
 #define NFP_NET_LSO_MAX_HDR_SZ         255
+#define NFP_NET_LSO_MAX_SEGS           64
 
 /**
  * Prepend field types