lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 14 Dec 2018 05:06:47 -0800
From:   Eric Dumazet <eric.dumazet@...il.com>
To:     Sergey Matyukevich <geomatsi@...il.com>, netdev@...r.kernel.org,
        linux-wireless@...r.kernel.org
Cc:     Jamal Hadi Salim <jhs@...atatu.com>,
        Cong Wang <xiyou.wangcong@...il.com>,
        Jiri Pirko <jiri@...nulli.us>,
        sergey.matyukevich.os@...ntenna.com
Subject: Re: question: ip forwarding and fq/mq qdisc



On 12/14/2018 04:02 AM, Sergey Matyukevich wrote:
> Hi all,
> 
> I have been running 4.18-rc8 kernel with enabled IP forwarding between
> wired and wireless interfaces, where both interfaces
> were configured as fq qdisc.
> 
> However after moving to 4.20-rc1 kernel the same configuration does not
> work anymore: pass-through packets are not forwarded in both directions.
> Forwarding starts working again only if I change qdisc of _both_ interfaces
> to anything but fq/mq. For instance any combination of pfifo/fq_codel/noqueue
> works fine.
> 
> Does it look like a regression or it is a known change in behavior ?
> 
> Regards,
> Sergey
> 

Hi Sergey

I guess EDT model broke this use case.

I was under the impression skb->tstamp was cleared when forwarding packets, maybe I was wrong.

Can you try the following ?

diff --git a/net/ipv4/ip_forward.c b/net/ipv4/ip_forward.c
index 06ee4696703c0ce72ea914403b739839e60f1584..00ec819f949b5e76ea96be901a697f4e12d5cf4d 100644
--- a/net/ipv4/ip_forward.c
+++ b/net/ipv4/ip_forward.c
@@ -79,6 +79,7 @@ static int ip_forward_finish(struct net *net, struct sock *sk, struct sk_buff *s
        if (unlikely(opt->optlen))
                ip_forward_options(skb);
 
+       skb->tstamp = 0;
        return dst_output(net, sk, skb);
 }
 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ