From: Saeed Mahameed <saeedm@mellanox.com>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org,
Valentine Fatiev <valentinef@mellanox.com>,
Saeed Mahameed <saeedm@mellanox.com>
Subject: [net 09/13] net/mlx5e: Fix selftest for small MTUs
Date: Mon, 19 Nov 2018 15:41:24 -0800 [thread overview]
Message-ID: <20181119234128.6948-10-saeedm@mellanox.com> (raw)
In-Reply-To: <20181119234128.6948-1-saeedm@mellanox.com>
From: Valentine Fatiev <valentinef@mellanox.com>
Loopback test had fixed packet size, which can be bigger than configured
MTU. Shorten the loopback packet size to be bigger than minimal MTU
allowed by the device. Text field removed from struct 'mlx5ehdr'
as redundant to allow send small packets as minimal allowed MTU.
Fixes: d605d66 ("net/mlx5e: Add support for ethtool self diagnostics test")
Signed-off-by: Valentine Fatiev <valentinef@mellanox.com>
Reviewed-by: Eran Ben Elisha <eranbe@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
.../ethernet/mellanox/mlx5/core/en_selftest.c | 26 +++++++------------
1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
index 35ded91203f5..4382ef85488c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
@@ -98,18 +98,17 @@ static int mlx5e_test_link_speed(struct mlx5e_priv *priv)
return 1;
}
-#ifdef CONFIG_INET
-/* loopback test */
-#define MLX5E_TEST_PKT_SIZE (MLX5E_RX_MAX_HEAD - NET_IP_ALIGN)
-static const char mlx5e_test_text[ETH_GSTRING_LEN] = "MLX5E SELF TEST";
-#define MLX5E_TEST_MAGIC 0x5AEED15C001ULL
-
struct mlx5ehdr {
__be32 version;
__be64 magic;
- char text[ETH_GSTRING_LEN];
};
+#ifdef CONFIG_INET
+/* loopback test */
+#define MLX5E_TEST_PKT_SIZE (sizeof(struct ethhdr) + sizeof(struct iphdr) +\
+ sizeof(struct udphdr) + sizeof(struct mlx5ehdr))
+#define MLX5E_TEST_MAGIC 0x5AEED15C001ULL
+
static struct sk_buff *mlx5e_test_get_udp_skb(struct mlx5e_priv *priv)
{
struct sk_buff *skb = NULL;
@@ -117,10 +116,7 @@ static struct sk_buff *mlx5e_test_get_udp_skb(struct mlx5e_priv *priv)
struct ethhdr *ethh;
struct udphdr *udph;
struct iphdr *iph;
- int datalen, iplen;
-
- datalen = MLX5E_TEST_PKT_SIZE -
- (sizeof(*ethh) + sizeof(*iph) + sizeof(*udph));
+ int iplen;
skb = netdev_alloc_skb(priv->netdev, MLX5E_TEST_PKT_SIZE);
if (!skb) {
@@ -149,7 +145,7 @@ static struct sk_buff *mlx5e_test_get_udp_skb(struct mlx5e_priv *priv)
/* Fill UDP header */
udph->source = htons(9);
udph->dest = htons(9); /* Discard Protocol */
- udph->len = htons(datalen + sizeof(struct udphdr));
+ udph->len = htons(sizeof(struct mlx5ehdr) + sizeof(struct udphdr));
udph->check = 0;
/* Fill IP header */
@@ -157,7 +153,8 @@ static struct sk_buff *mlx5e_test_get_udp_skb(struct mlx5e_priv *priv)
iph->ttl = 32;
iph->version = 4;
iph->protocol = IPPROTO_UDP;
- iplen = sizeof(struct iphdr) + sizeof(struct udphdr) + datalen;
+ iplen = sizeof(struct iphdr) + sizeof(struct udphdr) +
+ sizeof(struct mlx5ehdr);
iph->tot_len = htons(iplen);
iph->frag_off = 0;
iph->saddr = 0;
@@ -170,9 +167,6 @@ static struct sk_buff *mlx5e_test_get_udp_skb(struct mlx5e_priv *priv)
mlxh = skb_put(skb, sizeof(*mlxh));
mlxh->version = 0;
mlxh->magic = cpu_to_be64(MLX5E_TEST_MAGIC);
- strlcpy(mlxh->text, mlx5e_test_text, sizeof(mlxh->text));
- datalen -= sizeof(*mlxh);
- skb_put_zero(skb, datalen);
skb->csum = 0;
skb->ip_summed = CHECKSUM_PARTIAL;
--
2.19.1
next prev parent reply other threads:[~2018-11-20 10:08 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-19 23:41 [pull request][net 00/13] Mellanox, mlx5 fixes 2018-11-19 Saeed Mahameed
2018-11-19 23:41 ` [net 01/13] net/mlx5: IPSec, Fix the SA context hash key Saeed Mahameed
2018-11-20 9:25 ` Sergei Shtylyov
2018-11-20 17:18 ` David Miller
2018-11-19 23:41 ` [net 02/13] net/mlx5e: IPoIB, Reset QP after channels are closed Saeed Mahameed
2018-11-19 23:41 ` [net 03/13] net/mlx5e: Don't match on vlan non-existence if ethertype is wildcarded Saeed Mahameed
2018-11-19 23:41 ` [net 04/13] net/mlx5e: Claim TC hw offloads support only under a proper build config Saeed Mahameed
2018-11-19 23:41 ` [net 05/13] net/mlx5e: Always use the match level enum when parsing TC rule match Saeed Mahameed
2018-11-19 23:41 ` [net 06/13] net/mlx5e: Adjust to max number of channles when re-attaching Saeed Mahameed
2018-11-19 23:41 ` [net 07/13] net/mlx5e: Apply the correct check for supporting TC esw rules split Saeed Mahameed
2018-11-19 23:41 ` [net 08/13] net/mlx5e: RX, verify received packet size in Linear Striding RQ Saeed Mahameed
2018-11-19 23:41 ` Saeed Mahameed [this message]
2018-11-19 23:41 ` [net 10/13] net/mlx5e: Fix a bug in turning off FEC policy in unsupported speeds Saeed Mahameed
2018-11-19 23:41 ` [net 11/13] net/mlx5e: Fix wrong field name in FEC related functions Saeed Mahameed
2018-11-19 23:41 ` [net 12/13] net/mlx5e: Removed unnecessary warnings in FEC caps query Saeed Mahameed
2018-11-19 23:41 ` [net 13/13] net/mlx5e: Fix failing ethtool query on FEC query error Saeed Mahameed
2018-11-20 3:34 ` [pull request][net 00/13] Mellanox, mlx5 fixes 2018-11-19 David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181119234128.6948-10-saeedm@mellanox.com \
--to=saeedm@mellanox.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=valentinef@mellanox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox