netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick McHardy <kaber@trash.net>
To: Marco Berizzi <pupilla@hotmail.com>
Cc: Linux Netdev List <netdev@vger.kernel.org>,
	Kazunori MIYAZAWA <kazunori@miyazawa.org>,
	"David S. Miller" <davem@davemloft.net>
Subject: [XFRM]: xfrm_user: fix selector family initialization
Date: Wed, 09 Apr 2008 17:38:55 +0200	[thread overview]
Message-ID: <47FCE30F.8060400@trash.net> (raw)
In-Reply-To: <47FBC2AF.7050508@trash.net>

[-- Attachment #1: Type: text/plain, Size: 1041 bytes --]

Patrick McHardy wrote:
> Patrick McHardy wrote:
>> The problem appears to be that openswan doesn't initialize the
>> selectors family when adding new SAs. xfrm_init_state() uses
>> the family to decide whether to set up inter family SAs or
>> regular SAs. We used to fix up the family in xfrm_user, but
>> this is now only done for transport mode SAs.
>>
>> -       /*
>> -        * Set inner address family if the KM left it as zero.
>> -        * See comment in validate_tmpl.
>> -        */
>> -       if (!x->sel.family)
>> +       if (x->props.mode == XFRM_MODE_TRANSPORT)
>>                 x->sel.family = p->family;
>> +
>>
>> Reverting this part should fix it, but would break inter family
>> tunnels again. It seems we need a different indication for
>> xfrm_init_state() for inter family SAs.
>>
>> Kazunori, any ideas?
> 
> 
> Did you have a chance to look into this? This is most likely
> going to break a lot of setups, so a fix is really needed
> before 2.6.25 is released.

<sigh>

Marco, could you test this patch please?



[-- Attachment #2: x --]
[-- Type: text/plain, Size: 1154 bytes --]

commit 712e842d9d39b21da439c043242d8863a8eca7a3
Author: Patrick McHardy <kaber@trash.net>
Date:   Wed Apr 9 15:25:45 2008 +0200

    [XFRM]: xfrm_user: fix selector family initialization
    
    Commit df9dcb45 ([IPSEC]: Fix inter address family IPsec tunnel handling)
    broke openswan by removing the selector initialization for tunnel mode
    in case it is uninitialized.
    
    This patch restores the initialization, fixing openswan, but probably
    breaking inter-family tunnels again (unknown since the patch author
    disappeared). The correct thing for inter-family tunnels is probably
    to simply initialize the selector family explicitly.
    
    Signed-off-by: Patrick McHardy <kaber@trash.net>

diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index 5d96f27..019d21d 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -288,7 +288,7 @@ static void copy_from_user_state(struct xfrm_state *x, struct xfrm_usersa_info *
 	memcpy(&x->props.saddr, &p->saddr, sizeof(x->props.saddr));
 	x->props.flags = p->flags;
 
-	if (x->props.mode == XFRM_MODE_TRANSPORT)
+	if (!x->sel.family)
 		x->sel.family = p->family;
 
 }

  reply	other threads:[~2008-04-09 15:38 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-03  9:42 2.6.25-rc8 regression with openswan Marco Berizzi
2008-04-03 10:01 ` Marco Berizzi
2008-04-03 11:19 ` Patrick McHardy
2008-04-03 11:50   ` Marco Berizzi
2008-04-03 12:06     ` Patrick McHardy
2008-04-03 12:31       ` Marco Berizzi
2008-04-03 12:35         ` Patrick McHardy
2008-04-03 13:52           ` Patrick McHardy
2008-04-03 14:06             ` Marco Berizzi
2008-04-03 14:36               ` Patrick McHardy
2008-04-08 19:08                 ` Patrick McHardy
2008-04-09 15:38                   ` Patrick McHardy [this message]
2008-04-09 22:09                     ` [XFRM]: xfrm_user: fix selector family initialization David Miller
2008-04-10  0:11                       ` Kazunori MIYAZAWA
2008-04-10  0:18                         ` Patrick McHardy
2008-04-10  0:50                           ` Kazunori MIYAZAWA
2008-04-10  0:55                             ` Patrick McHardy
2008-04-14  7:33                     ` Marco Berizzi
2008-04-14  7:36                       ` Patrick McHardy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47FCE30F.8060400@trash.net \
    --to=kaber@trash.net \
    --cc=davem@davemloft.net \
    --cc=kazunori@miyazawa.org \
    --cc=netdev@vger.kernel.org \
    --cc=pupilla@hotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).