forked from Minki/linux
netdevsim: change debugfs tree topology
With the model where dev is represented by devlink and ports are represented by devlink ports, make debugfs file names independent on netdev names. Change the topology to the one illustrated by the following example: $ ls /sys/kernel/debug/netdevsim/ netdevsim1 $ ls /sys/kernel/debug/netdevsim/netdevsim1/ bpf_bind_accept bpf_bind_verifier_delay bpf_bound_progs ports $ ls /sys/kernel/debug/netdevsim/netdevsim1/ports/ 0 1 $ ls /sys/kernel/debug/netdevsim/netdevsim1/ports/0/ bpf_map_accept bpf_offloaded_id bpf_tc_accept bpf_tc_non_bound_accept bpf_xdpdrv_accept bpf_xdpoffload_accept dev ipsec $ ls /sys/kernel/debug/netdevsim/netdevsim1/ports/0/dev -l lrwxrwxrwx 1 root root 0 Apr 13 15:58 /sys/kernel/debug/netdevsim/netdevsim1/ports/0/dev -> ../../../netdevsim1 Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
514cf64cc5
commit
ab1d0cc004
@ -27,17 +27,21 @@ static struct dentry *nsim_dev_ddir;
|
||||
|
||||
static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)
|
||||
{
|
||||
char dev_ddir_name[10];
|
||||
char dev_ddir_name[16];
|
||||
|
||||
sprintf(dev_ddir_name, "%u", nsim_dev->nsim_bus_dev->dev.id);
|
||||
sprintf(dev_ddir_name, DRV_NAME "%u", nsim_dev->nsim_bus_dev->dev.id);
|
||||
nsim_dev->ddir = debugfs_create_dir(dev_ddir_name, nsim_dev_ddir);
|
||||
if (IS_ERR_OR_NULL(nsim_dev->ddir))
|
||||
return PTR_ERR_OR_ZERO(nsim_dev->ddir) ?: -EINVAL;
|
||||
nsim_dev->ports_ddir = debugfs_create_dir("ports", nsim_dev->ddir);
|
||||
if (IS_ERR_OR_NULL(nsim_dev->ports_ddir))
|
||||
return PTR_ERR_OR_ZERO(nsim_dev->ports_ddir) ?: -EINVAL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void nsim_dev_debugfs_exit(struct nsim_dev *nsim_dev)
|
||||
{
|
||||
debugfs_remove_recursive(nsim_dev->ports_ddir);
|
||||
debugfs_remove_recursive(nsim_dev->ddir);
|
||||
}
|
||||
|
||||
@ -273,7 +277,7 @@ void nsim_dev_destroy(struct nsim_dev *nsim_dev)
|
||||
|
||||
int nsim_dev_init(void)
|
||||
{
|
||||
nsim_dev_ddir = debugfs_create_dir(DRV_NAME "_dev", NULL);
|
||||
nsim_dev_ddir = debugfs_create_dir(DRV_NAME, NULL);
|
||||
if (IS_ERR_OR_NULL(nsim_dev_ddir))
|
||||
return -ENOMEM;
|
||||
return 0;
|
||||
|
@ -25,8 +25,6 @@
|
||||
|
||||
#include "netdevsim.h"
|
||||
|
||||
static struct dentry *nsim_ddir;
|
||||
|
||||
static int nsim_get_port_parent_id(struct net_device *dev,
|
||||
struct netdev_phys_item_id *ppid)
|
||||
{
|
||||
@ -42,11 +40,11 @@ static int nsim_init(struct net_device *dev)
|
||||
char dev_link_name[32];
|
||||
int err;
|
||||
|
||||
ns->ddir = debugfs_create_dir(netdev_name(dev), nsim_ddir);
|
||||
ns->ddir = debugfs_create_dir("0", ns->nsim_dev->ports_ddir);
|
||||
if (IS_ERR_OR_NULL(ns->ddir))
|
||||
return -ENOMEM;
|
||||
|
||||
sprintf(dev_link_name, "../../" DRV_NAME "_dev/%u",
|
||||
sprintf(dev_link_name, "../../../" DRV_NAME "%u",
|
||||
ns->nsim_dev->nsim_bus_dev->dev.id);
|
||||
debugfs_create_symlink("dev", ns->ddir, dev_link_name);
|
||||
|
||||
@ -403,13 +401,9 @@ static int __init nsim_module_init(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
nsim_ddir = debugfs_create_dir(DRV_NAME, NULL);
|
||||
if (IS_ERR_OR_NULL(nsim_ddir))
|
||||
return -ENOMEM;
|
||||
|
||||
err = nsim_dev_init();
|
||||
if (err)
|
||||
goto err_debugfs_destroy;
|
||||
return err;
|
||||
|
||||
err = nsim_bus_init();
|
||||
if (err)
|
||||
@ -425,8 +419,6 @@ err_bus_exit:
|
||||
nsim_bus_exit();
|
||||
err_dev_exit:
|
||||
nsim_dev_exit();
|
||||
err_debugfs_destroy:
|
||||
debugfs_remove_recursive(nsim_ddir);
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -435,7 +427,6 @@ static void __exit nsim_module_exit(void)
|
||||
rtnl_link_unregister(&nsim_link_ops);
|
||||
nsim_bus_exit();
|
||||
nsim_dev_exit();
|
||||
debugfs_remove_recursive(nsim_ddir);
|
||||
}
|
||||
|
||||
module_init(nsim_module_init);
|
||||
|
@ -134,6 +134,7 @@ struct nsim_dev {
|
||||
struct nsim_bus_dev *nsim_bus_dev;
|
||||
struct nsim_fib_data *fib_data;
|
||||
struct dentry *ddir;
|
||||
struct dentry *ports_ddir;
|
||||
struct bpf_offload_dev *bpf_dev;
|
||||
bool bpf_bind_accept;
|
||||
u32 bpf_bind_verifier_delay;
|
||||
|
@ -306,6 +306,8 @@ class DebugfsDir:
|
||||
|
||||
_, out = cmd('ls ' + path)
|
||||
for f in out.split():
|
||||
if f == "ports":
|
||||
continue
|
||||
p = os.path.join(path, f)
|
||||
if os.path.isfile(p):
|
||||
_, out = cmd('cat %s/%s' % (path, f))
|
||||
@ -334,7 +336,7 @@ class NetdevSim:
|
||||
|
||||
self.ns = ""
|
||||
|
||||
self.dfs_dir = '/sys/kernel/debug/netdevsim/%s' % (self.dev['ifname'])
|
||||
self.dfs_dir = '/sys/kernel/debug/netdevsim/netdevsim0/ports/0/'
|
||||
self.dev_dir = self.dfs_dir + '/dev/'
|
||||
self.dfs_refresh()
|
||||
|
||||
|
@ -697,7 +697,7 @@ kci_test_ipsec_offload()
|
||||
srcip=192.168.123.3
|
||||
dstip=192.168.123.4
|
||||
dev=simx1
|
||||
sysfsd=/sys/kernel/debug/netdevsim/$dev
|
||||
sysfsd=/sys/kernel/debug/netdevsim/netdevsim0/ports/0/
|
||||
sysfsf=$sysfsd/ipsec
|
||||
|
||||
# setup netdevsim since dummydev doesn't have offload support
|
||||
|
Loading…
Reference in New Issue
Block a user