summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorflorian <florian@openbsd.org>2021-03-21 18:25:24 +0000
committerflorian <florian@openbsd.org>2021-03-21 18:25:24 +0000
commit804ba004a3c6e32b6d518dc386f786a27bcddcc5 (patch)
treeee4494bef843a85cab23f176049df470d2174190 /sbin
parentwg(4): fix race between tx/rx handshakes, from Matt Dunwoodie, ok mpi@ (diff)
downloadwireguard-openbsd-804ba004a3c6e32b6d518dc386f786a27bcddcc5.tar.xz
wireguard-openbsd-804ba004a3c6e32b6d518dc386f786a27bcddcc5.zip
Use new terminology of RFC 8981 and (mechanically) replace "privacy"
with "temporary".
Diffstat (limited to 'sbin')
-rw-r--r--sbin/slaacd/engine.c59
-rw-r--r--sbin/slaacd/engine.h4
-rw-r--r--sbin/slaacd/frontend.c10
-rw-r--r--sbin/slaacd/slaacd.c4
-rw-r--r--sbin/slaacd/slaacd.h10
5 files changed, 44 insertions, 43 deletions
diff --git a/sbin/slaacd/engine.c b/sbin/slaacd/engine.c
index 35eb7606272..07e55b98fbd 100644
--- a/sbin/slaacd/engine.c
+++ b/sbin/slaacd/engine.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: engine.c,v 1.70 2021/03/21 13:59:22 florian Exp $ */
+/* $OpenBSD: engine.c,v 1.71 2021/03/21 18:25:24 florian Exp $ */
/*
* Copyright (c) 2017 Florian Obser <florian@openbsd.org>
@@ -89,7 +89,7 @@
#define MAX_RTR_SOLICITATIONS 3
/*
- * Constants for RFC 8981 autoconf privacy extensions
+ * Constants for RFC 8981 temporary address extensions
*
* PRIV_PREFERRED_LIFETIME > (PRIV_MAX_DESYNC_FACTOR + PRIV_REGEN_ADVANCE)
*/
@@ -198,7 +198,7 @@ struct address_proposal {
struct sockaddr_in6 addr;
struct in6_addr mask;
struct in6_addr prefix;
- int privacy;
+ int temporary;
uint8_t prefix_len;
uint32_t vltime;
uint32_t pltime;
@@ -249,7 +249,7 @@ struct slaacd_iface {
uint32_t rdomain;
int running;
int autoconf;
- int autoconfprivacy;
+ int temporary;
int soii;
struct ether_addr hw_address;
struct sockaddr_in6 ll_address;
@@ -739,7 +739,7 @@ engine_dispatch_main(int fd, short event, void *bula)
addr_proposal->prefix.s6_addr[i] &=
addr_proposal->mask.s6_addr[i];
- addr_proposal->privacy = imsg_addrinfo.privacy;
+ addr_proposal->temporary = imsg_addrinfo.temporary;
addr_proposal->prefix_len =
in6_mask2prefixlen(&addr_proposal->mask);
@@ -788,7 +788,7 @@ send_interface_info(struct slaacd_iface *iface, pid_t pid)
cei.if_index = iface->if_index;
cei.running = iface->running;
cei.autoconf = iface->autoconf;
- cei.autoconfprivacy = iface->autoconfprivacy;
+ cei.temporary = iface->temporary;
cei.soii = iface->soii;
memcpy(&cei.hw_address, &iface->hw_address, sizeof(struct ether_addr));
memcpy(&cei.ll_address, &iface->ll_address,
@@ -869,7 +869,7 @@ send_interface_info(struct slaacd_iface *iface, pid_t pid)
memcpy(&cei_addr_proposal.prefix, &addr_proposal->prefix,
sizeof(cei_addr_proposal.prefix));
cei_addr_proposal.prefix_len = addr_proposal->prefix_len;
- cei_addr_proposal.privacy = addr_proposal->privacy;
+ cei_addr_proposal.temporary = addr_proposal->temporary;
cei_addr_proposal.vltime = addr_proposal->vltime;
cei_addr_proposal.pltime = addr_proposal->pltime;
@@ -1092,7 +1092,7 @@ engine_update_iface(struct imsg_ifinfo *imsg_ifinfo)
iface->running = imsg_ifinfo->running;
iface->link_state = imsg_ifinfo->link_state;
iface->autoconf = imsg_ifinfo->autoconf;
- iface->autoconfprivacy = imsg_ifinfo->autoconfprivacy;
+ iface->temporary = imsg_ifinfo->temporary;
iface->soii = imsg_ifinfo->soii;
memcpy(&iface->hw_address, &imsg_ifinfo->hw_address,
sizeof(struct ether_addr));
@@ -1115,8 +1115,8 @@ engine_update_iface(struct imsg_ifinfo *imsg_ifinfo)
need_refresh = 1;
}
- if (iface->autoconfprivacy != imsg_ifinfo->autoconfprivacy) {
- iface->autoconfprivacy = imsg_ifinfo->autoconfprivacy;
+ if (iface->temporary != imsg_ifinfo->temporary) {
+ iface->temporary = imsg_ifinfo->temporary;
need_refresh = 1;
}
@@ -1410,7 +1410,7 @@ err:
void
gen_addr(struct slaacd_iface *iface, struct radv_prefix *prefix, struct
- address_proposal *addr_proposal, int privacy)
+ address_proposal *addr_proposal, int temporary)
{
SHA2_CTX ctx;
struct in6_addr iid;
@@ -1437,7 +1437,7 @@ gen_addr(struct slaacd_iface *iface, struct radv_prefix *prefix, struct
addr_proposal->addr.sin6_addr.s6_addr32[i] &=
addr_proposal->mask.s6_addr32[i];
- if (privacy) {
+ if (temporary) {
arc4random_buf(&iid.s6_addr, sizeof(iid.s6_addr));
} else if (iface->soii) {
SHA512Init(&ctx);
@@ -1829,9 +1829,9 @@ update_iface_ra_prefix(struct slaacd_iface *iface, struct radv *ra,
{
struct address_proposal *addr_proposal;
uint32_t remaining_lifetime, pltime, vltime;
- int found, found_privacy, duplicate_found;
+ int found, found_temporary, duplicate_found;
- found = found_privacy = duplicate_found = 0;
+ found = found_temporary = duplicate_found = 0;
LIST_FOREACH(addr_proposal, &iface->addr_proposals, entries) {
if (prefix->prefix_len == addr_proposal-> prefix_len &&
@@ -1864,7 +1864,7 @@ update_iface_ra_prefix(struct slaacd_iface *iface, struct radv *ra,
else
vltime = TWO_HOURS;
- if (addr_proposal->privacy) {
+ if (addr_proposal->temporary) {
struct timespec now;
int64_t ltime, mtime;
@@ -1886,7 +1886,7 @@ update_iface_ra_prefix(struct slaacd_iface *iface, struct radv *ra,
vltime = ltime > 0 ? ltime : 0;
if ((mtime - now.tv_sec) > PRIV_REGEN_ADVANCE)
- found_privacy = 1;
+ found_temporary = 1;
} else {
pltime = prefix->pltime;
found = 1;
@@ -1930,14 +1930,14 @@ update_iface_ra_prefix(struct slaacd_iface *iface, struct radv *ra,
/* new proposal */
gen_address_proposal(iface, ra, prefix, 0);
- /* privacy addresses do not depend on eui64 */
- if (!found_privacy && iface->autoconfprivacy) {
+ /* temporary addresses do not depend on eui64 */
+ if (!found_temporary && iface->temporary) {
if (prefix->pltime >= PRIV_REGEN_ADVANCE) {
- /* new privacy proposal */
+ /* new temporary proposal */
gen_address_proposal(iface, ra, prefix, 1);
} else if (prefix->pltime > 0) {
log_warnx("%s: pltime from %s is too small: %d < %d; "
- "not generating privacy address", __func__,
+ "not generating temporary address", __func__,
sin6_to_str(&ra->from), prefix->pltime,
PRIV_REGEN_ADVANCE);
}
@@ -2030,7 +2030,7 @@ configure_address(struct address_proposal *addr_proposal)
memcpy(&address.mask, &addr_proposal->mask, sizeof(address.mask));
address.vltime = addr_proposal->vltime;
address.pltime = addr_proposal->pltime;
- address.privacy = addr_proposal->privacy;
+ address.temporary = addr_proposal->temporary;
address.mtu = addr_proposal->mtu;
engine_imsg_compose_main(IMSG_CONFIGURE_ADDRESS, 0, &address,
@@ -2039,7 +2039,7 @@ configure_address(struct address_proposal *addr_proposal)
void
gen_address_proposal(struct slaacd_iface *iface, struct radv *ra, struct
- radv_prefix *prefix, int privacy)
+ radv_prefix *prefix, int temporary)
{
struct address_proposal *addr_proposal;
const char *hbuf;
@@ -2061,12 +2061,12 @@ gen_address_proposal(struct slaacd_iface *iface, struct radv *ra, struct
sizeof(addr_proposal->hw_address));
memcpy(&addr_proposal->soiikey, &iface->soiikey,
sizeof(addr_proposal->soiikey));
- addr_proposal->privacy = privacy;
+ addr_proposal->temporary = temporary;
memcpy(&addr_proposal->prefix, &prefix->prefix,
sizeof(addr_proposal->prefix));
addr_proposal->prefix_len = prefix->prefix_len;
- if (privacy) {
+ if (temporary) {
addr_proposal->vltime = MINIMUM(prefix->vltime,
PRIV_VALID_LIFETIME);
addr_proposal->desync_factor =
@@ -2086,7 +2086,7 @@ gen_address_proposal(struct slaacd_iface *iface, struct radv *ra, struct
iface->cur_mtu = ra->mtu;
}
- gen_addr(iface, prefix, addr_proposal, privacy);
+ gen_addr(iface, prefix, addr_proposal, temporary);
LIST_INSERT_HEAD(&iface->addr_proposals, addr_proposal, entries);
configure_address(addr_proposal);
@@ -2367,12 +2367,13 @@ address_proposal_timeout(int fd, short events, void *arg)
log_debug("%s: iface %d: %s [%s], priv: %s", __func__,
addr_proposal->if_index, hbuf,
proposal_state_name[addr_proposal->state],
- addr_proposal->privacy ? "y" : "n");
+ addr_proposal->temporary ? "y" : "n");
switch (addr_proposal->state) {
case PROPOSAL_CONFIGURED:
- log_debug("PROPOSAL_CONFIGURED timeout: id: %lld, privacy: %s",
- addr_proposal->id, addr_proposal->privacy ? "y" : "n");
+ log_debug("PROPOSAL_CONFIGURED timeout: id: %lld, temporary: "
+ "%s", addr_proposal->id, addr_proposal->temporary ?
+ "y" : "n");
addr_proposal->next_timeout = 1;
addr_proposal->timeout_count = 0;
@@ -2403,7 +2404,7 @@ address_proposal_timeout(int fd, short events, void *arg)
0, &addr_proposal->if_index,
sizeof(addr_proposal->if_index));
- if (addr_proposal->privacy) {
+ if (addr_proposal->temporary) {
addr_proposal->next_timeout = 0;
break; /* just let it expire */
}
diff --git a/sbin/slaacd/engine.h b/sbin/slaacd/engine.h
index e97538f539c..7a8551d2c50 100644
--- a/sbin/slaacd/engine.h
+++ b/sbin/slaacd/engine.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: engine.h,v 1.5 2020/09/14 09:07:05 florian Exp $ */
+/* $OpenBSD: engine.h,v 1.6 2021/03/21 18:25:24 florian Exp $ */
/*
* Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
@@ -23,7 +23,7 @@ struct imsg_configure_address {
uint32_t vltime;
uint32_t pltime;
uint32_t mtu;
- int privacy;
+ int temporary;
};
struct imsg_configure_dfr {
diff --git a/sbin/slaacd/frontend.c b/sbin/slaacd/frontend.c
index ebd8e9b792e..10fd6b8b9aa 100644
--- a/sbin/slaacd/frontend.c
+++ b/sbin/slaacd/frontend.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: frontend.c,v 1.54 2021/03/20 17:07:49 florian Exp $ */
+/* $OpenBSD: frontend.c,v 1.55 2021/03/21 18:25:24 florian Exp $ */
/*
* Copyright (c) 2017 Florian Obser <florian@openbsd.org>
@@ -533,7 +533,7 @@ update_iface(uint32_t if_index, char* if_name)
imsg_ifinfo.running = (flags & (IFF_UP | IFF_RUNNING)) == (IFF_UP |
IFF_RUNNING);
imsg_ifinfo.autoconf = (xflags & IFXF_AUTOCONF6);
- imsg_ifinfo.autoconfprivacy = (xflags & IFXF_AUTOCONF6TEMP);
+ imsg_ifinfo.temporary = (xflags & IFXF_AUTOCONF6TEMP);
imsg_ifinfo.soii = !(xflags & IFXF_INET6_NOSOII);
if (getifaddrs(&ifap) != 0)
@@ -635,7 +635,7 @@ update_autoconf_addresses(uint32_t if_index, char* if_name)
IN6_IFF_TEMPORARY)))
continue;
- imsg_addrinfo.privacy = ifr6.ifr_ifru.ifru_flags6 &
+ imsg_addrinfo.temporary = ifr6.ifr_ifru.ifru_flags6 &
IN6_IFF_TEMPORARY ? 1 : 0;
memset(&ifr6, 0, sizeof(ifr6));
@@ -685,7 +685,7 @@ const char*
flags_to_str(int flags)
{
static char buf[sizeof(" anycast tentative duplicated detached "
- "deprecated autoconf autoconfprivacy")];
+ "deprecated autoconf temporary")];
buf[0] = '\0';
if (flags & IN6_IFF_ANYCAST)
@@ -701,7 +701,7 @@ flags_to_str(int flags)
if (flags & IN6_IFF_AUTOCONF)
strlcat(buf, " autoconf", sizeof(buf));
if (flags & IN6_IFF_TEMPORARY)
- strlcat(buf, " autoconfprivacy", sizeof(buf));
+ strlcat(buf, " temporary", sizeof(buf));
return (buf);
}
diff --git a/sbin/slaacd/slaacd.c b/sbin/slaacd/slaacd.c
index 6aa603e850f..9e1e9998b2f 100644
--- a/sbin/slaacd/slaacd.c
+++ b/sbin/slaacd/slaacd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: slaacd.c,v 1.58 2021/03/07 10:31:20 florian Exp $ */
+/* $OpenBSD: slaacd.c,v 1.59 2021/03/21 18:25:24 florian Exp $ */
/*
* Copyright (c) 2017 Florian Obser <florian@openbsd.org>
@@ -657,7 +657,7 @@ configure_interface(struct imsg_configure_address *address)
in6_addreq.ifra_flags |= IN6_IFF_AUTOCONF;
- if (address->privacy)
+ if (address->temporary)
in6_addreq.ifra_flags |= IN6_IFF_TEMPORARY;
log_debug("%s: %s", __func__, if_name);
diff --git a/sbin/slaacd/slaacd.h b/sbin/slaacd/slaacd.h
index 4b6ca984757..0bad1163846 100644
--- a/sbin/slaacd/slaacd.h
+++ b/sbin/slaacd/slaacd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: slaacd.h,v 1.32 2021/03/20 17:07:49 florian Exp $ */
+/* $OpenBSD: slaacd.h,v 1.33 2021/03/21 18:25:24 florian Exp $ */
/*
* Copyright (c) 2017 Florian Obser <florian@openbsd.org>
@@ -88,7 +88,7 @@ struct ctl_engine_info {
uint32_t if_index;
int running;
int autoconf;
- int autoconfprivacy;
+ int temporary;
int soii;
struct ether_addr hw_address;
struct sockaddr_in6 ll_address;
@@ -136,7 +136,7 @@ struct ctl_engine_info_address_proposal {
struct timespec uptime;
struct sockaddr_in6 addr;
struct in6_addr prefix;
- int privacy;
+ int temporary;
uint8_t prefix_len;
uint32_t vltime;
uint32_t pltime;
@@ -171,7 +171,7 @@ struct imsg_addrinfo {
uint32_t if_index;
struct sockaddr_in6 addr;
struct in6_addr mask;
- int privacy;
+ int temporary;
uint32_t vltime;
uint32_t pltime;
};
@@ -191,7 +191,7 @@ struct imsg_ifinfo {
int running;
int link_state;
int autoconf;
- int autoconfprivacy;
+ int temporary;
int soii;
struct ether_addr hw_address;
struct sockaddr_in6 ll_address;