diff --git a/home/nipa/nipa_out/956341/ynl/old-code/netdev-user.c b/home/nipa/nipa_out/956341/ynl/new-code/netdev-user.c index 878960df097c..b3dbeec48a97 100644 --- a/home/nipa/nipa_out/956341/ynl/old-code/netdev-user.c +++ b/home/nipa/nipa_out/956341/ynl/new-code/netdev-user.c @@ -216,6 +216,7 @@ const struct ynl_policy_attr netdev_napi_policy[NETDEV_A_NAPI_MAX + 1] = { [NETDEV_A_NAPI_DEFER_HARD_IRQS] = { .name = "defer-hard-irqs", .type = YNL_PT_U32, }, [NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT] = { .name = "gro-flush-timeout", .type = YNL_PT_UINT, }, [NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT] = { .name = "irq-suspend-timeout", .type = YNL_PT_UINT, }, + [NETDEV_A_NAPI_THREADED] = { .name = "threaded", .type = YNL_PT_UINT, }, }; const struct ynl_policy_nest netdev_napi_nest = { @@ -1038,6 +1039,11 @@ int netdev_napi_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; dst->_present.irq_suspend_timeout = 1; dst->irq_suspend_timeout = ynl_attr_get_uint(attr); + } else if (type == NETDEV_A_NAPI_THREADED) { + if (ynl_attr_validate(yarg, attr)) + return YNL_PARSE_CB_ERROR; + dst->_present.threaded = 1; + dst->threaded = ynl_attr_get_uint(attr); } } @@ -1327,6 +1333,8 @@ int netdev_napi_set(struct ynl_sock *ys, struct netdev_napi_set_req *req) ynl_attr_put_uint(nlh, NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT, req->gro_flush_timeout); if (req->_present.irq_suspend_timeout) ynl_attr_put_uint(nlh, NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT, req->irq_suspend_timeout); + if (req->_present.threaded) + ynl_attr_put_uint(nlh, NETDEV_A_NAPI_THREADED, req->threaded); err = ynl_exec(ys, nlh, &yrs); if (err < 0) diff --git a/home/nipa/nipa_out/956341/ynl/old-code/netdev-user.h b/home/nipa/nipa_out/956341/ynl/new-code/netdev-user.h index 33285edfc651..8a655c05efb0 100644 --- a/home/nipa/nipa_out/956341/ynl/old-code/netdev-user.h +++ b/home/nipa/nipa_out/956341/ynl/new-code/netdev-user.h @@ -421,6 +421,7 @@ struct netdev_napi_get_rsp { __u32 defer_hard_irqs:1; __u32 gro_flush_timeout:1; __u32 irq_suspend_timeout:1; + __u32 threaded:1; } _present; __u32 id; @@ -430,6 +431,7 @@ struct netdev_napi_get_rsp { __u32 defer_hard_irqs; __u64 gro_flush_timeout; __u64 irq_suspend_timeout; + __u64 threaded; }; void netdev_napi_get_rsp_free(struct netdev_napi_get_rsp *rsp); @@ -606,12 +608,14 @@ struct netdev_napi_set_req { __u32 defer_hard_irqs:1; __u32 gro_flush_timeout:1; __u32 irq_suspend_timeout:1; + __u32 threaded:1; } _present; __u32 id; __u32 defer_hard_irqs; __u64 gro_flush_timeout; __u64 irq_suspend_timeout; + __u64 threaded; }; static inline struct netdev_napi_set_req *netdev_napi_set_req_alloc(void) @@ -647,6 +651,13 @@ netdev_napi_set_req_set_irq_suspend_timeout(struct netdev_napi_set_req *req, req->_present.irq_suspend_timeout = 1; req->irq_suspend_timeout = irq_suspend_timeout; } +static inline void +netdev_napi_set_req_set_threaded(struct netdev_napi_set_req *req, + __u64 threaded) +{ + req->_present.threaded = 1; + req->threaded = threaded; +} /* * Set configurable NAPI instance settings.