JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 9: DDI and DKI Properties and Data Structures     Oracle Solaris 11 Information Library
search filter icon
search icon

Document Information

Preface

Introduction

Data Structures for Drivers

aio_req(9S)

audio_engine_ops(9S)

blksize(9P)

buf(9S)

cb_ops(9S)

copyreq(9S)

copyresp(9S)

datab(9S)

dblk(9S)

ddi_device_acc_attr(9S)

ddi_dma_attr(9S)

ddi_dma_cookie(9S)

ddi_dmae_req(9S)

ddi_dma_lim(9S)

ddi_dma_lim_sparc(9S)

ddi_dma_lim_x86(9S)

ddi_dma_req(9S)

ddi_fm_error(9S)

ddi-forceattach(9P)

ddi_idevice_cookie(9S)

ddi-no-autodetach(9P)

device-blksize(9P)

device-nblocks(9P)

devmap_callback_ctl(9S)

dev_ops(9S)

fmodsw(9S)

free_rtn(9S)

gld_mac_info(9S)

gld_stats(9S)

hook_nic_event(9S)

hook_pkt_event(9S)

hook_t(9S)

inquiry-device-type(9P)

inquiry-product-id(9P)

inquiry-revision-id(9P)

inquiry-serial-no(9P)

inquiry-vendor-id(9P)

iocblk(9S)

iovec(9S)

kstat(9S)

kstat_intr(9S)

kstat_io(9S)

kstat_named(9S)

linkblk(9S)

lso_basic_tcp_ipv4(9S)

mac_callbacks(9S)

mac_capab_lso(9S)

mac_capab_rings(9S)

mac_group_info(9S)

mac_register(9S)

mac_ring_info(9S)

mblk(9S)

modldrv(9S)

modlinkage(9S)

modlmisc(9S)

modlstrmod(9S)

module_info(9S)

msgb(9S)

Nblock(9P)

net_inject_t(9S)

net_instance_t(9S)

no-involuntary-power-cycles(9P)

pm(9P)

pm-components(9P)

qband(9S)

qinit(9S)

queclass(9S)

queue(9S)

removable-media(9P)

scsi_address(9S)

scsi_arq_status(9S)

scsi_asc_key_strings(9S)

scsi_device(9S)

scsi_extended_sense(9S)

scsi_hba_tran(9S)

scsi_inquiry(9S)

scsi_pkt(9S)

scsi_status(9S)

size(9P)

streamtab(9S)

stroptions(9S)

tuple(9S)

uio(9S)

usb_bulk_request(9S)

usb_callback_flags(9S)

usb_cfg_descr(9S)

usb_client_dev_data(9S)

usb_completion_reason(9S)

usb_ctrl_request(9S)

usb_dev_descr(9S)

usb_dev_qlf_descr(9S)

usb_ep_descr(9S)

usb_if_descr(9S)

usb_intr_request(9S)

usb_isoc_request(9S)

usb_other_speed_cfg_descr(9S)

usb_request_attributes(9S)

usb_string_descr(9S)

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

Solaris DDI specific (Solaris 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(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed

See Also

net_protocol_lookup(9F), netinfo(9F)