MAC_LSO_GET(9F)         Kernel Functions for Drivers         MAC_LSO_GET(9F)
NAME
     mac_lso_get - get LSO information on message blocks
SYNOPSIS
     #include <sys/mac_provider.h>     void     mac_lso_get(
mblk_t *mp, 
uint32_t *mss, 
uint32_t *flags);
INTERFACE LEVEL
     illumos DDI specific
PARAMETERS
     mp            A pointer to a 
mblk(9S) structure that contains an
                   outgoing frame.     
mss           A pointer to a value that will be filled in with the
                   maximum segment size (MSS).     
flags         A pointer to a value that will be filled in with various
                   flags that indicate the behavior to perform.
DESCRIPTION
     The 
mac_lso_get() function is used by device drivers that have
     indicated that they support the 
MAC_CAPAB_LSO capability to determine
     whether large send offload (also known as large segmentation offload or
     LSO) is required for this frame or not.  If so, the driver should take
     the appropriate actions to program the hardware to perform LSO.
     The 
mac_lso_get() function should only be called on the first 
mblk_t     that begins a given individual frame in a chain.  In other words, it
     only works on entries where it is the first of many possible entries
     linked together by the 
b_cont member.  The first 
mblk_t received from
     any 
mac(9E) API or pointed to by a 
b_next pointer should be used.
     A device driver should first look at the 
flags argument to determine
     what to do.  
flags may be a bitwise inclusive OR of the following:     
HW_LSO  This flag indicates that hardware needs to perform segmentation
             offload.  The maximum segment size that the driver should use
             is available through the 
mss argument.
CONTEXT
     The 
mac_lso_get() function may be called from 
user, 
kernel, or     
interrupt context.
SEE ALSO
     mac(9E), 
mblk(9S)illumos                         June 2, 2016                         illumos