From patchwork Sun Mar 17 10:56:01 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Egerer X-Patchwork-Id: 228290 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 753732C00BF for ; Sun, 17 Mar 2013 21:55:46 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756163Ab3CQKzf (ORCPT ); Sun, 17 Mar 2013 06:55:35 -0400 Received: from mout.gmx.net ([212.227.17.20]:64903 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756111Ab3CQKzf (ORCPT ); Sun, 17 Mar 2013 06:55:35 -0400 Received: from mailout-de.gmx.net ([10.1.76.4]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0Mg2Ch-1U2hCi27gT-00NVIP for ; Sun, 17 Mar 2013 11:55:33 +0100 Received: (qmail invoked by alias); 17 Mar 2013 10:55:33 -0000 Received: from dslb-178-005-120-051.pools.arcor-ip.net (EHLO rumo.nodomain) [178.5.120.51] by mail.gmx.net (mp004) with SMTP; 17 Mar 2013 11:55:33 +0100 X-Authenticated: #788854 X-Provags-ID: V01U2FsdGVkX1+nFt8VCEOnbhKaJxsxiZ+vzC3rEcPO8G/kJWdtz2 tEkdkcCpa7aqf/ Message-ID: <5145A141.8000707@gmx.de> Date: Sun, 17 Mar 2013 11:56:01 +0100 From: Thomas Egerer User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11 MIME-Version: 1.0 To: netdev@vger.kernel.org CC: stephen.hemminger@vyatta.com Subject: [PATCH] ip xfrm state: Allow different selector family X-Enigmail-Version: 1.0.1 X-Y-GMX-Trusted: 0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Do not enforce the selector of a state to have the same address family as the id. This makes it possible to configure inter family states. Signed-off-by: Thomas Egerer --- ip/xfrm_state.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c index 8ac3437..aec49d6 100644 --- a/ip/xfrm_state.c +++ b/ip/xfrm_state.c @@ -300,7 +300,9 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv) xfrm_state_flag_parse(&req.xsinfo.flags, &argc, &argv); } else if (strcmp(*argv, "sel") == 0) { NEXT_ARG(); + preferred_family = AF_UNSPEC; xfrm_selector_parse(&req.xsinfo.sel, &argc, &argv); + preferred_family = req.xsinfo.sel; } else if (strcmp(*argv, "limit") == 0) { NEXT_ARG(); xfrm_lifetime_cfg_parse(&req.xsinfo.lft, &argc, &argv);