Lines Matching refs:vrf_dev

142 static void vrf_tx_error(struct net_device *vrf_dev, struct sk_buff *skb)  in vrf_tx_error()  argument
144 vrf_dev->stats.tx_errors++; in vrf_tx_error()
520 struct net_device *vrf_dev) in vrf_process_v4_outbound() argument
525 struct net *net = dev_net(vrf_dev); in vrf_process_v4_outbound()
535 fl4.flowi4_oif = vrf_dev->ifindex; in vrf_process_v4_outbound()
552 if (rt->dst.dev == vrf_dev) in vrf_process_v4_outbound()
553 return vrf_local_xmit(skb, vrf_dev, &rt->dst); in vrf_process_v4_outbound()
567 vrf_dev->stats.tx_errors++; in vrf_process_v4_outbound()
574 vrf_tx_error(vrf_dev, skb); in vrf_process_v4_outbound()
612 struct net_device *vrf_dev = skb->dev; in vrf_finish_direct() local
614 if (!list_empty(&vrf_dev->ptype_all) && in vrf_finish_direct()
618 ether_addr_copy(eth->h_source, vrf_dev->dev_addr); in vrf_finish_direct()
623 dev_queue_xmit_nit(skb, vrf_dev); in vrf_finish_direct()
681 static struct sk_buff *vrf_ip6_out_redirect(struct net_device *vrf_dev, in vrf_ip6_out_redirect() argument
684 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_ip6_out_redirect()
699 vrf_tx_error(vrf_dev, skb); in vrf_ip6_out_redirect()
746 static struct sk_buff *vrf_ip6_out_direct(struct net_device *vrf_dev, in vrf_ip6_out_direct() argument
750 struct net *net = dev_net(vrf_dev); in vrf_ip6_out_direct()
753 skb->dev = vrf_dev; in vrf_ip6_out_direct()
756 skb, NULL, vrf_dev, vrf_ip6_out_direct_finish); in vrf_ip6_out_direct()
767 static struct sk_buff *vrf_ip6_out(struct net_device *vrf_dev, in vrf_ip6_out() argument
775 if (qdisc_tx_is_default(vrf_dev) || in vrf_ip6_out()
777 return vrf_ip6_out_direct(vrf_dev, sk, skb); in vrf_ip6_out()
779 return vrf_ip6_out_redirect(vrf_dev, skb); in vrf_ip6_out()
834 static struct sk_buff *vrf_ip6_out(struct net_device *vrf_dev, in vrf_ip6_out() argument
909 static struct sk_buff *vrf_ip_out_redirect(struct net_device *vrf_dev, in vrf_ip_out_redirect() argument
912 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_ip_out_redirect()
927 vrf_tx_error(vrf_dev, skb); in vrf_ip_out_redirect()
974 static struct sk_buff *vrf_ip_out_direct(struct net_device *vrf_dev, in vrf_ip_out_direct() argument
978 struct net *net = dev_net(vrf_dev); in vrf_ip_out_direct()
981 skb->dev = vrf_dev; in vrf_ip_out_direct()
984 skb, NULL, vrf_dev, vrf_ip_out_direct_finish); in vrf_ip_out_direct()
995 static struct sk_buff *vrf_ip_out(struct net_device *vrf_dev, in vrf_ip_out() argument
1004 if (qdisc_tx_is_default(vrf_dev) || in vrf_ip_out()
1006 return vrf_ip_out_direct(vrf_dev, sk, skb); in vrf_ip_out()
1008 return vrf_ip_out_redirect(vrf_dev, skb); in vrf_ip_out()
1012 static struct sk_buff *vrf_l3_out(struct net_device *vrf_dev, in vrf_l3_out() argument
1019 return vrf_ip_out(vrf_dev, sk, skb); in vrf_l3_out()
1021 return vrf_ip6_out(vrf_dev, sk, skb); in vrf_l3_out()
1229 struct net_device *vrf_dev, u16 proto) in vrf_prepare_mac_header() argument
1237 err = skb_cow_head(skb, LL_RESERVED_SPACE(vrf_dev)); in vrf_prepare_mac_header()
1250 ether_addr_copy(eth->h_dest, vrf_dev->dev_addr); in vrf_prepare_mac_header()
1251 ether_addr_copy(eth->h_source, vrf_dev->dev_addr); in vrf_prepare_mac_header()
1274 struct net_device *vrf_dev, in vrf_add_mac_header_if_unset() argument
1280 return vrf_prepare_mac_header(skb, vrf_dev, proto); in vrf_add_mac_header_if_unset()
1330 static void vrf_ip6_input_dst(struct sk_buff *skb, struct net_device *vrf_dev, in vrf_ip6_input_dst() argument
1342 struct net *net = dev_net(vrf_dev); in vrf_ip6_input_dst()
1345 rt6 = vrf_ip6_route_lookup(net, vrf_dev, &fl6, ifindex, skb, in vrf_ip6_input_dst()
1356 static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, in vrf_ip6_rcv() argument
1369 skb->dev = vrf_dev; in vrf_ip6_rcv()
1370 skb->skb_iif = vrf_dev->ifindex; in vrf_ip6_rcv()
1376 vrf_ip6_input_dst(skb, vrf_dev, orig_iif); in vrf_ip6_rcv()
1383 vrf_rx_stats(vrf_dev, skb->len); in vrf_ip6_rcv()
1384 skb->dev = vrf_dev; in vrf_ip6_rcv()
1385 skb->skb_iif = vrf_dev->ifindex; in vrf_ip6_rcv()
1387 if (!list_empty(&vrf_dev->ptype_all)) { in vrf_ip6_rcv()
1390 err = vrf_add_mac_header_if_unset(skb, vrf_dev, in vrf_ip6_rcv()
1394 dev_queue_xmit_nit(skb, vrf_dev); in vrf_ip6_rcv()
1403 vrf_ip6_input_dst(skb, vrf_dev, orig_iif); in vrf_ip6_rcv()
1405 skb = vrf_rcv_nfhook(NFPROTO_IPV6, NF_INET_PRE_ROUTING, skb, vrf_dev); in vrf_ip6_rcv()
1411 static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, in vrf_ip6_rcv() argument
1418 static struct sk_buff *vrf_ip_rcv(struct net_device *vrf_dev, in vrf_ip_rcv() argument
1421 skb->dev = vrf_dev; in vrf_ip_rcv()
1422 skb->skb_iif = vrf_dev->ifindex; in vrf_ip_rcv()
1436 vrf_rx_stats(vrf_dev, skb->len); in vrf_ip_rcv()
1438 if (!list_empty(&vrf_dev->ptype_all)) { in vrf_ip_rcv()
1441 err = vrf_add_mac_header_if_unset(skb, vrf_dev, ETH_P_IP); in vrf_ip_rcv()
1444 dev_queue_xmit_nit(skb, vrf_dev); in vrf_ip_rcv()
1449 skb = vrf_rcv_nfhook(NFPROTO_IPV4, NF_INET_PRE_ROUTING, skb, vrf_dev); in vrf_ip_rcv()
1455 static struct sk_buff *vrf_l3_rcv(struct net_device *vrf_dev, in vrf_l3_rcv() argument
1461 return vrf_ip_rcv(vrf_dev, skb); in vrf_l3_rcv()
1463 return vrf_ip6_rcv(vrf_dev, skb); in vrf_l3_rcv()
1789 const struct net_device *vrf_dev, in vrf_fill_slave_info() argument
1792 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_fill_slave_info()
1829 struct net_device *vrf_dev; in vrf_device_event() local
1834 vrf_dev = netdev_master_upper_dev_get(dev); in vrf_device_event()
1835 vrf_del_slave(vrf_dev, dev); in vrf_device_event()