diff options
Diffstat (limited to 'VNFs/DPPD-PROX/prox_args.c')
-rw-r--r-- | VNFs/DPPD-PROX/prox_args.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/VNFs/DPPD-PROX/prox_args.c b/VNFs/DPPD-PROX/prox_args.c index b99796b7..df69f979 100644 --- a/VNFs/DPPD-PROX/prox_args.c +++ b/VNFs/DPPD-PROX/prox_args.c @@ -534,6 +534,17 @@ static int get_port_cfg(unsigned sindex, char *str, void *data) } cfg->promiscuous = val; } + else if (STR_EQ(str, "multicast")) { + uint32_t val; + if (cfg->nb_mc_addr >= NB_MCAST_ADDR) { + plog_err("too many multicast addresses\n"); + return -1; + } + if (parse_mac(&cfg->mc_addr[cfg->nb_mc_addr], pkey)) { + return -1; + } + cfg->nb_mc_addr++ ; + } else if (STR_EQ(str, "lsc")) { cfg->lsc_set_explicitely = 1; uint32_t val; @@ -856,9 +867,6 @@ static int get_core_cfg(unsigned sindex, char *str, void *data) if (STR_EQ(str, "fast path handle arp")) { return parse_flag(&targ->runtime_flags, TASK_FP_HANDLE_ARP, pkey); } - if (STR_EQ(str, "multiple arp")) { - return parse_flag(&targ->flags, TASK_MULTIPLE_MAC, pkey); - } /* Using tx port name, only a _single_ port can be assigned to a task. */ if (STR_EQ(str, "tx port")) { @@ -1356,6 +1364,9 @@ static int get_core_cfg(unsigned sindex, char *str, void *data) targ->flags |= TASK_ARG_SRC_MAC_SET; return 0; } + if (STR_EQ(str, "igmp ipv4")) { /* IGMP Group */ + return parse_ip(&targ->igmp_address, pkey); + } if (STR_EQ(str, "gateway ipv4")) { /* Gateway IP address used when generating */ if ((targ->flags & TASK_ARG_L3) == 0) plog_warn("gateway ipv4 configured but L3 sub mode not enabled\n"); |