Make substructures for IPv4 and IPv6 specific context information
The context structure contains a batch of fields specific to IPv4 and to IPv6 connectivity. Split those out into a sub-structure. This allows the conf_ip4() and conf_ip6() functions, which take the entire context but touch very little of it, to be given more specific parameters, making it clearer what it affects without stepping through the code. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:

committed by
Stefano Brivio

parent
5e12d23acb
commit
16f5586bb8
10
pasta.c
10
pasta.c
@@ -196,17 +196,17 @@ void pasta_ns_conf(struct ctx *c)
|
||||
nl_link(1, c->pasta_ifi, c->mac_guest, 1, c->mtu);
|
||||
|
||||
if (c->ifi4) {
|
||||
prefix_len = __builtin_popcount(c->mask4);
|
||||
nl_addr(1, c->pasta_ifi, AF_INET, &c->addr4,
|
||||
prefix_len = __builtin_popcount(c->ip4.mask);
|
||||
nl_addr(1, c->pasta_ifi, AF_INET, &c->ip4.addr,
|
||||
&prefix_len, NULL);
|
||||
nl_route(1, c->pasta_ifi, AF_INET, &c->gw4);
|
||||
nl_route(1, c->pasta_ifi, AF_INET, &c->ip4.gw);
|
||||
}
|
||||
|
||||
if (c->ifi6) {
|
||||
prefix_len = 64;
|
||||
nl_addr(1, c->pasta_ifi, AF_INET6, &c->addr6,
|
||||
nl_addr(1, c->pasta_ifi, AF_INET6, &c->ip6.addr,
|
||||
&prefix_len, NULL);
|
||||
nl_route(1, c->pasta_ifi, AF_INET6, &c->gw6);
|
||||
nl_route(1, c->pasta_ifi, AF_INET6, &c->ip6.gw);
|
||||
}
|
||||
} else {
|
||||
nl_link(1, c->pasta_ifi, c->mac_guest, 0, 0);
|
||||
|
Reference in New Issue
Block a user