+/*
+ * Node Proximity Metrics
+ */
+enum {
+ IFNET_NPM_THRESH_UNKNOWN = (-1),
+ IFNET_NPM_THRESH_NEAR = 30,
+ IFNET_NPM_THRESH_GENERAL = 70,
+ IFNET_NPM_THRESH_FAR = 100,
+};
+
+/*
+ * Received Signal Strength Indication [special values]
+ *
+ * IFNET_RSSI_UNKNOWN Metric is not (yet) known.
+ */
+enum {
+ IFNET_RSSI_UNKNOWN = ((-2147483647)-1), /* INT32_MIN */
+};
+
+
+/*
+ * DLIL KEV_DL_NODE_PRESENCE/KEV_DL_NODE_ABSENCE event structures
+ */
+struct kev_dl_node_presence {
+ struct net_event_data link_data;
+ struct sockaddr_in6 sin6_node_address;
+ struct sockaddr_dl sdl_node_address;
+ int32_t rssi;
+ int link_quality_metric;
+ int node_proximity_metric;
+ u_int8_t node_service_info[48];
+};
+
+struct kev_dl_node_absence {
+ struct net_event_data link_data;
+ struct sockaddr_in6 sin6_node_address;
+ struct sockaddr_dl sdl_node_address;
+};
+
+/*
+ * Structure for SIOC[SG]IFTHROTTLE
+ */
+struct if_throttlereq {
+ char ifthr_name[IFNAMSIZ]; /* interface name */
+ u_int32_t ifthr_level;
+};
+
+/*
+ * Interface throttling levels
+ *
+ * IFNET_THROTTLE_OFF The default throttling level (no throttling.)
+ * All service class queues operate normally according to the
+ * standard packet scheduler configuration.
+ * IFNET_THROTTLE_OPPORTUNISTIC One or more service class queues that
+ * are responsible for managing "opportunistic" traffics are
+ * suspended. Packets enqueued on those queues will be dropped
+ * and a flow advisory error will be generated to the data
+ * source. Existing packets in the queues will stay enqueued
+ * until the interface is no longer throttled, or until they
+ * are explicitly flushed.
+ */
+enum {
+ IFNET_THROTTLE_OFF = 0,
+ IFNET_THROTTLE_OPPORTUNISTIC = 1,
+#ifdef XNU_KERNEL_PRIVATE
+ IFNET_THROTTLE_MAX = 2,
+#endif /* XNU_KERNEL_PRIVATE */
+};
+
+#define DLIL_MODIDLEN 20 /* same as IFNET_MODIDLEN */
+#define DLIL_MODARGLEN 12 /* same as IFNET_MODARGLEN */
+
+/*
+ * DLIL KEV_DL_ISSUES event structure
+ */
+struct kev_dl_issues {
+ struct net_event_data link_data;
+ u_int8_t modid[DLIL_MODIDLEN];
+ u_int64_t timestamp;
+ u_int8_t info[DLIL_MODARGLEN];
+};
+#endif /* PRIVATE */