mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
amd-xgbe: add ethtool jumbo frame selftest
Adds support for jumbo frame selftest. Works only for mtu size greater than 1500. Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com> Link: https://patch.msgid.link/20251031111555.774425-5-Raju.Rangoju@amd.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
d7735c6bb2
commit
9c11b6b1ab
@@ -42,11 +42,19 @@ static int xgbe_test_loopback_validate(struct sk_buff *skb,
|
||||
struct tcphdr *th;
|
||||
struct udphdr *uh;
|
||||
struct iphdr *ih;
|
||||
int eat;
|
||||
|
||||
skb = skb_unshare(skb, GFP_ATOMIC);
|
||||
if (!skb)
|
||||
goto out;
|
||||
|
||||
eat = (skb->tail + skb->data_len) - skb->end;
|
||||
if (eat > 0 && skb_shared(skb)) {
|
||||
skb = skb_share_check(skb, GFP_ATOMIC);
|
||||
if (!skb)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (skb_linearize(skb))
|
||||
goto out;
|
||||
|
||||
@@ -215,6 +223,17 @@ static int xgbe_test_sph(struct xgbe_prv_data *pdata)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int xgbe_test_jumbo(struct xgbe_prv_data *pdata)
|
||||
{
|
||||
struct net_packet_attrs attr = {};
|
||||
int size = pdata->rx_buf_size;
|
||||
|
||||
attr.dst = pdata->netdev->dev_addr;
|
||||
attr.max_size = size - ETH_FCS_LEN;
|
||||
|
||||
return __xgbe_test_loopback(pdata, &attr);
|
||||
}
|
||||
|
||||
static const struct xgbe_test xgbe_selftests[] = {
|
||||
{
|
||||
.name = "MAC Loopback ",
|
||||
@@ -228,6 +247,10 @@ static const struct xgbe_test xgbe_selftests[] = {
|
||||
.name = "Split Header ",
|
||||
.lb = XGBE_LOOPBACK_PHY,
|
||||
.fn = xgbe_test_sph,
|
||||
}, {
|
||||
.name = "Jumbo Frame ",
|
||||
.lb = XGBE_LOOPBACK_PHY,
|
||||
.fn = xgbe_test_jumbo,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user