Lines Matching full:peer
69 struct net_device __rcu *peer; member
178 struct net_device *peer = rtnl_dereference(priv->peer); in veth_get_ethtool_stats() local
181 data[0] = peer ? peer->ifindex : 0; in veth_get_ethtool_stats()
199 if (!peer) in veth_get_ethtool_stats()
202 rcv_priv = netdev_priv(peer); in veth_get_ethtool_stats()
203 for (i = 0; i < peer->real_num_rx_queues; i++) { in veth_get_ethtool_stats()
293 rcv = rcu_dereference(priv->peer); in veth_xmit()
366 struct net_device *peer; in veth_get_stats64() local
381 peer = rcu_dereference(priv->peer); in veth_get_stats64()
382 if (peer) { in veth_get_stats64()
383 veth_stats_tx(peer, &packets, &bytes); in veth_get_stats64()
387 veth_stats_rx(&rx, peer); in veth_get_stats64()
426 return rcu_dereference(priv->peer); in veth_peer_dev()
443 rcv = rcu_dereference(priv->peer); in veth_xdp_xmit()
450 * side. This means an XDP program is loaded on the peer and the peer in veth_xdp_xmit()
532 rcv = rcu_dereference(priv->peer); in veth_xdp_flush()
978 struct net_device *peer = rtnl_dereference(priv->peer); in veth_open() local
981 if (!peer) in veth_open()
990 if (peer->flags & IFF_UP) { in veth_open()
992 netif_carrier_on(peer); in veth_open()
1001 struct net_device *peer = rtnl_dereference(priv->peer); in veth_close() local
1004 if (peer) in veth_close()
1005 netif_carrier_off(peer); in veth_close()
1068 /* veth only receives frames when its peer sends one in veth_poll_controller()
1083 struct net_device *peer; in veth_get_iflink() local
1087 peer = rcu_dereference(priv->peer); in veth_get_iflink()
1088 iflink = peer ? peer->ifindex : 0; in veth_get_iflink()
1098 struct net_device *peer; in veth_fix_features() local
1100 peer = rtnl_dereference(priv->peer); in veth_fix_features()
1101 if (peer) { in veth_fix_features()
1102 struct veth_priv *peer_priv = netdev_priv(peer); in veth_fix_features()
1114 struct net_device *peer; in veth_set_rx_headroom() local
1120 peer = rcu_dereference(priv->peer); in veth_set_rx_headroom()
1121 if (unlikely(!peer)) in veth_set_rx_headroom()
1124 peer_priv = netdev_priv(peer); in veth_set_rx_headroom()
1128 peer->needed_headroom = new_hr; in veth_set_rx_headroom()
1139 struct net_device *peer; in veth_xdp_set() local
1145 peer = rtnl_dereference(priv->peer); in veth_xdp_set()
1148 if (!peer) { in veth_xdp_set()
1149 NL_SET_ERR_MSG_MOD(extack, "Cannot set XDP when peer is detached"); in veth_xdp_set()
1155 peer->hard_header_len - in veth_xdp_set()
1157 if (peer->mtu > max_mtu) { in veth_xdp_set()
1158 NL_SET_ERR_MSG_MOD(extack, "Peer MTU is too large to set XDP"); in veth_xdp_set()
1163 if (dev->real_num_rx_queues < peer->real_num_tx_queues) { in veth_xdp_set()
1164 NL_SET_ERR_MSG_MOD(extack, "XDP expects number of rx queues not less than peer tx queues"); in veth_xdp_set()
1178 peer->hw_features &= ~NETIF_F_GSO_SOFTWARE; in veth_xdp_set()
1179 peer->max_mtu = max_mtu; in veth_xdp_set()
1188 if (peer) { in veth_xdp_set()
1189 peer->hw_features |= NETIF_F_GSO_SOFTWARE; in veth_xdp_set()
1190 peer->max_mtu = ETH_MAX_MTU; in veth_xdp_set()
1196 if ((!!old_prog ^ !!prog) && peer) in veth_xdp_set()
1197 netdev_update_features(peer); in veth_xdp_set()
1296 struct net_device *peer; in veth_newlink() local
1305 * create and register peer first in veth_newlink()
1341 peer = rtnl_create_link(net, ifname, name_assign_type, in veth_newlink()
1343 if (IS_ERR(peer)) { in veth_newlink()
1345 return PTR_ERR(peer); in veth_newlink()
1349 eth_hw_addr_random(peer); in veth_newlink()
1352 peer->ifindex = ifmp->ifi_index; in veth_newlink()
1354 peer->gso_max_size = dev->gso_max_size; in veth_newlink()
1355 peer->gso_max_segs = dev->gso_max_segs; in veth_newlink()
1357 err = register_netdevice(peer); in veth_newlink()
1363 netif_carrier_off(peer); in veth_newlink()
1365 err = rtnl_configure_link(peer, ifmp); in veth_newlink()
1395 rcu_assign_pointer(priv->peer, peer); in veth_newlink()
1397 priv = netdev_priv(peer); in veth_newlink()
1398 rcu_assign_pointer(priv->peer, dev); in veth_newlink()
1405 unregister_netdevice(peer); in veth_newlink()
1409 free_netdev(peer); in veth_newlink()
1416 struct net_device *peer; in veth_dellink() local
1419 peer = rtnl_dereference(priv->peer); in veth_dellink()
1425 RCU_INIT_POINTER(priv->peer, NULL); in veth_dellink()
1428 if (peer) { in veth_dellink()
1429 priv = netdev_priv(peer); in veth_dellink()
1430 RCU_INIT_POINTER(priv->peer, NULL); in veth_dellink()
1431 unregister_netdevice_queue(peer, head); in veth_dellink()
1442 struct net_device *peer = rtnl_dereference(priv->peer); in veth_get_link_net() local
1444 return peer ? dev_net(peer) : dev_net(dev); in veth_get_link_net()