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 <david@gibson.dropbear.id.au> [sbrivio: Whitespace fixes] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:

committed by
Stefano Brivio

parent
c984ee5afd
commit
5e12d23acb
4
pasta.c
4
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);
|
||||
|
Reference in New Issue
Block a user