Lines Matching refs:ipvlan

17 void ipvlan_count_rx(const struct ipvl_dev *ipvlan,  in ipvlan_count_rx()  argument
23 pcptr = this_cpu_ptr(ipvlan->pcpu_stats); in ipvlan_count_rx()
31 this_cpu_inc(ipvlan->pcpu_stats->rx_errs); in ipvlan_count_rx()
90 void ipvlan_ht_addr_add(struct ipvl_dev *ipvlan, struct ipvl_addr *addr) in ipvlan_ht_addr_add() argument
92 struct ipvl_port *port = ipvlan->port; in ipvlan_ht_addr_add()
107 struct ipvl_addr *ipvlan_find_addr(const struct ipvl_dev *ipvlan, in ipvlan_find_addr() argument
112 assert_spin_locked(&ipvlan->port->addrs_lock); in ipvlan_find_addr()
114 list_for_each_entry(addr, &ipvlan->addrs, anode) { in ipvlan_find_addr()
123 struct ipvl_dev *ipvlan; in ipvlan_addr_busy() local
127 list_for_each_entry_rcu(ipvlan, &port->ipvlans, pnode) { in ipvlan_addr_busy()
128 if (ipvlan_find_addr(ipvlan, iaddr, is_v6)) { in ipvlan_addr_busy()
230 struct ipvl_dev *ipvlan; in ipvlan_process_multicast() local
259 list_for_each_entry_rcu(ipvlan, &port->ipvlans, pnode) { in ipvlan_process_multicast()
260 if (tx_pkt && (ipvlan->dev == skb->dev)) in ipvlan_process_multicast()
262 if (!test_bit(mac_hash, ipvlan->mac_filters)) in ipvlan_process_multicast()
264 if (!(ipvlan->dev->flags & IFF_UP)) in ipvlan_process_multicast()
273 nskb->dev = ipvlan->dev; in ipvlan_process_multicast()
275 ret = dev_forward_skb(ipvlan->dev, nskb); in ipvlan_process_multicast()
279 ipvlan_count_rx(ipvlan, len, ret == NET_RX_SUCCESS, true); in ipvlan_process_multicast()
315 struct ipvl_dev *ipvlan = addr->master; in ipvlan_rcv_frame() local
316 struct net_device *dev = ipvlan->dev; in ipvlan_rcv_frame()
341 if (dev_forward_skb(ipvlan->dev, skb) == NET_RX_SUCCESS) in ipvlan_rcv_frame()
350 ipvlan_count_rx(ipvlan, len, success, false); in ipvlan_rcv_frame()
592 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_xmit_mode_l3() local
597 lyr3h = ipvlan_get_L3_hdr(ipvlan->port, skb, &addr_type); in ipvlan_xmit_mode_l3()
601 if (!ipvlan_is_vepa(ipvlan->port)) { in ipvlan_xmit_mode_l3()
602 addr = ipvlan_addr_lookup(ipvlan->port, lyr3h, addr_type, true); in ipvlan_xmit_mode_l3()
604 if (ipvlan_is_private(ipvlan->port)) { in ipvlan_xmit_mode_l3()
613 ipvlan_skb_crossing_ns(skb, ipvlan->phy_dev); in ipvlan_xmit_mode_l3()
619 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_xmit_mode_l2() local
625 if (!ipvlan_is_vepa(ipvlan->port) && in ipvlan_xmit_mode_l2()
627 lyr3h = ipvlan_get_L3_hdr(ipvlan->port, skb, &addr_type); in ipvlan_xmit_mode_l2()
629 addr = ipvlan_addr_lookup(ipvlan->port, lyr3h, addr_type, true); in ipvlan_xmit_mode_l2()
631 if (ipvlan_is_private(ipvlan->port)) { in ipvlan_xmit_mode_l2()
648 dev_forward_skb(ipvlan->phy_dev, skb); in ipvlan_xmit_mode_l2()
654 ipvlan_multicast_enqueue(ipvlan->port, skb, true); in ipvlan_xmit_mode_l2()
658 skb->dev = ipvlan->phy_dev; in ipvlan_xmit_mode_l2()
664 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_queue_xmit() local
665 struct ipvl_port *port = ipvlan_port_get_rcu_bh(ipvlan->phy_dev); in ipvlan_queue_xmit()