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)