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

Function vip6_cfg_handler

lib/ff_config.c:429–476  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

427
428#ifdef INET6
429static int
430vip6_cfg_handler(struct ff_port_cfg *cur_port_cfg, struct ff_vlan_cfg *cur_vlan_cfg)
431{
432 //vip6 cfg
433 int ret, nb_vip6;
434 char *vip_addr6_array[VIP_MAX_NUM], *vip_addr6_str;
435 char **vip_addr6_array_p;
436
437 if (cur_port_cfg) {
438 vip_addr6_str = cur_port_cfg->vip_addr6_str;
439 } else if (cur_vlan_cfg) {
440 vip_addr6_str = cur_vlan_cfg->vip_addr6_str;
441 } else {
442 fprintf(stdout, "vip6_cfg_handler cur_port_cfg and cur_vlan_cfg both NULL, not set vip_addr\n");
443 return 1;
444 }
445
446 ret = rte_strsplit(vip_addr6_str, strlen(vip_addr6_str),
447 &vip_addr6_array[0], VIP_MAX_NUM, ';');
448 if (ret == 0) {
449 fprintf(stdout, "vip6_cfg_handler nb_vip6 is 0, not set vip_addr6 or set invalid vip_addr6 %s\n",
450 vip_addr6_str);
451 return 1;
452 }
453
454 nb_vip6 = ret;
455
456 vip_addr6_array_p = (char **) calloc(nb_vip6, sizeof(char *));
457 if (vip_addr6_array_p == NULL) {
458 fprintf(stderr, "vip6_cfg_handler malloc failed\n");
459 goto err;
460 }
461
462 memcpy(vip_addr6_array_p, vip_addr6_array, nb_vip6 * sizeof(char *));
463
464 if (cur_port_cfg) {
465 cur_port_cfg->nb_vip6 = nb_vip6;
466 cur_port_cfg->vip_addr6_array = vip_addr6_array_p;
467 } else if (cur_vlan_cfg) {
468 cur_vlan_cfg->nb_vip6 = nb_vip6;
469 cur_vlan_cfg->vip_addr6_array = vip_addr6_array_p;
470 }
471
472 return 1;
473
474err:
475 return 0;
476}
477#endif
478
479#ifdef FF_IPFW

Callers 1

ff_config.cFile · 0.85

Calls 3

rte_strsplitFunction · 0.85
callocFunction · 0.85
memcpyFunction · 0.50

Tested by

no test coverage detected