Lines Matching full:peer

71 	struct net_device __rcu	*peer;  member
180 struct net_device *peer = rtnl_dereference(priv->peer); in veth_get_ethtool_stats() local
183 data[0] = peer ? peer->ifindex : 0; in veth_get_ethtool_stats()
201 if (!peer) in veth_get_ethtool_stats()
204 rcv_priv = netdev_priv(peer); in veth_get_ethtool_stats()
205 for (i = 0; i < peer->real_num_rx_queues; i++) { in veth_get_ethtool_stats()
328 rcv = rcu_dereference(priv->peer); in veth_xmit()
408 struct net_device *peer; in veth_get_stats64() local
423 peer = rcu_dereference(priv->peer); in veth_get_stats64()
424 if (peer) { in veth_get_stats64()
425 veth_stats_tx(peer, &packets, &bytes); in veth_get_stats64()
429 veth_stats_rx(&rx, peer); in veth_get_stats64()
468 return rcu_dereference(priv->peer); in veth_peer_dev()
485 rcv = rcu_dereference(priv->peer); in veth_xdp_xmit()
492 * xdp_ring is initialized on receive side and the peer device is up. in veth_xdp_xmit()
575 rcv = rcu_dereference(priv->peer); in veth_xdp_flush()
1192 struct net_device *peer; in veth_set_channels() local
1200 peer = rtnl_dereference(priv->peer); in veth_set_channels()
1201 peer_priv = peer ? netdev_priv(peer) : NULL; in veth_set_channels()
1202 if (priv->_xdp_prog && peer && ch->rx_count < peer->real_num_tx_queues) in veth_set_channels()
1205 if (peer && peer_priv && peer_priv->_xdp_prog && ch->tx_count > peer->real_num_rx_queues) in veth_set_channels()
1213 if (peer) in veth_set_channels()
1214 netif_carrier_off(peer); in veth_set_channels()
1249 if (peer) in veth_set_channels()
1250 netif_carrier_on(peer); in veth_set_channels()
1263 struct net_device *peer = rtnl_dereference(priv->peer); in veth_open() local
1266 if (!peer) in veth_open()
1279 if (peer->flags & IFF_UP) { in veth_open()
1281 netif_carrier_on(peer); in veth_open()
1290 struct net_device *peer = rtnl_dereference(priv->peer); in veth_close() local
1293 if (peer) in veth_close()
1294 netif_carrier_off(peer); in veth_close()
1359 /* veth only receives frames when its peer sends one in veth_poll_controller()
1374 struct net_device *peer; in veth_get_iflink() local
1378 peer = rcu_dereference(priv->peer); in veth_get_iflink()
1379 iflink = peer ? peer->ifindex : 0; in veth_get_iflink()
1389 struct net_device *peer; in veth_fix_features() local
1391 peer = rtnl_dereference(priv->peer); in veth_fix_features()
1392 if (peer) { in veth_fix_features()
1393 struct veth_priv *peer_priv = netdev_priv(peer); in veth_fix_features()
1427 struct net_device *peer; in veth_set_rx_headroom() local
1433 peer = rcu_dereference(priv->peer); in veth_set_rx_headroom()
1434 if (unlikely(!peer)) in veth_set_rx_headroom()
1437 peer_priv = netdev_priv(peer); in veth_set_rx_headroom()
1441 peer->needed_headroom = new_hr; in veth_set_rx_headroom()
1452 struct net_device *peer; in veth_xdp_set() local
1458 peer = rtnl_dereference(priv->peer); in veth_xdp_set()
1461 if (!peer) { in veth_xdp_set()
1462 NL_SET_ERR_MSG_MOD(extack, "Cannot set XDP when peer is detached"); in veth_xdp_set()
1468 peer->hard_header_len - in veth_xdp_set()
1470 if (peer->mtu > max_mtu) { in veth_xdp_set()
1471 NL_SET_ERR_MSG_MOD(extack, "Peer MTU is too large to set XDP"); in veth_xdp_set()
1476 if (dev->real_num_rx_queues < peer->real_num_tx_queues) { in veth_xdp_set()
1477 NL_SET_ERR_MSG_MOD(extack, "XDP expects number of rx queues not less than peer tx queues"); in veth_xdp_set()
1491 peer->hw_features &= ~NETIF_F_GSO_SOFTWARE; in veth_xdp_set()
1492 peer->max_mtu = max_mtu; in veth_xdp_set()
1501 if (peer) { in veth_xdp_set()
1502 peer->hw_features |= NETIF_F_GSO_SOFTWARE; in veth_xdp_set()
1503 peer->max_mtu = ETH_MAX_MTU; in veth_xdp_set()
1509 if ((!!old_prog ^ !!prog) && peer) in veth_xdp_set()
1510 netdev_update_features(peer); in veth_xdp_set()
1634 struct net_device *peer; in veth_newlink() local
1643 * create and register peer first in veth_newlink()
1679 peer = rtnl_create_link(net, ifname, name_assign_type, in veth_newlink()
1681 if (IS_ERR(peer)) { in veth_newlink()
1683 return PTR_ERR(peer); in veth_newlink()
1687 eth_hw_addr_random(peer); in veth_newlink()
1690 peer->ifindex = ifmp->ifi_index; in veth_newlink()
1692 peer->gso_max_size = dev->gso_max_size; in veth_newlink()
1693 peer->gso_max_segs = dev->gso_max_segs; in veth_newlink()
1695 err = register_netdevice(peer); in veth_newlink()
1704 veth_disable_gro(peer); in veth_newlink()
1705 netif_carrier_off(peer); in veth_newlink()
1707 err = rtnl_configure_link(peer, ifmp); in veth_newlink()
1737 rcu_assign_pointer(priv->peer, peer); in veth_newlink()
1742 priv = netdev_priv(peer); in veth_newlink()
1743 rcu_assign_pointer(priv->peer, dev); in veth_newlink()
1744 err = veth_init_queues(peer, tb); in veth_newlink()
1756 unregister_netdevice(peer); in veth_newlink()
1760 free_netdev(peer); in veth_newlink()
1767 struct net_device *peer; in veth_dellink() local
1770 peer = rtnl_dereference(priv->peer); in veth_dellink()
1776 RCU_INIT_POINTER(priv->peer, NULL); in veth_dellink()
1779 if (peer) { in veth_dellink()
1780 priv = netdev_priv(peer); in veth_dellink()
1781 RCU_INIT_POINTER(priv->peer, NULL); in veth_dellink()
1782 unregister_netdevice_queue(peer, head); in veth_dellink()
1793 struct net_device *peer = rtnl_dereference(priv->peer); in veth_get_link_net() local
1795 return peer ? dev_net(peer) : dev_net(dev); in veth_get_link_net()