]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/net/if_mib.h
xnu-2782.20.48.tar.gz
[apple/xnu.git] / bsd / net / if_mib.h
index 9ccd0c31602b345ee0c76b95820a720392a88575..3dbf262a21f3e052a9bf5c9dc3df12897565c28a 100644 (file)
@@ -1,16 +1,19 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2011 Apple Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
  * 
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
@@ -20,7 +23,7 @@
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
  * Copyright 1996 Massachusetts Institute of Technology
 #define        _NET_IF_MIB_H   1
 #include <sys/appleapiopts.h>
 
-#ifdef __APPLE_API_UNSTABLE
 struct ifmibdata {
-       char    ifmd_name[IFNAMSIZ]; /* name of interface */
-       int     ifmd_pcount;    /* number of promiscuous listeners */
-       int     ifmd_flags;     /* interface flags */
-       int     ifmd_snd_len;   /* instantaneous length of send queue */
-       int     ifmd_snd_maxlen; /* maximum length of send queue */
-       int     ifmd_snd_drops; /* number of drops in send queue */
-       int     ifmd_filler[4]; /* for future expansion */
-       struct  if_data ifmd_data; /* generic information and statistics */
+       char                            ifmd_name[IFNAMSIZ]; /* name of interface */
+       unsigned int            ifmd_pcount;    /* number of promiscuous listeners */
+       unsigned int            ifmd_flags;     /* interface flags */
+       unsigned int            ifmd_snd_len;   /* instantaneous length of send queue */
+       unsigned int            ifmd_snd_maxlen; /* maximum length of send queue */
+       unsigned int            ifmd_snd_drops; /* number of drops in send queue */
+       unsigned int            ifmd_filler[4]; /* for future expansion */
+       struct if_data64        ifmd_data; /* generic information and statistics */
+};
+
+#ifdef PRIVATE
+struct ifmibdata_supplemental {
+       struct if_traffic_class ifmd_traffic_class;
+       struct if_data_extended ifmd_data_extended;
+       struct if_packet_stats  ifmd_packet_stats;
+       struct if_rxpoll_stats  ifmd_rxpoll_stats;
 };
+#endif /* PRIVATE */
 
 /*
  * sysctl MIB tags at the net.link.generic level
  */
 #define        IFMIB_SYSTEM    1       /* non-interface-specific */
 #define        IFMIB_IFDATA    2       /* per-interface data table */
+#define IFMIB_IFALLDATA        3       /* all interfaces data at once */
 
 /*
  * MIB tags for the various net.link.generic.ifdata tables
  */
-#define        IFDATA_GENERAL  1       /* generic stats for all kinds of ifaces */
-#define        IFDATA_LINKSPECIFIC     2 /* specific to the type of interface */
+#define        IFDATA_GENERAL          1       /* generic stats for all kinds of ifaces */
+#define        IFDATA_LINKSPECIFIC     2       /* specific to the type of interface */
+#define        IFDATA_ADDRS            3       /* addresses assigned to interface */
+#define        IFDATA_MULTIADDRS       4       /* multicast addresses assigned to interface */
+#ifdef PRIVATE
+#define IFDATA_SUPPLEMENTAL    5       /* supplemental link specific stats */
+#endif /* PRIVATE */
 
 /*
  * MIB tags at the net.link.generic.system level
@@ -108,7 +125,7 @@ struct ifmibdata {
  */
 
 /* For IFT_ETHER, IFT_ISO88023, and IFT_STARLAN, as used by RFC 1650 */
-struct ifmib_iso_8802_3 {
+struct ifs_iso_8802_3 {
        u_int32_t       dot3StatsAlignmentErrors;
        u_int32_t       dot3StatsFCSErrors;
        u_int32_t       dot3StatsSingleCollisionFrames;
@@ -193,5 +210,16 @@ enum {
  * Put other types of interface MIBs here, or in interface-specific
  * header files if convenient ones already exist.
  */
-#endif /* __APPLE_API_UNSTABLE */
+
+/*
+ * Structure for interface family ID table
+ */
+
+struct if_family_id {
+       u_int32_t               iffmid_len;
+       u_int32_t               iffmid_id;
+       char                    iffmid_str[1];  /* variable length string */
+};
+
+
 #endif /* _NET_IF_MIB_H */