Message ID | 20231107080607.190414-1-jiri@resnulli.us (mailing list archive) |
---|---|
Headers | show |
Series | expose devlink instances relationships | expand |
Hello: This series was applied to iproute2/iproute2-next.git (main) by David Ahern <dsahern@kernel.org>: On Tue, 7 Nov 2023 09:06:00 +0100 you wrote: > 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 > > [...] Here is the summary with links: - [iproute2-next,v5,1/7] ip/ipnetns: move internals of get_netnsid_from_name() into namespace.c https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=a59b83f73d45 - [iproute2-next,v5,2/7] devlink: use snprintf instead of sprintf https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=8265b39f0c25 - [iproute2-next,v5,3/7] devlink: do conditional new line print in pr_out_port_handle_end() https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=fb47796cd606 - [iproute2-next,v5,4/7] devlink: extend pr_out_nested_handle() to print object https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=e98d5084f7cd - [iproute2-next,v5,5/7] devlink: introduce support for netns id for nested handle https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=2ded9c18a37b - [iproute2-next,v5,6/7] devlink: print nested handle for port function https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=3e90f377f49b - [iproute2-next,v5,7/7] devlink: print nested devlink handle for devlink dev https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=1ac0c4450f61 You are awesome, thank you!
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" } } } } } } --- v4->v5: - fixed dcb compile warn cause by missing header include v3->v4 - removed namespace.h include from patch #1 - added patch #2 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 (7): ip/ipnetns: move internals of get_netnsid_from_name() into namespace.c devlink: use snprintf instead of sprintf 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 | 140 ++++++++++++++++++++++++++++++++++---------- include/namespace.h | 4 ++ ip/ipnetns.c | 45 +------------- lib/namespace.c | 83 ++++++++++++++++++++++++++ 4 files changed, 197 insertions(+), 75 deletions(-)