From 53cf9be02506124b0e148d0b00a009a08f1582c8 Mon Sep 17 00:00:00 2001
From: Avi Kivity <avi@cloudius-systems.com>
Date: Thu, 3 Oct 2013 00:13:26 +0200
Subject: [PATCH] bsd: rename ifaddr

The bsd ifaddr struct conflicts with the osv ifaddr struct, which is a
public interface.  Rename the bsd struct to avoid conflict.

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
Tested-By: Benoit Canet <benoit@irqsave.net>
---
 bsd/porting/route.c                 |  4 +-
 bsd/sys/compat/linux/linux_ioctl.c  |  4 +-
 bsd/sys/dev/xen/netfront/netfront.c |  4 +-
 bsd/sys/net/if.c                    | 66 ++++++++++++++---------------
 bsd/sys/net/if_ethersubr.c          |  4 +-
 bsd/sys/net/if_loop.c               |  4 +-
 bsd/sys/net/if_var.h                | 44 +++++++++----------
 bsd/sys/net/route.c                 | 22 +++++-----
 bsd/sys/net/route.h                 | 12 +++---
 bsd/sys/net/rtsock.c                | 20 ++++-----
 bsd/sys/netinet/if_ether.c          |  8 ++--
 bsd/sys/netinet/if_ether.h          |  6 +--
 bsd/sys/netinet/in.c                | 14 +++---
 bsd/sys/netinet/in_pcb.c            |  2 +-
 bsd/sys/netinet/in_rmx.c            |  4 +-
 bsd/sys/netinet/in_var.h            |  8 ++--
 bsd/sys/netinet/ip_icmp.c           |  2 +-
 bsd/sys/netinet/ip_input.c          |  2 +-
 bsd/sys/netinet/raw_ip.c            |  6 +--
 19 files changed, 118 insertions(+), 118 deletions(-)

diff --git a/bsd/porting/route.c b/bsd/porting/route.c
index f6c1fdc2b..0be8463ca 100644
--- a/bsd/porting/route.c
+++ b/bsd/porting/route.c
@@ -171,7 +171,7 @@ static struct mbuf*  osv_route_rtmsg(int cmd, const char* destination,
     char *cp;
     int l = 0;
     int rtm_addrs;
-    struct ifaddr *ifa;
+    struct bsd_ifaddr *ifa;
 
     /* IPv4: Addresses */
     struct bsd_sockaddr_in dst;
@@ -313,7 +313,7 @@ void osv_route_arp_add(const char* if_name, const char* ip,
 const char* osv_get_if_mac_addr(const char* if_name)
 {
     struct ifnet* ifp;
-    struct ifaddr *ifa, *next;
+    struct bsd_ifaddr *ifa, *next;
 
     /* FIXME: where's the unref? */
     ifp = ifunit_ref(if_name);
diff --git a/bsd/sys/compat/linux/linux_ioctl.c b/bsd/sys/compat/linux/linux_ioctl.c
index 0dd7d8ea4..4d1aa9e4c 100644
--- a/bsd/sys/compat/linux/linux_ioctl.c
+++ b/bsd/sys/compat/linux/linux_ioctl.c
@@ -61,7 +61,7 @@ linux_ifconf(struct ifconf *ifc_p)
 {
 	struct l_ifreq ifr;
 	struct ifnet *ifp;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct sbuf *sb;
 	int full = 0, valid_len, max_len;
 
@@ -172,7 +172,7 @@ linux_gifflags(struct ifnet *ifp, struct l_ifreq *ifr)
 static int
 linux_gifhwaddr(struct ifnet *ifp, struct l_ifreq *ifr)
 {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct bsd_sockaddr_dl *sdl;
 	struct l_sockaddr *lsa_p = &ifr->ifr_hwaddr ;
 
diff --git a/bsd/sys/dev/xen/netfront/netfront.c b/bsd/sys/dev/xen/netfront/netfront.c
index fdb1a0d82..c3082d1a3 100644
--- a/bsd/sys/dev/xen/netfront/netfront.c
+++ b/bsd/sys/dev/xen/netfront/netfront.c
@@ -676,7 +676,7 @@ static void
 netfront_send_fake_arp(device_t dev, struct netfront_info *info)
 {
 	struct ifnet *ifp;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	
 	ifp = info->xn_ifp;
 	TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
@@ -1753,7 +1753,7 @@ xn_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 	struct netfront_info *sc = ifp->if_softc;
 	struct ifreq *ifr = (struct ifreq *) data;
 #ifdef INET
-	struct ifaddr *ifa = (struct ifaddr *)data;
+	struct bsd_ifaddr *ifa = (struct bsd_ifaddr *)data;
 #endif
 
 	int mask, error = 0;
diff --git a/bsd/sys/net/if.c b/bsd/sys/net/if.c
index f327750f7..d33a0a819 100644
--- a/bsd/sys/net/if.c
+++ b/bsd/sys/net/if.c
@@ -175,7 +175,7 @@ static	if_com_alloc_t *if_com_alloc[256];
 static	if_com_free_t *if_com_free[256];
 
 MALLOC_DEFINE(M_IFNET, "ifnet", "interface internals");
-MALLOC_DEFINE(M_IFADDR, "ifaddr", "interface address");
+MALLOC_DEFINE(M_IFADDR, "bsd_ifaddr", "interface address");
 MALLOC_DEFINE(M_IFMADDR, "ether_multi", "link-level multicast address");
 
 struct ifnet *
@@ -289,10 +289,10 @@ ifnet_setbyindex(u_short idx, struct ifnet *ifp)
 	IFNET_WUNLOCK();
 }
 
-struct ifaddr *
+struct bsd_ifaddr *
 ifaddr_byindex(u_short idx)
 {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 
 	IFNET_RLOCK_NOSLEEP();
 	ifa = ifnet_byindex_locked(idx)->if_addr;
@@ -532,7 +532,7 @@ if_attach_internal(struct ifnet *ifp, int vmove)
 	unsigned socksize, ifasize;
 	int namelen, masklen;
 	struct bsd_sockaddr_dl *sdl;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 
 	if (ifp->if_index == 0 || ifp != ifnet_byindex(ifp->if_index))
 		panic ("%s: BUG: if_attach called without if_alloc'd input()\n",
@@ -664,7 +664,7 @@ if_attachdomain1(struct ifnet *ifp)
 void
 if_purgeaddrs(struct ifnet *ifp)
 {
-	struct ifaddr *ifa, *next;
+	struct bsd_ifaddr *ifa, *next;
 
 	TAILQ_FOREACH_SAFE(ifa, &ifp->if_addrhead, ifa_link, next) {
 		if (ifa->ifa_addr->sa_family == AF_LINK)
@@ -730,7 +730,7 @@ if_detach(struct ifnet *ifp)
 static void
 if_detach_internal(struct ifnet *ifp, int vmove)
 {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct radix_node_head	*rnh;
 	int i, j;
 	struct domain *dp;
@@ -783,12 +783,12 @@ if_detach_internal(struct ifnet *ifp, int vmove)
 		if_dead(ifp);
 
 		/*
-		 * Remove link ifaddr pointer and maybe decrement if_index.
+		 * Remove link bsd_ifaddr pointer and maybe decrement if_index.
 		 * Clean up all addresses.
 		 */
 		ifp->if_addr = NULL;
 
-		/* We can now free link ifaddr. */
+		/* We can now free link bsd_ifaddr. */
 		if (!TAILQ_EMPTY(&ifp->if_addrhead)) {
 			ifa = TAILQ_FIRST(&ifp->if_addrhead);
 			TAILQ_REMOVE(&ifp->if_addrhead, ifa, ifa_link);
@@ -1168,22 +1168,22 @@ if_maddr_runlock(struct ifnet *ifp)
  * Reference count functions for ifaddrs.
  */
 void
-ifa_init(struct ifaddr *ifa)
+ifa_init(struct bsd_ifaddr *ifa)
 {
 
-	mtx_init(&ifa->ifa_mtx, "ifaddr", NULL, MTX_DEF);
+	mtx_init(&ifa->ifa_mtx, "bsd_ifaddr", NULL, MTX_DEF);
 	refcount_init(&ifa->ifa_refcnt, 1);
 }
 
 void
-ifa_ref(struct ifaddr *ifa)
+ifa_ref(struct bsd_ifaddr *ifa)
 {
 
 	refcount_acquire(&ifa->ifa_refcnt);
 }
 
 void
-ifa_free(struct ifaddr *ifa)
+ifa_free(struct bsd_ifaddr *ifa)
 {
 
 	if (refcount_release(&ifa->ifa_refcnt)) {
@@ -1193,7 +1193,7 @@ ifa_free(struct ifaddr *ifa)
 }
 
 int
-ifa_add_loopback_route(struct ifaddr *ifa, struct bsd_sockaddr *ia)
+ifa_add_loopback_route(struct bsd_ifaddr *ifa, struct bsd_sockaddr *ia)
 {
 	int error = 0;
 	struct rtentry *rt = NULL;
@@ -1222,7 +1222,7 @@ ifa_add_loopback_route(struct ifaddr *ifa, struct bsd_sockaddr *ia)
 }
 
 int
-ifa_del_loopback_route(struct ifaddr *ifa, struct bsd_sockaddr *ia)
+ifa_del_loopback_route(struct bsd_ifaddr *ifa, struct bsd_sockaddr *ia)
 {
 	int error = 0;
 	struct rt_addrinfo info;
@@ -1265,11 +1265,11 @@ ifa_del_loopback_route(struct ifaddr *ifa, struct bsd_sockaddr *ia)
  * Locate an interface based on a complete address.
  */
 /*ARGSUSED*/
-static struct ifaddr *
+static struct bsd_ifaddr *
 ifa_ifwithaddr_internal(struct bsd_sockaddr *addr, int getref)
 {
 	struct ifnet *ifp;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 
 	IFNET_RLOCK_NOSLEEP();
 	TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
@@ -1302,7 +1302,7 @@ done:
 	return (ifa);
 }
 
-struct ifaddr *
+struct bsd_ifaddr *
 ifa_ifwithaddr(struct bsd_sockaddr *addr)
 {
 
@@ -1320,11 +1320,11 @@ ifa_ifwithaddr_check(struct bsd_sockaddr *addr)
  * Locate an interface based on the broadcast address.
  */
 /* ARGSUSED */
-struct ifaddr *
+struct bsd_ifaddr *
 ifa_ifwithbroadaddr(struct bsd_sockaddr *addr)
 {
 	struct ifnet *ifp;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 
 	IFNET_RLOCK_NOSLEEP();
 	TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
@@ -1353,11 +1353,11 @@ done:
  * Locate the point to point interface with a given destination address.
  */
 /*ARGSUSED*/
-struct ifaddr *
+struct bsd_ifaddr *
 ifa_ifwithdstaddr(struct bsd_sockaddr *addr)
 {
 	struct ifnet *ifp;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 
 	IFNET_RLOCK_NOSLEEP();
 	TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
@@ -1386,12 +1386,12 @@ done:
  * Find an interface on a specific network.  If many, choice
  * is most specific found.
  */
-struct ifaddr *
+struct bsd_ifaddr *
 ifa_ifwithnet(struct bsd_sockaddr *addr, int ignore_ptp)
 {
 	struct ifnet *ifp;
-	struct ifaddr *ifa;
-	struct ifaddr *ifa_maybe = NULL;
+	struct bsd_ifaddr *ifa;
+	struct bsd_ifaddr *ifa_maybe = NULL;
 	u_int af = addr->sa_family;
 	char *addr_data = addr->sa_data, *cplim;
 
@@ -1498,13 +1498,13 @@ done:
  * Find an interface address specific to an interface best matching
  * a given address.
  */
-struct ifaddr *
+struct bsd_ifaddr *
 ifaof_ifpforaddr(struct bsd_sockaddr *addr, struct ifnet *ifp)
 {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	char *cp, *cp2, *cp3;
 	char *cplim;
-	struct ifaddr *ifa_maybe = NULL;
+	struct bsd_ifaddr *ifa_maybe = NULL;
 	u_int af = addr->sa_family;
 
 	if (af >= AF_MAX)
@@ -1555,7 +1555,7 @@ done:
 static void
 link_rtrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info)
 {
-	struct ifaddr *ifa, *oifa;
+	struct bsd_ifaddr *ifa, *oifa;
 	struct bsd_sockaddr *dst;
 	struct ifnet *ifp;
 
@@ -1582,7 +1582,7 @@ link_rtrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info)
 static void
 if_unroute(struct ifnet *ifp, int flag, int fam)
 {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 
 	KASSERT(flag == IFF_UP, ("if_unroute: flag != IFF_UP"));
 
@@ -1604,7 +1604,7 @@ if_unroute(struct ifnet *ifp, int flag, int fam)
 static void
 if_route(struct ifnet *ifp, int flag, int fam)
 {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 
 	KASSERT(flag == IFF_UP, ("if_route: flag != IFF_UP"));
 
@@ -1773,7 +1773,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, struct thread *td)
 	size_t descrlen;
 	char *descrbuf, *odescrbuf;
 	char new_name[IFNAMSIZ];
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct bsd_sockaddr_dl *sdl;
 
 	ifr = (struct ifreq *)data;
@@ -2439,7 +2439,7 @@ ifconf(u_long cmd, caddr_t data)
 {
 	struct ifconf *ifc = (struct ifconf *)data;
 	struct ifnet *ifp;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct ifreq ifr;
 	struct sbuf *sb;
 	int error, full = 0, valid_len, max_len;
@@ -2965,7 +2965,7 @@ int
 if_setlladdr(struct ifnet *ifp, const u_char *lladdr, int len)
 {
 	struct bsd_sockaddr_dl *sdl;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct ifreq ifr;
 
 	IF_ADDR_RLOCK(ifp);
diff --git a/bsd/sys/net/if_ethersubr.c b/bsd/sys/net/if_ethersubr.c
index 2cf943709..63d78c978 100644
--- a/bsd/sys/net/if_ethersubr.c
+++ b/bsd/sys/net/if_ethersubr.c
@@ -881,7 +881,7 @@ void
 ether_ifattach(struct ifnet *ifp, const u_int8_t *lla)
 {
 	int i;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct bsd_sockaddr_dl *sdl;
 
 	ifp->if_addrlen = ETHER_ADDR_LEN;
@@ -1020,7 +1020,7 @@ ether_crc32_be(const uint8_t *buf, size_t len)
 int
 ether_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
 {
-	struct ifaddr *ifa = (struct ifaddr *) data;
+	struct bsd_ifaddr *ifa = (struct bsd_ifaddr *) data;
 	struct ifreq *ifr = (struct ifreq *) data;
 	int error = 0;
 
diff --git a/bsd/sys/net/if_loop.c b/bsd/sys/net/if_loop.c
index f6bbed8bd..e87877f98 100644
--- a/bsd/sys/net/if_loop.c
+++ b/bsd/sys/net/if_loop.c
@@ -307,7 +307,7 @@ lortrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info)
 int
 loioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct ifreq *ifr = (struct ifreq *)data;
 	int error = 0, mask;
 
@@ -315,7 +315,7 @@ loioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 	case SIOCSIFADDR:
 		ifp->if_flags |= IFF_UP;
 		ifp->if_drv_flags |= IFF_DRV_RUNNING;
-		ifa = (struct ifaddr *)data;
+		ifa = (struct bsd_ifaddr *)data;
 		ifa->ifa_rtrequest = lortrequest;
 		/*
 		 * Everything else is done at a higher level.
diff --git a/bsd/sys/net/if_var.h b/bsd/sys/net/if_var.h
index b333732e6..83448a83e 100644
--- a/bsd/sys/net/if_var.h
+++ b/bsd/sys/net/if_var.h
@@ -93,7 +93,7 @@ __BEGIN_DECLS
 #define	IF_DUNIT_NONE	-1
 
 TAILQ_HEAD(ifnethead, ifnet);	/* we use TAILQs so that the order of */
-TAILQ_HEAD(ifaddrhead, ifaddr);	/* instantiation is preserved in the list */
+TAILQ_HEAD(ifaddrhead, bsd_ifaddr);	/* instantiation is preserved in the list */
 TAILQ_HEAD(ifprefixhead, ifprefix);
 TAILQ_HEAD(ifmultihead, ifmultiaddr);
 TAILQ_HEAD(ifgrouphead, ifg_group);
@@ -171,7 +171,7 @@ struct ifnet {
 	void	(*if_reassign)		/* reassign to vnet routine */
 		(struct ifnet *, struct vnet *, char *);
 	struct	vnet *if_home_vnet;	/* where this ifnet originates from */
-	struct	ifaddr	*if_addr;	/* pointer to link-level address */
+	struct	bsd_ifaddr	*if_addr;	/* pointer to link-level address */
 	void	*if_llsoftc;		/* link layer softc */
 	int	if_drv_flags;		/* driver-managed status flags */
 	struct  ifqueue if_snd;		/* output queue */
@@ -592,30 +592,30 @@ do {									\
 #endif /* _KERNEL */
 
 /*
- * The ifaddr structure contains information about one address
+ * The bsd_ifaddr structure contains information about one address
  * of an interface.  They are maintained by the different address families,
  * are allocated and attached when an address is set, and are linked
  * together so all addresses for an interface can be located.
  *
- * NOTE: a 'struct ifaddr' is always at the beginning of a larger
+ * NOTE: a 'struct bsd_ifaddr' is always at the beginning of a larger
  * chunk of malloc'ed memory, where we store the three addresses
  * (ifa_addr, ifa_dstaddr and ifa_netmask) referenced here.
  */
-struct ifaddr {
+struct bsd_ifaddr {
 	struct	bsd_sockaddr *ifa_addr;	/* address of interface */
 	struct	bsd_sockaddr *ifa_dstaddr;	/* other end of p-to-p link */
 #define	ifa_broadaddr	ifa_dstaddr	/* broadcast address interface */
 	struct	bsd_sockaddr *ifa_netmask;	/* used to determine subnet */
 	struct	if_data if_data;	/* not all members are meaningful */
 	struct	ifnet *ifa_ifp;		/* back-pointer to interface */
-	TAILQ_ENTRY(ifaddr) ifa_link;	/* queue macro glue */
+	TAILQ_ENTRY(bsd_ifaddr) ifa_link;	/* queue macro glue */
 	void	(*ifa_rtrequest)	/* check or clean routes (+ or -)'d */
 		(int, struct rtentry *, struct rt_addrinfo *);
 	u_short	ifa_flags;		/* mostly rt_flags for cloning */
 	u_int	ifa_refcnt;		/* references to this structure */
 	int	ifa_metric;		/* cost of going out this interface */
 	int (*ifa_claim_addr)		/* check if an addr goes to this if */
-		(struct ifaddr *, struct bsd_sockaddr *);
+		(struct bsd_ifaddr *, struct bsd_sockaddr *);
 	struct mtx ifa_mtx;
 };
 #define	IFA_ROUTE	RTF_UP		/* route installed */
@@ -628,9 +628,9 @@ struct ifaddr {
 #define	IFA_LOCK(ifa)		mtx_lock(&(ifa)->ifa_mtx)
 #define	IFA_UNLOCK(ifa)		mtx_unlock(&(ifa)->ifa_mtx)
 
-void	ifa_free(struct ifaddr *ifa);
-void	ifa_init(struct ifaddr *ifa);
-void	ifa_ref(struct ifaddr *ifa);
+void	ifa_free(struct bsd_ifaddr *ifa);
+void	ifa_init(struct bsd_ifaddr *ifa);
+void	ifa_ref(struct bsd_ifaddr *ifa);
 #endif
 
 /*
@@ -648,7 +648,7 @@ struct ifprefix {
 };
 
 /*
- * Multicast address structure.  This is analogous to the ifaddr
+ * Multicast address structure.  This is analogous to the bsd_ifaddr
  * structure except that it keeps track of multicast addresses.
  */
 struct ifmultiaddr {
@@ -693,10 +693,10 @@ struct ifnet	*ifnet_byindex_ref(u_short idx);
 
 /*
  * Given the index, ifaddr_byindex() returns the one and only
- * link-level ifaddr for the interface. You are not supposed to use
+ * link-level bsd_ifaddr for the interface. You are not supposed to use
  * it to traverse the list of addresses associated to the interface.
  */
-struct ifaddr	*ifaddr_byindex(u_short idx);
+struct bsd_ifaddr	*ifaddr_byindex(u_short idx);
 
 VNET_DECLARE(struct ifnethead, ifnet);
 VNET_DECLARE(struct ifgrouphead, ifg_head);
@@ -746,18 +746,18 @@ struct	ifnet *ifunit_ref(const char *);
 void	ifq_init(struct ifqueue *, struct ifnet *ifp);
 void	ifq_delete(struct ifqueue *);
 
-int	ifa_add_loopback_route(struct ifaddr *, struct bsd_sockaddr *);
-int	ifa_del_loopback_route(struct ifaddr *, struct bsd_sockaddr *);
+int	ifa_add_loopback_route(struct bsd_ifaddr *, struct bsd_sockaddr *);
+int	ifa_del_loopback_route(struct bsd_ifaddr *, struct bsd_sockaddr *);
 
-struct	ifaddr *ifa_ifwithaddr(struct bsd_sockaddr *);
+struct	bsd_ifaddr *ifa_ifwithaddr(struct bsd_sockaddr *);
 int		ifa_ifwithaddr_check(struct bsd_sockaddr *);
-struct	ifaddr *ifa_ifwithbroadaddr(struct bsd_sockaddr *);
-struct	ifaddr *ifa_ifwithdstaddr(struct bsd_sockaddr *);
-struct	ifaddr *ifa_ifwithnet(struct bsd_sockaddr *, int);
-struct	ifaddr *ifa_ifwithroute(int, struct bsd_sockaddr *, struct bsd_sockaddr *);
-struct	ifaddr *ifa_ifwithroute_fib(int, struct bsd_sockaddr *, struct bsd_sockaddr *, u_int);
+struct	bsd_ifaddr *ifa_ifwithbroadaddr(struct bsd_sockaddr *);
+struct	bsd_ifaddr *ifa_ifwithdstaddr(struct bsd_sockaddr *);
+struct	bsd_ifaddr *ifa_ifwithnet(struct bsd_sockaddr *, int);
+struct	bsd_ifaddr *ifa_ifwithroute(int, struct bsd_sockaddr *, struct bsd_sockaddr *);
+struct	bsd_ifaddr *ifa_ifwithroute_fib(int, struct bsd_sockaddr *, struct bsd_sockaddr *, u_int);
 
-struct	ifaddr *ifaof_ifpforaddr(struct bsd_sockaddr *, struct ifnet *);
+struct	bsd_ifaddr *ifaof_ifpforaddr(struct bsd_sockaddr *, struct ifnet *);
 
 int	if_simloop(struct ifnet *ifp, struct mbuf *m, int af, int hlen);
 
diff --git a/bsd/sys/net/route.c b/bsd/sys/net/route.c
index d12ad626c..12034d041 100644
--- a/bsd/sys/net/route.c
+++ b/bsd/sys/net/route.c
@@ -489,7 +489,7 @@ rtredirect_fib(struct bsd_sockaddr *dst,
 	int error = 0;
 	short *stat = NULL;
 	struct rt_addrinfo info;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct radix_node_head *rnh;
 
 	ifa = NULL;
@@ -633,18 +633,18 @@ rtioctl_fib(u_long req, caddr_t data, u_int fibnum)
 /*
  * For both ifa_ifwithroute() routines, 'ifa' is returned referenced.
  */
-struct ifaddr *
+struct bsd_ifaddr *
 ifa_ifwithroute(int flags, struct bsd_sockaddr *dst, struct bsd_sockaddr *gateway)
 {
 
 	return (ifa_ifwithroute_fib(flags, dst, gateway, RT_DEFAULT_FIB));
 }
 
-struct ifaddr *
+struct bsd_ifaddr *
 ifa_ifwithroute_fib(int flags, struct bsd_sockaddr *dst, struct bsd_sockaddr *gateway,
 				u_int fibnum)
 {
-	register struct ifaddr *ifa;
+	register struct bsd_ifaddr *ifa;
 	int not_found = 0;
 
 	if ((flags & RTF_GATEWAY) == 0) {
@@ -700,7 +700,7 @@ ifa_ifwithroute_fib(int flags, struct bsd_sockaddr *dst, struct bsd_sockaddr *ga
 			return (NULL);
 	}
 	if (ifa->ifa_addr->sa_family != dst->sa_family) {
-		struct ifaddr *oifa = ifa;
+		struct bsd_ifaddr *oifa = ifa;
 		ifa = ifaof_ifpforaddr(dst, ifa->ifa_ifp);
 		if (ifa == NULL)
 			ifa = oifa;
@@ -774,7 +774,7 @@ rt_getifa(struct rt_addrinfo *info)
 int
 rt_getifa_fib(struct rt_addrinfo *info, u_int fibnum)
 {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	int error = 0;
 
 	/*
@@ -826,7 +826,7 @@ rtexpunge(struct rtentry *rt)
 	struct rtentry *rt0;
 #endif
 	struct radix_node_head *rnh;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	int error = 0;
 
 	/*
@@ -1013,7 +1013,7 @@ rtrequest1_fib(int req, struct rt_addrinfo *info, struct rtentry **ret_nrt,
 	register struct rtentry *rt;
 	register struct radix_node *rn;
 	register struct radix_node_head *rnh;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct bsd_sockaddr *ndst;
 	struct bsd_sockaddr_storage mdst;
 #define senderr(x) { error = x ; goto bad; }
@@ -1284,7 +1284,7 @@ rt_maskedcopy(struct bsd_sockaddr *src, struct bsd_sockaddr *dst, struct bsd_soc
  */
 #define _SOCKADDR_TMPSIZE 128 /* Not too big.. kernel stack size is limited */
 static inline  int
-rtinit1(struct ifaddr *ifa, int cmd, int flags, int fibnum)
+rtinit1(struct bsd_ifaddr *ifa, int cmd, int flags, int fibnum)
 {
 	struct bsd_sockaddr *dst;
 	struct bsd_sockaddr *netmask;
@@ -1454,7 +1454,7 @@ rtinit1(struct ifaddr *ifa, int cmd, int flags, int fibnum)
 #ifndef BURN_BRIDGES
 /* special one for inet internal use. may not use. */
 int
-rtinit_fib(struct ifaddr *ifa, int cmd, int flags)
+rtinit_fib(struct bsd_ifaddr *ifa, int cmd, int flags)
 {
 	return (rtinit1(ifa, cmd, flags, -1));
 }
@@ -1465,7 +1465,7 @@ rtinit_fib(struct ifaddr *ifa, int cmd, int flags)
  * for an interface.
  */
 int
-rtinit(struct ifaddr *ifa, int cmd, int flags)
+rtinit(struct bsd_ifaddr *ifa, int cmd, int flags)
 {
 	struct bsd_sockaddr *dst;
 	int fib = RT_DEFAULT_FIB;
diff --git a/bsd/sys/net/route.h b/bsd/sys/net/route.h
index 56f95dd7f..2eec27736 100644
--- a/bsd/sys/net/route.h
+++ b/bsd/sys/net/route.h
@@ -133,7 +133,7 @@ struct rtentry {
 	int	rt_flags;		/* up/down?, host/net */
 	int	rt_refcnt;		/* # held references */
 	struct	ifnet *rt_ifp;		/* the answer: interface to use */
-	struct	ifaddr *rt_ifa;		/* the answer: interface address to use */
+	struct	bsd_ifaddr *rt_ifa;		/* the answer: interface address to use */
 	struct	rt_metrics_lite rt_rmx;	/* metrics used by rx'ing protocols */
 	u_int	rt_fibnum;		/* which FIB */
 #ifdef _KERNEL
@@ -292,7 +292,7 @@ struct rt_addrinfo {
 	int	rti_addrs;
 	struct	bsd_sockaddr *rti_info[RTAX_MAX];
 	int	rti_flags;
-	struct	ifaddr *rti_ifa;
+	struct	bsd_ifaddr *rti_ifa;
 	struct	ifnet *rti_ifp;
 };
 
@@ -376,8 +376,8 @@ void	 rt_ifannouncemsg(struct ifnet *, int);
 void	 rt_ifmsg(struct ifnet *);
 void	 rt_missmsg(int, struct rt_addrinfo *, int, int);
 void	 rt_missmsg_fib(int, struct rt_addrinfo *, int, int, int);
-void	 rt_newaddrmsg(int, struct ifaddr *, int, struct rtentry *);
-void	 rt_newaddrmsg_fib(int, struct ifaddr *, int, struct rtentry *, int);
+void	 rt_newaddrmsg(int, struct bsd_ifaddr *, int, struct rtentry *);
+void	 rt_newaddrmsg_fib(int, struct bsd_ifaddr *, int, struct rtentry *, int);
 void	 rt_newmaddrmsg(int, struct ifmultiaddr *);
 int	 rt_setgate(struct rtentry *, struct bsd_sockaddr *, struct bsd_sockaddr *);
 void 	 rt_maskedcopy(struct bsd_sockaddr *, struct bsd_sockaddr *, struct bsd_sockaddr *);
@@ -404,7 +404,7 @@ int	 rt_getifa(struct rt_addrinfo *);
 void	 rtalloc_ign(struct route *ro, u_long ignflags);
 void	 rtalloc(struct route *ro); /* XXX deprecated, use rtalloc_ign(ro, 0) */
 struct rtentry *rtalloc1(struct bsd_sockaddr *, int, u_long);
-int	 rtinit(struct ifaddr *, int, int);
+int	 rtinit(struct bsd_ifaddr *, int, int);
 int	 rtioctl(u_long, caddr_t);
 void	 rtredirect(struct bsd_sockaddr *, struct bsd_sockaddr *,
 	    struct bsd_sockaddr *, int, struct bsd_sockaddr *);
@@ -413,7 +413,7 @@ int	 rtrequest(int, struct bsd_sockaddr *,
 
 #ifndef BURN_BRIDGES
 /* defaults to "all" FIBs */
-int	 rtinit_fib(struct ifaddr *, int, int);
+int	 rtinit_fib(struct bsd_ifaddr *, int, int);
 #endif
 
 /* XXX MRT NEW VERSIONS THAT USE FIBs
diff --git a/bsd/sys/net/rtsock.c b/bsd/sys/net/rtsock.c
index a58d061d0..235256128 100644
--- a/bsd/sys/net/rtsock.c
+++ b/bsd/sys/net/rtsock.c
@@ -62,7 +62,7 @@
 
 #if defined(INET) || defined(INET6)
 #ifdef SCTP
-extern void sctp_addr_change(struct ifaddr *ifa, int cmd);
+extern void sctp_addr_change(struct bsd_ifaddr *ifa, int cmd);
 #endif /* SCTP */
 #endif
 
@@ -552,7 +552,7 @@ route_output(struct mbuf *m, struct socket *so)
 
 			if (rt->rt_ifp != NULL && 
 			    rt->rt_ifp->if_type == IFT_PROPVIRTUAL) {
-				struct ifaddr *ifa;
+				struct bsd_ifaddr *ifa;
 
 				ifa = ifa_ifwithnet(info.rti_info[RTAX_DST], 1);
 				if (ifa != NULL)
@@ -639,7 +639,7 @@ route_output(struct mbuf *m, struct socket *so)
 
 		case RTM_CHANGE:
 			/*
-			 * New gateway could require new ifaddr, ifp;
+			 * New gateway could require new bsd_ifaddr, ifp;
 			 * flags may also be different; ifp may be specified
 			 * by ll bsd_sockaddr when protocol address is ambiguous
 			 */
@@ -1080,7 +1080,7 @@ rt_ifmsg(struct ifnet *ifp)
  * copies of it.
  */
 void
-rt_newaddrmsg_fib(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt,
+rt_newaddrmsg_fib(int cmd, struct bsd_ifaddr *ifa, int error, struct rtentry *rt,
     int fibnum)
 {
 	struct rt_addrinfo info;
@@ -1096,7 +1096,7 @@ rt_newaddrmsg_fib(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt,
 	/*
 	 * notify the SCTP stack
 	 * this will only get called when an address is added/deleted
-	 * XXX pass the ifaddr struct instead if ifa->ifa_addr...
+	 * XXX pass the bsd_ifaddr struct instead if ifa->ifa_addr...
 	 */
 	sctp_addr_change(ifa, cmd);
 #endif /* SCTP */
@@ -1151,7 +1151,7 @@ rt_newaddrmsg_fib(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt,
 }
 
 void
-rt_newaddrmsg(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt)
+rt_newaddrmsg(int cmd, struct bsd_ifaddr *ifa, int error, struct rtentry *rt)
 {
 
 	rt_newaddrmsg_fib(cmd, ifa, error, rt, RTS_ALLFIBS);
@@ -1426,7 +1426,7 @@ sysctl_iflist_ifm(struct ifnet *ifp, struct rt_addrinfo *info,
 }
 #if 0
 static int
-sysctl_iflist_ifaml(struct ifaddr *ifa, struct rt_addrinfo *info,
+sysctl_iflist_ifaml(struct bsd_ifaddr *ifa, struct rt_addrinfo *info,
     struct walkarg *w, int len)
 {
 	struct ifa_msghdrl *ifam;
@@ -1446,7 +1446,7 @@ sysctl_iflist_ifaml(struct ifaddr *ifa, struct rt_addrinfo *info,
 }
 #endif
 static int
-sysctl_iflist_ifam(struct ifaddr *ifa, struct rt_addrinfo *info,
+sysctl_iflist_ifam(struct bsd_ifaddr *ifa, struct rt_addrinfo *info,
     struct walkarg *w, int len)
 {
 	struct ifa_msghdr *ifam;
@@ -1464,7 +1464,7 @@ static int
 sysctl_iflist(int af, struct walkarg *w)
 {
 	struct ifnet *ifp;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct rt_addrinfo info;
 	int len, error = 0;
 
@@ -1532,7 +1532,7 @@ sysctl_ifmalist(int af, struct walkarg *w)
 	struct ifmultiaddr *ifma;
 	struct	rt_addrinfo info;
 	int	len, error = 0;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 
 	bzero((caddr_t)&info, sizeof(info));
 	IFNET_RLOCK();
diff --git a/bsd/sys/netinet/if_ether.c b/bsd/sys/netinet/if_ether.c
index a4ff80d03..ef1a51db2 100644
--- a/bsd/sys/netinet/if_ether.c
+++ b/bsd/sys/netinet/if_ether.c
@@ -199,7 +199,7 @@ arprequest(struct ifnet *ifp, struct in_addr *sip, struct in_addr  *tip,
 		 * The caller did not supply a source address, try to find
 		 * a compatible one among those assigned to this interface.
 		 */
-		struct ifaddr *ifa;
+		struct bsd_ifaddr *ifa;
 
 		TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
 			if (!ifa->ifa_addr ||
@@ -484,7 +484,7 @@ in_arpinput(struct mbuf *m)
 	struct ifnet *ifp = m->m_pkthdr.rcvif;
 	struct llentry *la = NULL;
 	struct rtentry *rt;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct in_ifaddr *ia;
 	struct bsd_sockaddr sa;
 	struct in_addr isaddr, itaddr, myaddr;
@@ -842,7 +842,7 @@ drop:
 #endif
 
 void
-arp_ifinit(struct ifnet *ifp, struct ifaddr *ifa)
+arp_ifinit(struct ifnet *ifp, struct bsd_ifaddr *ifa)
 {
 	struct llentry *lle;
 
@@ -868,7 +868,7 @@ arp_ifinit(struct ifnet *ifp, struct ifaddr *ifa)
 }
 
 void
-arp_ifinit2(struct ifnet *ifp, struct ifaddr *ifa, u_char *enaddr)
+arp_ifinit2(struct ifnet *ifp, struct bsd_ifaddr *ifa, u_char *enaddr)
 {
 	if (ntohl(IA_SIN(ifa)->sin_addr.s_addr) != INADDR_ANY)
 		arprequest(ifp, &IA_SIN(ifa)->sin_addr,
diff --git a/bsd/sys/netinet/if_ether.h b/bsd/sys/netinet/if_ether.h
index cc557a458..8b25c80a0 100644
--- a/bsd/sys/netinet/if_ether.h
+++ b/bsd/sys/netinet/if_ether.h
@@ -116,13 +116,13 @@ extern u_char	ether_ipmulticast_min[ETHER_ADDR_LEN];
 extern u_char	ether_ipmulticast_max[ETHER_ADDR_LEN];
 
 struct llentry;
-struct ifaddr;
+struct bsd_ifaddr;
 
 int	arpresolve(struct ifnet *ifp, struct rtentry *rt,
 		    struct mbuf *m, struct bsd_sockaddr *dst, u_char *desten,
 		    struct llentry **lle);
-void	arp_ifinit(struct ifnet *, struct ifaddr *);
-void	arp_ifinit2(struct ifnet *, struct ifaddr *, u_char *);
+void	arp_ifinit(struct ifnet *, struct bsd_ifaddr *);
+void	arp_ifinit2(struct ifnet *, struct bsd_ifaddr *, u_char *);
 __END_DECLS
 
 #include <bsd/sys/sys/eventhandler.h>
diff --git a/bsd/sys/netinet/in.c b/bsd/sys/netinet/in.c
index 4249fac5e..63fdf81b1 100644
--- a/bsd/sys/netinet/in.c
+++ b/bsd/sys/netinet/in.c
@@ -209,7 +209,7 @@ in_control(struct socket *so, u_long cmd, caddr_t data, struct ifnet *ifp,
 {
 	register struct ifreq *ifr = (struct ifreq *)data;
 	register struct in_ifaddr *ia, *iap;
-	register struct ifaddr *ifa;
+	register struct bsd_ifaddr *ifa;
 	struct in_addr allhosts_addr;
 	struct in_addr dst;
 	struct in_ifinfo *ii;
@@ -649,7 +649,7 @@ in_lifaddr_ioctl(struct socket *so, u_long cmd, caddr_t data,
     struct ifnet *ifp, struct thread *td)
 {
 	struct if_laddrreq *iflr = (struct if_laddrreq *)data;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 
 	/* sanity checks */
 	if (data == NULL || ifp == NULL) {
@@ -933,7 +933,7 @@ in_ifinit(struct ifnet *ifp, struct in_ifaddr *ia, struct bsd_sockaddr_in *sin,
 			RT_ADDREF(ia_ro.ro_rt);
 			RTFREE_LOCKED(ia_ro.ro_rt);
 		} else
-			error = ifa_add_loopback_route((struct ifaddr *)ia,
+			error = ifa_add_loopback_route((struct bsd_ifaddr *)ia,
 			    (struct bsd_sockaddr *)&ia->ia_addr);
 		if (error == 0)
 			ia->ia_flags |= IFA_RTSELF;
@@ -981,7 +981,7 @@ static void in_addralias_rtmsg(int cmd, struct in_addr *prefix,
 		 * e.g., rt_key, rt_mask, rt_ifp etc.
 		 */
 		msg_rt.rt_gateway = (struct bsd_sockaddr *)&target->ia_addr;
-		rt_newaddrmsg(cmd, (struct ifaddr *)target, 0, &msg_rt);
+		rt_newaddrmsg(cmd, (struct bsd_ifaddr *)target, 0, &msg_rt);
 		RTFREE(pfx_ro.ro_rt);
 	}
 	return;
@@ -1105,7 +1105,7 @@ in_scrubprefix(struct in_ifaddr *target, u_int flags)
 			RTFREE_LOCKED(ia_ro.ro_rt);
 		}
 		if (freeit && (flags & LLE_STATIC)) {
-			error = ifa_del_loopback_route((struct ifaddr *)target,
+			error = ifa_del_loopback_route((struct bsd_ifaddr *)target,
 			    (struct bsd_sockaddr *)&target->ia_addr);
 			if (error == 0)
 				target->ia_flags &= ~IFA_RTSELF;
@@ -1208,7 +1208,7 @@ in_scrubprefix(struct in_ifaddr *target, u_int flags)
 int
 in_broadcast(struct in_addr in, struct ifnet *ifp)
 {
-	register struct ifaddr *ifa;
+	register struct bsd_ifaddr *ifa;
 	u_long t;
 
 	if (in.s_addr == INADDR_BROADCAST ||
@@ -1520,7 +1520,7 @@ in_lltable_lookup(struct lltable *llt, u_int flags, const struct bsd_sockaddr *l
 			EVENTHANDLER_INVOKE(arp_update_event, lle);
 			LLE_WUNLOCK(lle);
 #ifdef DIAGNOSTIC
-			bsd_log(LOG_INFO, "ifaddr cache = %p  is deleted\n", lle);
+			bsd_log(LOG_INFO, "bsd_ifaddr cache = %p  is deleted\n", lle);
 #endif
 		}
 		lle = (void *)-1;
diff --git a/bsd/sys/netinet/in_pcb.c b/bsd/sys/netinet/in_pcb.c
index c1cbe40c2..6f0ad6675 100644
--- a/bsd/sys/netinet/in_pcb.c
+++ b/bsd/sys/netinet/in_pcb.c
@@ -660,7 +660,7 @@ static int
 in_pcbladdr(struct inpcb *inp, struct in_addr *faddr, struct in_addr *laddr,
     struct ucred *cred)
 {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct bsd_sockaddr *sa;
 	struct bsd_sockaddr_in *sin;
 	struct route sro;
diff --git a/bsd/sys/netinet/in_rmx.c b/bsd/sys/netinet/in_rmx.c
index ee160df84..57fd6ded5 100644
--- a/bsd/sys/netinet/in_rmx.c
+++ b/bsd/sys/netinet/in_rmx.c
@@ -391,7 +391,7 @@ in_detachhead(void **head, int off)
  * plug back in.
  */
 struct in_ifadown_arg {
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	int del;
 };
 
@@ -433,7 +433,7 @@ in_ifadownkill(struct radix_node *rn, void *xap)
 }
 
 int
-in_ifadown(struct ifaddr *ifa, int delete)
+in_ifadown(struct bsd_ifaddr *ifa, int delete)
 {
 	struct in_ifadown_arg arg;
 	struct radix_node_head *rnh;
diff --git a/bsd/sys/netinet/in_var.h b/bsd/sys/netinet/in_var.h
index b0ec6e3c4..6e3a6530f 100644
--- a/bsd/sys/netinet/in_var.h
+++ b/bsd/sys/netinet/in_var.h
@@ -53,11 +53,11 @@ struct in_ifinfo {
 /*
  * Interface address, Internet version.  One of these structures
  * is allocated for each Internet address on an interface.
- * The ifaddr structure contains the protocol-independent part
+ * The bsd_ifaddr structure contains the protocol-independent part
  * of the structure and is assumed to be first.
  */
 struct in_ifaddr {
-	struct	ifaddr ia_ifa;		/* protocol-independent info */
+	struct	bsd_ifaddr ia_ifa;		/* protocol-independent info */
 #define	ia_ifp		ia_ifa.ifa_ifp
 #define ia_flags	ia_ifa.ifa_flags
 					/* ia_subnet{,mask} in host order */
@@ -79,7 +79,7 @@ struct	in_aliasreq {
 	struct	bsd_sockaddr_in ifra_mask;
 };
 /*
- * Given a pointer to an in_ifaddr (ifaddr),
+ * Given a pointer to an in_ifaddr (bsd_ifaddr),
  * return a pointer to the addr as a bsd_sockaddr_in.
  */
 #define IA_SIN(ia)    (&(((struct in_ifaddr *)(ia))->ia_addr))
@@ -446,7 +446,7 @@ int	in_control(struct socket *, u_long, caddr_t, struct ifnet *,
 	    struct thread *);
 void	in_rtqdrain(void);
 void	ip_input(struct mbuf *);
-int	in_ifadown(struct ifaddr *ifa, int);
+int	in_ifadown(struct bsd_ifaddr *ifa, int);
 void	in_ifscrub(struct ifnet *, struct in_ifaddr *, u_int);
 struct	mbuf	*ip_fastforward(struct mbuf *);
 void	*in_domifattach(struct ifnet *);
diff --git a/bsd/sys/netinet/ip_icmp.c b/bsd/sys/netinet/ip_icmp.c
index d8fa288f5..523ecb089 100644
--- a/bsd/sys/netinet/ip_icmp.c
+++ b/bsd/sys/netinet/ip_icmp.c
@@ -685,7 +685,7 @@ static void
 icmp_reflect(struct mbuf *m)
 {
 	struct ip *ip = mtod(m, struct ip *);
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct ifnet *ifp;
 	struct in_ifaddr *ia;
 	struct in_addr t;
diff --git a/bsd/sys/netinet/ip_input.c b/bsd/sys/netinet/ip_input.c
index 8a1968b1b..de211f3b4 100644
--- a/bsd/sys/netinet/ip_input.c
+++ b/bsd/sys/netinet/ip_input.c
@@ -369,7 +369,7 @@ ip_input(struct mbuf *m)
 {
 	struct ip *ip = NULL;
 	struct in_ifaddr *ia = NULL;
-	struct ifaddr *ifa;
+	struct bsd_ifaddr *ifa;
 	struct ifnet *ifp;
 	int    checkif, hlen = 0;
 	u_short sum;
diff --git a/bsd/sys/netinet/raw_ip.c b/bsd/sys/netinet/raw_ip.c
index 12b9dc503..1e812be62 100644
--- a/bsd/sys/netinet/raw_ip.c
+++ b/bsd/sys/netinet/raw_ip.c
@@ -650,7 +650,7 @@ rip_ctloutput(struct socket *so, struct sockopt *sopt)
 
 /*
  * This function exists solely to receive the PRC_IFDOWN messages which are
- * sent by if_down().  It looks for an ifaddr whose ifa_addr is sa, and calls
+ * sent by if_down().  It looks for an bsd_ifaddr whose ifa_addr is sa, and calls
  * in_ifadown() to remove all routes corresponding to that address.  It also
  * receives the PRC_IFUP messages from if_up() and reinstalls the interface
  * routes.
@@ -709,7 +709,7 @@ rip_ctlinput(int cmd, struct bsd_sockaddr *sa, void *vip)
 		    || (ifp->if_flags & IFF_POINTOPOINT))
 			flags |= RTF_HOST;
 
-		err = ifa_del_loopback_route((struct ifaddr *)ia, sa);
+		err = ifa_del_loopback_route((struct bsd_ifaddr *)ia, sa);
 		if (err == 0)
 			ia->ia_flags &= ~IFA_RTSELF;
 
@@ -717,7 +717,7 @@ rip_ctlinput(int cmd, struct bsd_sockaddr *sa, void *vip)
 		if (err == 0)
 			ia->ia_flags |= IFA_ROUTE;
 
-		err = ifa_add_loopback_route((struct ifaddr *)ia, sa);
+		err = ifa_add_loopback_route((struct bsd_ifaddr *)ia, sa);
 		if (err == 0)
 			ia->ia_flags |= IFA_RTSELF;
 
-- 
GitLab