* [PATCH net-next 0/3] devlink show controller and external info
@ 2020-09-18 8:02 Parav Pandit
2020-09-18 8:02 ` [PATCH net-next 1/3] devlink: Update kernel headers Parav Pandit
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Parav Pandit @ 2020-09-18 8:02 UTC (permalink / raw)
To: netdev, stephen, dsahern; +Cc: Parav Pandit
For certain devlink port flavours controller number and optionally external attributes are reported by the kernel.
(a) controller number indicates that a given port belong to which local or external controller.
(b) external port attribute indicates that if a given port is for external or local controller.
This short series shows this attributes to user.
Patch summary:
Patch-1 updates the kernel header
Patch-2 shows external attribute
Patch-3 show controller number
Parav Pandit (3):
devlink: Update kernel headers
devlink: Show external port attribute
devlink: Show controller number of a devlink port
devlink/devlink.c | 9 +++++++++
include/uapi/linux/devlink.h | 4 ++++
2 files changed, 13 insertions(+)
--
2.26.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH net-next 1/3] devlink: Update kernel headers
2020-09-18 8:02 [PATCH net-next 0/3] devlink show controller and external info Parav Pandit
@ 2020-09-18 8:02 ` Parav Pandit
2020-09-18 8:02 ` [PATCH net-next 2/3] devlink: Show external port attribute Parav Pandit
` (3 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Parav Pandit @ 2020-09-18 8:02 UTC (permalink / raw)
To: netdev, stephen, dsahern; +Cc: Parav Pandit
Update kernel headers to commit:
e2ce94dc1d89 ("devlink: introduce the health reporter test command")
Signed-off-by: Parav Pandit <parav@nvidia.com>
---
include/uapi/linux/devlink.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h
index b7f23faa..3d64b48e 100644
--- a/include/uapi/linux/devlink.h
+++ b/include/uapi/linux/devlink.h
@@ -122,6 +122,8 @@ enum devlink_command {
DEVLINK_CMD_TRAP_POLICER_NEW,
DEVLINK_CMD_TRAP_POLICER_DEL,
+ DEVLINK_CMD_HEALTH_REPORTER_TEST,
+
/* add new commands above here */
__DEVLINK_CMD_MAX,
DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
@@ -458,6 +460,8 @@ enum devlink_attr {
DEVLINK_ATTR_PORT_LANES, /* u32 */
DEVLINK_ATTR_PORT_SPLITTABLE, /* u8 */
+ DEVLINK_ATTR_PORT_EXTERNAL, /* u8 */
+ DEVLINK_ATTR_PORT_CONTROLLER_NUMBER, /* u32 */
/* add new attributes above here, update the policy in devlink.c */
__DEVLINK_ATTR_MAX,
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 2/3] devlink: Show external port attribute
2020-09-18 8:02 [PATCH net-next 0/3] devlink show controller and external info Parav Pandit
2020-09-18 8:02 ` [PATCH net-next 1/3] devlink: Update kernel headers Parav Pandit
@ 2020-09-18 8:02 ` Parav Pandit
2020-09-18 8:03 ` [PATCH net-next 3/3] devlink: Show controller number of a devlink port Parav Pandit
` (2 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Parav Pandit @ 2020-09-18 8:02 UTC (permalink / raw)
To: netdev, stephen, dsahern; +Cc: Parav Pandit, Jiri Pirko
If a port is for an external controller, port's external attribute is
set. Show such external attribute.
An example of an external controller port for PCI VF:
$ devlink port show pci/0000:06:00.0/2
pci/0000:06:00.0/2: type eth netdev ens2f0c1pf0vf1 flavour pcivf pfnum 0 vfnum 1 external true splittable false
function:
hw_addr 00:00:00:00:00:00
$ devlink port show pci/0000:06:00.0/2 -jp
{
"port": {
"pci/0000:06:00.0/2": {
"type": "eth",
"netdev": "ens2f0c1pf0vf1",
"flavour": "pcivf",
"pfnum": 0,
"vfnum": 1,
"external": true,
"splittable": false,
"function": {
"hw_addr": "00:00:00:00:00:00"
}
}
}
}
Signed-off-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
---
devlink/devlink.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/devlink/devlink.c b/devlink/devlink.c
index 007677a5..9f99c031 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
@@ -3351,6 +3351,12 @@ static void pr_out_port_pfvf_num(struct dl *dl, struct nlattr **tb)
fn_num = mnl_attr_get_u16(tb[DEVLINK_ATTR_PORT_PCI_VF_NUMBER]);
print_uint(PRINT_ANY, "vfnum", " vfnum %u", fn_num);
}
+ if (tb[DEVLINK_ATTR_PORT_EXTERNAL]) {
+ uint8_t external;
+
+ external = mnl_attr_get_u8(tb[DEVLINK_ATTR_PORT_EXTERNAL]);
+ print_bool(PRINT_ANY, "external", " external %s", external);
+ }
}
static void pr_out_port_function(struct dl *dl, struct nlattr **tb_port)
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 3/3] devlink: Show controller number of a devlink port
2020-09-18 8:02 [PATCH net-next 0/3] devlink show controller and external info Parav Pandit
2020-09-18 8:02 ` [PATCH net-next 1/3] devlink: Update kernel headers Parav Pandit
2020-09-18 8:02 ` [PATCH net-next 2/3] devlink: Show external port attribute Parav Pandit
@ 2020-09-18 8:03 ` Parav Pandit
2020-09-18 10:08 ` [PATCH net-next 0/3] devlink show controller and external info Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND " Parav Pandit
4 siblings, 0 replies; 10+ messages in thread
From: Parav Pandit @ 2020-09-18 8:03 UTC (permalink / raw)
To: netdev, stephen, dsahern; +Cc: Parav Pandit, Jiri Pirko
Show the controller number of the devlink port whenever kernel reports
it.
Example of a PCI VF port for an external controller number 1:
$ devlink port show pci/0000:06:00.0/2
pci/0000:06:00.0/2: type eth netdev ens2f0c1pf0vf1 flavour pcivf controller 1 pfnum 0 vfnum 1 external true splittable false
function:
hw_addr 00:00:00:00:00:00
$ devlink port show pci/0000:06:00.0/2 -jp
{
"port": {
"pci/0000:06:00.0/2": {
"type": "eth",
"netdev": "ens2f0c1pf0vf1",
"flavour": "pcivf",
"controller": 1,
"pfnum": 0,
"vfnum": 1,
"external": true,
"splittable": false,
"function": {
"hw_addr": "00:00:00:00:00:00"
}
}
}
}
Signed-off-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
---
devlink/devlink.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/devlink/devlink.c b/devlink/devlink.c
index 9f99c031..0374175e 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
@@ -3343,6 +3343,9 @@ static void pr_out_port_pfvf_num(struct dl *dl, struct nlattr **tb)
{
uint16_t fn_num;
+ if (tb[DEVLINK_ATTR_PORT_CONTROLLER_NUMBER])
+ print_uint(PRINT_ANY, "controller", " controller %u",
+ mnl_attr_get_u32(tb[DEVLINK_ATTR_PORT_CONTROLLER_NUMBER]));
if (tb[DEVLINK_ATTR_PORT_PCI_PF_NUMBER]) {
fn_num = mnl_attr_get_u16(tb[DEVLINK_ATTR_PORT_PCI_PF_NUMBER]);
print_uint(PRINT_ANY, "pfnum", " pfnum %u", fn_num);
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* RE: [PATCH net-next 0/3] devlink show controller and external info
2020-09-18 8:02 [PATCH net-next 0/3] devlink show controller and external info Parav Pandit
` (2 preceding siblings ...)
2020-09-18 8:03 ` [PATCH net-next 3/3] devlink: Show controller number of a devlink port Parav Pandit
@ 2020-09-18 10:08 ` Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND " Parav Pandit
4 siblings, 0 replies; 10+ messages in thread
From: Parav Pandit @ 2020-09-18 10:08 UTC (permalink / raw)
To: netdev, stephen, dsahern
> From: Parav Pandit <parav@nvidia.com>
> Sent: Friday, September 18, 2020 1:33 PM
>
> For certain devlink port flavours controller number and optionally external
> attributes are reported by the kernel.
>
> (a) controller number indicates that a given port belong to which local or
> external controller.
> (b) external port attribute indicates that if a given port is for external or local
> controller.
>
> This short series shows this attributes to user.
>
> Patch summary:
> Patch-1 updates the kernel header
> Patch-2 shows external attribute
> Patch-3 show controller number
>
> Parav Pandit (3):
> devlink: Update kernel headers
> devlink: Show external port attribute
> devlink: Show controller number of a devlink port
>
My bad. Forgot to tag this a iproute2 patches. Resending it.
> devlink/devlink.c | 9 +++++++++
> include/uapi/linux/devlink.h | 4 ++++
> 2 files changed, 13 insertions(+)
>
> --
> 2.26.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH iproute2-next RESEND 0/3] devlink show controller and external info
2020-09-18 8:02 [PATCH net-next 0/3] devlink show controller and external info Parav Pandit
` (3 preceding siblings ...)
2020-09-18 10:08 ` [PATCH net-next 0/3] devlink show controller and external info Parav Pandit
@ 2020-09-18 10:16 ` Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 1/3] devlink: Update kernel headers Parav Pandit
` (3 more replies)
4 siblings, 4 replies; 10+ messages in thread
From: Parav Pandit @ 2020-09-18 10:16 UTC (permalink / raw)
To: netdev, stephen, dsahern; +Cc: Parav Pandit
For certain devlink port flavours controller number and optionally external attributes are reported by the kernel.
(a) controller number indicates that a given port belong to which local or external controller.
(b) external port attribute indicates that if a given port is for external or local controller.
This short series shows this attributes to user.
Patch summary:
Patch-1 updates the kernel header
Patch-2 shows external attribute
Patch-3 show controller number
Parav Pandit (3):
devlink: Update kernel headers
devlink: Show external port attribute
devlink: Show controller number of a devlink port
devlink/devlink.c | 9 +++++++++
include/uapi/linux/devlink.h | 4 ++++
2 files changed, 13 insertions(+)
--
2.26.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH iproute2-next RESEND 1/3] devlink: Update kernel headers
2020-09-18 10:16 ` [PATCH iproute2-next RESEND " Parav Pandit
@ 2020-09-18 10:16 ` Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 2/3] devlink: Show external port attribute Parav Pandit
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: Parav Pandit @ 2020-09-18 10:16 UTC (permalink / raw)
To: netdev, stephen, dsahern; +Cc: Parav Pandit
Update kernel headers to commit:
e2ce94dc1d89 ("devlink: introduce the health reporter test command")
Signed-off-by: Parav Pandit <parav@nvidia.com>
---
include/uapi/linux/devlink.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h
index b7f23faa..3d64b48e 100644
--- a/include/uapi/linux/devlink.h
+++ b/include/uapi/linux/devlink.h
@@ -122,6 +122,8 @@ enum devlink_command {
DEVLINK_CMD_TRAP_POLICER_NEW,
DEVLINK_CMD_TRAP_POLICER_DEL,
+ DEVLINK_CMD_HEALTH_REPORTER_TEST,
+
/* add new commands above here */
__DEVLINK_CMD_MAX,
DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
@@ -458,6 +460,8 @@ enum devlink_attr {
DEVLINK_ATTR_PORT_LANES, /* u32 */
DEVLINK_ATTR_PORT_SPLITTABLE, /* u8 */
+ DEVLINK_ATTR_PORT_EXTERNAL, /* u8 */
+ DEVLINK_ATTR_PORT_CONTROLLER_NUMBER, /* u32 */
/* add new attributes above here, update the policy in devlink.c */
__DEVLINK_ATTR_MAX,
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH iproute2-next RESEND 2/3] devlink: Show external port attribute
2020-09-18 10:16 ` [PATCH iproute2-next RESEND " Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 1/3] devlink: Update kernel headers Parav Pandit
@ 2020-09-18 10:16 ` Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 3/3] devlink: Show controller number of a devlink port Parav Pandit
2020-09-23 2:21 ` [PATCH iproute2-next RESEND 0/3] devlink show controller and external info David Ahern
3 siblings, 0 replies; 10+ messages in thread
From: Parav Pandit @ 2020-09-18 10:16 UTC (permalink / raw)
To: netdev, stephen, dsahern; +Cc: Parav Pandit, Jiri Pirko
If a port is for an external controller, port's external attribute is
set. Show such external attribute.
An example of an external controller port for PCI VF:
$ devlink port show pci/0000:06:00.0/2
pci/0000:06:00.0/2: type eth netdev ens2f0c1pf0vf1 flavour pcivf pfnum 0 vfnum 1 external true splittable false
function:
hw_addr 00:00:00:00:00:00
$ devlink port show pci/0000:06:00.0/2 -jp
{
"port": {
"pci/0000:06:00.0/2": {
"type": "eth",
"netdev": "ens2f0c1pf0vf1",
"flavour": "pcivf",
"pfnum": 0,
"vfnum": 1,
"external": true,
"splittable": false,
"function": {
"hw_addr": "00:00:00:00:00:00"
}
}
}
}
Signed-off-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
---
devlink/devlink.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/devlink/devlink.c b/devlink/devlink.c
index 007677a5..9f99c031 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
@@ -3351,6 +3351,12 @@ static void pr_out_port_pfvf_num(struct dl *dl, struct nlattr **tb)
fn_num = mnl_attr_get_u16(tb[DEVLINK_ATTR_PORT_PCI_VF_NUMBER]);
print_uint(PRINT_ANY, "vfnum", " vfnum %u", fn_num);
}
+ if (tb[DEVLINK_ATTR_PORT_EXTERNAL]) {
+ uint8_t external;
+
+ external = mnl_attr_get_u8(tb[DEVLINK_ATTR_PORT_EXTERNAL]);
+ print_bool(PRINT_ANY, "external", " external %s", external);
+ }
}
static void pr_out_port_function(struct dl *dl, struct nlattr **tb_port)
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH iproute2-next RESEND 3/3] devlink: Show controller number of a devlink port
2020-09-18 10:16 ` [PATCH iproute2-next RESEND " Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 1/3] devlink: Update kernel headers Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 2/3] devlink: Show external port attribute Parav Pandit
@ 2020-09-18 10:16 ` Parav Pandit
2020-09-23 2:21 ` [PATCH iproute2-next RESEND 0/3] devlink show controller and external info David Ahern
3 siblings, 0 replies; 10+ messages in thread
From: Parav Pandit @ 2020-09-18 10:16 UTC (permalink / raw)
To: netdev, stephen, dsahern; +Cc: Parav Pandit, Jiri Pirko
Show the controller number of the devlink port whenever kernel reports
it.
Example of a PCI VF port for an external controller number 1:
$ devlink port show pci/0000:06:00.0/2
pci/0000:06:00.0/2: type eth netdev ens2f0c1pf0vf1 flavour pcivf controller 1 pfnum 0 vfnum 1 external true splittable false
function:
hw_addr 00:00:00:00:00:00
$ devlink port show pci/0000:06:00.0/2 -jp
{
"port": {
"pci/0000:06:00.0/2": {
"type": "eth",
"netdev": "ens2f0c1pf0vf1",
"flavour": "pcivf",
"controller": 1,
"pfnum": 0,
"vfnum": 1,
"external": true,
"splittable": false,
"function": {
"hw_addr": "00:00:00:00:00:00"
}
}
}
}
Signed-off-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
---
devlink/devlink.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/devlink/devlink.c b/devlink/devlink.c
index 9f99c031..0374175e 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
@@ -3343,6 +3343,9 @@ static void pr_out_port_pfvf_num(struct dl *dl, struct nlattr **tb)
{
uint16_t fn_num;
+ if (tb[DEVLINK_ATTR_PORT_CONTROLLER_NUMBER])
+ print_uint(PRINT_ANY, "controller", " controller %u",
+ mnl_attr_get_u32(tb[DEVLINK_ATTR_PORT_CONTROLLER_NUMBER]));
if (tb[DEVLINK_ATTR_PORT_PCI_PF_NUMBER]) {
fn_num = mnl_attr_get_u16(tb[DEVLINK_ATTR_PORT_PCI_PF_NUMBER]);
print_uint(PRINT_ANY, "pfnum", " pfnum %u", fn_num);
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH iproute2-next RESEND 0/3] devlink show controller and external info
2020-09-18 10:16 ` [PATCH iproute2-next RESEND " Parav Pandit
` (2 preceding siblings ...)
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 3/3] devlink: Show controller number of a devlink port Parav Pandit
@ 2020-09-23 2:21 ` David Ahern
3 siblings, 0 replies; 10+ messages in thread
From: David Ahern @ 2020-09-23 2:21 UTC (permalink / raw)
To: Parav Pandit, netdev, stephen, dsahern
On 9/18/20 4:16 AM, Parav Pandit wrote:
> For certain devlink port flavours controller number and optionally external attributes are reported by the kernel.
>
> (a) controller number indicates that a given port belong to which local or external controller.
> (b) external port attribute indicates that if a given port is for external or local controller.
>
> This short series shows this attributes to user.
>
> Patch summary:
> Patch-1 updates the kernel header
> Patch-2 shows external attribute
> Patch-3 show controller number
>
> Parav Pandit (3):
> devlink: Update kernel headers
> devlink: Show external port attribute
> devlink: Show controller number of a devlink port
>
> devlink/devlink.c | 9 +++++++++
> include/uapi/linux/devlink.h | 4 ++++
> 2 files changed, 13 insertions(+)
>
applied to iproute2-next
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-09-23 2:21 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-18 8:02 [PATCH net-next 0/3] devlink show controller and external info Parav Pandit
2020-09-18 8:02 ` [PATCH net-next 1/3] devlink: Update kernel headers Parav Pandit
2020-09-18 8:02 ` [PATCH net-next 2/3] devlink: Show external port attribute Parav Pandit
2020-09-18 8:03 ` [PATCH net-next 3/3] devlink: Show controller number of a devlink port Parav Pandit
2020-09-18 10:08 ` [PATCH net-next 0/3] devlink show controller and external info Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND " Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 1/3] devlink: Update kernel headers Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 2/3] devlink: Show external port attribute Parav Pandit
2020-09-18 10:16 ` [PATCH iproute2-next RESEND 3/3] devlink: Show controller number of a devlink port Parav Pandit
2020-09-23 2:21 ` [PATCH iproute2-next RESEND 0/3] devlink show controller and external info David Ahern
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.