diff options
author | Xavier Simonart <xavier.simonart@intel.com> | 2020-05-29 00:06:45 +0200 |
---|---|---|
committer | Xavier Simonart <xavier.simonart@intel.com> | 2020-05-29 23:51:04 +0200 |
commit | 33d5f47e781c6986232378b7f8cadd17ac8894fe (patch) | |
tree | 3d120cd0d22dfae25dd01a372b1ecfb49ee970e8 /VNFs/DPPD-PROX/parse_utils.c | |
parent | 51fd77bfea70da57af93390e1992b16022e2c88f (diff) |
VLAN support with vdev devices + few other changes
- vdev devices now support VLAN.
- kernel tap device can be configured with a netmask (/24 was
always used in previous version).
- when sending a (fake) packet to the kernel, this packet will now
not be routed by the kernel (i.e. it will leave through the
interface configured by PROX). This might change in the futture
when PROX supports multiple VLANs per port. But today it prevents
ARP being sent on management interfaces.
- Log error in case kernel unable to send packet.
- Added support for comments (';') in lua sections.
- Prevent duplication of local_ipv4 - should now be configured in port section
local_ipv4 in core section still supported
Change-Id: I8f9a40fe6ad6f3013ff91b58b44627c7f34081e6
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
Diffstat (limited to 'VNFs/DPPD-PROX/parse_utils.c')
-rw-r--r-- | VNFs/DPPD-PROX/parse_utils.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/VNFs/DPPD-PROX/parse_utils.c b/VNFs/DPPD-PROX/parse_utils.c index ab0e03b7..9ceb1c59 100644 --- a/VNFs/DPPD-PROX/parse_utils.c +++ b/VNFs/DPPD-PROX/parse_utils.c @@ -311,7 +311,7 @@ int parse_ip(uint32_t *addr, const char *str2) return 0; } -int parse_ip4_cidr(struct ip4_subnet *val, const char *str2) +int parse_ip4_and_prefix(struct ip4_subnet *val, const char *str2) { char str[MAX_STR_LEN_PROC]; char *slash; @@ -341,10 +341,16 @@ int parse_ip4_cidr(struct ip4_subnet *val, const char *str2) if (parse_ip(&val->ip, str)) return -2; + return 0; +} + +int parse_ip4_cidr(struct ip4_subnet *val, const char *str2) +{ + int rc = parse_ip4_and_prefix(val, str2); /* Apply mask making all bits outside the prefix zero */ - val->ip &= ((int)(1 << 31)) >> (prefix - 1); + val->ip &= ((int)(1 << 31)) >> (val->prefix - 1); - return 0; + return rc; } int parse_ip6_cidr(struct ip6_subnet *val, const char *str2) |