On 10/14/24 05:12, Xuan Zhuo wrote:
When the frag just got a page, then may lead to regression on VM.
Specially if the sysctl net.core.high_order_alloc_disable value is 1,
then the frag always get a page when do refill.
Which could see reliable crashes or scp failure (scp a file 100M in size
On Tue, 2024-06-18 at 15:56 +0800, Xuan Zhuo wrote:
> Release the xsk buffer, when the queue is releasing or the queue is
> resizing.
>
> Signed-off-by: Xuan Zhuo
> ---
> drivers/net/virtio_net.c | 5 +
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/ne
On Tue, 2024-06-18 at 15:56 +0800, Xuan Zhuo wrote:
> Support AF-XDP for merge mode.
>
> Signed-off-by: Xuan Zhuo
> ---
> drivers/net/virtio_net.c | 139 +++
> 1 file changed, 139 insertions(+)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_ne
Hi,
On Tue, 2024-06-18 at 15:56 +0800, Xuan Zhuo wrote:
> @@ -1032,6 +1034,53 @@ static void check_sq_full_and_disable(struct
> virtnet_info *vi,
> }
> }
>
> +static void sg_fill_dma(struct scatterlist *sg, dma_addr_t addr, u32 len)
> +{
> + sg->dma_address = addr;
> + sg->length
On Tue, 2024-05-28 at 21:41 +0800, Heng Qi wrote:
> When the following snippet is run, lockdep will report a deadlock[1].
>
> /* Acquire all queues dim_locks */
> for (i = 0; i < vi->max_queue_pairs; i++)
> mutex_lock(&vi->rq[i].dim_lock);
>
> There's no deadlock here because the vq
On Tue, 2024-05-28 at 11:06 +0800, Heng Qi wrote:
> On Mon, 27 May 2024 12:42:43 +0200, Paolo Abeni wrote:
> > On Thu, 2024-05-23 at 15:46 +0800, Heng Qi wrote:
> > > This reverts commit 4d4ac2ececd3c42a08dd32a6e3a4aaf25f7efe44.
> > >
> > > When the following
On Thu, 2024-05-23 at 15:46 +0800, Heng Qi wrote:
> This reverts commit 4d4ac2ececd3c42a08dd32a6e3a4aaf25f7efe44.
>
> When the following snippet is run, lockdep will report a deadlock[1].
>
> /* Acquire all queues dim_locks */
> for (i = 0; i < vi->max_queue_pairs; i++)
> mutex_lock
On Mon, 2024-05-20 at 09:03 +0800, Jason Wang wrote:
> This patch synchronize operstate with admin state per RFC2863.
>
> This is done by trying to toggle the carrier upon open/close and
> synchronize with the config change work. This allows propagate status
> correctly to stacked devices like:
>
On Wed, 2024-04-24 at 16:16 +0800, Xuan Zhuo wrote:
> Actually, for the virtio drivers, we can enable premapped mode whatever
> the value of use_dma_api. Because we provide the virtio dma apis.
> So the driver can enable premapped mode unconditionally.
>
> This patch set makes the big mode of virt
On Tue, 2024-04-23 at 06:57 +0300, Daniel Jurgens wrote:
> Currently the buffer used for control VQ commands is protected by the
> RTNL lock. Previously this wasn't a major concern because the control VQ
> was only used during device setup and user interaction. With the recent
> addition of dynamic
On Tue, 2024-04-23 at 06:57 +0300, Daniel Jurgens wrote:
> Once the RTNL locking around the control buffer is removed there can be
> contention on the per queue RX interrupt coalescing data. Use a mutex
> per queue. A mutex is required because virtnet_send_command can sleep.
>
> Signed-off-by: Dan
On Tue, 2024-04-23 at 06:57 +0300, Daniel Jurgens wrote:
> The command VQ will no longer be protected by the RTNL lock. Use a
> mutex to protect the control buffer header and the VQ.
>
> Signed-off-by: Daniel Jurgens
> Reviewed-by: Jiri Pirko
> ---
> drivers/net/virtio_net.c | 12 ++--
>
On Tue, 2024-04-23 at 06:57 +0300, Daniel Jurgens wrote:
> Allocate memory for the data when it's used. Ideally the could be on the
Minor nit: 'buffer' or 'struct' is missing here
No need to repost just for this.
Thank,
Paolo
On Thu, 2024-04-18 at 15:38 +, Dan Jurgens wrote:
> > From: Paolo Abeni
> > Sent: Thursday, April 18, 2024 5:57 AM
> > On Thu, 2024-04-18 at 15:36 +0800, Heng Qi wrote:
> > >
> > > 在 2024/4/18 下午2:42, Jason Wang 写道:
> > > > On Wed, A
On Thu, 2024-04-18 at 15:36 +0800, Heng Qi wrote:
>
> 在 2024/4/18 下午2:42, Jason Wang 写道:
> > On Wed, Apr 17, 2024 at 3:31 AM Daniel Jurgens wrote:
> > > The command VQ will no longer be protected by the RTNL lock. Use a
> > > spinlock to protect the control buffer header and the VQ.
> > >
> > >
On Mon, 2024-04-08 at 15:37 +0200, Luigi Leonardi wrote:
> This patch introduce support for stream_bytes_unsent and
> seqpacket_bytes_unsent ioctl for virtio_transport, vhost_vsock
> and vsock_loopback.
>
> For all transports the unsent bytes counter is incremented
> in virtio_transport_send_pkt_i
On Tue, 2024-03-26 at 14:25 +0800, Heng Qi wrote:
> When the dim worker is scheduled, if it fails to acquire the lock,
> dim may not be able to return to the working state later.
>
> For example, the following single queue scenario:
> 1. The dim worker of rxq0 is scheduled, and the dim status is
On Mon, 2024-03-18 at 13:19 +0100, Jiri Pirko wrote:
> Mon, Mar 18, 2024 at 12:53:38PM CET, xuanz...@linux.alibaba.com wrote:
> > On Mon, 18 Mar 2024 12:52:18 +0100, Jiri Pirko wrote:
> > > Mon, Mar 18, 2024 at 12:05:53PM CET, xuanz...@linux.alibaba.com wrote:
> > > > As the spec:
> > > >
> > > >
On Thu, 2024-03-14 at 16:54 +0800, Xuan Zhuo wrote:
> As the spec:
>
> https://github.com/oasis-tcs/virtio-spec/commit/42f389989823039724f95bbbd243291ab0064f82
>
> The virtio net supports to get device stats.
>
> Please review.
>
> Thanks.
>
>
> v4:
> 1. Support per-queue statistics API
>
On Tue, 2024-01-16 at 17:42 +0800, Xuan Zhuo wrote:
> This is the third part of virtio-net support AF_XDP zero copy.
>
> The whole patch set
> http://lore.kernel.org/all/20231229073108.57778-1-xuanz...@linux.alibaba.com
>
> ## AF_XDP
>
> XDP socket(AF_XDP) is an excellent bypass kernel
On Tue, 2024-01-16 at 14:28 +0800, Xuan Zhuo wrote:
> This is first part of virtio-net support AF_XDP zero copy.
For future submissions, unless explcitly requested otherwise, please
wait for a series being processed before posting the follow-ups.
Otherwise any change requested to earlier patches c
On Mon, 2024-01-15 at 09:29 +0800, Zhu Yanjun wrote:
> From: Zhu Yanjun
>
> Some devices emulate the virtio_net hardwares. When virtio_net
> driver sends commands to the emulated hardware, normally the
> hardware needs time to response. Sometimes the time is very
> long. Thus, the following will
On Tue, 2023-12-05 at 19:05 +0800, Heng Qi wrote:
>
> 在 2023/12/5 下午4:35, Jason Wang 写道:
> > On Tue, Dec 5, 2023 at 4:02 PM Heng Qi wrote:
> > > Currently access to ctrl cmd is globally protected via rtnl_lock and works
> > > fine. But if dim work's access to ctrl cmd also holds rtnl_lock, deadlo
On Mon, 2023-11-27 at 10:55 +0800, Heng Qi wrote:
> @@ -4738,11 +4881,14 @@ static void remove_vq_common(struct virtnet_info *vi)
> static void virtnet_remove(struct virtio_device *vdev)
> {
> struct virtnet_info *vi = vdev->priv;
> + int i;
>
> virtnet_cpu_notif_remove(vi);
>
On Mon, 2023-11-06 at 16:18 +0800, Xuan Zhuo wrote:
> For rq, we have three cases getting buffers from virtio core:
>
> 1. virtqueue_get_buf{,_ctx}
> 2. virtqueue_detach_unused_buf
> 3. callback for virtqueue_resize
>
> But in commit 295525e29a5b("virtio_net: merge dma operations when
> filling m
if (!rcu_access_pointer(rq->napi))
> goto out;
>
> max_len = rcv->mtu + rcv->hard_header_len + VLAN_HLEN;
Acked-by: Paolo Abeni
Thanks for the quick turn-around!
On Fri, 2021-04-16 at 17:29 +0200, Toke Høiland-Jørgensen wrote:
> Paolo Abeni writes:
>
> > On Fri, 2021-04-09 at 16:58 +0200, Toke Høiland-Jørgensen wrote:
> > > Paolo Abeni writes:
> > >
> > > > Currently the veth device has the GRO feature bit
and the
tunnel decapsulation will call pskb_expand_head().
Fixes: 1ddc3229ad3c ("skbuff: remove some unnecessary operation in
skb_segment_list()")
Signed-off-by: Paolo Abeni
---
net/core/skbuff.c | 15 ---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --
Hello,
On Sat, 2021-04-10 at 14:22 +0300, Martin Zaharinov wrote:
> Hi Team
>
> One report latest kernel 5.11.12
>
> Please check and help to find and fix
Please provide a complete splat, including the trapping instruction.
>
> Apr 10 12:46:25 [214315.519319][ T3345] R13: 8cf193ddf700 R
ain napi_thread_poll() loop clear the SCHED bit
Reported-by: Jakub Kicinski
Fixes: 29863d41bb6e ("net: implement threaded-able napi poll loop support")
Signed-off-by: Paolo Abeni
---
net/core/dev.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/core/dev.c b/net/cor
On Fri, 2021-04-09 at 16:58 +0200, Toke Høiland-Jørgensen wrote:
> Paolo Abeni writes:
>
> > Currently the veth device has the GRO feature bit set, even if
> > no GRO aggregation is possible with the default configuration,
> > as the veth device does not
hello,
On Fri, 2021-04-09 at 16:57 +0200, Toke Høiland-Jørgensen wrote:
> Paolo Abeni writes:
>
> > After the previous patch, when enabling GRO, locally generated
> > TCP traffic experiences some measurable overhead, as it traverses
> > the GRO engine without a
Add some basic veth tests, that verify the expected flags and
aggregation with different setups (default, xdp, etc...)
Signed-off-by: Paolo Abeni
---
tools/testing/selftests/net/Makefile | 1 +
tools/testing/selftests/net/veth.sh | 177 +++
2 files changed, 178
is enabled
on a veth peer.
Only skbs that are eligible for aggregation enter the GRO layer,
the others will go through the traditional receive path.
Signed-off-by: Paolo Abeni
---
drivers/net/veth.c | 23 ++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a
id the problem fixed with commit 4bf9ffa0fb57 ("veth:
Orphan skb before GRO")
Signed-off-by: Paolo Abeni
---
drivers/net/veth.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 91b73db37555b..ad36e7ed16134 100644
--- a/driver
: Paolo Abeni
---
drivers/net/veth.c | 129 -
1 file changed, 116 insertions(+), 13 deletions(-)
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index ad36e7ed16134..ca44e82d1edeb 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -57,6
overhead for TCP traffic: some heuristic ensures
that TCP will not go through the additional NAPI/GRO layer.
Some self-tests are added to check the expected behavior in
the default configuration, with XDP and with plain GRO enabled.
Paolo Abeni (4):
veth: use skb_orphan_partial instead of skb_o
On Wed, 2021-04-07 at 11:13 -0700, Jakub Kicinski wrote:
> On Wed, 07 Apr 2021 16:54:29 +0200 Paolo Abeni wrote:
> > > > I think in the above example even the normal processing will be
> > > > fooled?!? e.g. even without the napi_disable(), napi_thread_wait() will
> &
Hello,
I'm sorry for the lag,
On Thu, 2021-04-01 at 16:44 -0700, Jakub Kicinski wrote:
> On Thu, 01 Apr 2021 11:55:45 +0200 Paolo Abeni wrote:
> > On Wed, 2021-03-31 at 18:41 -0700, Jakub Kicinski wrote:
> > > On Thu, 1 Apr 2021 00:46:18 +0200 Paolo Abeni wrote:
>
This change reverts commit ad98dd37051e ("mptcp: provide subflow aware
release function"). The latter introduced a deadlock spotted by
syzkaller and is not needed anymore after the previous commit.
Fixes: ad98dd37051e ("mptcp: provide subflow aware release function")
Signed
){+.+.}-{0:0}, at: mptcp6_release+0x57/0x130
net/mptcp/protocol.c:3507
which lock already depends on the new lock.
Instead we can simply forbit any mcast-related setsockopt
Fixes: 717e79c867ca5 ("mptcp: Add setsockopt()/getsockopt() socket operations")
Signed-off-by: Paolo Abeni
---
implementation refactor
Paolo Abeni (2):
mptcp: forbit mcast-related sockopt on MPTCP sockets
mptcp: revert "mptcp: provide subflow aware release function"
net/mptcp/protocol.c | 100 ---
1 file changed, 47 insertions(+), 53 deletions(-)
--
2.26.2
On Wed, 2021-03-31 at 18:41 -0700, Jakub Kicinski wrote:
> On Thu, 1 Apr 2021 00:46:18 +0200 Paolo Abeni wrote:
> > I hit an hangup on napi_disable(), when the threaded
> > mode is enabled and the napi is under heavy traffic.
> >
> > If the relevant napi has been sch
loop support")
Signed-off-by: Paolo Abeni
---
net/core/dev.c | 8
1 file changed, 8 insertions(+)
diff --git a/net/core/dev.c b/net/core/dev.c
index b4c67a5be606d..e2e716ba027b8 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -7059,6 +7059,14 @@ static int napi_thread_wait(struct n
On Wed, 2021-03-31 at 15:10 +0200, Norman Maurer wrote:
> As this missing change was most likely an oversight in the original
> commit I do think it should go into 5.12 and subsequently stable as
> well. That’s also the reason why I didn’t send a v2 and changed the
> commit message / subject for th
ead of sort of open coding it (Eric)
- provide an helper for the ownership change (Eric)
Fixes: f6ba8d33cfbb ("netem: fix skb_orphan_partial()")
Suggested-by: Eric Dumazet
Signed-off-by: Paolo Abeni
---
include/net/sock.h | 9 +
net/core/sock.c| 12 +++-
2 file
On Tue, 2021-03-30 at 16:40 +0200, Eric Dumazet wrote:
> On Tue, Mar 30, 2021 at 4:39 PM Eric Dumazet wrote:
> > On Tue, Mar 30, 2021 at 4:25 PM Paolo Abeni wrote:
> > > Currently the mentioned helper can end-up freeing the socket wmem
> > > without waking-up any proce
after
releasing the memory, if the old skb destructor requires that.
Fixes: f6ba8d33cfbb ("netem: fix skb_orphan_partial()")
Signed-off-by: Paolo Abeni
---
net/core/sock.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/core/sock.c b/net/core/sock.c
index 0ed98f20448a2..7a3
Similar to the previous commit, let even geneve
passthrou the L4 GRO packets
Signed-off-by: Paolo Abeni
---
drivers/net/bareudp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c
index 7511bca9c15ed..edfad93e7b686 100644
--- a/drivers/net
aggregation
on top of UDP tunnel (vxlan)
v1 -> v2:
- hopefully clarify the commit message
- moved the overlay network ipv6 range into the 'documentation'
reserved range (Willem)
Signed-off-by: Paolo Abeni
---
tools/testing/selftests/net/Makefile | 1 +
tools/testing/
ueue_rcv_skb(),
as the UDP checksum has been validated by the GRO engine.
v2 -> v3:
- even more verbose commit message and comments
v1 -> v2:
- restrict the csum update to the packets strictly needing them
- hopefully clarify the commit message and code comments
Signed-off-by: Paolo Ab
Similar to the previous commit, let even geneve
passthrou the L4 GRO packets
Signed-off-by: Paolo Abeni
---
drivers/net/geneve.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 4ac0373326efd..5d7a2b1469f4c 100644
--- a/drivers/net/geneve.c
bitmask
(Willem)
- use only ipv6 addesses from test range in self-tests (Willem)
- hopefully clarified most individual patches commit messages
Paolo Abeni (8):
udp: fixup csum for GSO receive slow path
udp: skip L4 aggregation for UDP tunnel packets
udp: properly complete L4 GRO over U
()
accordingly.
UDP sockets enabling UDP_GRO stil keep accept_udp_fraglist
zeroed.
v1 -> v2:
- use 2 bits instead of a whole GSO bitmask (Willem)
Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.")
Signed-off-by: Paolo Abeni
---
include/linux/udp.h | 16 +---
n
udp_gro_complete() so that we can enter
the frag list path on the next round, for the inner header.
v1 -> v2:
- hopefully clarified the commit message
Reviewed-by: Willem de Bruijn
Signed-off-by: Paolo Abeni
---
net/ipv4/udp_offload.c | 8 +++-
net/ipv6/udp_offload.c | 3 ++-
2 fi
SO.")
Fixes: 36707061d6ba ("udp: allow forwarding of plain (non-fraglisted) UDP GRO
packets")
Reviewed-by: Willem de Bruijn
Signed-off-by: Paolo Abeni
---
net/ipv4/udp_offload.c | 19 +++
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/net/ipv4/udp_offload.
.
v1 -> v2:
- updated to use the newly introduced UDP socket 'accept*' fields
Signed-off-by: Paolo Abeni
---
drivers/net/vxlan.c | 1 +
include/linux/udp.h | 6 ++
2 files changed, 7 insertions(+)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 7665817f3cb61..39ee130
On Mon, 2021-03-29 at 11:24 -0400, Willem de Bruijn wrote:
> On Mon, Mar 29, 2021 at 11:01 AM Paolo Abeni wrote:
> > On Mon, 2021-03-29 at 09:52 -0400, Willem de Bruijn wrote:
> > > > + if (skb->ip_summed == CHECKSUM_NONE && !skb->csum_valid)
> >
On Mon, 2021-03-29 at 09:52 -0400, Willem de Bruijn wrote:
> > > That breaks the checksum-and-copy optimization when delivering to
> > > local sockets. I wonder if that is a regression.
> >
> > The conversion to CHECKSUM_UNNECESSARY happens since
> > commit 573e8fca255a27e3573b51f9b183d62641c47a3d
On Mon, 2021-03-29 at 08:31 -0400, Willem de Bruijn wrote:
> On Mon, Mar 29, 2021 at 4:14 AM Paolo Abeni wrote:
> > On Fri, 2021-03-26 at 14:15 -0400, Willem de Bruijn wrote:
> > > On Thu, Mar 25, 2021 at 1:24 PM Paolo Abeni wrote:
> > > > Currently the UDP protocol
On Mon, 2021-03-29 at 08:28 -0400, Willem de Bruijn wrote:
> On Mon, Mar 29, 2021 at 7:26 AM Paolo Abeni wrote:
> > On Fri, 2021-03-26 at 14:30 -0400, Willem de Bruijn wrote:
> > > On Thu, Mar 25, 2021 at 1:24 PM Paolo Abeni wrote:
> > > > When UDP packets gene
On Fri, 2021-03-26 at 14:30 -0400, Willem de Bruijn wrote:
> On Thu, Mar 25, 2021 at 1:24 PM Paolo Abeni wrote:
> > When UDP packets generated locally by a socket with UDP_SEGMENT
> > traverse the following path:
> >
> > UDP tunnel(xmit) -> veth (segmentation) -&
On Fri, 2021-03-26 at 14:15 -0400, Willem de Bruijn wrote:
> On Thu, Mar 25, 2021 at 1:24 PM Paolo Abeni wrote:
> > Currently the UDP protocol delivers GSO_FRAGLIST packets to
> > the sockets without the expected segmentation.
> >
> > This change addresses the issue
On Fri, 2021-03-26 at 11:22 +0100, Norman Maurer wrote:
> On 26. Mar 2021, at 10:36, Paolo Abeni wrote:
> > One thing you can do to simplifies the maintainer's life, would be post
> > a v2 with the correct tag (and ev. obsolete this patch in patchwork).
>
> I am quite
Hello,
On Thu, 2021-03-25 at 20:56 +0100, Norman Maurer wrote:
> From: Norman Maurer
>
> Support for UDP_GRO was added in the past but the implementation for
> getsockopt was missed which did lead to an error when we tried to
> retrieve the setting for UDP_GRO. This patch adds the missing switch
aggregation
on top of UDP tunnel (vxlan)
v1 -> v2:
- hopefully clarify the commit message
- moved the overlay network ipv6 range into the 'documentation'
reserved range (Willem)
Signed-off-by: Paolo Abeni
---
tools/testing/selftests/net/Makefile | 1 +
tools/testing/
Similar to the previous commit, let even geneve
passthrou the L4 GRO packets
Signed-off-by: Paolo Abeni
---
drivers/net/geneve.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 4ac0373326efd..5d7a2b1469f4c 100644
--- a/drivers/net/geneve.c
Similar to the previous commit, let even geneve
passthrou the L4 GRO packets
Signed-off-by: Paolo Abeni
---
drivers/net/bareudp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c
index 7511bca9c15ed..edfad93e7b686 100644
--- a/drivers/net
.
v1 -> v2:
- updated to use the newly introduced UDP socket 'accept*' fields
Signed-off-by: Paolo Abeni
---
drivers/net/vxlan.c | 1 +
include/linux/udp.h | 6 ++
2 files changed, 7 insertions(+)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 7665817f3cb61..39ee130
SO.")
Fixes: 36707061d6ba ("udp: allow forwarding of plain (non-fraglisted) UDP GRO
packets")
Signed-off-by: Paolo Abeni
---
net/ipv4/udp_offload.c | 19 +++
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_off
pefully clarified most individual patches commit messages
Paolo Abeni (8):
udp: fixup csum for GSO receive slow path
udp: skip L4 aggregation for UDP tunnel packets
udp: properly complete L4 GRO over UDP tunnel packet
udp: never accept GSO_FRAGLIST packets
vxlan: allow L4 GRO passt
tunnel code. Since the issue affects only
this UDP receive slow path, let's set a suitable csum status there.
v1 -> v2:
- restrict the csum update to the packets strictly needing them
- hopefully clarify the commit message and code comments
Signed-off-by: Paolo Abeni
---
in
()
accordingly.
UDP sockets enabling UDP_GRO stil keep accept_udp_fraglist
zeroed.
v1 -> v2:
- use 2 bits instead of a whole GSO bitmask (Willem)
Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.")
Signed-off-by: Paolo Abeni
---
include/linux/udp.h | 16 +---
n
udp_gro_complete() so that we can enter
the frag list path on the next round, for the inner header.
v1 -> v2:
- hopefully clarified the commit message
Signed-off-by: Paolo Abeni
---
net/ipv4/udp_offload.c | 8 +++-
net/ipv6/udp_offload.c | 3 ++-
2 files changed, 9 insertions(+), 2 deleti
On Thu, 2021-03-25 at 09:53 -0400, Willem de Bruijn wrote:
> On Thu, Mar 25, 2021 at 6:57 AM Paolo Abeni wrote:
> > AFAICS, it depends ;) From skbuff.h:
> >
> > * skb->csum_level indicates the number of consecutive checksums found in
> > * the packet minus
On Wed, 2021-03-24 at 18:12 -0400, Willem de Bruijn wrote:
> On Wed, Mar 24, 2021 at 3:00 PM Paolo Abeni wrote:
> > On Tue, 2021-03-23 at 22:21 -0400, Willem de Bruijn wrote:
> > > On Mon, Mar 22, 2021 at 1:12 PM Paolo Abeni wrote:
> > > > On Mon, 2021-03-22 at
Hello,
On Wed, 2021-03-24 at 18:36 -0400, Willem de Bruijn wrote:
> > > This is a UDP GSO packet egress packet that was further encapsulated
> > > with a GSO_UDP_TUNNEL on egress, then looped to the ingress path?
> > >
> > > Then in the ingress path it has traversed the GRO layer.
> > >
> > > Is
On Tue, 2021-03-23 at 22:21 -0400, Willem de Bruijn wrote:
> On Mon, Mar 22, 2021 at 1:12 PM Paolo Abeni wrote:
> > On Mon, 2021-03-22 at 09:42 -0400, Willem de Bruijn wrote:
> > > On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote:
> > > > Currently the UDP protocol
On Tue, 2021-03-23 at 21:54 -0400, Willem de Bruijn wrote:
> > I did not look at that before your suggestion. Thanks for pointing out.
> >
> > I think the problem is specific to UDP: when processing the outer UDP
> > header that is potentially eligible for both NETIF_F_GSO_UDP_L4 and
> > gro_recei
On Tue, 2021-03-23 at 21:45 -0400, Willem de Bruijn wrote:
> On Mon, Mar 22, 2021 at 12:36 PM Paolo Abeni wrote:
> > On Mon, 2021-03-22 at 09:18 -0400, Willem de Bruijn wrote:
> > > On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote:
> > > > When looping back UDP GSO
Hello,
On Mon, 2021-03-22 at 09:44 -0400, Willem de Bruijn wrote:
> > diff --git a/tools/testing/selftests/net/udpgro_fwd.sh
> > b/tools/testing/selftests/net/udpgro_fwd.sh
> > new file mode 100755
> > index 0..ac7ac56a27524
> > --- /dev/null
> > +++ b/tools/testing/selftests/net/udpg
On Mon, 2021-03-22 at 09:44 -0400, Willem de Bruijn wrote:
> On Sun, Mar 21, 2021 at 1:02 PM Paolo Abeni wrote:
> > create a bunch of virtual topology and verify that
> > GRO_FRAG_LIST and GRO_FWD aggregate the ingress
>
> what are these constants? Aliases for SKB_GSO_FRAGLI
On Mon, 2021-03-22 at 09:42 -0400, Willem de Bruijn wrote:
> On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote:
> > Currently the UDP protocol delivers GSO_FRAGLIST packets to
> > the sockets without the expected segmentation.
> >
> > This change addresses the issue
On Mon, 2021-03-22 at 09:30 -0400, Willem de Bruijn wrote:
> On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote:
> > After the previous patch the stack can do L4 UDP aggregation
> > on top of an UDP tunnel.
> >
> > The current GRO complete code tries frag based aggregat
On Mon, 2021-03-22 at 09:24 -0400, Willem de Bruijn wrote:
> On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote:
> > If UDP GRO forwarding (or list) is enabled,
>
> Please explicitly mention the gso type SKB_GSO_FRAGLIST. I, at least,
> didn't immediately grasp that gro for
On Mon, 2021-03-22 at 09:18 -0400, Willem de Bruijn wrote:
> On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote:
> > When looping back UDP GSO over UDP tunnel packets to an UDP socket,
> > the individual packet csum is currently set to CSUM_NONE. That causes
> > unexpected/
Similar to the previous commit, let even geneve
passthrou the L4 GRO packets
Signed-off-by: Paolo Abeni
---
drivers/net/bareudp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c
index 7511bca9c15ed..edfad93e7b686 100644
--- a/drivers/net
create a bunch of virtual topology and verify that
GRO_FRAG_LIST and GRO_FWD aggregate the ingress
packets as expected, and the aggregate packets
are segmented correctly when landing on a socket
Also test L4 aggregation on top of UDP tunnel (vxlan)
Signed-off-by: Paolo Abeni
---
tools/testing
Similar to the previous commit, let even geneve
passthrou the L4 GRO packets
Signed-off-by: Paolo Abeni
---
drivers/net/geneve.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 4ac0373326efd..5d7a2b1469f4c 100644
--- a/drivers/net/geneve.c
-next, as overall it makes available a new feature.
Paolo Abeni (8):
udp: fixup csum for GSO receive slow path
udp: skip fwd/list GRO for tunnel packets
udp: properly complete L4 GRO over UDP tunnel packet
udp: never accept GSO_FRAGLIST packets
vxlan: allow L4 GRO passthrou
geneve: allow
use time GRO 'encap_mark' field
to track the need GRO complete action. If encap_mark is set,
skip the frag_list aggregation.
On tunnel encap GRO complete clear such field, so that an inner
frag_list GRO complete could take action.
Signed-off-by: Paolo Abeni
---
net/ipv4/udp_off
.
Signed-off-by: Paolo Abeni
---
drivers/net/vxlan.c | 1 +
include/linux/udp.h | 5 +
2 files changed, 6 insertions(+)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 7665817f3cb61..39ee1300cdd9d 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -3484,6 +3484,7
packets are never accepted
Note: this also updates the 'unused' field size to really
fit the otherwise existing hole. It's size become incorrect
after commit bec1f6f69736 ("udp: generate gso with UDP_SEGMENT").
Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO
the UDP tunnel code. Since the issue affects only
this UDP receive slow path, let's set a suitable csum status there.
Signed-off-by: Paolo Abeni
---
include/net/udp.h | 18 ++
net/ipv4/udp.c| 10 ++
net/ipv6/udp.c| 5 +
3 files changed, 33 insertions(+)
ot;)
Fixes: 36707061d6ba ("udp: allow forwarding of plain (non-fraglisted) UDP GRO
packets")
Signed-off-by: Paolo Abeni
---
net/ipv4/udp_offload.c | 19 +++
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c
On Fri, 2021-03-19 at 11:43 +, Alexander Lobakin wrote:
> I'm not sure if you did it on purpose in commit aaa5d90b395a7
> ("net: use indirect call wrappers at GRO network layer").
> Was that intentional
I must admit that 2y+ later my own intentions are not so clear to me
too;)
> for the sake
Hello,
On Thu, 2021-03-18 at 18:42 +, Alexander Lobakin wrote:
> call_gro_receive() is used to limit GRO recursion, but it works only
> with callback pointers.
> There's a combined version of call_gro_receive() + INDIRECT_CALL_2()
> in , but it doesn't check for IPv6 modularity.
AFAICS, ip6_o
Hello,
On Mon, 2021-03-01 at 14:52 +, Chuck Lever wrote:
> > On Mar 1, 2021, at 8:49 AM, syzbot
> > wrote:
> >
> > Hello,
> >
> > syzbot found the following issue on:
> >
> > HEAD commit:eee7ede6 Merge branch 'bnxt_en-error-recovery-bug-fixes'
> > git tree: net
> > console outpu
The feature is supported by the kernel since 5.11-net-next,
let's allow user-space to use it.
Just parse and dump an additional, per endpoint, u16 attribute
Signed-off-by: Paolo Abeni
---
ip/ipmptcp.c| 16 ++--
man/man8/ip-mptcp.8 | 8
2 files change
mptcp: refactor shutdown and close")
Reviewed-by: Mat Martineau
Signed-off-by: Paolo Abeni
---
net/mptcp/protocol.c | 9 -
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 06da6ad31c87..78bd4bed07ac 100644
--- a
1 - 100 of 1347 matches
Mail list logo