diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2021-10-19 09:01:27 +0200 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2021-10-19 09:01:27 +0200 |
commit | 17600d6d6ef0edf60bbf64c5bef594a8a07547cc (patch) | |
tree | 7985a9dde7c81ba098296fdcfe63c070b4e36253 /pasta.c | |
parent | 1ac0d52820e0cfd6c7f301e3f5d5717cda4dea88 (diff) | |
download | passt-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.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -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 { |