MCPcopy Create free account
hub / github.com/F-Stack/f-stack / iavf_parse_devargs

Function iavf_parse_devargs

dpdk/drivers/net/iavf/iavf_ethdev.c:2288–2353  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2286}
2287
2288static int iavf_parse_devargs(struct rte_eth_dev *dev)
2289{
2290 struct iavf_adapter *ad =
2291 IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
2292 struct rte_devargs *devargs = dev->device->devargs;
2293 struct rte_kvargs *kvlist;
2294 int ret;
2295 int watchdog_period = -1;
2296
2297 if (!devargs)
2298 return 0;
2299
2300 kvlist = rte_kvargs_parse(devargs->args, iavf_valid_args);
2301 if (!kvlist) {
2302 PMD_INIT_LOG(ERR, "invalid kvargs key");
2303 return -EINVAL;
2304 }
2305
2306 ad->devargs.proto_xtr_dflt = IAVF_PROTO_XTR_NONE;
2307 memset(ad->devargs.proto_xtr, IAVF_PROTO_XTR_NONE,
2308 sizeof(ad->devargs.proto_xtr));
2309
2310 ret = rte_kvargs_process(kvlist, IAVF_PROTO_XTR_ARG,
2311 &iavf_handle_proto_xtr_arg, &ad->devargs);
2312 if (ret)
2313 goto bail;
2314
2315 ret = rte_kvargs_process(kvlist, IAVF_QUANTA_SIZE_ARG,
2316 &parse_u16, &ad->devargs.quanta_size);
2317 if (ret)
2318 goto bail;
2319
2320 ret = rte_kvargs_process(kvlist, IAVF_RESET_WATCHDOG_ARG,
2321 &iavf_parse_watchdog_period, &watchdog_period);
2322 if (ret)
2323 goto bail;
2324 if (watchdog_period == -1)
2325 ad->devargs.watchdog_period = IAVF_DEV_WATCHDOG_PERIOD;
2326 else
2327 ad->devargs.watchdog_period = watchdog_period;
2328
2329 ret = rte_kvargs_process(kvlist, IAVF_NO_POLL_ON_LINK_DOWN_ARG,
2330 &parse_bool, &ad->devargs.no_poll_on_link_down);
2331 if (ret)
2332 goto bail;
2333
2334 if (ad->devargs.quanta_size != 0 &&
2335 (ad->devargs.quanta_size < 256 || ad->devargs.quanta_size > 4096 ||
2336 ad->devargs.quanta_size & 0x40)) {
2337 PMD_INIT_LOG(ERR, "invalid quanta size");
2338 ret = -EINVAL;
2339 goto bail;
2340 }
2341
2342 ret = rte_kvargs_process(kvlist, IAVF_ENABLE_AUTO_RESET_ARG,
2343 &parse_bool, &ad->devargs.auto_reset);
2344 if (ret)
2345 goto bail;

Callers 1

iavf_init_vfFunction · 0.85

Calls 4

rte_kvargs_parseFunction · 0.85
memsetFunction · 0.85
rte_kvargs_processFunction · 0.85
rte_kvargs_freeFunction · 0.85

Tested by

no test coverage detected