From 5e12d23acbda8871848c6221a4f14e5b7daff66f Mon Sep 17 00:00:00 2001 From: David Gibson Date: Fri, 22 Jul 2022 15:31:17 +1000 Subject: Separate IPv4 and IPv6 configuration After recent changes, conf_ip() now has essentially entirely disjoint paths for IPv4 and IPv6 configuration. So, it's cleaner to split them out into different functions conf_ip4() and conf_ip6(). Splitting these out also lets us make the interface a bit nicer, having them return success or failure directly, rather than manipulating c->v4 and c->v6 to indicate success/failure of the two versions. Since these functions may also initialize the interface index for each protocol, it turns out we can then drop c->v4 and c->v6 entirely, replacing tests on those with tests on whether c->ifi4 or c->ifi6 is non-zero (since a 0 interface index is never valid). Signed-off-by: David Gibson [sbrivio: Whitespace fixes] Signed-off-by: Stefano Brivio --- passt.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'passt.h') diff --git a/passt.h b/passt.h index 23145c6..a8d5992 100644 --- a/passt.h +++ b/passt.h @@ -121,8 +121,7 @@ enum passt_modes { * @fd_tap: File descriptor for AF_UNIX socket or tuntap device * @mac: Host MAC address * @mac_guest: MAC address of guest or namespace, seen or configured - * @v4: Enable IPv4 transport - * @ifi4: Index of routable interface for IPv4 + * @ifi4: Index of routable interface for IPv4, 0 if IPv4 disabled * @addr4: IPv4 address for external, routable interface * @addr4_seen: Latest IPv4 address seen as source from tap * @mask4: IPv4 netmask, network order @@ -130,8 +129,7 @@ enum passt_modes { * @dns4: IPv4 DNS addresses, zero-terminated, network order * @dns4_fwd: Address forwarded (UDP) to first IPv4 DNS, network order * @dns_search: DNS search list - * @v6: Enable IPv6 transport - * @ifi6: Index of routable interface for IPv6 + * @ifi6: Index of routable interface for IPv6, 0 if IPv6 disabled * @addr6: IPv6 address for external, routable interface * @addr6_ll: Link-local IPv6 address on external, routable interface * @addr6_seen: Latest IPv6 global/site address seen as source from tap @@ -193,7 +191,6 @@ struct ctx { unsigned char mac[ETH_ALEN]; unsigned char mac_guest[ETH_ALEN]; - int v4; unsigned int ifi4; uint32_t addr4; uint32_t addr4_seen; @@ -204,7 +201,6 @@ struct ctx { struct fqdn dns_search[MAXDNSRCH]; - int v6; unsigned int ifi6; struct in6_addr addr6; struct in6_addr addr6_ll; -- cgit v1.2.3