Merge remote-tracking branch 'origin/master'
[unleashed/lotheac.git] / share / man / man9s / hook_pkt_event.9s
blob0ef9c67e02a2e77b284cc1199697be19c1a6277a
1 '\" te
2 .\"  Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH HOOK_PKT_EVENT 9S "May 1, 2008"
7 .SH NAME
8 hook_pkt_event \- packet event structure passed through to hooks
9 .SH SYNOPSIS
10 .LP
11 .nf
12 #include <sys/neti.h>
13 #include <sys/hook.h>
14 #include <sys/hook_event.h>
15 .fi
17 .SH INTERFACE LEVEL
18 .sp
19 .LP
20 Solaris DDI specific (Solaris DDI).
21 .SH DESCRIPTION
22 .sp
23 .LP
24 The \fBhook_pkt_event\fR structure contains fields that relate to a packet in a
25 network protocol handler. This structure is passed through to a callback for
26 \fBNH_PRE_ROUTING\fR, \fBNH_POST_ROUTING\fR, \fBNH_FORWARDING\fR,
27 \fBNH_LOOPBACK_IN\fR and \fBNH_LOOPBACK_OUT\fR events.
28 .sp
29 .LP
30 A callback may only modify the \fBhpe_hdr\fR, \fBhpe_mp\fR and \fBhpe_mb\fR
31 fields.
32 .sp
33 .LP
34 The following table documents which fields can be safely used as a result of
35 each event.
36 .sp
37 .in +2
38 .nf
39 Event            hpe_ifp     hpe_ofp     hpe_hdr     hpe_mp     hpe_mb
40 -----            -------     -------     -------     ------     ------
41 NH_PRE_ROUTING      yes                     yes         yes       yes
42 NH_POST_ROUTING                 yes         yes         yes       yes
43 NH_FORWARDING       yes         yes         yes         yes       yes
44 NH_LOOPBACK_IN      yes                     yes         yes       yes
45 NH_LOOPBACK_OUT                 yes         yes         yes       yes
46 .fi
47 .in -2
48 .sp
50 .SH STRUCTURE MEMBERS
51 .sp
52 .in +2
53 .nf
54 net_data_t           hne_family;
55 phy_if_t             hpe_ifp;
56 phy_if_t             hpe_ofp;
57 void                 *hpe_hdr;
58 mblk_t               *hpe_mp;
59 mblk_t               *hpe_mb;
60 uint32_t             hpe_flags;
63 .fi
64 .in -2
66 .sp
67 .LP
68 The following fields are set for each event:
69 .sp
70 .ne 2
71 .na
72 \fB\fBhne_family\fR\fR
73 .ad
74 .RS 14n
75 The protocol family for this packet. This value matches the corresponding value
76 returned from a call to \fBnet_protocol_lookup\fR(9F).
77 .RE
79 .sp
80 .ne 2
81 .na
82 \fB\fBhpe_ifp\fR\fR
83 .ad
84 .RS 14n
85 The inbound interface for a packet.
86 .RE
88 .sp
89 .ne 2
90 .na
91 \fB\fBhpe_ofp\fR\fR
92 .ad
93 .RS 14n
94 The outbound interface for a packet.
95 .RE
97 .sp
98 .ne 2
99 .na
100 \fB\fBhpe_hdr\fR\fR
102 .RS 14n
103 Pointer to the start of the network protocol header within an \fBmblk_t\fR
104 structure.
108 .ne 2
110 \fB\fBhpe_mp\fR\fR
112 .RS 14n
113 Pointer to the \fBmblk_t\fR pointer that points to the first \fBmblk_t\fR
114 structure in this packet.
118 .ne 2
120 \fB\fBhpe_mb\fR\fR
122 .RS 14n
123 Pointer to the \fBmblk_t\fR structure that contains \fBhpe_hdr\fR.
127 .ne 2
129 \fB\fBhpe_flags\fR\fR
131 .RS 13n
132 This field is used to carry additional properties of packets. The current
133 collection of defined bits available is:
135 .ne 2
137 \fB\fBHPE_BROADCAST\fR\fR
139 .RS 17n
140 This bit is set if the packet was recognized as a broadcast packet from the
141 link layer. The bit cannot be set if \fBHPE_MULTICAST\fR is set, currently only
142 possible with physical in packet events.
146 .ne 2
148 \fB\fBHPE_MULTICAST\fR\fR
150 .RS 17n
151 This set if the packet was recognized as a multicast packet from the link
152 layer. This bit cannot be set if \fBHPE_BROADCAST\fR is set, currently only
153 possible with physical in packet events.
158 .SH ATTRIBUTES
161 See \fBattributes\fR(5) for descriptions of the following attributes:
166 box;
167 c | c
168 l | l .
169 ATTRIBUTE TYPE  ATTRIBUTE VALUE
171 Interface Stability     Committed
174 .SH SEE ALSO
177 \fBnet_protocol_lookup\fR(9F), \fBnetinfo\fR(9F)