HOOK_PKT_EVENT(9S)       Data Structures for Drivers      HOOK_PKT_EVENT(9S)
NAME
       hook_pkt_event - packet event structure passed through to hooks
SYNOPSIS
       #include <sys/neti.h>
       #include <sys/hook.h>
       #include <sys/hook_event.h>
INTERFACE LEVEL
       illumos DDI specific (illumos DDI).
DESCRIPTION
       The 
hook_pkt_event structure contains fields that relate to a packet
       in a network protocol handler. This structure is passed through to a
       callback for 
NH_PRE_ROUTING, 
NH_POST_ROUTING, 
NH_FORWARDING,       
NH_LOOPBACK_IN and 
NH_LOOPBACK_OUT events.
       A callback may only modify the 
hpe_hdr, 
hpe_mp and 
hpe_mb fields.
       The following table documents which fields can be safely used as a
       result of each event.
         Event            hpe_ifp     hpe_ofp     hpe_hdr     hpe_mp     hpe_mb
         -----            -------     -------     -------     ------     ------
         NH_PRE_ROUTING      yes                     yes         yes       yes
         NH_POST_ROUTING                 yes         yes         yes       yes
         NH_FORWARDING       yes         yes         yes         yes       yes
         NH_LOOPBACK_IN      yes                     yes         yes       yes
         NH_LOOPBACK_OUT                 yes         yes         yes       yes
STRUCTURE MEMBERS
         net_data_t           hne_family;
         phy_if_t             hpe_ifp;
         phy_if_t             hpe_ofp;
         void                 *hpe_hdr;
         mblk_t               *hpe_mp;
         mblk_t               *hpe_mb;
         uint32_t             hpe_flags;
       The following fields are set for each event:       
hne_family                     The protocol family for this packet. This value matches
                     the corresponding value returned from a call to                     
net_protocol_lookup(9F).       
hpe_ifp                     The inbound interface for a packet.       
hpe_ofp                     The outbound interface for a packet.       
hpe_hdr                     Pointer to the start of the network protocol header
                     within an 
mblk_t structure.       
hpe_mp                     Pointer to the 
mblk_t pointer that points to the first                     
mblk_t structure in this packet.       
hpe_mb                     Pointer to the 
mblk_t structure that contains 
hpe_hdr.       
hpe_flags                    This field is used to carry additional properties of
                    packets. The current collection of defined bits
                    available is:                    
HPE_BROADCAST                                     This bit is set if the packet was
                                     recognized as a broadcast packet from
                                     the link layer. The bit cannot be set
                                     if 
HPE_MULTICAST is set, currently only
                                     possible with physical in packet
                                     events.                    
HPE_MULTICAST                                     This set if the packet was recognized
                                     as a multicast packet from the link
                                     layer. This bit cannot be set if                                     
HPE_BROADCAST is set, currently only
                                     possible with physical in packet
                                     events.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Committed       |
       +--------------------+-----------------+
SEE ALSO
       net_protocol_lookup(9F), 
netinfo(9F)                                 May 1, 2008              HOOK_PKT_EVENT(9S)