From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 69244C43219 for ; Thu, 25 Apr 2019 14:00:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4DC83206BA for ; Thu, 25 Apr 2019 14:00:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="s4ck8xRV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729118AbfDYOAR (ORCPT ); Thu, 25 Apr 2019 10:00:17 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:37289 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728901AbfDYOAQ (ORCPT ); Thu, 25 Apr 2019 10:00:16 -0400 Received: by mail-wr1-f68.google.com with SMTP id t17so18780513wrr.4 for ; Thu, 25 Apr 2019 07:00:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=TVFFia+zgiTlEHiEZT8qurW/BpeVck0pFIHkSRBtWAU=; b=s4ck8xRVVkXxfgsd/JYv1kisugwvi12wiHNCUIx6ZwiXABhmuhbsNT3R8iHSDJEjn/ fFZ9pwqiwDQzTWwrn1EqTf8s1zYbMPBmB7JuwFomVbt4i+uCP4hcKNSdVv7nstVIK2Wu +xWfr+o+lXzJVFwSeEDTowpXAJBwAkjgZMW6PrsVYm4epc9lkts1hDchS/FeYNpDJNnM g16aX5OlAjSjB0WoXp+/u6p5oh/V9joCGOUPasI2t1SCweWnse8zq6gBpQqKKMB9UA4s WPxcccKLw67IQZbEywqCXDOOWa6BOjPCLB3PRirFCNnuwabHW4KWXre3qWgEgafKjx3o 0tfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=TVFFia+zgiTlEHiEZT8qurW/BpeVck0pFIHkSRBtWAU=; b=XcCPeVJ7Bv/VrI1KiB29wD7ZeNgWKsR+GqpzOVYOedNEdul6ESPW5TIEfpLv/BUzNZ UrjUht6ogD3p8WqMpILZ1xina0RK9Lmd5cq8AN19Z6D675xPG6TpsUyr10NabTvN36w5 Y8kH6cdhn13ip/ZohNm+E8ytRCHyxoI2ehwMy/S8cwnEfzdCQ0/6lqowiy990GI4kaDm AjwKM4PVjqLg16PM5GRF3E13jOdj55eFrOdG9aY3CKMnJ6Vc0/e29MJ/Iv1d2GtQZfPp XJL61Xs/vkETJ7IgGi27pTsgn1/NWJryVSsV0YCYmDSfSN9pj+u43RRagQUqUNI81ekW vZTg== X-Gm-Message-State: APjAAAUpHsSe+bJQ1rqNz3pHQQVwPwNXMMh7WnbMd4vyChdALmUdLauP nkJSX6UvkY+fDW0jcDM9vsI/69mqUXw= X-Google-Smtp-Source: APXvYqyCKNsErNYRHsJVmoBMC/UtjHLqSlkfHwmqksJMOGuy0YuUpSjtL2umCeVCiCqPTsnD65Et9A== X-Received: by 2002:a5d:698b:: with SMTP id g11mr25406942wru.65.1556200814274; Thu, 25 Apr 2019 07:00:14 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id x18sm25803735wrw.14.2019.04.25.07.00.13 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 07:00:13 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, mlxsw@mellanox.com, jakub.kicinski@netronome.com, dsahern@gmail.com Subject: [patch net-next v4 12/16] netdevsim: change debugfs tree topology Date: Thu, 25 Apr 2019 15:59:52 +0200 Message-Id: <20190425135956.3970-13-jiri@resnulli.us> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190425135956.3970-1-jiri@resnulli.us> References: <20190425135956.3970-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko 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 --- drivers/net/netdevsim/dev.c | 10 +++++++--- drivers/net/netdevsim/netdev.c | 15 +++------------ drivers/net/netdevsim/netdevsim.h | 1 + tools/testing/selftests/bpf/test_offload.py | 4 +++- tools/testing/selftests/net/rtnetlink.sh | 2 +- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/net/netdevsim/dev.c b/drivers/net/netdevsim/dev.c index 98a56d8bdcec..14946d162e53 100644 --- a/drivers/net/netdevsim/dev.c +++ b/drivers/net/netdevsim/dev.c @@ -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; diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index 9b4310e20129..eb823bd0dc39 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -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 @@ static int __init nsim_module_init(void) 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); diff --git a/drivers/net/netdevsim/netdevsim.h b/drivers/net/netdevsim/netdevsim.h index 17639c7c9032..e951b1ccc3f2 100644 --- a/drivers/net/netdevsim/netdevsim.h +++ b/drivers/net/netdevsim/netdevsim.h @@ -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; diff --git a/tools/testing/selftests/bpf/test_offload.py b/tools/testing/selftests/bpf/test_offload.py index 91dfe876a707..5f2e4f9e70e4 100755 --- a/tools/testing/selftests/bpf/test_offload.py +++ b/tools/testing/selftests/bpf/test_offload.py @@ -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() diff --git a/tools/testing/selftests/net/rtnetlink.sh b/tools/testing/selftests/net/rtnetlink.sh index b447803f3f8a..311f82bcbe8d 100755 --- a/tools/testing/selftests/net/rtnetlink.sh +++ b/tools/testing/selftests/net/rtnetlink.sh @@ -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 -- 2.17.2