Lines Matching refs:vrf_dev
73 static void vrf_tx_error(struct net_device *vrf_dev, struct sk_buff *skb) in vrf_tx_error() argument
75 vrf_dev->stats.tx_errors++; in vrf_tx_error()
244 struct net_device *vrf_dev) in vrf_process_v4_outbound() argument
249 struct net *net = dev_net(vrf_dev); in vrf_process_v4_outbound()
259 fl4.flowi4_oif = vrf_dev->ifindex; in vrf_process_v4_outbound()
277 if (rt->dst.dev == vrf_dev) in vrf_process_v4_outbound()
278 return vrf_local_xmit(skb, vrf_dev, &rt->dst); in vrf_process_v4_outbound()
292 vrf_dev->stats.tx_errors++; in vrf_process_v4_outbound()
299 vrf_tx_error(vrf_dev, skb); in vrf_process_v4_outbound()
338 struct net_device *vrf_dev = skb->dev; in vrf_finish_direct() local
340 if (!list_empty(&vrf_dev->ptype_all) && in vrf_finish_direct()
344 ether_addr_copy(eth->h_source, vrf_dev->dev_addr); in vrf_finish_direct()
349 dev_queue_xmit_nit(skb, vrf_dev); in vrf_finish_direct()
406 static struct sk_buff *vrf_ip6_out_redirect(struct net_device *vrf_dev, in vrf_ip6_out_redirect() argument
409 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_ip6_out_redirect()
424 vrf_tx_error(vrf_dev, skb); in vrf_ip6_out_redirect()
445 static struct sk_buff *vrf_ip6_out_direct(struct net_device *vrf_dev, in vrf_ip6_out_direct() argument
449 struct net *net = dev_net(vrf_dev); in vrf_ip6_out_direct()
452 skb->dev = vrf_dev; in vrf_ip6_out_direct()
455 skb, NULL, vrf_dev, vrf_output6_direct); in vrf_ip6_out_direct()
469 static struct sk_buff *vrf_ip6_out(struct net_device *vrf_dev, in vrf_ip6_out() argument
477 if (qdisc_tx_is_default(vrf_dev)) in vrf_ip6_out()
478 return vrf_ip6_out_direct(vrf_dev, sk, skb); in vrf_ip6_out()
480 return vrf_ip6_out_redirect(vrf_dev, skb); in vrf_ip6_out()
535 static struct sk_buff *vrf_ip6_out(struct net_device *vrf_dev, in vrf_ip6_out() argument
617 static struct sk_buff *vrf_ip_out_redirect(struct net_device *vrf_dev, in vrf_ip_out_redirect() argument
620 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_ip_out_redirect()
635 vrf_tx_error(vrf_dev, skb); in vrf_ip_out_redirect()
656 static struct sk_buff *vrf_ip_out_direct(struct net_device *vrf_dev, in vrf_ip_out_direct() argument
660 struct net *net = dev_net(vrf_dev); in vrf_ip_out_direct()
663 skb->dev = vrf_dev; in vrf_ip_out_direct()
666 skb, NULL, vrf_dev, vrf_output_direct); in vrf_ip_out_direct()
680 static struct sk_buff *vrf_ip_out(struct net_device *vrf_dev, in vrf_ip_out() argument
689 if (qdisc_tx_is_default(vrf_dev)) in vrf_ip_out()
690 return vrf_ip_out_direct(vrf_dev, sk, skb); in vrf_ip_out()
692 return vrf_ip_out_redirect(vrf_dev, skb); in vrf_ip_out()
696 static struct sk_buff *vrf_l3_out(struct net_device *vrf_dev, in vrf_l3_out() argument
703 return vrf_ip_out(vrf_dev, sk, skb); in vrf_l3_out()
705 return vrf_ip6_out(vrf_dev, sk, skb); in vrf_l3_out()
961 static void vrf_ip6_input_dst(struct sk_buff *skb, struct net_device *vrf_dev, in vrf_ip6_input_dst() argument
973 struct net *net = dev_net(vrf_dev); in vrf_ip6_input_dst()
976 rt6 = vrf_ip6_route_lookup(net, vrf_dev, &fl6, ifindex, skb, in vrf_ip6_input_dst()
987 static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, in vrf_ip6_rcv() argument
998 skb->dev = vrf_dev; in vrf_ip6_rcv()
999 skb->skb_iif = vrf_dev->ifindex; in vrf_ip6_rcv()
1008 vrf_rx_stats(vrf_dev, skb->len); in vrf_ip6_rcv()
1009 skb->dev = vrf_dev; in vrf_ip6_rcv()
1010 skb->skb_iif = vrf_dev->ifindex; in vrf_ip6_rcv()
1012 if (!list_empty(&vrf_dev->ptype_all)) { in vrf_ip6_rcv()
1014 dev_queue_xmit_nit(skb, vrf_dev); in vrf_ip6_rcv()
1022 vrf_ip6_input_dst(skb, vrf_dev, orig_iif); in vrf_ip6_rcv()
1024 skb = vrf_rcv_nfhook(NFPROTO_IPV6, NF_INET_PRE_ROUTING, skb, vrf_dev); in vrf_ip6_rcv()
1030 static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, in vrf_ip6_rcv() argument
1037 static struct sk_buff *vrf_ip_rcv(struct net_device *vrf_dev, in vrf_ip_rcv() argument
1040 skb->dev = vrf_dev; in vrf_ip_rcv()
1041 skb->skb_iif = vrf_dev->ifindex; in vrf_ip_rcv()
1055 vrf_rx_stats(vrf_dev, skb->len); in vrf_ip_rcv()
1057 if (!list_empty(&vrf_dev->ptype_all)) { in vrf_ip_rcv()
1059 dev_queue_xmit_nit(skb, vrf_dev); in vrf_ip_rcv()
1063 skb = vrf_rcv_nfhook(NFPROTO_IPV4, NF_INET_PRE_ROUTING, skb, vrf_dev); in vrf_ip_rcv()
1069 static struct sk_buff *vrf_l3_rcv(struct net_device *vrf_dev, in vrf_l3_rcv() argument
1075 return vrf_ip_rcv(vrf_dev, skb); in vrf_l3_rcv()
1077 return vrf_ip6_rcv(vrf_dev, skb); in vrf_l3_rcv()
1384 const struct net_device *vrf_dev, in vrf_fill_slave_info() argument
1387 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_fill_slave_info()
1424 struct net_device *vrf_dev; in vrf_device_event() local
1429 vrf_dev = netdev_master_upper_dev_get(dev); in vrf_device_event()
1430 vrf_del_slave(vrf_dev, dev); in vrf_device_event()