All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch iproute2-next v3 0/6] expose devlink instances relationships
@ 2023-10-24 10:03 Jiri Pirko
  2023-10-24 10:03 ` [patch iproute2-next v3 1/6] ip/ipnetns: move internals of get_netnsid_from_name() into namespace.c Jiri Pirko
                   ` (5 more replies)
  0 siblings, 6 replies; 16+ messages in thread
From: Jiri Pirko @ 2023-10-24 10:03 UTC (permalink / raw)
  To: netdev; +Cc: stephen, dsahern, daniel.machon

From: Jiri Pirko <jiri@nvidia.com>

Print out recently added attributes that expose relationships between
devlink instances. This patchset extends the outputs by
"nested_devlink" attributes.

Examples:
$ devlink dev
pci/0000:08:00.0:
  nested_devlink:
    auxiliary/mlx5_core.eth.0
auxiliary/mlx5_core.eth.0
pci/0000:08:00.1:
  nested_devlink:
    auxiliary/mlx5_core.eth.1
auxiliary/mlx5_core.eth.1

$ devlink dev -j -p
{
    "dev": {
        "pci/0000:08:00.0": {
            "nested_devlink": {
                "auxiliary/mlx5_core.eth.0": {}
            }
        },
        "auxiliary/mlx5_core.eth.0": {},
        "pci/0000:08:00.1": {
            "nested_devlink": {
                "auxiliary/mlx5_core.eth.1": {}
            }
        },
        "auxiliary/mlx5_core.eth.1": {}
    }
}

$ devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 106
pci/0000:08:00.0/32768: type eth netdev eth2 flavour pcisf controller 0 pfnum 0 sfnum 106 splittable false
  function:
    hw_addr 00:00:00:00:00:00 state inactive opstate detached roce enable
$ devlink port function set pci/0000:08:00.0/32768 state active
$ devlink port show pci/0000:08:00.0/32768
pci/0000:08:00.0/32768: type eth netdev eth2 flavour pcisf controller 0 pfnum 0 sfnum 106 splittable false
  function:
    hw_addr 00:00:00:00:00:00 state active opstate attached roce enable
      nested_devlink:
        auxiliary/mlx5_core.sf.2
$ devlink port show pci/0000:08:00.0/32768 -j -p
{
    "port": {
        "pci/0000:08:00.0/32768": {
            "type": "eth",
            "netdev": "eth2",
            "flavour": "pcisf",
            "controller": 0,
            "pfnum": 0,
            "sfnum": 106,
            "splittable": false,
            "function": {
                "hw_addr": "00:00:00:00:00:00",
                "state": "active",
                "opstate": "attached",
                "roce": "enable",
                "nested_devlink": {
                    "auxiliary/mlx5_core.sf.2": {}
                }
            }
        }
    }
}

$ devlink dev reload auxiliary/mlx5_core.sf.2 netns ns1
$ devlink port show pci/0000:08:00.0/32768
pci/0000:08:00.0/32768: type eth netdev eth2 flavour pcisf controller 0 pfnum 0 sfnum 106 splittable false
  function:
    hw_addr 00:00:00:00:00:00 state active opstate attached roce enable
      nested_devlink:
        auxiliary/mlx5_core.sf.2: netns ns1
$ devlink port show pci/0000:08:00.0/32768 -j -p
{
    "port": {
        "pci/0000:08:00.0/32768": {
            "type": "eth",
            "netdev": "eth2",
            "flavour": "pcisf",
            "controller": 0,
            "pfnum": 0,
            "sfnum": 106,
            "splittable": false,
            "function": {
                "hw_addr": "00:00:00:00:00:00",
                "state": "active",
                "opstate": "attached",
                "roce": "enable",
                "nested_devlink": {
                    "auxiliary/mlx5_core.sf.2": {
                        "netns": "ns1"
                    }
                }
            }
        }
    }
}

---
v2->v3:
- the output format is changed to treat the nested handle in a similar
  way as the dev_handle/port_handle allowing to contain attrs, like
  netns. See examples
- couple of details
- see individual patches for more details
v1->v2:
- patch #2 was added
- patch #3 uses new helper added by patch #2, typo is fixed

Jiri Pirko (6):
  ip/ipnetns: move internals of get_netnsid_from_name() into namespace.c
  devlink: do conditional new line print in pr_out_port_handle_end()
  devlink: extend pr_out_nested_handle() to print object
  devlink: introduce support for netns id for nested handle
  devlink: print nested handle for port function
  devlink: print nested devlink handle for devlink dev

 devlink/devlink.c   | 124 +++++++++++++++++++++++++++++++++++---------
 include/namespace.h |   5 ++
 ip/ipnetns.c        |  45 +---------------
 lib/namespace.c     |  83 +++++++++++++++++++++++++++++
 4 files changed, 189 insertions(+), 68 deletions(-)

-- 
2.41.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2023-10-30 12:25 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-24 10:03 [patch iproute2-next v3 0/6] expose devlink instances relationships Jiri Pirko
2023-10-24 10:03 ` [patch iproute2-next v3 1/6] ip/ipnetns: move internals of get_netnsid_from_name() into namespace.c Jiri Pirko
2023-10-26 16:56   ` David Ahern
2023-10-27  8:25     ` Jiri Pirko
2023-10-24 10:03 ` [patch iproute2-next v3 2/6] devlink: do conditional new line print in pr_out_port_handle_end() Jiri Pirko
2023-10-24 10:04 ` [patch iproute2-next v3 3/6] devlink: extend pr_out_nested_handle() to print object Jiri Pirko
2023-10-26 17:03   ` David Ahern
2023-10-27  8:26     ` Jiri Pirko
2023-10-27 13:12     ` Petr Machata
2023-10-27 17:16       ` David Ahern
2023-10-30 11:03         ` Petr Machata
2023-10-24 10:04 ` [patch iproute2-next v3 4/6] devlink: introduce support for netns id for nested handle Jiri Pirko
2023-10-26 17:08   ` David Ahern
2023-10-27  8:29     ` Jiri Pirko
2023-10-24 10:04 ` [patch iproute2-next v3 5/6] devlink: print nested handle for port function Jiri Pirko
2023-10-24 10:04 ` [patch iproute2-next v3 6/6] devlink: print nested devlink handle for devlink dev Jiri Pirko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.