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()
294 rcv = rcu_dereference(priv->peer); in veth_xmit()
367 struct net_device *peer; in veth_get_stats64() local
382 peer = rcu_dereference(priv->peer); in veth_get_stats64()
383 if (peer) { in veth_get_stats64()
384 veth_stats_tx(peer, &packets, &bytes); in veth_get_stats64()
388 veth_stats_rx(&rx, peer); in veth_get_stats64()
427 return rcu_dereference(priv->peer); in veth_peer_dev()
444 rcv = rcu_dereference(priv->peer); in veth_xdp_xmit()
451 * side. This means an XDP program is loaded on the peer and the peer in veth_xdp_xmit()
533 rcv = rcu_dereference(priv->peer); in veth_xdp_flush()
981 struct net_device *peer = rtnl_dereference(priv->peer); in veth_open() local
984 if (!peer) in veth_open()
993 if (peer->flags & IFF_UP) { in veth_open()
995 netif_carrier_on(peer); in veth_open()
1004 struct net_device *peer = rtnl_dereference(priv->peer); in veth_close() local
1007 if (peer) in veth_close()
1008 netif_carrier_off(peer); in veth_close()
1071 /* veth only receives frames when its peer sends one in veth_poll_controller()
1086 struct net_device *peer; in veth_get_iflink() local
1090 peer = rcu_dereference(priv->peer); in veth_get_iflink()
1091 iflink = peer ? peer->ifindex : 0; in veth_get_iflink()
1101 struct net_device *peer; in veth_fix_features() local
1103 peer = rtnl_dereference(priv->peer); in veth_fix_features()
1104 if (peer) { in veth_fix_features()
1105 struct veth_priv *peer_priv = netdev_priv(peer); in veth_fix_features()
1117 struct net_device *peer; in veth_set_rx_headroom() local
1123 peer = rcu_dereference(priv->peer); in veth_set_rx_headroom()
1124 if (unlikely(!peer)) in veth_set_rx_headroom()
1127 peer_priv = netdev_priv(peer); in veth_set_rx_headroom()
1131 peer->needed_headroom = new_hr; in veth_set_rx_headroom()
1142 struct net_device *peer; in veth_xdp_set() local
1148 peer = rtnl_dereference(priv->peer); in veth_xdp_set()
1151 if (!peer) { in veth_xdp_set()
1152 NL_SET_ERR_MSG_MOD(extack, "Cannot set XDP when peer is detached"); in veth_xdp_set()
1158 peer->hard_header_len - in veth_xdp_set()
1160 if (peer->mtu > max_mtu) { in veth_xdp_set()
1161 NL_SET_ERR_MSG_MOD(extack, "Peer MTU is too large to set XDP"); in veth_xdp_set()
1166 if (dev->real_num_rx_queues < peer->real_num_tx_queues) { in veth_xdp_set()
1167 NL_SET_ERR_MSG_MOD(extack, "XDP expects number of rx queues not less than peer tx queues"); in veth_xdp_set()
1181 peer->hw_features &= ~NETIF_F_GSO_SOFTWARE; in veth_xdp_set()
1182 peer->max_mtu = max_mtu; in veth_xdp_set()
1191 if (peer) { in veth_xdp_set()
1192 peer->hw_features |= NETIF_F_GSO_SOFTWARE; in veth_xdp_set()
1193 peer->max_mtu = ETH_MAX_MTU; in veth_xdp_set()
1199 if ((!!old_prog ^ !!prog) && peer) in veth_xdp_set()
1200 netdev_update_features(peer); in veth_xdp_set()
1299 struct net_device *peer; in veth_newlink() local
1308 * create and register peer first in veth_newlink()
1344 peer = rtnl_create_link(net, ifname, name_assign_type, in veth_newlink()
1346 if (IS_ERR(peer)) { in veth_newlink()
1348 return PTR_ERR(peer); in veth_newlink()
1352 eth_hw_addr_random(peer); in veth_newlink()
1355 peer->ifindex = ifmp->ifi_index; in veth_newlink()
1357 peer->gso_max_size = dev->gso_max_size; in veth_newlink()
1358 peer->gso_max_segs = dev->gso_max_segs; in veth_newlink()
1360 err = register_netdevice(peer); in veth_newlink()
1366 netif_carrier_off(peer); in veth_newlink()
1368 err = rtnl_configure_link(peer, ifmp); in veth_newlink()
1398 rcu_assign_pointer(priv->peer, peer); in veth_newlink()
1400 priv = netdev_priv(peer); in veth_newlink()
1401 rcu_assign_pointer(priv->peer, dev); in veth_newlink()
1408 unregister_netdevice(peer); in veth_newlink()
1412 free_netdev(peer); in veth_newlink()
1419 struct net_device *peer; in veth_dellink() local
1422 peer = rtnl_dereference(priv->peer); in veth_dellink()
1428 RCU_INIT_POINTER(priv->peer, NULL); in veth_dellink()
1431 if (peer) { in veth_dellink()
1432 priv = netdev_priv(peer); in veth_dellink()
1433 RCU_INIT_POINTER(priv->peer, NULL); in veth_dellink()
1434 unregister_netdevice_queue(peer, head); in veth_dellink()
1445 struct net_device *peer = rtnl_dereference(priv->peer); in veth_get_link_net() local
1447 return peer ? dev_net(peer) : dev_net(dev); in veth_get_link_net()