netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 iproute2 -next 1/2] include/linux: update xfrm.h
       [not found] <20140320103901.6e57049a@nehalam.linuxnetplumber.net>
@ 2014-03-21 10:02 ` Nicolas Dichtel
  2014-03-21 10:02   ` [PATCH v4 iproute2 -next 2/2] ipxfrm: allow to setup filter when dumping SA Nicolas Dichtel
  0 siblings, 1 reply; 3+ messages in thread
From: Nicolas Dichtel @ 2014-03-21 10:02 UTC (permalink / raw)
  To: shemminger; +Cc: netdev, Nicolas Dichtel

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
Note that this patch is based on net-next.

v4: use C99 initializers for all structure

v3: use C99 initializers

 include/linux/xfrm.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/include/linux/xfrm.h b/include/linux/xfrm.h
index 341c3c951dac..fa2ecb2eb998 100644
--- a/include/linux/xfrm.h
+++ b/include/linux/xfrm.h
@@ -298,6 +298,8 @@ enum xfrm_attr_type_t {
 	XFRMA_TFCPAD,		/* __u32 */
 	XFRMA_REPLAY_ESN_VAL,	/* struct xfrm_replay_esn */
 	XFRMA_SA_EXTRA_FLAGS,	/* __u32 */
+	XFRMA_PROTO,		/* __u8 */
+	XFRMA_ADDRESS_FILTER,	/* struct xfrm_address_filter */
 	__XFRMA_MAX
 
 #define XFRMA_MAX (__XFRMA_MAX - 1)
@@ -474,6 +476,14 @@ struct xfrm_user_mapping {
 	__be16				new_sport;
 };
 
+struct xfrm_address_filter {
+	xfrm_address_t			saddr;
+	xfrm_address_t			daddr;
+	__u16				family;
+	__u8				splen;
+	__u8				dplen;
+};
+
 /* backwards compatibility for userspace */
 #define XFRMGRP_ACQUIRE		1
 #define XFRMGRP_EXPIRE		2
-- 
1.8.5.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v4 iproute2 -next 2/2] ipxfrm: allow to setup filter when dumping SA
  2014-03-21 10:02 ` [PATCH v4 iproute2 -next 1/2] include/linux: update xfrm.h Nicolas Dichtel
@ 2014-03-21 10:02   ` Nicolas Dichtel
  2014-03-21 21:25     ` Stephen Hemminger
  0 siblings, 1 reply; 3+ messages in thread
From: Nicolas Dichtel @ 2014-03-21 10:02 UTC (permalink / raw)
  To: shemminger; +Cc: netdev, Nicolas Dichtel

It's now possible to filter SA directly into the kernel by specifying
XFRMA_PROTO and/or XFRMA_ADDRESS_FILTER.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
Note that this patch is intended to work with net-next.

v4: use C99 initializers for all structure

v3: use C99 initializers

 ip/xfrm_state.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c
index 140a4503b799..fe7708e533f3 100644
--- a/ip/xfrm_state.c
+++ b/ip/xfrm_state.c
@@ -1136,7 +1136,30 @@ static int xfrm_state_list_or_deleteall(int argc, char **argv, int deleteall)
 		}
 
 	} else {
-		if (rtnl_wilddump_request(&rth, preferred_family, XFRM_MSG_GETSA) < 0) {
+		struct xfrm_address_filter addrfilter = {
+			.saddr = filter.xsinfo.saddr,
+			.daddr = filter.xsinfo.id.daddr,
+			.family = filter.xsinfo.family,
+			.splen = filter.id_src_mask,
+			.dplen = filter.id_dst_mask,
+		};
+		struct {
+			struct nlmsghdr n;
+			char buf[NLMSG_BUF_SIZE];
+		} req = {
+			.n.nlmsg_len = NLMSG_HDRLEN,
+			.n.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST,
+			.n.nlmsg_type = XFRM_MSG_GETSA,
+			.n.nlmsg_seq = rth.dump = ++rth.seq,
+		};
+
+		if (filter.xsinfo.id.proto)
+			addattr8(&req.n, sizeof(req), XFRMA_PROTO,
+				 filter.xsinfo.id.proto);
+		addattr_l(&req.n, sizeof(req), XFRMA_ADDRESS_FILTER,
+			  &addrfilter, sizeof(addrfilter));
+
+		if (rtnl_send(&rth, (void *)&req, req.n.nlmsg_len) < 0) {
 			perror("Cannot send dump request");
 			exit(1);
 		}
-- 
1.8.5.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v4 iproute2 -next 2/2] ipxfrm: allow to setup filter when dumping SA
  2014-03-21 10:02   ` [PATCH v4 iproute2 -next 2/2] ipxfrm: allow to setup filter when dumping SA Nicolas Dichtel
@ 2014-03-21 21:25     ` Stephen Hemminger
  0 siblings, 0 replies; 3+ messages in thread
From: Stephen Hemminger @ 2014-03-21 21:25 UTC (permalink / raw)
  To: Nicolas Dichtel; +Cc: shemminger, netdev

On Fri, 21 Mar 2014 11:02:43 +0100
Nicolas Dichtel <nicolas.dichtel@6wind.com> wrote:

> It's now possible to filter SA directly into the kernel by specifying
> XFRMA_PROTO and/or XFRMA_ADDRESS_FILTER.
> 
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> ---
> Note that this patch is intended to work with net-next.
> 
> v4: use C99 initializers for all structure
> 
> v3: use C99 initializers
> 
>  ip/xfrm_state.c | 25 ++++++++++++++++++++++++-
>  1 file changed, 24 insertions(+), 1 deletion(-)

Applied to net-next branch

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-03-21 21:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20140320103901.6e57049a@nehalam.linuxnetplumber.net>
2014-03-21 10:02 ` [PATCH v4 iproute2 -next 1/2] include/linux: update xfrm.h Nicolas Dichtel
2014-03-21 10:02   ` [PATCH v4 iproute2 -next 2/2] ipxfrm: allow to setup filter when dumping SA Nicolas Dichtel
2014-03-21 21:25     ` Stephen Hemminger

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).