+extern u_int32_t ifnet_eflags(ifnet_t interface);
+
+/*!
+ @function ifnet_set_idle_flags
+ @discussion Sets the if_idle_flags to new_flags. This function
+ lets you specify which flags you want to change using the
+ mask. The kernel will effectively take the lock, then set
+ the interface's idle flags to:
+ (if_idle_flags & ~mask) | (new_flags & mask).
+ Setting the flags to any non-zero value will cause the
+ networking stack to aggressively purge expired objects,
+ such as route entries, etc.
+ @param interface The interface.
+ @param new_flags The new set of flags that should be set. These
+ flags are defined in net/if.h
+ @param mask The mask of flags to be modified.
+ @result 0 on success otherwise the errno error. ENOTSUP is returned
+ when this call is made on non-supporting platforms.
+*/
+extern errno_t ifnet_set_idle_flags(ifnet_t interface, u_int32_t new_flags,
+ u_int32_t mask);
+
+/*!
+ @function ifnet_idle_flags
+ @discussion Returns the value of if_idle_flags.
+ @param interface Interface to retrieve the flags from.
+ @result if_idle_flags. These flags are defined in net/if.h
+*/
+extern u_int32_t ifnet_idle_flags(ifnet_t interface);
+
+#endif /* KERNEL_PRIVATE */
+
+/*!
+ @function ifnet_set_capabilities_supported
+ @discussion Specify the capabilities supported by the interface.
+ @discussion This function lets you specify which capabilities are supported
+ by the interface. Typically this function is called by the driver when
+ the interface gets attached to the system.
+ The mask allows to control which capability to set or unset.
+ The kernel will effectively take the lock, then set the
+ interface's flags to (if_capabilities & ~mask) | (new_caps & mask).
+
+ This function is intended to be called by the driver. A kext
+ must not call this function on an interface the kext does not
+ own.
+ @param interface Interface to set the capabilities on.
+ @param new_caps The value of the capabilities that should be set or unset. These
+ flags are defined in net/if.h
+ @param mask Which capabilities that should be affected. These
+ flags are defined in net/if.h
+ @result 0 on success otherwise the errno error.
+ */
+extern errno_t ifnet_set_capabilities_supported(ifnet_t interface, u_int32_t new_caps,
+ u_int32_t mask);
+
+/*!
+ @function ifnet_capabilities_supported
+ @discussion Retrieve the interface capabilities supported by the interface.
+ @param interface Interface to retrieve the capabilities from.
+ @result Flags. Capabilities flags are defined in net/if.h
+ */
+extern u_int32_t ifnet_capabilities_supported(ifnet_t interface);
+
+/*!
+ @function ifnet_set_capabilities_enabled
+ @discussion Enable and/or disable the interface capabilities to match new_caps.
+ @discussion Sets the interface capabilities to new_caps. This function
+ lets you specify which capabilities you want to change using the mask.
+ The kernel will effectively take the lock, then set the
+ interface's flags to (if_capenable & ~mask) | (new_caps & mask).
+
+ This function is intended to be called by the driver. A kext
+ must not call this function on an interface the kext does not
+ own.
+
+ Typically this function is called by the driver when the interface is
+ created to specify which of the supported capabilities are enabled by
+ default. This function is also meant to be called when the driver handles
+ the interface ioctl SIOCSIFCAP.
+
+ The driver should call ifnet_set_offlad() to indicate the corresponding
+ hardware offload bits that will be used by the networking stack.
+
+ It is an error to enable a capability that is not marked as
+ supported by the interface.
+ @param interface Interface to set the capabilities on.
+ @param new_caps The value of the capabilities that should be set or unset. These
+ flags are defined in net/if.h
+ @param mask Which capabilities that should be affected. These
+ flags are defined in net/if.h
+ @result 0 on success otherwise the errno error.
+ */
+extern errno_t ifnet_set_capabilities_enabled(ifnet_t interface, u_int32_t new_caps,
+ u_int32_t mask);
+
+/*!
+ @function ifnet_capabilities_enabled
+ @discussion Retrieve the interface capabilities enabled on the interface.
+ @param interface Interface to retrieve the capabilities from.
+ @result Flags. Capabilities flags are defined in net/if.h
+ */
+extern u_int32_t ifnet_capabilities_enabled(ifnet_t interface);
+