netdev-genl: spec: Add PID in netdev netlink YAML spec

Add support in netlink spec(netdev.yaml) for PID of the
NAPI thread. Add code generated from the spec.

Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com>
Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
Link: https://lore.kernel.org/r/170147335301.5260.11872351477120434501.stgit@anambiarhost.jf.intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Amritha Nambiar 2023-12-01 15:29:13 -08:00 committed by Jakub Kicinski
parent 26793bfb5d
commit 8481a249a0
5 changed files with 17 additions and 0 deletions

View File

@ -230,6 +230,12 @@ attribute-sets:
name: irq
doc: The associated interrupt vector number for the napi
type: u32
-
name: pid
doc: PID of the napi thread, if NAPI is configured to operate in
threaded mode. If NAPI is not in threaded mode (i.e. uses normal
softirq context), the attribute will be absent.
type: u32
-
name: queue
attributes:
@ -389,6 +395,7 @@ operations:
- id
- ifindex
- irq
- pid
dump:
request:
attributes:

View File

@ -113,6 +113,7 @@ enum {
NETDEV_A_NAPI_IFINDEX = 1,
NETDEV_A_NAPI_ID,
NETDEV_A_NAPI_IRQ,
NETDEV_A_NAPI_PID,
__NETDEV_A_NAPI_MAX,
NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)

View File

@ -113,6 +113,7 @@ enum {
NETDEV_A_NAPI_IFINDEX = 1,
NETDEV_A_NAPI_ID,
NETDEV_A_NAPI_IRQ,
NETDEV_A_NAPI_PID,
__NETDEV_A_NAPI_MAX,
NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)

View File

@ -165,6 +165,7 @@ struct ynl_policy_attr netdev_napi_policy[NETDEV_A_NAPI_MAX + 1] = {
[NETDEV_A_NAPI_IFINDEX] = { .name = "ifindex", .type = YNL_PT_U32, },
[NETDEV_A_NAPI_ID] = { .name = "id", .type = YNL_PT_U32, },
[NETDEV_A_NAPI_IRQ] = { .name = "irq", .type = YNL_PT_U32, },
[NETDEV_A_NAPI_PID] = { .name = "pid", .type = YNL_PT_U32, },
};
struct ynl_policy_nest netdev_napi_nest = {
@ -216,6 +217,11 @@ int netdev_page_pool_info_parse(struct ynl_parse_arg *yarg,
return MNL_CB_ERROR;
dst->_present.irq = 1;
dst->irq = mnl_attr_get_u32(attr);
} else if (type == NETDEV_A_NAPI_PID) {
if (ynl_attr_validate(yarg, attr))
return MNL_CB_ERROR;
dst->_present.pid = 1;
dst->pid = mnl_attr_get_u32(attr);
}
}

View File

@ -388,11 +388,13 @@ struct netdev_napi_get_rsp {
__u32 id:1;
__u32 ifindex:1;
__u32 irq:1;
__u32 pid:1;
} _present;
__u32 id;
__u32 ifindex;
__u32 irq;
__u32 pid;
};
void netdev_napi_get_rsp_free(struct netdev_napi_get_rsp *rsp);