Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ccf9b3b8 authored by Steffen Klassert's avatar Steffen Klassert Committed by David S. Miller
Browse files

xfrm: Add a XFRM_STATE_AF_UNSPEC flag to xfrm_usersa_info



Add a XFRM_STATE_AF_UNSPEC flag to handle the AF_UNSPEC behavior for
the selector family. Userspace applications can set this flag to leave
the selector family of the xfrm_state unspecified.  This can be used
to to handle inter family tunnels if the selector is not set from
userspace.

Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
Acked-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0ce28553
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -339,6 +339,7 @@ struct xfrm_usersa_info {
#define XFRM_STATE_NOPMTUDISC	4
#define XFRM_STATE_NOPMTUDISC	4
#define XFRM_STATE_WILDRECV	8
#define XFRM_STATE_WILDRECV	8
#define XFRM_STATE_ICMP		16
#define XFRM_STATE_ICMP		16
#define XFRM_STATE_AF_UNSPEC	32
};
};


struct xfrm_usersa_id {
struct xfrm_usersa_id {
+1 −2
Original line number Original line Diff line number Diff line
@@ -277,9 +277,8 @@ static void copy_from_user_state(struct xfrm_state *x, struct xfrm_usersa_info *
	memcpy(&x->props.saddr, &p->saddr, sizeof(x->props.saddr));
	memcpy(&x->props.saddr, &p->saddr, sizeof(x->props.saddr));
	x->props.flags = p->flags;
	x->props.flags = p->flags;


	if (!x->sel.family)
	if (!x->sel.family && !(p->flags & XFRM_STATE_AF_UNSPEC))
		x->sel.family = p->family;
		x->sel.family = p->family;

}
}


/*
/*