- LSO routine
#include <sys/mac_provider.h> void mac_lso_get(mblk_t *mp, uint32_t *mss, uint32_t *flags);
LSO (Large Segment Offload, or Large Send Offload) allows the network stack to send larger buffers to a device driver. These large buffers can then segmented in hardware, allowing for reduced CPU utilization, PCI overhead, and reduced buffer management costs.
LSO is enabled only for device driver instances that advertise support for the MAC_CAPAB_LSO capability through the mc_getcapab(9E) entry point.
Once a device driver advertises the LSO capability, it must use the mac_lso_get() entry point to query whether LSO must be performed on the packet. The following values for the flags argument are supported:
When set, this flag indicates that LSO is enabled for that packet. The maximum segment size (MSS) to be used during segmentation of the large segment is returned through the location pointed to by mss.
See attributes(5) for descriptions of the following attributes: