#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"
 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;