mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
d5bf46bbe8
OpenWRT's developer guide prefers having actual patches so they an be sent upstream more easily. However, in this case, Adding proper fields also allows for `git am` to properly function. Some of these patches are quite old, and lack much traceable history. This commit tries to rectify that, by digging in the history to find where and how it was first added. It is by no means perfect and also shows some patches that should have been long gone. Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
43 lines
1.5 KiB
Diff
43 lines
1.5 KiB
Diff
From 7cda76d858a4e71ac4a04066c093679a12e1312c Mon Sep 17 00:00:00 2001
|
|
From: Lorenzo Bianconi <lorenzo@kernel.org>
|
|
Date: Fri, 11 Mar 2022 10:14:20 +0100
|
|
Subject: [PATCH] veth: Allow jumbo frames in xdp mode
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Allow increasing the MTU over page boundaries on veth devices
|
|
if the attached xdp program declares to support xdp fragments.
|
|
|
|
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
|
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
|
|
Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
|
|
Acked-by: John Fastabend <john.fastabend@gmail.com>
|
|
Link: https://lore.kernel.org/bpf/d5dc039c3d4123426e7023a488c449181a7bc57f.1646989407.git.lorenzo@kernel.org
|
|
---
|
|
drivers/net/veth.c | 11 ++++++++---
|
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
|
|
index bfae15ec902b..1b5714926d81 100644
|
|
--- a/drivers/net/veth.c
|
|
+++ b/drivers/net/veth.c
|
|
@@ -1470,9 +1470,14 @@ static int veth_xdp_set(struct net_devic
|
|
goto err;
|
|
}
|
|
|
|
- max_mtu = PAGE_SIZE - VETH_XDP_HEADROOM -
|
|
- peer->hard_header_len -
|
|
- SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
|
|
+ max_mtu = SKB_WITH_OVERHEAD(PAGE_SIZE - VETH_XDP_HEADROOM) -
|
|
+ peer->hard_header_len;
|
|
+ /* Allow increasing the max_mtu if the program supports
|
|
+ * XDP fragments.
|
|
+ */
|
|
+ //if (prog->aux->xdp_has_frags)
|
|
+ max_mtu += PAGE_SIZE * MAX_SKB_FRAGS;
|
|
+
|
|
if (peer->mtu > max_mtu) {
|
|
NL_SET_ERR_MSG_MOD(extack, "Peer MTU is too large to set XDP");
|
|
err = -ERANGE;
|