]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/net/if_var.h
xnu-4570.61.1.tar.gz
[apple/xnu.git] / bsd / net / if_var.h
index 60aa09b8fef9e1ef9a38d383f00c1c6ca0871499..379b792ad42a72846689b3db900e0f05d4bf23e0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2017 Apple Inc. All rights reserved.
+ * Copyright (c) 2000-2018 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
@@ -688,6 +688,7 @@ struct if_data_internal {
        u_int64_t       ifi_fpackets;   /* forwarded packets on interface */
        u_int64_t       ifi_fbytes;     /* forwarded bytes on interface */
        struct  timeval ifi_lastchange; /* time of last administrative change */
+       struct  timeval ifi_lastupdown; /* time of last up/down event */
        u_int32_t       ifi_hwassist;   /* HW offload capabilities */
        u_int32_t       ifi_tso_v4_mtu; /* TCP Segment Offload IPv4 maximum segment size */
        u_int32_t       ifi_tso_v6_mtu; /* TCP Segment Offload IPv6 maximum segment size */
@@ -726,6 +727,7 @@ struct if_data_internal {
 #define        if_dt_bytes     if_data.ifi_dt_bytes
 #define        if_fpackets     if_data.ifi_fpackets
 #define        if_fbytes       if_data.ifi_fbytes
+#define        if_lastupdown   if_data.ifi_lastupdown
 #endif /* BSD_KERNEL_PRIVATE */
 
 #ifdef BSD_KERNEL_PRIVATE
@@ -1503,6 +1505,7 @@ extern struct     ifaddr *ifa_ifwithroute_locked(int, const struct sockaddr *,
     const struct sockaddr *);
 extern struct ifaddr *ifa_ifwithroute_scoped_locked(int,
     const struct sockaddr *, const struct sockaddr *, unsigned int);
+extern struct ifaddr *ifaof_ifpforaddr_select(const struct sockaddr *, struct ifnet *);
 extern struct ifaddr *ifaof_ifpforaddr(const struct sockaddr *, struct ifnet *);
 __private_extern__ struct ifaddr *ifa_ifpgetprimary(struct ifnet *, int);
 extern void ifa_addref(struct ifaddr *, int);
@@ -1722,6 +1725,9 @@ __private_extern__ struct rtentry *ifnet_cached_rtlookup_inet6(struct ifnet *,
     struct in6_addr *);
 #endif /* INET6 */
 
+__private_extern__ u_int32_t if_get_protolist(struct ifnet * ifp,
+    u_int32_t *protolist, u_int32_t count);
+__private_extern__ void if_free_protolist(u_int32_t *list);
 __private_extern__ errno_t if_state_update(struct ifnet *,
     struct if_interface_state *);
 __private_extern__ void if_get_state(struct ifnet *,
@@ -1770,6 +1776,8 @@ __private_extern__ u_int32_t ifnet_get_generation(struct ifnet *);
 /* Adding and deleting netagents will take ifnet lock */
 __private_extern__ int if_add_netagent(struct ifnet *, uuid_t);
 __private_extern__ int if_delete_netagent(struct ifnet *, uuid_t);
+__private_extern__ boolean_t if_check_netagent(struct ifnet *, uuid_t);
+
 
 extern int if_set_qosmarking_mode(struct ifnet *, u_int32_t);
 __private_extern__ uint32_t ifnet_mbuf_packetpreamblelen(struct ifnet *);