Skip to content

Commit ab1d0cc

Browse files
jpirkodavem330
authored andcommitted
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 <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 514cf64 commit ab1d0cc

File tree

5 files changed

+15
-17
lines changed

5 files changed

+15
-17
lines changed

drivers/net/netdevsim/dev.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,21 @@ static struct dentry *nsim_dev_ddir;
2727

2828
static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)
2929
{
30-
char dev_ddir_name[10];
30+
char dev_ddir_name[16];
3131

32-
sprintf(dev_ddir_name, "%u", nsim_dev->nsim_bus_dev->dev.id);
32+
sprintf(dev_ddir_name, DRV_NAME "%u", nsim_dev->nsim_bus_dev->dev.id);
3333
nsim_dev->ddir = debugfs_create_dir(dev_ddir_name, nsim_dev_ddir);
3434
if (IS_ERR_OR_NULL(nsim_dev->ddir))
3535
return PTR_ERR_OR_ZERO(nsim_dev->ddir) ?: -EINVAL;
36+
nsim_dev->ports_ddir = debugfs_create_dir("ports", nsim_dev->ddir);
37+
if (IS_ERR_OR_NULL(nsim_dev->ports_ddir))
38+
return PTR_ERR_OR_ZERO(nsim_dev->ports_ddir) ?: -EINVAL;
3639
return 0;
3740
}
3841

3942
static void nsim_dev_debugfs_exit(struct nsim_dev *nsim_dev)
4043
{
44+
debugfs_remove_recursive(nsim_dev->ports_ddir);
4145
debugfs_remove_recursive(nsim_dev->ddir);
4246
}
4347

@@ -273,7 +277,7 @@ void nsim_dev_destroy(struct nsim_dev *nsim_dev)
273277

274278
int nsim_dev_init(void)
275279
{
276-
nsim_dev_ddir = debugfs_create_dir(DRV_NAME "_dev", NULL);
280+
nsim_dev_ddir = debugfs_create_dir(DRV_NAME, NULL);
277281
if (IS_ERR_OR_NULL(nsim_dev_ddir))
278282
return -ENOMEM;
279283
return 0;

drivers/net/netdevsim/netdev.c

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525

2626
#include "netdevsim.h"
2727

28-
static struct dentry *nsim_ddir;
29-
3028
static int nsim_get_port_parent_id(struct net_device *dev,
3129
struct netdev_phys_item_id *ppid)
3230
{
@@ -42,11 +40,11 @@ static int nsim_init(struct net_device *dev)
4240
char dev_link_name[32];
4341
int err;
4442

45-
ns->ddir = debugfs_create_dir(netdev_name(dev), nsim_ddir);
43+
ns->ddir = debugfs_create_dir("0", ns->nsim_dev->ports_ddir);
4644
if (IS_ERR_OR_NULL(ns->ddir))
4745
return -ENOMEM;
4846

49-
sprintf(dev_link_name, "../../" DRV_NAME "_dev/%u",
47+
sprintf(dev_link_name, "../../../" DRV_NAME "%u",
5048
ns->nsim_dev->nsim_bus_dev->dev.id);
5149
debugfs_create_symlink("dev", ns->ddir, dev_link_name);
5250

@@ -403,13 +401,9 @@ static int __init nsim_module_init(void)
403401
{
404402
int err;
405403

406-
nsim_ddir = debugfs_create_dir(DRV_NAME, NULL);
407-
if (IS_ERR_OR_NULL(nsim_ddir))
408-
return -ENOMEM;
409-
410404
err = nsim_dev_init();
411405
if (err)
412-
goto err_debugfs_destroy;
406+
return err;
413407

414408
err = nsim_bus_init();
415409
if (err)
@@ -425,8 +419,6 @@ static int __init nsim_module_init(void)
425419
nsim_bus_exit();
426420
err_dev_exit:
427421
nsim_dev_exit();
428-
err_debugfs_destroy:
429-
debugfs_remove_recursive(nsim_ddir);
430422
return err;
431423
}
432424

@@ -435,7 +427,6 @@ static void __exit nsim_module_exit(void)
435427
rtnl_link_unregister(&nsim_link_ops);
436428
nsim_bus_exit();
437429
nsim_dev_exit();
438-
debugfs_remove_recursive(nsim_ddir);
439430
}
440431

441432
module_init(nsim_module_init);

drivers/net/netdevsim/netdevsim.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ struct nsim_dev {
134134
struct nsim_bus_dev *nsim_bus_dev;
135135
struct nsim_fib_data *fib_data;
136136
struct dentry *ddir;
137+
struct dentry *ports_ddir;
137138
struct bpf_offload_dev *bpf_dev;
138139
bool bpf_bind_accept;
139140
u32 bpf_bind_verifier_delay;

tools/testing/selftests/bpf/test_offload.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,8 @@ def _debugfs_dir_read(self, path):
306306

307307
_, out = cmd('ls ' + path)
308308
for f in out.split():
309+
if f == "ports":
310+
continue
309311
p = os.path.join(path, f)
310312
if os.path.isfile(p):
311313
_, out = cmd('cat %s/%s' % (path, f))
@@ -334,7 +336,7 @@ def __init__(self, link=None):
334336

335337
self.ns = ""
336338

337-
self.dfs_dir = '/sys/kernel/debug/netdevsim/%s' % (self.dev['ifname'])
339+
self.dfs_dir = '/sys/kernel/debug/netdevsim/netdevsim0/ports/0/'
338340
self.dev_dir = self.dfs_dir + '/dev/'
339341
self.dfs_refresh()
340342

tools/testing/selftests/net/rtnetlink.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ kci_test_ipsec_offload()
697697
srcip=192.168.123.3
698698
dstip=192.168.123.4
699699
dev=simx1
700-
sysfsd=/sys/kernel/debug/netdevsim/$dev
700+
sysfsd=/sys/kernel/debug/netdevsim/netdevsim0/ports/0/
701701
sysfsf=$sysfsd/ipsec
702702

703703
# setup netdevsim since dummydev doesn't have offload support

0 commit comments

Comments
 (0)