On 9/20/2018 10:05 AM, Andrzej Ostruszka wrote: > +/** > + * DPDK callback to register the virtual device. > + * > + * @param vdev > + * Pointer to the virtual device. > + * > + * @return > + * 0 on success, negative error value otherwise. > + */ > +static int > +rte_pmd_mvneta_probe(struct rte_vdev_device *vdev) > +{ > + struct rte_kvargs *kvlist; > + struct mvneta_ifnames ifnames; > + int ret = -EINVAL; > + uint32_t i, ifnum; > + const char *params; > + > + params = rte_vdev_device_args(vdev); > + if (!params) > + return -EINVAL; > + > + kvlist = rte_kvargs_parse(params, valid_args); > + if (!kvlist) > + return -EINVAL; > + > + ifnum = rte_kvargs_count(kvlist, MVNETA_IFACE_NAME_ARG); > + if (ifnum > RTE_DIM(ifnames.names)) > + goto out_free_kvlist; > + > + ifnames.idx = 0; > + rte_kvargs_process(kvlist, MVNETA_IFACE_NAME_ARG, > + mvneta_ifnames_get, &ifnames); > + > + /* > + * The below system initialization should be done only once, > + * on the first provided configuration file > + */ > + if (mvneta_dev_num) > + goto init_devices; > + > + MVNETA_LOG(INFO, "Perform MUSDK initializations"); > + > + ret = rte_mvep_init(MVEP_MOD_T_NETA, kvlist);
Giving build error for shared libraries [1], needs to link with rte_common_mvep, In makefile needed: LDLIBS += -lrte_common_mvep, please check "mvpp2/Makefile" [1] mvneta_ethdev.o: In function `rte_pmd_mvneta_probe': mvneta_ethdev.c:(.text+0xa58): undefined reference to `rte_mvep_init' mvneta_ethdev.c:(.text+0xc98): undefined reference to `rte_mvep_deinit' mvneta_ethdev.c:(.text+0xcb4): undefined reference to `rte_mvep_deinit' mvneta_ethdev.o: In function `rte_pmd_mvneta_remove': mvneta_ethdev.c:(.text+0xe58): undefined reference to `rte_mvep_deinit'