aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/netdevsim/netdevsim.h
diff options
context:
space:
mode:
authorDavid Wei <dw@davidwei.uk>2024-05-07 09:32:27 -0700
committerJakub Kicinski <kuba@kernel.org>2024-05-08 18:59:47 -0700
commit3762ec05a9fbda16aaaa2568df679ab8ad13f38d (patch)
treea5e940eedab117a3a8e6b4ba45832e3ff0a756c8 /drivers/net/netdevsim/netdevsim.h
parent1d0dc857b5d8711ff0f037bea9a0c13049c1763c (diff)
netdevsim: add NAPI support
Add NAPI support to netdevim, similar to veth. * Add a nsim_rq rx queue structure to hold a NAPI instance and a skb queue. * During xmit, store the skb in the peer skb queue and schedule NAPI. * During napi_poll(), drain the skb queue and pass up the stack. * Add assoc between rxq and NAPI instance using netif_queue_set_napi(). Signed-off-by: David Wei <dw@davidwei.uk> Link: https://lore.kernel.org/r/20240507163228.2066817-2-dw@davidwei.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/netdevsim/netdevsim.h')
-rw-r--r--drivers/net/netdevsim/netdevsim.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/netdevsim/netdevsim.h b/drivers/net/netdevsim/netdevsim.h
index 7664ab823e29..bf02efa10956 100644
--- a/drivers/net/netdevsim/netdevsim.h
+++ b/drivers/net/netdevsim/netdevsim.h
@@ -90,11 +90,18 @@ struct nsim_ethtool {
struct ethtool_fecparam fec;
};
+struct nsim_rq {
+ struct napi_struct napi;
+ struct sk_buff_head skb_queue;
+ struct page_pool *page_pool;
+};
+
struct netdevsim {
struct net_device *netdev;
struct nsim_dev *nsim_dev;
struct nsim_dev_port *nsim_dev_port;
struct mock_phc *phc;
+ struct nsim_rq *rq;
u64 tx_packets;
u64 tx_bytes;
@@ -125,7 +132,6 @@ struct netdevsim {
struct debugfs_u32_array dfs_ports[2];
} udp_ports;
- struct page_pool *pp;
struct page *page;
struct dentry *pp_dfs;