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

Function failsafe_args_parse

dpdk/drivers/net/failsafe/failsafe_args.c:378–441  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

376}
377
378int
379failsafe_args_parse(struct rte_eth_dev *dev, const char *params)
380{
381 struct fs_priv *priv;
382 char mut_params[DEVARGS_MAXLEN] = "";
383 struct rte_kvargs *kvlist = NULL;
384 unsigned int arg_count;
385 size_t n;
386 int ret;
387
388 priv = PRIV(dev);
389 ret = 0;
390 priv->subs_tx = FAILSAFE_MAX_ETHPORTS;
391 /* default parameters */
392 n = strlcpy(mut_params, params, sizeof(mut_params));
393 if (n >= sizeof(mut_params)) {
394 ERROR("Parameter string too long (>=%zu)",
395 sizeof(mut_params));
396 return -ENOMEM;
397 }
398 ret = fs_parse_sub_devices(fs_parse_device_param,
399 dev, params);
400 if (ret < 0)
401 return ret;
402 ret = fs_remove_sub_devices_definition(mut_params);
403 if (ret < 0)
404 return ret;
405 if (strnlen(mut_params, sizeof(mut_params)) > 0) {
406 kvlist = rte_kvargs_parse(mut_params,
407 pmd_failsafe_init_parameters);
408 if (kvlist == NULL) {
409 ERROR("Error parsing parameters, usage:"
410 PMD_FAILSAFE_PARAM_STRING);
411 return -1;
412 }
413 /* PLUG_IN event poll timer */
414 arg_count = rte_kvargs_count(kvlist,
415 PMD_FAILSAFE_HOTPLUG_POLL_KVARG);
416 if (arg_count == 1) {
417 ret = rte_kvargs_process(kvlist,
418 PMD_FAILSAFE_HOTPLUG_POLL_KVARG,
419 &fs_get_u64_arg, &failsafe_hotplug_poll);
420 if (ret < 0)
421 goto free_kvlist;
422 }
423 /* MAC addr */
424 arg_count = rte_kvargs_count(kvlist,
425 PMD_FAILSAFE_MAC_KVARG);
426 if (arg_count > 0) {
427 ret = rte_kvargs_process(kvlist,
428 PMD_FAILSAFE_MAC_KVARG,
429 &fs_get_mac_addr_arg,
430 &dev->data->mac_addrs[0]);
431 if (ret < 0)
432 goto free_kvlist;
433
434 failsafe_mac_from_arg = 1;
435 }

Callers 1

fs_eth_dev_createFunction · 0.85

Calls 8

fs_parse_sub_devicesFunction · 0.85
strnlenFunction · 0.85
rte_kvargs_parseFunction · 0.85
rte_kvargs_countFunction · 0.85
rte_kvargs_processFunction · 0.85
rte_kvargs_freeFunction · 0.85
strlcpyFunction · 0.50

Tested by

no test coverage detected