aboutgitcodebugslistschat
path: root/pasta.c
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2021-10-19 09:01:27 +0200
committerStefano Brivio <sbrivio@redhat.com>2021-10-19 09:01:27 +0200
commit17600d6d6ef0edf60bbf64c5bef594a8a07547cc (patch)
tree7985a9dde7c81ba098296fdcfe63c070b4e36253 /pasta.c
parent1ac0d52820e0cfd6c7f301e3f5d5717cda4dea88 (diff)
downloadpasst-17600d6d6ef0edf60bbf64c5bef594a8a07547cc.tar
passt-17600d6d6ef0edf60bbf64c5bef594a8a07547cc.tar.gz
passt-17600d6d6ef0edf60bbf64c5bef594a8a07547cc.tar.bz2
passt-17600d6d6ef0edf60bbf64c5bef594a8a07547cc.tar.lz
passt-17600d6d6ef0edf60bbf64c5bef594a8a07547cc.tar.xz
passt-17600d6d6ef0edf60bbf64c5bef594a8a07547cc.tar.zst
passt-17600d6d6ef0edf60bbf64c5bef594a8a07547cc.zip
netlink, conf: Actually get prefix/mask length
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'pasta.c')
-rw-r--r--pasta.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/pasta.c b/pasta.c
index b609e36..fe0bf0e 100644
--- a/pasta.c
+++ b/pasta.c
@@ -233,16 +233,21 @@ void pasta_ns_conf(struct ctx *c)
nl_link(1, 1 /* lo */, MAC_ZERO, 1, 0);
if (c->pasta_conf_ns) {
+ int prefix_len;
+
nl_link(1, c->pasta_ifi, c->mac_guest, 1, c->mtu);
if (c->v4) {
+ prefix_len = __builtin_popcount(c->mask4);
nl_addr(1, c->pasta_ifi, AF_INET, &c->addr4,
- __builtin_popcount(c->mask4), NULL);
+ &prefix_len, NULL);
nl_route(1, c->pasta_ifi, AF_INET, &c->gw4);
}
if (c->v6) {
- nl_addr(1, c->pasta_ifi, AF_INET6, &c->addr6, 64, NULL);
+ prefix_len = 64;
+ nl_addr(1, c->pasta_ifi, AF_INET6, &c->addr6,
+ &prefix_len, NULL);
nl_route(1, c->pasta_ifi, AF_INET6, &c->gw6);
}
} else {