diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2014-11-05 08:02:48 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-06 14:19:19 -0500 |
commit | d50051407f136028108cfda068d55ef053a54fe1 (patch) | |
tree | 012d164d745342f453d5fed4619884839f51fbc0 /include/net | |
parent | e1b2cb655060e081e73b384b1fc8b2e978f73467 (diff) | |
download | op-kernel-dev-d50051407f136028108cfda068d55ef053a54fe1.zip op-kernel-dev-d50051407f136028108cfda068d55ef053a54fe1.tar.gz |
ipv6: Allow sending packets through tunnels with wildcard endpoints
Currently we need the IP6_TNL_F_CAP_XMIT capabiltiy to transmit
packets through an ipv6 tunnel. This capability is set when the
tunnel gets configured, based on the tunnel endpoint addresses.
On tunnels with wildcard tunnel endpoints, we need to do the
capabiltiy checking on a per packet basis like it is done in
the receive path.
This patch extends ip6_tnl_xmit_ctl() to take local and remote
addresses as parameters to allow for per packet capabiltiy
checking.
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/ip6_tunnel.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/ip6_tunnel.h b/include/net/ip6_tunnel.h index a5593da..9326c41 100644 --- a/include/net/ip6_tunnel.h +++ b/include/net/ip6_tunnel.h @@ -65,7 +65,8 @@ void ip6_tnl_dst_reset(struct ip6_tnl *t); void ip6_tnl_dst_store(struct ip6_tnl *t, struct dst_entry *dst); int ip6_tnl_rcv_ctl(struct ip6_tnl *t, const struct in6_addr *laddr, const struct in6_addr *raddr); -int ip6_tnl_xmit_ctl(struct ip6_tnl *t); +int ip6_tnl_xmit_ctl(struct ip6_tnl *t, const struct in6_addr *laddr, + const struct in6_addr *raddr); __u16 ip6_tnl_parse_tlv_enc_lim(struct sk_buff *skb, __u8 *raw); __u32 ip6_tnl_get_cap(struct ip6_tnl *t, const struct in6_addr *laddr, const struct in6_addr *raddr); |