From mboxrd@z Thu Jan 1 00:00:00 1970
From: Peter Kosyh
Subject: Re: [PATCH] xfrm bugs with mark logic
Date: Fri, 2 Jul 2010 20:24:03 +0400
Message-ID: <20100702162403.GA10809@myhost>
References: <1278082898.2530.37.camel@edumazet-laptop>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="liOOAslEiF7prFVr"
Cc: netdev@vger.kernel.org
To: Eric Dumazet
Return-path:
Received: from mail-bw0-f46.google.com ([209.85.214.46]:49031 "EHLO
mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1759079Ab0GBQYM (ORCPT
); Fri, 2 Jul 2010 12:24:12 -0400
Received: by bwz1 with SMTP id 1so1684212bwz.19
for ; Fri, 02 Jul 2010 09:24:10 -0700 (PDT)
Content-Disposition: inline
In-Reply-To: <1278082898.2530.37.camel@edumazet-laptop>
Sender: netdev-owner@vger.kernel.org
List-ID:
--liOOAslEiF7prFVr
Content-Type: text/plain; charset=koi8-r
Content-Disposition: inline
>
> Hi Peter
>
> XFRMA_MARK part already in net-2.6 tree :
>
> http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=commit;h=4efd7e833591721bec21cc4730a7f6261417840f
>
> Please submit another patch the second problem you spotted ?
>
Yes, i see. Here it is, but i am little unsure about ipv6 fix.
--
w.b.r. Peter Kosyh
--liOOAslEiF7prFVr
Content-Type: text/plain; charset=koi8-r
Content-Disposition: attachment; filename="linux-2.6.36-xfrm-mark.patch"
diff -Nur linux-2.6.35-rc3.orig/net/ipv4/xfrm4_policy.c linux-2.6.35-rc3/net/ipv4/xfrm4_policy.c
--- linux-2.6.35-rc3.orig/net/ipv4/xfrm4_policy.c 2010-06-12 06:14:04.000000000 +0400
+++ linux-2.6.35-rc3/net/ipv4/xfrm4_policy.c 2010-07-02 20:20:49.000000000 +0400
@@ -108,6 +108,8 @@
u8 *xprth = skb_network_header(skb) + iph->ihl * 4;
memset(fl, 0, sizeof(struct flowi));
+ fl->mark = skb->mark;
+
if (!(iph->frag_off & htons(IP_MF | IP_OFFSET))) {
switch (iph->protocol) {
case IPPROTO_UDP:
diff -Nur linux-2.6.35-rc3.orig/net/ipv6/xfrm6_policy.c linux-2.6.35-rc3/net/ipv6/xfrm6_policy.c
--- linux-2.6.35-rc3.orig/net/ipv6/xfrm6_policy.c 2010-06-12 06:14:04.000000000 +0400
+++ linux-2.6.35-rc3/net/ipv6/xfrm6_policy.c 2010-07-02 20:20:22.000000000 +0400
@@ -124,6 +124,8 @@
u8 nexthdr = nh[IP6CB(skb)->nhoff];
memset(fl, 0, sizeof(struct flowi));
+ fl->mark = skb->mark;
+
ipv6_addr_copy(&fl->fl6_dst, reverse ? &hdr->saddr : &hdr->daddr);
ipv6_addr_copy(&fl->fl6_src, reverse ? &hdr->daddr : &hdr->saddr);
--liOOAslEiF7prFVr--