Lines Matching refs:vrf_dev

126 static void vrf_tx_error(struct net_device *vrf_dev, struct sk_buff *skb)  in vrf_tx_error()  argument
128 vrf_dev->stats.tx_errors++; in vrf_tx_error()
493 struct net_device *vrf_dev) in vrf_process_v4_outbound() argument
498 struct net *net = dev_net(vrf_dev); in vrf_process_v4_outbound()
508 fl4.flowi4_l3mdev = vrf_dev->ifindex; in vrf_process_v4_outbound()
525 if (rt->dst.dev == vrf_dev) in vrf_process_v4_outbound()
526 return vrf_local_xmit(skb, vrf_dev, &rt->dst); in vrf_process_v4_outbound()
541 vrf_dev->stats.tx_errors++; in vrf_process_v4_outbound()
548 vrf_tx_error(vrf_dev, skb); in vrf_process_v4_outbound()
581 struct net_device *vrf_dev = skb->dev; in vrf_finish_direct() local
583 if (!list_empty(&vrf_dev->ptype_all) && in vrf_finish_direct()
587 ether_addr_copy(eth->h_source, vrf_dev->dev_addr); in vrf_finish_direct()
592 dev_queue_xmit_nit(skb, vrf_dev); in vrf_finish_direct()
649 static struct sk_buff *vrf_ip6_out_redirect(struct net_device *vrf_dev, in vrf_ip6_out_redirect() argument
652 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_ip6_out_redirect()
667 vrf_tx_error(vrf_dev, skb); in vrf_ip6_out_redirect()
714 static struct sk_buff *vrf_ip6_out_direct(struct net_device *vrf_dev, in vrf_ip6_out_direct() argument
718 struct net *net = dev_net(vrf_dev); in vrf_ip6_out_direct()
721 skb->dev = vrf_dev; in vrf_ip6_out_direct()
724 skb, NULL, vrf_dev, vrf_ip6_out_direct_finish); in vrf_ip6_out_direct()
735 static struct sk_buff *vrf_ip6_out(struct net_device *vrf_dev, in vrf_ip6_out() argument
745 if (qdisc_tx_is_default(vrf_dev) || in vrf_ip6_out()
747 return vrf_ip6_out_direct(vrf_dev, sk, skb); in vrf_ip6_out()
749 return vrf_ip6_out_redirect(vrf_dev, skb); in vrf_ip6_out()
804 static struct sk_buff *vrf_ip6_out(struct net_device *vrf_dev, in vrf_ip6_out() argument
879 static struct sk_buff *vrf_ip_out_redirect(struct net_device *vrf_dev, in vrf_ip_out_redirect() argument
882 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_ip_out_redirect()
897 vrf_tx_error(vrf_dev, skb); in vrf_ip_out_redirect()
944 static struct sk_buff *vrf_ip_out_direct(struct net_device *vrf_dev, in vrf_ip_out_direct() argument
948 struct net *net = dev_net(vrf_dev); in vrf_ip_out_direct()
951 skb->dev = vrf_dev; in vrf_ip_out_direct()
954 skb, NULL, vrf_dev, vrf_ip_out_direct_finish); in vrf_ip_out_direct()
965 static struct sk_buff *vrf_ip_out(struct net_device *vrf_dev, in vrf_ip_out() argument
976 if (qdisc_tx_is_default(vrf_dev) || in vrf_ip_out()
978 return vrf_ip_out_direct(vrf_dev, sk, skb); in vrf_ip_out()
980 return vrf_ip_out_redirect(vrf_dev, skb); in vrf_ip_out()
984 static struct sk_buff *vrf_l3_out(struct net_device *vrf_dev, in vrf_l3_out() argument
991 return vrf_ip_out(vrf_dev, sk, skb); in vrf_l3_out()
993 return vrf_ip6_out(vrf_dev, sk, skb); in vrf_l3_out()
1190 struct net_device *vrf_dev, u16 proto) in vrf_prepare_mac_header() argument
1198 err = skb_cow_head(skb, LL_RESERVED_SPACE(vrf_dev)); in vrf_prepare_mac_header()
1212 ether_addr_copy(eth->h_dest, vrf_dev->dev_addr); in vrf_prepare_mac_header()
1213 ether_addr_copy(eth->h_source, vrf_dev->dev_addr); in vrf_prepare_mac_header()
1236 struct net_device *vrf_dev, in vrf_add_mac_header_if_unset() argument
1242 return vrf_prepare_mac_header(skb, vrf_dev, proto); in vrf_add_mac_header_if_unset()
1292 static void vrf_ip6_input_dst(struct sk_buff *skb, struct net_device *vrf_dev, in vrf_ip6_input_dst() argument
1304 struct net *net = dev_net(vrf_dev); in vrf_ip6_input_dst()
1307 rt6 = vrf_ip6_route_lookup(net, vrf_dev, &fl6, ifindex, skb, in vrf_ip6_input_dst()
1318 static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, in vrf_ip6_rcv() argument
1331 skb->dev = vrf_dev; in vrf_ip6_rcv()
1332 skb->skb_iif = vrf_dev->ifindex; in vrf_ip6_rcv()
1338 vrf_ip6_input_dst(skb, vrf_dev, orig_iif); in vrf_ip6_rcv()
1347 dev_dstats_rx_add(vrf_dev, skb->len); in vrf_ip6_rcv()
1348 skb->dev = vrf_dev; in vrf_ip6_rcv()
1349 skb->skb_iif = vrf_dev->ifindex; in vrf_ip6_rcv()
1351 if (!list_empty(&vrf_dev->ptype_all)) { in vrf_ip6_rcv()
1354 err = vrf_add_mac_header_if_unset(skb, vrf_dev, in vrf_ip6_rcv()
1359 dev_queue_xmit_nit(skb, vrf_dev); in vrf_ip6_rcv()
1368 vrf_ip6_input_dst(skb, vrf_dev, orig_iif); in vrf_ip6_rcv()
1370 skb = vrf_rcv_nfhook(NFPROTO_IPV6, NF_INET_PRE_ROUTING, skb, vrf_dev); in vrf_ip6_rcv()
1376 static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, in vrf_ip6_rcv() argument
1383 static struct sk_buff *vrf_ip_rcv(struct net_device *vrf_dev, in vrf_ip_rcv() argument
1388 skb->dev = vrf_dev; in vrf_ip_rcv()
1389 skb->skb_iif = vrf_dev->ifindex; in vrf_ip_rcv()
1403 dev_dstats_rx_add(vrf_dev, skb->len); in vrf_ip_rcv()
1405 if (!list_empty(&vrf_dev->ptype_all)) { in vrf_ip_rcv()
1408 err = vrf_add_mac_header_if_unset(skb, vrf_dev, ETH_P_IP, in vrf_ip_rcv()
1412 dev_queue_xmit_nit(skb, vrf_dev); in vrf_ip_rcv()
1417 skb = vrf_rcv_nfhook(NFPROTO_IPV4, NF_INET_PRE_ROUTING, skb, vrf_dev); in vrf_ip_rcv()
1423 static struct sk_buff *vrf_l3_rcv(struct net_device *vrf_dev, in vrf_l3_rcv() argument
1429 return vrf_ip_rcv(vrf_dev, skb); in vrf_l3_rcv()
1431 return vrf_ip6_rcv(vrf_dev, skb); in vrf_l3_rcv()
1758 const struct net_device *vrf_dev, in vrf_fill_slave_info() argument
1761 struct net_vrf *vrf = netdev_priv(vrf_dev); in vrf_fill_slave_info()
1798 struct net_device *vrf_dev; in vrf_device_event() local
1803 vrf_dev = netdev_master_upper_dev_get(dev); in vrf_device_event()
1804 vrf_del_slave(vrf_dev, dev); in vrf_device_event()