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 --- pasta.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pasta.c') diff --git a/pasta.c b/pasta.c index cd37d16..2d7b5a1 100644 --- a/pasta.c +++ b/pasta.c @@ -195,14 +195,14 @@ void pasta_ns_conf(struct ctx *c) nl_link(1, c->pasta_ifi, c->mac_guest, 1, c->mtu); - if (c->v4) { + if (c->ifi4) { prefix_len = __builtin_popcount(c->mask4); nl_addr(1, c->pasta_ifi, AF_INET, &c->addr4, &prefix_len, NULL); nl_route(1, c->pasta_ifi, AF_INET, &c->gw4); } - if (c->v6) { + if (c->ifi6) { prefix_len = 64; nl_addr(1, c->pasta_ifi, AF_INET6, &c->addr6, &prefix_len, NULL); -- cgit v1.2.3