#include "netlink.h"
#include "common.h"
struct rss_req_info { … };
struct rss_reply_data { … };
#define RSS_REQINFO(__req_base) …
#define RSS_REPDATA(__reply_base) …
const struct nla_policy ethnl_rss_get_policy[] = …;
static int
rss_parse_request(struct ethnl_req_info *req_info, struct nlattr **tb,
struct netlink_ext_ack *extack)
{ … }
static int
rss_prepare_get(const struct rss_req_info *request, struct net_device *dev,
struct rss_reply_data *data, const struct genl_info *info)
{ … }
static int
rss_prepare_ctx(const struct rss_req_info *request, struct net_device *dev,
struct rss_reply_data *data, const struct genl_info *info)
{ … }
static int
rss_prepare_data(const struct ethnl_req_info *req_base,
struct ethnl_reply_data *reply_base,
const struct genl_info *info)
{ … }
static int
rss_reply_size(const struct ethnl_req_info *req_base,
const struct ethnl_reply_data *reply_base)
{ … }
static int
rss_fill_reply(struct sk_buff *skb, const struct ethnl_req_info *req_base,
const struct ethnl_reply_data *reply_base)
{ … }
static void rss_cleanup_data(struct ethnl_reply_data *reply_base)
{ … }
struct rss_nl_dump_ctx { … };
static struct rss_nl_dump_ctx *rss_dump_ctx(struct netlink_callback *cb)
{ … }
int ethnl_rss_dump_start(struct netlink_callback *cb)
{ … }
static int
rss_dump_one_ctx(struct sk_buff *skb, struct netlink_callback *cb,
struct net_device *dev, u32 rss_context)
{ … }
static int
rss_dump_one_dev(struct sk_buff *skb, struct netlink_callback *cb,
struct net_device *dev)
{ … }
int ethnl_rss_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
{ … }
const struct ethnl_request_ops ethnl_rss_request_ops = …;