Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

netdevsim: add ndo_get_iflink() implementation

Add an implementation for ndo_get_iflink() in netdevsim that shows the
ifindex of the linked peer, if any.

Signed-off-by: David Wei <dw@davidwei.uk>
Reviewed-by: Maciek Machnikowski <maciek@machnikowski.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

David Wei and committed by
David S. Miller
8debcf58 9eb95228

+16
+16
drivers/net/netdevsim/netdev.c
··· 283 283 return 0; 284 284 } 285 285 286 + static int nsim_get_iflink(const struct net_device *dev) 287 + { 288 + struct netdevsim *nsim, *peer; 289 + int iflink; 290 + 291 + nsim = netdev_priv(dev); 292 + 293 + rcu_read_lock(); 294 + peer = rcu_dereference(nsim->peer); 295 + iflink = peer ? READ_ONCE(peer->netdev->ifindex) : 0; 296 + rcu_read_unlock(); 297 + 298 + return iflink; 299 + } 300 + 286 301 static const struct net_device_ops nsim_netdev_ops = { 287 302 .ndo_start_xmit = nsim_start_xmit, 288 303 .ndo_set_rx_mode = nsim_set_rx_mode, ··· 315 300 .ndo_set_vf_rss_query_en = nsim_set_vf_rss_query_en, 316 301 .ndo_setup_tc = nsim_setup_tc, 317 302 .ndo_set_features = nsim_set_features, 303 + .ndo_get_iflink = nsim_get_iflink, 318 304 .ndo_bpf = nsim_bpf, 319 305 }; 320 306