mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
udp_tunnel: Pass UDP socket down through udp_tunnel{, 6}_xmit_skb().
That was we can make sure the output path of ipv4/ipv6 operate on the UDP socket rather than whatever random thing happens to be in skb->sk. Based upon a patch by Jiri Pirko. Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
This commit is contained in:
parent
7026b1ddb6
commit
79b16aadea
14 changed files with 48 additions and 28 deletions
|
@ -222,7 +222,8 @@ static int vxlan_tnl_send(struct vport *vport, struct sk_buff *skb)
|
|||
{
|
||||
struct net *net = ovs_dp_get_net(vport->dp);
|
||||
struct vxlan_port *vxlan_port = vxlan_vport(vport);
|
||||
__be16 dst_port = inet_sk(vxlan_port->vs->sock->sk)->inet_sport;
|
||||
struct sock *sk = vxlan_port->vs->sock->sk;
|
||||
__be16 dst_port = inet_sk(sk)->inet_sport;
|
||||
const struct ovs_key_ipv4_tunnel *tun_key;
|
||||
struct vxlan_metadata md = {0};
|
||||
struct rtable *rt;
|
||||
|
@ -255,7 +256,7 @@ static int vxlan_tnl_send(struct vport *vport, struct sk_buff *skb)
|
|||
vxflags = vxlan_port->exts |
|
||||
(tun_key->tun_flags & TUNNEL_CSUM ? VXLAN_F_UDP_CSUM : 0);
|
||||
|
||||
err = vxlan_xmit_skb(rt, skb, fl.saddr, tun_key->ipv4_dst,
|
||||
err = vxlan_xmit_skb(rt, sk, skb, fl.saddr, tun_key->ipv4_dst,
|
||||
tun_key->ipv4_tos, tun_key->ipv4_ttl, df,
|
||||
src_port, dst_port,
|
||||
&md, false, vxflags);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue