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()
368 struct net_device *peer; in veth_get_stats64() local
383 peer = rcu_dereference(priv->peer); in veth_get_stats64()
384 if (peer) { in veth_get_stats64()
385 veth_stats_tx(peer, &packets, &bytes); in veth_get_stats64()
389 veth_stats_rx(&rx, peer); in veth_get_stats64()
428 return rcu_dereference(priv->peer); in veth_peer_dev()
445 rcv = rcu_dereference(priv->peer); in veth_xdp_xmit()
452 * side. This means an XDP program is loaded on the peer and the peer in veth_xdp_xmit()
534 rcv = rcu_dereference(priv->peer); in veth_xdp_flush()
980 struct net_device *peer = rtnl_dereference(priv->peer); in veth_open() local
983 if (!peer) in veth_open()
992 if (peer->flags & IFF_UP) { in veth_open()
994 netif_carrier_on(peer); in veth_open()
1003 struct net_device *peer = rtnl_dereference(priv->peer); in veth_close() local
1006 if (peer) in veth_close()
1007 netif_carrier_off(peer); in veth_close()
1070 /* veth only receives frames when its peer sends one in veth_poll_controller()
1085 struct net_device *peer; in veth_get_iflink() local
1089 peer = rcu_dereference(priv->peer); in veth_get_iflink()
1090 iflink = peer ? peer->ifindex : 0; in veth_get_iflink()
1100 struct net_device *peer; in veth_fix_features() local
1102 peer = rtnl_dereference(priv->peer); in veth_fix_features()
1103 if (peer) { in veth_fix_features()
1104 struct veth_priv *peer_priv = netdev_priv(peer); in veth_fix_features()
1116 struct net_device *peer; in veth_set_rx_headroom() local
1122 peer = rcu_dereference(priv->peer); in veth_set_rx_headroom()
1123 if (unlikely(!peer)) in veth_set_rx_headroom()
1126 peer_priv = netdev_priv(peer); in veth_set_rx_headroom()
1130 peer->needed_headroom = new_hr; in veth_set_rx_headroom()
1141 struct net_device *peer; in veth_xdp_set() local
1147 peer = rtnl_dereference(priv->peer); in veth_xdp_set()
1150 if (!peer) { in veth_xdp_set()
1151 NL_SET_ERR_MSG_MOD(extack, "Cannot set XDP when peer is detached"); in veth_xdp_set()
1157 peer->hard_header_len - in veth_xdp_set()
1159 if (peer->mtu > max_mtu) { in veth_xdp_set()
1160 NL_SET_ERR_MSG_MOD(extack, "Peer MTU is too large to set XDP"); in veth_xdp_set()
1165 if (dev->real_num_rx_queues < peer->real_num_tx_queues) { in veth_xdp_set()
1166 NL_SET_ERR_MSG_MOD(extack, "XDP expects number of rx queues not less than peer tx queues"); in veth_xdp_set()
1180 peer->hw_features &= ~NETIF_F_GSO_SOFTWARE; in veth_xdp_set()
1181 peer->max_mtu = max_mtu; in veth_xdp_set()
1190 if (peer) { in veth_xdp_set()
1191 peer->hw_features |= NETIF_F_GSO_SOFTWARE; in veth_xdp_set()
1192 peer->max_mtu = ETH_MAX_MTU; in veth_xdp_set()
1198 if ((!!old_prog ^ !!prog) && peer) in veth_xdp_set()
1199 netdev_update_features(peer); in veth_xdp_set()
1298 struct net_device *peer; in veth_newlink() local
1307 * create and register peer first in veth_newlink()
1343 peer = rtnl_create_link(net, ifname, name_assign_type, in veth_newlink()
1345 if (IS_ERR(peer)) { in veth_newlink()
1347 return PTR_ERR(peer); in veth_newlink()
1351 eth_hw_addr_random(peer); in veth_newlink()
1354 peer->ifindex = ifmp->ifi_index; in veth_newlink()
1356 peer->gso_max_size = dev->gso_max_size; in veth_newlink()
1357 peer->gso_max_segs = dev->gso_max_segs; in veth_newlink()
1359 err = register_netdevice(peer); in veth_newlink()
1365 netif_carrier_off(peer); in veth_newlink()
1367 err = rtnl_configure_link(peer, ifmp); in veth_newlink()
1397 rcu_assign_pointer(priv->peer, peer); in veth_newlink()
1399 priv = netdev_priv(peer); in veth_newlink()
1400 rcu_assign_pointer(priv->peer, dev); in veth_newlink()
1407 unregister_netdevice(peer); in veth_newlink()
1411 free_netdev(peer); in veth_newlink()
1418 struct net_device *peer; in veth_dellink() local
1421 peer = rtnl_dereference(priv->peer); in veth_dellink()
1427 RCU_INIT_POINTER(priv->peer, NULL); in veth_dellink()
1430 if (peer) { in veth_dellink()
1431 priv = netdev_priv(peer); in veth_dellink()
1432 RCU_INIT_POINTER(priv->peer, NULL); in veth_dellink()
1433 unregister_netdevice_queue(peer, head); in veth_dellink()
1444 struct net_device *peer = rtnl_dereference(priv->peer); in veth_get_link_net() local
1446 return peer ? dev_net(peer) : dev_net(dev); in veth_get_link_net()