- @function ifnet_get_ipsec_offload_frames
- @discussion Fills out frames_array with IP packets to send at periodic
- intervals on behalf of IPSec.
- @param ifp The interface to send the frames out on. This is used to
- select which IPSec SAs should generate the packets.
- @param frames_array An array of ipsec_offload_frame structs. This is
- allocated by the caller, and has frames_array_count frames of valid
- memory.
- @param frames_array_count The number of valid frames allocated in
- frames_array.
- @param frame_data_offset The offset in bytes into each frame data at
- which IPSec should write the IP header and payload.
- @param used_frames_count The returned number of frames that were filled
- out with valid information.
+ @function ifnet_get_keepalive_offload_frames
+ @discussion Fills out frames_array with IP packets to send at
+ periodic intervals as Keep-alive or heartbeat messages.
+ These are UDP datagrams. This can be used to offload
+ IPSec keep alives.
+ @param ifp The interface to send frames out on. This is used to
+ select which sockets or IPSec SAs should generate the
+ packets.
+ @param frames_array An array of ifnet_keepalive_offload_frame
+ structs. This is allocated by the caller, and has
+ frames_array_count frames of valid memory.
+ @param frames_array_count The number of valid frames allocated
+ by the caller in frames_array
+ @param frame_data_offset The offset in bytes into each frame data
+ at which the IPv4/IPv6 packet and payload should be written
+ @param used_frames_count The returned number of frames that were
+ filled out with valid information.
+ @result Returns 0 on success, error number otherwise.
+*/
+extern errno_t ifnet_get_keepalive_offload_frames(ifnet_t ifp,
+ struct ifnet_keepalive_offload_frame *frames_array,
+ u_int32_t frames_array_count, size_t frame_data_offset,
+ u_int32_t *used_frames_count);
+
+/*************************************************************************/
+/* Link level notifications */
+/*************************************************************************/
+/*
+ @function ifnet_link_status_report
+ @discussion A KPI to let the driver provide link specific
+ status information to the protocol stack. The KPI will
+ copy contents from the buffer based on the version and
+ length provided by the driver. The contents of the buffer
+ will be read but will not be modified.
+ @param ifp The interface that is generating the report
+ @param buffer Buffer containing the link specific information
+ for this interface. It is the caller's responsibility
+ to free this buffer.
+ @param buffer_len Valid length of the buffer provided by the caller