diff options
author | Jakub Kicinski | 2017-06-06 02:01:56 +0200 |
---|---|---|
committer | David S. Miller | 2017-06-07 18:51:42 +0200 |
commit | 02082701b974eea3afdb4ac25ab613adabebe41a (patch) | |
tree | e5715cdd23925b7d9308fd409016db0e9ad6f6a9 /drivers/net/ethernet/netronome/nfp/nfp_app.c | |
parent | nfp: allow non-equal distribution of IRQs (diff) | |
download | kernel-qcow2-linux-02082701b974eea3afdb4ac25ab613adabebe41a.tar.gz kernel-qcow2-linux-02082701b974eea3afdb4ac25ab613adabebe41a.tar.xz kernel-qcow2-linux-02082701b974eea3afdb4ac25ab613adabebe41a.zip |
nfp: create control vNICs and wire up rx/tx
When driver encounters an nfp_app which has a control message handler
defined, allocate a control vNIC. This control channel will be used
to exchange data with the application FW such as flow table programming,
statistics and global datapath control.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_app.c')
-rw-r--r-- | drivers/net/ethernet/netronome/nfp/nfp_app.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_app.c b/drivers/net/ethernet/netronome/nfp/nfp_app.c index cea2090cf063..de07517da1bd 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_app.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_app.c @@ -31,6 +31,7 @@ * SOFTWARE. */ +#include <linux/skbuff.h> #include <linux/slab.h> #include "nfpcore/nfp_cpp.h" @@ -42,6 +43,23 @@ static const struct nfp_app_type *apps[] = { &app_bpf, }; +struct sk_buff *nfp_app_ctrl_msg_alloc(struct nfp_app *app, unsigned int size) +{ + struct sk_buff *skb; + + if (nfp_app_ctrl_has_meta(app)) + size += 8; + + skb = alloc_skb(size, GFP_ATOMIC); + if (!skb) + return NULL; + + if (nfp_app_ctrl_has_meta(app)) + skb_reserve(skb, 8); + + return skb; +} + struct nfp_app *nfp_app_alloc(struct nfp_pf *pf, enum nfp_app_id id) { struct nfp_app *app; |