Hello,
On Tue, 18 Feb 2014, Art -kwaak- van Breemen wrote:
> On Tue, Feb 18, 2014 at 02:37:25PM +0100, Art -kwaak- van Breemen wrote:
> > With attached patch (agains 3.13.3, but probably generic to >= 3.10) I get
> > this:
>
> should have been diff -up, instead of diff.
>
> A cleanup of the icmpv6 handling for natted lvs services resulted
> in the icmp packet being corrupted.
> The ipv6_find_hdr seems to want to have -1 as a target for outer
> level headers instead of a target >=0. The result is that packet
> mangling was writing to the wrong offset, corrupting the packet,
> and so disabling path-mtu-discovery.
> - add extra debugging only output
> - change target to -1
>
> Signed-off-by: Ard van Breemen <ard@xxxxxxxxxxxxxxx>
Thanks for testing! This patch needs some tuning,
refer to Documentation/CodingStyle for the rules.
checkpatch.pl reports for the problems:
====
# scripts/checkpatch.pl /tmp/lvs-icmp-bug.patch
ERROR: spaces required around that '=' (ctx:VxV)
#9: FILE: net/netfilter/ipvs/ip_vs_core.c:739:
+ protocol=ipv6_find_hdr(skb, &icmp_offset, -1, &fragoffs, NULL);
^
ERROR: space required after that ',' (ctx:VxV)
#10: FILE: net/netfilter/ipvs/ip_vs_core.c:740:
+ IP_VS_DBG(15,"icmp_offset=%d,protocol=%d\n",icmp_offset,protocol);
^
ERROR: space required after that ',' (ctx:VxV)
#10: FILE: net/netfilter/ipvs/ip_vs_core.c:740:
+ IP_VS_DBG(15,"icmp_offset=%d,protocol=%d\n",icmp_offset,protocol);
^
ERROR: space required after that ',' (ctx:VxV)
#10: FILE: net/netfilter/ipvs/ip_vs_core.c:740:
+ IP_VS_DBG(15,"icmp_offset=%d,protocol=%d\n",icmp_offset,protocol);
^
ERROR: Missing Signed-off-by: line(s)
total: 5 errors, 0 warnings, 17 lines checked
/tmp/lvs-icmp-bug.patch has style problems, please review.
====
I agree for the comment but not sure if it is
appropriate for bugfixes that go to stable kernels.
Also, the format should be icmp_offset=%u, not %d.
Also, we should mention the problematic commit
and to CC the authors. You can tune/borrow from the
following example:
====
[PATCH] ipvs: fix wrong icmp_offset in ip_vs_nat_icmp_v6
Fix regression introduced in 3.8 with commit 63dca2c0b0e7a9
("ipvs: Fix faulty IPv6 extension header handling in IPVS").
Calling ipv6_find_hdr with protocol (IPPROTO_ICMPV6) is not
supported, use -1 instead. Solves problem of damaged IPv6
headers in NAT-ed ICMP packets.
Signed-off-by: Ard van Breemen <ard@xxxxxxxxxxxxxxx>
CC: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
CC: Hans Schillstrom <hans.schillstrom@xxxxxxxxxxxx>
====
Regards
--
Julian Anastasov <ja@xxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|