diff --git a/bsd/sys/net/route.h b/bsd/sys/net/route.h
index 66192052f4330e36ffe8cbcfed5272e09cfaa744..a33f96e65d20e62afa9087580e58323abcaba25e 100644
--- a/bsd/sys/net/route.h
+++ b/bsd/sys/net/route.h
@@ -307,6 +307,11 @@ struct rt_addrinfo {
 	sizeof(long)		:				\
 	1 + ( (((struct sockaddr *)(sa))->sa_len - 1) | (sizeof(long) - 1) ) )
 
+#define SA_SIZE_ALWAYS(sa)                     \
+    (  (((struct sockaddr *)(sa))->sa_len == 0) ?  \
+    sizeof(long)        :               \
+    1 + ( (((struct sockaddr *)(sa))->sa_len - 1) | (sizeof(long) - 1) ) )
+
 #ifdef _KERNEL
 
 #define RT_LINK_IS_UP(ifp)	(!((ifp)->if_capabilities & IFCAP_LINKSTATE) \