|
@@ -35,6 +35,7 @@
|
|
|
|
|
|
#include "../nfpcore/nfp_cpp.h"
|
|
|
#include "../nfpcore/nfp_nffw.h"
|
|
|
+#include "../nfpcore/nfp_nsp.h"
|
|
|
#include "../nfp_app.h"
|
|
|
#include "../nfp_main.h"
|
|
|
#include "../nfp_net.h"
|
|
@@ -87,9 +88,20 @@ static const char *nfp_bpf_extra_cap(struct nfp_app *app, struct nfp_net *nn)
|
|
|
static int
|
|
|
nfp_bpf_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, unsigned int id)
|
|
|
{
|
|
|
+ struct nfp_pf *pf = app->pf;
|
|
|
struct nfp_bpf_vnic *bv;
|
|
|
int err;
|
|
|
|
|
|
+ if (!pf->eth_tbl) {
|
|
|
+ nfp_err(pf->cpp, "No ETH table\n");
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+ if (pf->max_data_vnics != pf->eth_tbl->count) {
|
|
|
+ nfp_err(pf->cpp, "ETH entries don't match vNICs (%d vs %d)\n",
|
|
|
+ pf->max_data_vnics, pf->eth_tbl->count);
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+
|
|
|
bv = kzalloc(sizeof(*bv), GFP_KERNEL);
|
|
|
if (!bv)
|
|
|
return -ENOMEM;
|