vrf.c (4ebdfba73c09d8568d891bae87c40fad43dd7f41) | vrf.c (e2cb77db089796f163092326ca25512845df7a3a) |
---|---|
1/* 2 * vrf.c: device driver to encapsulate a VRF space 3 * 4 * Copyright (c) 2015 Cumulus Networks. All rights reserved. 5 * Copyright (c) 2015 Shrijeet Mukherjee <shm@cumulusnetworks.com> 6 * Copyright (c) 2015 David Ahern <dsa@cumulusnetworks.com> 7 * 8 * Based on dummy, team and ipvlan drivers --- 62 unchanged lines hidden (view full) --- 71 72static struct dst_entry *vrf_ip_check(struct dst_entry *dst, u32 cookie) 73{ 74 return dst; 75} 76 77static int vrf_ip_local_out(struct sock *sk, struct sk_buff *skb) 78{ | 1/* 2 * vrf.c: device driver to encapsulate a VRF space 3 * 4 * Copyright (c) 2015 Cumulus Networks. All rights reserved. 5 * Copyright (c) 2015 Shrijeet Mukherjee <shm@cumulusnetworks.com> 6 * Copyright (c) 2015 David Ahern <dsa@cumulusnetworks.com> 7 * 8 * Based on dummy, team and ipvlan drivers --- 62 unchanged lines hidden (view full) --- 71 72static struct dst_entry *vrf_ip_check(struct dst_entry *dst, u32 cookie) 73{ 74 return dst; 75} 76 77static int vrf_ip_local_out(struct sock *sk, struct sk_buff *skb) 78{ |
79 return ip_local_out_sk(sk, skb); | 79 return ip_local_out(sk, skb); |
80} 81 82static unsigned int vrf_v4_mtu(const struct dst_entry *dst) 83{ 84 /* TO-DO: return max ethernet size? */ 85 return dst->dev->mtu; 86} 87 --- 129 unchanged lines hidden (view full) --- 217 if (vrf_send_v4_prep(skb, &fl4, vrf_dev)) 218 goto err; 219 220 if (!ip4h->saddr) { 221 ip4h->saddr = inet_select_addr(skb_dst(skb)->dev, 0, 222 RT_SCOPE_LINK); 223 } 224 | 80} 81 82static unsigned int vrf_v4_mtu(const struct dst_entry *dst) 83{ 84 /* TO-DO: return max ethernet size? */ 85 return dst->dev->mtu; 86} 87 --- 129 unchanged lines hidden (view full) --- 217 if (vrf_send_v4_prep(skb, &fl4, vrf_dev)) 218 goto err; 219 220 if (!ip4h->saddr) { 221 ip4h->saddr = inet_select_addr(skb_dst(skb)->dev, 0, 222 RT_SCOPE_LINK); 223 } 224 |
225 ret = ip_local_out(skb); | 225 ret = ip_local_out(skb->sk, skb); |
226 if (unlikely(net_xmit_eval(ret))) 227 vrf_dev->stats.tx_errors++; 228 else 229 ret = NET_XMIT_SUCCESS; 230 231out: 232 return ret; 233err: --- 529 unchanged lines hidden --- | 226 if (unlikely(net_xmit_eval(ret))) 227 vrf_dev->stats.tx_errors++; 228 else 229 ret = NET_XMIT_SUCCESS; 230 231out: 232 return ret; 233err: --- 529 unchanged lines hidden --- |