diff --git a/sys/net/if.c b/sys/net/if.c --- a/sys/net/if.c +++ b/sys/net/if.c @@ -4894,6 +4894,12 @@ return (IF_LLADDR(ifp)); } +struct sockaddr_dl * +if_getaddr(const if_t ifp) +{ + return ((struct sockaddr_dl *)((ifp)->if_addr->ifa_addr)); +} + void * if_gethandle(u_char type) { diff --git a/sys/net/if_var.h b/sys/net/if_var.h --- a/sys/net/if_var.h +++ b/sys/net/if_var.h @@ -644,6 +644,7 @@ u_int16_t if_getvtag(struct mbuf *m); int if_vlantrunkinuse(if_t ifp); char *if_getlladdr(const if_t ifp); +struct sockaddr_dl *if_getaddr(const if_t ifp); struct vnet *if_getvnet(const if_t ifp); void *if_gethandle(u_char); void if_vlancap(if_t ifp);