Lines Matching refs:vrf_dev

144 static void vrf_tx_error(struct net_device *vrf_dev, struct sk_buff *skb)  in vrf_tx_error()  argument
146 vrf_dev->stats.tx_errors++; in vrf_tx_error()
538 struct net_device *vrf_dev) in vrf_process_v4_outbound() argument
543 struct net *net = dev_net(vrf_dev); in vrf_process_v4_outbound()
553 fl4.flowi4_l3mdev = vrf_dev->ifindex; in vrf_process_v4_outbound()
570 if (rt->dst.dev == vrf_dev) in vrf_process_v4_outbound()
571 return vrf_local_xmit(skb, vrf_dev, &rt->dst); in vrf_process_v4_outbound()
586 vrf_dev->stats.tx_errors++; in vrf_process_v4_outbound()
593 vrf_tx_error(vrf_dev, skb); in vrf_process_v4_outbound()
631 struct net_device *vrf_dev = skb->dev; in vrf_finish_direct() local
633 if (!list_empty(&vrf_dev->ptype_all) && in vrf_finish_direct()
637 ether_addr_copy(eth->h_source, vrf_dev->dev_addr); in vrf_finish_direct()
641 dev_queue_xmit_nit(skb, vrf_dev); in vrf_finish_direct()
697 static struct sk_buff *vrf_ip6_out_redirect(struct net_device *vrf_dev, in vrf_ip6_out_redirect() argument
700 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_ip6_out_redirect()
715 vrf_tx_error(vrf_dev, skb); in vrf_ip6_out_redirect()
762 static struct sk_buff *vrf_ip6_out_direct(struct net_device *vrf_dev, in vrf_ip6_out_direct() argument
766 struct net *net = dev_net(vrf_dev); in vrf_ip6_out_direct()
769 skb->dev = vrf_dev; in vrf_ip6_out_direct()
772 skb, NULL, vrf_dev, vrf_ip6_out_direct_finish); in vrf_ip6_out_direct()
783 static struct sk_buff *vrf_ip6_out(struct net_device *vrf_dev, in vrf_ip6_out() argument
793 if (qdisc_tx_is_default(vrf_dev) || in vrf_ip6_out()
795 return vrf_ip6_out_direct(vrf_dev, sk, skb); in vrf_ip6_out()
797 return vrf_ip6_out_redirect(vrf_dev, skb); in vrf_ip6_out()
852 static struct sk_buff *vrf_ip6_out(struct net_device *vrf_dev, in vrf_ip6_out() argument
927 static struct sk_buff *vrf_ip_out_redirect(struct net_device *vrf_dev, in vrf_ip_out_redirect() argument
930 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_ip_out_redirect()
945 vrf_tx_error(vrf_dev, skb); in vrf_ip_out_redirect()
992 static struct sk_buff *vrf_ip_out_direct(struct net_device *vrf_dev, in vrf_ip_out_direct() argument
996 struct net *net = dev_net(vrf_dev); in vrf_ip_out_direct()
999 skb->dev = vrf_dev; in vrf_ip_out_direct()
1002 skb, NULL, vrf_dev, vrf_ip_out_direct_finish); in vrf_ip_out_direct()
1013 static struct sk_buff *vrf_ip_out(struct net_device *vrf_dev, in vrf_ip_out() argument
1024 if (qdisc_tx_is_default(vrf_dev) || in vrf_ip_out()
1026 return vrf_ip_out_direct(vrf_dev, sk, skb); in vrf_ip_out()
1028 return vrf_ip_out_redirect(vrf_dev, skb); in vrf_ip_out()
1032 static struct sk_buff *vrf_l3_out(struct net_device *vrf_dev, in vrf_l3_out() argument
1039 return vrf_ip_out(vrf_dev, sk, skb); in vrf_l3_out()
1041 return vrf_ip6_out(vrf_dev, sk, skb); in vrf_l3_out()
1249 struct net_device *vrf_dev, u16 proto) in vrf_prepare_mac_header() argument
1257 err = skb_cow_head(skb, LL_RESERVED_SPACE(vrf_dev)); in vrf_prepare_mac_header()
1271 ether_addr_copy(eth->h_dest, vrf_dev->dev_addr); in vrf_prepare_mac_header()
1272 ether_addr_copy(eth->h_source, vrf_dev->dev_addr); in vrf_prepare_mac_header()
1295 struct net_device *vrf_dev, in vrf_add_mac_header_if_unset() argument
1301 return vrf_prepare_mac_header(skb, vrf_dev, proto); in vrf_add_mac_header_if_unset()
1351 static void vrf_ip6_input_dst(struct sk_buff *skb, struct net_device *vrf_dev, in vrf_ip6_input_dst() argument
1363 struct net *net = dev_net(vrf_dev); in vrf_ip6_input_dst()
1366 rt6 = vrf_ip6_route_lookup(net, vrf_dev, &fl6, ifindex, skb, in vrf_ip6_input_dst()
1377 static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, in vrf_ip6_rcv() argument
1390 skb->dev = vrf_dev; in vrf_ip6_rcv()
1391 skb->skb_iif = vrf_dev->ifindex; in vrf_ip6_rcv()
1397 vrf_ip6_input_dst(skb, vrf_dev, orig_iif); in vrf_ip6_rcv()
1406 vrf_rx_stats(vrf_dev, skb->len); in vrf_ip6_rcv()
1407 skb->dev = vrf_dev; in vrf_ip6_rcv()
1408 skb->skb_iif = vrf_dev->ifindex; in vrf_ip6_rcv()
1410 if (!list_empty(&vrf_dev->ptype_all)) { in vrf_ip6_rcv()
1413 err = vrf_add_mac_header_if_unset(skb, vrf_dev, in vrf_ip6_rcv()
1418 dev_queue_xmit_nit(skb, vrf_dev); in vrf_ip6_rcv()
1427 vrf_ip6_input_dst(skb, vrf_dev, orig_iif); in vrf_ip6_rcv()
1429 skb = vrf_rcv_nfhook(NFPROTO_IPV6, NF_INET_PRE_ROUTING, skb, vrf_dev); in vrf_ip6_rcv()
1435 static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, in vrf_ip6_rcv() argument
1442 static struct sk_buff *vrf_ip_rcv(struct net_device *vrf_dev, in vrf_ip_rcv() argument
1447 skb->dev = vrf_dev; in vrf_ip_rcv()
1448 skb->skb_iif = vrf_dev->ifindex; in vrf_ip_rcv()
1462 vrf_rx_stats(vrf_dev, skb->len); in vrf_ip_rcv()
1464 if (!list_empty(&vrf_dev->ptype_all)) { in vrf_ip_rcv()
1467 err = vrf_add_mac_header_if_unset(skb, vrf_dev, ETH_P_IP, in vrf_ip_rcv()
1471 dev_queue_xmit_nit(skb, vrf_dev); in vrf_ip_rcv()
1476 skb = vrf_rcv_nfhook(NFPROTO_IPV4, NF_INET_PRE_ROUTING, skb, vrf_dev); in vrf_ip_rcv()
1482 static struct sk_buff *vrf_l3_rcv(struct net_device *vrf_dev, in vrf_l3_rcv() argument
1488 return vrf_ip_rcv(vrf_dev, skb); in vrf_l3_rcv()
1490 return vrf_ip6_rcv(vrf_dev, skb); in vrf_l3_rcv()
1816 const struct net_device *vrf_dev, in vrf_fill_slave_info() argument
1819 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_fill_slave_info()
1856 struct net_device *vrf_dev; in vrf_device_event() local
1861 vrf_dev = netdev_master_upper_dev_get(dev); in vrf_device_event()
1862 vrf_del_slave(vrf_dev, dev); in vrf_device_event()