Commit 8481a249 authored by Amritha Nambiar's avatar Amritha Nambiar Committed by Jakub Kicinski
Browse files

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: default avatarAmritha Nambiar <amritha.nambiar@intel.com>
Reviewed-by: default avatarSridhar Samudrala <sridhar.samudrala@intel.com>
Link: https://lore.kernel.org/r/170147335301.5260.11872351477120434501.stgit@anambiarhost.jf.intel.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 26793bfb
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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:
+1 −0
Original line number Diff line number Diff line
@@ -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)
+1 −0
Original line number Diff line number Diff line
@@ -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)
+6 −0
Original line number Diff line number Diff line
@@ -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);
		}
	}

+2 −0
Original line number Diff line number Diff line
@@ -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);