pktdescr_impl.h Source File

Reference Documentation

Platform
Intel® PAC
Napatech SmartNIC
Content Type
Reference Information
Capture Software Version
Link™ Capture Software 12.10
Napatech Software Suite: include/ntapi/pktdescr_impl.h Source File
pktdescr_impl.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (C) 2023 Napatech A/S.
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  * * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * * Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * * Neither the name of the Napatech A/S nor the
14  * names of its contributors may be used to endorse or promote products
15  * derived from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL NAPATECH A/S BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  *
29 
30  */
31 
32 /**
33  * @file
34  * This source file contains the implementation of the generic packet descriptor macros.\n
35  * It is <b>not</b> to be used directly but via the @ref PacketMacros.
36  */
37 
38 #ifndef DOXYGEN_INTERNAL_ONLY
39 
40 #ifndef __PKT_DESCR_IMPL_H__
41 #define __PKT_DESCR_IMPL_H__
42 
43 //
44 // Determine which, if any, macro optimizations should be used
45 //
46 #ifdef _NTAPI_EXTDESCR_7_
47 # define NTAPI_OPTIMIZE_FOR_EXT7
48 #endif
49 
50 #ifdef _NTAPI_EXTDESCR_8_
51 # define NTAPI_OPTIMIZE_FOR_EXT8
52 #endif
53 
54 #ifdef _NTAPI_EXTDESCR_9_
55 # define NTAPI_OPTIMIZE_FOR_EXT9
56 #endif
57 
58 #if defined(NTAPI_OPTIMIZE_FOR_EXT7) || defined(NTAPI_OPTIMIZE_FOR_EXT8) || defined(NTAPI_OPTIMIZE_FOR_EXT9)
59 # ifndef NTAPI_OPTIMIZE_FOR_EXT
60 # define NTAPI_OPTIMIZE_FOR_EXT
61 # endif
62 #endif
63 
64 #if defined(NTAPI_OPTIMIZE_FOR_EXT)
65 # ifndef NTAPI_OPTIMIZE_FOR_NT
66 # define NTAPI_OPTIMIZE_FOR_NT
67 # endif
68 #endif
69 
70 #if defined(NTAPI_OPTIMIZE_FOR_DYN1) || defined(NTAPI_OPTIMIZE_FOR_DYN2) || defined(NTAPI_OPTIMIZE_FOR_DYN3) || defined(NTAPI_OPTIMIZE_FOR_DYN4)
71 # ifndef NTAPI_OPTIMIZE_FOR_DYN
72 # define NTAPI_OPTIMIZE_FOR_DYN
73 # endif
74 #endif
75 
76 #ifdef NTAPI_OPTIMIZE_FOR_EXT7
77 # ifdef _NTAPI_SANITY_CHECK_NT_
78 # error Cannot optimize for multiple descriptors
79 # else
80 # define _NTAPI_SANITY_CHECK_NT_
81 # endif
82 #endif
83 
84 #ifdef NTAPI_OPTIMIZE_FOR_EXT8
85 # ifdef _NTAPI_SANITY_CHECK_NT_
86 # error Cannot optimize for multiple descriptors
87 # else
88 # define _NTAPI_SANITY_CHECK_NT_
89 # endif
90 #endif
91 
92 #ifdef NTAPI_OPTIMIZE_FOR_EXT9
93 # ifdef _NTAPI_SANITY_CHECK_NT_
94 # error Cannot optimize for multiple descriptors
95 # else
96 # define _NTAPI_SANITY_CHECK_NT_
97 # endif
98 #endif
99 
100 #ifdef NTAPI_OPTIMIZE_FOR_DYN1
101 # ifdef _NTAPI_SANITY_CHECK_DYN_
102 # error Cannot optimize for multiple descriptors
103 # else
104 # define _NTAPI_SANITY_CHECK_DYN_
105 # endif
106 #endif
107 
108 #ifdef NTAPI_OPTIMIZE_FOR_DYN2
109 # ifdef _NTAPI_SANITY_CHECK_DYN_
110 # error Cannot optimize for multiple descriptors
111 # else
112 # define _NTAPI_SANITY_CHECK_DYN_
113 # endif
114 #endif
115 
116 #ifdef NTAPI_OPTIMIZE_FOR_DYN3
117 # ifdef _NTAPI_SANITY_CHECK_DYN_
118 # error Cannot optimize for multiple descriptors
119 # else
120 # define _NTAPI_SANITY_CHECK_DYN_
121 # endif
122 #endif
123 
124 #ifdef NTAPI_OPTIMIZE_FOR_DYN4
125 # ifdef _NTAPI_SANITY_CHECK_DYN_
126 # error Cannot optimize for multiple descriptors
127 # else
128 # define _NTAPI_SANITY_CHECK_DYN_
129 # endif
130 #endif
131 
132 #if defined(_NTAPI_SANITY_CHECK_NT_) && defined(_NTAPI_SANITY_CHECK_DYN_)
133 # error Cannot optimize for multiple descriptors
134 #endif
135 
136 
137 //
138 //
139 //
140 #define _NT_NET_GET_PKT_DYN_DESCR(_hNetBuf_) \
141  _NT_NET_GET_PKT_DYN_DESCR_DYN(_hNetBuf_)
142 
143 
144 //
145 // Packet pointer
146 //
147 #define _NT_NET_GET_PKT_L2_PTR(_hNetBuf_) \
148  ((void*)(_hNetBuf_)->hPkt)
149 
150 #define _NT_NET_UPDATE_PKT_L2_PTR(_hNetBuf_) \
151  (((_hNetBuf_)->hPkt)=(NtNetBufPkt_t)((uint8_t*)((_hNetBuf_)->hHdr)+_NT_NET_GET_PKT_DESCR_LENGTH(_hNetBuf_)))
152 
153 
154 //
155 // Type
156 //
157 // The only branching macro that is not optimized by define NTAPI_OPTIMIZE_FOR_XXXX
158 //
159 #define _NT_NET_GET_PKT_DESCR_TYPE(_hNetBuf_) \
160  (_NT_NET_GET_PKT_DYN_DESCR(_hNetBuf_) == 1 ? \
161  NT_PACKET_DESCRIPTOR_TYPE_DYNAMIC : \
162  _NT_NET_GET_PKT_NT_DESCR_TYPE_NT(_hNetBuf_))
163 
164 #define _NT_NET_GET_PKT_NT_DESCR_TYPE_NT(_hNetBuf_) \
165  ((_NT_NET_GET_PKT_DESCR_PTR_STD0(_hNetBuf_)->descriptorType == 0) ? \
166  NT_PACKET_DESCRIPTOR_TYPE_PCAP : \
167  ((_NT_NET_GET_PKT_DESCR_PTR_STD0(_hNetBuf_)->extensionFormat == 0 ? \
168  NT_PACKET_DESCRIPTOR_TYPE_NT : \
169  NT_PACKET_DESCRIPTOR_TYPE_NT_EXTENDED)))
170 
171 
172 //
173 // Time-stamp
174 //
175 #define _NT_NET_GET_PKT_TIMESTAMP_TYPE(_hNetBuf_) \
176  ((_hNetBuf_)->tsType)
177 
178 #if defined(NTAPI_OPTIMIZE_FOR_NT)
179 
180 #define _NT_NET_GET_PKT_TIMESTAMP(_hNetBuf_) \
181  (_NT_NET_GET_PKT_TIMESTAMP_NT(_hNetBuf_))
182 
183 #define _NT_NET_SET_PKT_TIMESTAMP(_hNetBuf_, _val_) \
184  do{ _NT_NET_SET_PKT_TIMESTAMP_NT(_hNetBuf_,_val_); } while(0)
185 
186 #elif defined(NTAPI_OPTIMIZE_FOR_DYN)
187 
188 #define _NT_NET_GET_PKT_TIMESTAMP(_hNetBuf_) \
189  (_NT_NET_GET_PKT_TIMESTAMP_DYN(_hNetBuf_))
190 
191 #define _NT_NET_SET_PKT_TIMESTAMP(_hNetBuf_, _val_) \
192  do{ _NT_NET_SET_PKT_TIMESTAMP_DYN(_hNetBuf_,_val_); } while(0)
193 
194 #else
195 
196 #define _NT_NET_GET_PKT_TIMESTAMP(_hNetBuf_) \
197  (_NT_NET_GET_PKT_DYN_DESCR(_hNetBuf_) == 1 ? \
198  _NT_NET_GET_PKT_TIMESTAMP_DYN(_hNetBuf_) : \
199  _NT_NET_GET_PKT_TIMESTAMP_NT(_hNetBuf_))
200 
201 #define _NT_NET_SET_PKT_TIMESTAMP(_hNetBuf_, _val_) \
202  do{ if(_NT_NET_GET_PKT_DYN_DESCR(_hNetBuf_) == 1) \
203  _NT_NET_SET_PKT_TIMESTAMP_DYN(_hNetBuf_,_val_); \
204  else _NT_NET_SET_PKT_TIMESTAMP_NT(_hNetBuf_,_val_); } while(0)
205 
206 #endif
207 
208 
209 //
210 // Format
211 //
212 #if defined(NTAPI_OPTIMIZE_FOR_NT)
213 
214 #define _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_) \
215  (_NT_NET_GET_PKT_DESCR_FORMAT_NT(_hNetBuf_))
216 
217 #elif defined(NTAPI_OPTIMIZE_FOR_DYN)
218 
219 #define _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_) \
220  (_NT_NET_GET_PKT_DESCR_FORMAT_DYN(_hNetBuf_))
221 
222 #else
223 
224 #define _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_) \
225  (_NT_NET_GET_PKT_DYN_DESCR(_hNetBuf_) == 1 ? \
226  _NT_NET_GET_PKT_DESCR_FORMAT_DYN(_hNetBuf_) : \
227  _NT_NET_GET_PKT_DESCR_FORMAT_NT(_hNetBuf_))
228 
229 #endif
230 
231 
232 //
233 // Length
234 //
235 #if defined(NTAPI_OPTIMIZE_FOR_NT)
236 
237 #define _NT_NET_GET_PKT_DESCR_LENGTH(_hNetBuf_) \
238  (_NT_NET_GET_PKT_DESCR_LENGTH_NT(_hNetBuf_))
239 
240 #elif defined(NTAPI_OPTIMIZE_FOR_DYN)
241 
242 #define _NT_NET_GET_PKT_DESCR_LENGTH(_hNetBuf_) \
243  (_NT_NET_GET_PKT_DESCR_LENGTH_DYN(_hNetBuf_))
244 
245 #else
246 
247 #define _NT_NET_GET_PKT_DESCR_LENGTH(_hNetBuf_) \
248  (_NT_NET_GET_PKT_DYN_DESCR(_hNetBuf_) == 1 ? \
249  _NT_NET_GET_PKT_DESCR_LENGTH_DYN(_hNetBuf_) : \
250  _NT_NET_GET_PKT_DESCR_LENGTH_NT(_hNetBuf_))
251 
252 #endif
253 
254 
255 //
256 // Capture length
257 //
258 #if defined(NTAPI_OPTIMIZE_FOR_NT)
259 
260 #define _NT_NET_GET_PKT_CAP_LENGTH(_hNetBuf_) \
261  (_NT_NET_GET_PKT_CAP_LENGTH_NT(_hNetBuf_))
262 
263 #define _NT_NET_SET_PKT_CAP_LENGTH_NOALIGN(_hNetBuf_,_Length_) \
264  do{ _NT_NET_SET_PKT_CAP_LENGTH_NOALIGN_NT(_hNetBuf_,_Length_); } while(0)
265 
266 #elif defined(NTAPI_OPTIMIZE_FOR_DYN)
267 
268 #define _NT_NET_GET_PKT_CAP_LENGTH(_hNetBuf_) \
269  (_NT_NET_GET_PKT_CAP_LENGTH_DYN(_hNetBuf_))
270 
271 #define _NT_NET_SET_PKT_CAP_LENGTH_NOALIGN(_hNetBuf_,_Length_) \
272  do{ _NT_NET_SET_PKT_CAP_LENGTH_NOALIGN_DYN(_hNetBuf_,_Length_); } while(0)
273 
274 #else
275 
276 #define _NT_NET_GET_PKT_CAP_LENGTH(_hNetBuf_) \
277  (_NT_NET_GET_PKT_DYN_DESCR(_hNetBuf_) == 1 ? \
278  _NT_NET_GET_PKT_CAP_LENGTH_DYN(_hNetBuf_) : \
279  _NT_NET_GET_PKT_CAP_LENGTH_NT(_hNetBuf_))
280 
281 #define _NT_NET_SET_PKT_CAP_LENGTH_NOALIGN(_hNetBuf_,_Length_) \
282  do{ if(_NT_NET_GET_PKT_DYN_DESCR(_hNetBuf_) == 1) \
283  _NT_NET_SET_PKT_CAP_LENGTH_NOALIGN_DYN(_hNetBuf_,_Length_); \
284  else _NT_NET_SET_PKT_CAP_LENGTH_NOALIGN_NT(_hNetBuf_,_Length_); } while(0)
285 
286 #endif
287 
288 
289 //
290 // EXT macros
291 //
292 #if defined(NTAPI_OPTIMIZE_FOR_EXT7)
293 
294 #define _NT_NET_GET_PKT_HASH_EXT(_hNetBuf_) _NT_NET_GET_PKT_HASH_EXT7(_hNetBuf_)
295 #define _NT_NET_GET_PKT_HASH_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_HASH_TYPE_EXT7(_hNetBuf_)
296 #define _NT_NET_GET_PKT_HASH_VALID_EXT(_hNetBuf_) _NT_NET_GET_PKT_HASH_VALID_EXT7(_hNetBuf_)
297 #define _NT_NET_GET_PKT_JUMBO_EXT(_hNetBuf_) _NT_NET_GET_PKT_JUMBO_EXT7(_hNetBuf_)
298 #define _NT_NET_GET_PKT_BROADCAST_EXT(_hNetBuf_) _NT_NET_GET_PKT_BROADCAST_EXT7(_hNetBuf_)
299 #define _NT_NET_GET_PKT_L4_PORT_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_PORT_TYPE_EXT7(_hNetBuf_)
300 #define _NT_NET_GET_PKT_L4_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_FRAME_TYPE_EXT7(_hNetBuf_)
301 #define _NT_NET_GET_PKT_L3_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_FRAME_TYPE_EXT7(_hNetBuf_)
302 #define _NT_NET_GET_PKT_L2_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L2_FRAME_TYPE_EXT7(_hNetBuf_)
303 #define _NT_NET_GET_PKT_L4_LENGTH_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_LENGTH_EXT7(_hNetBuf_)
304 #define _NT_NET_GET_PKT_L3_LENGTH_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_LENGTH_EXT7(_hNetBuf_)
305 #define _NT_NET_GET_PKT_MPLS_COUNT_EXT(_hNetBuf_) _NT_NET_GET_PKT_MPLS_COUNT_EXT7(_hNetBuf_)
306 #define _NT_NET_GET_PKT_VLAN_COUNT_EXT(_hNetBuf_) _NT_NET_GET_PKT_VLAN_COUNT_EXT7(_hNetBuf_)
307 #define _NT_NET_GET_PKT_ISL_EXT(_hNetBuf_) _NT_NET_GET_PKT_ISL_EXT7(_hNetBuf_)
308 #define _NT_NET_GET_PKT_DECODE_ERROR_EXT(_hNetBuf_) _NT_NET_GET_PKT_DECODE_ERROR_EXT7(_hNetBuf_)
309 #define _NT_NET_GET_PKT_PROT_SMAL_EXTL(_hNetBuf_) _NT_NET_GET_PKT_DECODE_ERROR_EXT7(_hNetBuf_) // Deprecated - use NT_NET_GET_PKT_DECODE_ERROR
310 #define _NT_NET_GET_PKT_FRAME_LARGE_EXT(_hNetBuf_) _NT_NET_GET_PKT_FRAME_LARGE_EXT7(_hNetBuf_)
311 #define _NT_NET_GET_PKT_FRAME_SMALL_EXT(_hNetBuf_) _NT_NET_GET_PKT_FRAME_SMALL_EXT7(_hNetBuf_)
312 #define _NT_NET_GET_PKT_IPV6_FR_HEADER_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPV6_FR_HEADER_EXT7(_hNetBuf_)
313 #define _NT_NET_GET_PKT_IPV6_RT_HEADER_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPV6_RT_HEADER_EXT7(_hNetBuf_)
314 #define _NT_NET_GET_PKT_L4_PROTOCOL_NUM_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_PROTOCOL_NUM_EXT7(_hNetBuf_)
315 #define _NT_NET_GET_PKT_L3_FRAGMENTED_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_FRAGMENTED_EXT7(_hNetBuf_)
316 #define _NT_NET_GET_PKT_L3_FIRST_FRAG_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_FIRST_FRAG_EXT7(_hNetBuf_)
317 #define _NT_NET_GET_PKT_COLOR_EXT(_hNetBuf_) _NT_NET_GET_PKT_COLOR_EXT7(_hNetBuf_)
318 #define _NT_NET_GET_PKT_L5_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_L5_OFFSET_EXT7(_hNetBuf_)
319 #define _NT_NET_GET_PKT_L4_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_OFFSET_EXT7(_hNetBuf_)
320 #define _NT_NET_GET_PKT_L3_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_OFFSET_EXT7(_hNetBuf_)
321 
322 #define _NT_NET_SET_PKT_INJECT_TIMESTAMP_EXT(_hNetBuf_, _offset_) _NT_NET_SET_PKT_INJECT_TIMESTAMP_EXT7(_hNetBuf_, _offset_)
323 #define _NT_NET_SET_PKT_ISL_EXT(_hNetBuf_, _bval_) _NT_NET_SET_PKT_ISL_EXT7(_hNetBuf_, _bval_)
324 #define _NT_NET_SET_PKT_VLAN_COUNT_EXT(_hNetBuf_, _count_) _NT_NET_SET_PKT_VLAN_COUNT_EXT7(_hNetBuf_, _count_)
325 #define _NT_NET_SET_PKT_MPLS_COUNT_EXT(_hNetBuf_, _count_) _NT_NET_SET_PKT_MPLS_COUNT_EXT7(_hNetBuf_, _count_)
326 #define _NT_NET_SET_PKT_L2_FRAME_TYPE_EXT(_hNetBuf_, _type_) _NT_NET_SET_PKT_L2_FRAME_TYPE_EXT7(_hNetBuf_, _type_)
327 #define _NT_NET_SET_PKT_L3_FRAME_TYPE_EXT(_hNetBuf_, _type_) _NT_NET_SET_PKT_L3_FRAME_TYPE_EXT7(_hNetBuf_, _type_)
328 #define _NT_NET_SET_PKT_L4_FRAME_TYPE_EXT(_hNetBuf_, _type_) _NT_NET_SET_PKT_L4_FRAME_TYPE_EXT7(_hNetBuf_, _type_)
329 #define _NT_NET_SET_PKT_L3_LENGTH_EXT(_hNetBuf_, _u32len_) _NT_NET_SET_PKT_L3_LENGTH_EXT7(_hNetBuf_, _u32len_)
330 #define _NT_NET_SET_PKT_L4_LENGTH_EXT(_hNetBuf_, _u32len_) _NT_NET_SET_PKT_L4_LENGTH_EXT7(_hNetBuf_, _u32len_)
331 #define _NT_NET_SET_PKT_CALC_L3_CHECKSUM_EXT(_hNetBuf_, _bval_) _NT_NET_SET_PKT_CALC_L3_CHECKSUM_EXT7(_hNetBuf_, _bval_)
332 #define _NT_NET_SET_PKT_CALC_L4_CHECKSUM_EXT(_hNetBuf_, _bval_) _NT_NET_SET_PKT_CALC_L4_CHECKSUM_EXT7(_hNetBuf_, _bval_)
333 
334 #elif defined(NTAPI_OPTIMIZE_FOR_EXT8)
335 
336 #define _NT_NET_GET_PKT_HASH_EXT(_hNetBuf_) _NT_NET_GET_PKT_HASH_EXT8(_hNetBuf_)
337 #define _NT_NET_GET_PKT_HASH_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_HASH_TYPE_EXT8(_hNetBuf_)
338 #define _NT_NET_GET_PKT_HASH_VALID_EXT(_hNetBuf_) _NT_NET_GET_PKT_HASH_VALID_EXT8(_hNetBuf_)
339 #define _NT_NET_GET_PKT_JUMBO_EXT(_hNetBuf_) _NT_NET_GET_PKT_JUMBO_EXT8(_hNetBuf_)
340 #define _NT_NET_GET_PKT_BROADCAST_EXT(_hNetBuf_) _NT_NET_GET_PKT_BROADCAST_EXT8(_hNetBuf_)
341 #define _NT_NET_GET_PKT_L4_PORT_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_PORT_TYPE_EXT8(_hNetBuf_)
342 #define _NT_NET_GET_PKT_L4_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_FRAME_TYPE_EXT8(_hNetBuf_)
343 #define _NT_NET_GET_PKT_L3_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_FRAME_TYPE_EXT8(_hNetBuf_)
344 #define _NT_NET_GET_PKT_L2_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L2_FRAME_TYPE_EXT8(_hNetBuf_)
345 #define _NT_NET_GET_PKT_L4_LENGTH_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_LENGTH_EXT8(_hNetBuf_)
346 #define _NT_NET_GET_PKT_L3_LENGTH_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_LENGTH_EXT8(_hNetBuf_)
347 #define _NT_NET_GET_PKT_MPLS_COUNT_EXT(_hNetBuf_) _NT_NET_GET_PKT_MPLS_COUNT_EXT8(_hNetBuf_)
348 #define _NT_NET_GET_PKT_VLAN_COUNT_EXT(_hNetBuf_) _NT_NET_GET_PKT_VLAN_COUNT_EXT8(_hNetBuf_)
349 #define _NT_NET_GET_PKT_ISL_EXT(_hNetBuf_) _NT_NET_GET_PKT_ISL_EXT8(_hNetBuf_)
350 #define _NT_NET_GET_PKT_DECODE_ERROR_EXT(_hNetBuf_) _NT_NET_GET_PKT_DECODE_ERROR_EXT8(_hNetBuf_)
351 #define _NT_NET_GET_PKT_PROT_SMALL_EXT(_hNetBuf_) _NT_NET_GET_PKT_DECODE_ERROR_EXT8(_hNetBuf_) // Deprecated - use NT_NET_GET_PKT_DECODE_ERROR
352 #define _NT_NET_GET_PKT_FRAME_LARGE_EXT(_hNetBuf_) _NT_NET_GET_PKT_FRAME_LARGE_EXT8(_hNetBuf_)
353 #define _NT_NET_GET_PKT_FRAME_SMALL_EXT(_hNetBuf_) _NT_NET_GET_PKT_FRAME_SMALL_EXT8(_hNetBuf_)
354 #define _NT_NET_GET_PKT_IPV6_FR_HEADER_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPV6_FR_HEADER_EXT8(_hNetBuf_)
355 #define _NT_NET_GET_PKT_IPV6_RT_HEADER_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPV6_RT_HEADER_EXT8(_hNetBuf_)
356 #define _NT_NET_GET_PKT_L4_PROTOCOL_NUM_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_PROTOCOL_NUM_EXT8(_hNetBuf_)
357 #define _NT_NET_GET_PKT_L3_FRAGMENTED_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_FRAGMENTED_EXT8(_hNetBuf_)
358 #define _NT_NET_GET_PKT_L3_FIRST_FRAG_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_FIRST_FRAG_EXT8(_hNetBuf_)
359 #define _NT_NET_GET_PKT_COLOR_EXT(_hNetBuf_) _NT_NET_GET_PKT_COLOR_EXT8(_hNetBuf_)
360 #define _NT_NET_GET_PKT_L5_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_L5_OFFSET_EXT8(_hNetBuf_)
361 #define _NT_NET_GET_PKT_L4_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_OFFSET_EXT8(_hNetBuf_)
362 #define _NT_NET_GET_PKT_L3_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_OFFSET_EXT8(_hNetBuf_)
363 
364 #define _NT_NET_GET_PKT_IPF_UNMATCHED_STREAMID_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPF_UNMATCHED_STREAMID_EXT8(_hNetBuf_)
365 #define _NT_NET_GET_PKT_IPF_UNMATCHED_FLAG_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPF_UNMATCHED_FLAG_EXT8(_hNetBuf_)
366 #define _NT_NET_GET_PKT_IPF_LAST_FRAGMENT_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPF_LAST_FRAGMENT_EXT8(_hNetBuf_)
367 
368 #define _NT_NET_SET_PKT_INJECT_TIMESTAMP_EXT(_hNetBuf_, _offset_) _NT_NET_SET_PKT_INJECT_TIMESTAMP_EXT8(_hNetBuf_, _offset_)
369 #define _NT_NET_SET_PKT_ISL_EXT(_hNetBuf_, _bval_) _NT_NET_SET_PKT_ISL_EXT8(_hNetBuf_, _bval_)
370 #define _NT_NET_SET_PKT_VLAN_COUNT_EXT(_hNetBuf_, _count_) _NT_NET_SET_PKT_VLAN_COUNT_EXT8(_hNetBuf_, _count_)
371 #define _NT_NET_SET_PKT_MPLS_COUNT_EXT(_hNetBuf_, _count_) _NT_NET_SET_PKT_MPLS_COUNT_EXT8(_hNetBuf_, _count_)
372 #define _NT_NET_SET_PKT_L2_FRAME_TYPE_EXT(_hNetBuf_, _type_) _NT_NET_SET_PKT_L2_FRAME_TYPE_EXT8(_hNetBuf_, _type_)
373 #define _NT_NET_SET_PKT_L3_FRAME_TYPE_EXT(_hNetBuf_, _type_) _NT_NET_SET_PKT_L3_FRAME_TYPE_EXT8(_hNetBuf_, _type_)
374 #define _NT_NET_SET_PKT_L4_FRAME_TYPE_EXT(_hNetBuf_, _type_) _NT_NET_SET_PKT_L4_FRAME_TYPE_EXT8(_hNetBuf_, _type_)
375 #define _NT_NET_SET_PKT_L3_LENGTH_EXT(_hNetBuf_, _u32len_) _NT_NET_SET_PKT_L3_LENGTH_EXT8(_hNetBuf_, _u32len_)
376 #define _NT_NET_SET_PKT_L4_LENGTH_EXT(_hNetBuf_, _u32len_) _NT_NET_SET_PKT_L4_LENGTH_EXT8(_hNetBuf_, _u32len_)
377 #define _NT_NET_SET_PKT_CALC_L3_CHECKSUM_EXT(_hNetBuf_, _bval_) _NT_NET_SET_PKT_CALC_L3_CHECKSUM_EXT8(_hNetBuf_, _bval_)
378 #define _NT_NET_SET_PKT_CALC_L4_CHECKSUM_EXT(_hNetBuf_, _bval_) _NT_NET_SET_PKT_CALC_L4_CHECKSUM_EXT8(_hNetBuf_, _bval_)
379 
380 #elif defined(NTAPI_OPTIMIZE_FOR_EXT9)
381 
382 #define _NT_NET_GET_PKT_HASH_EXT(_hNetBuf_) _NT_NET_GET_PKT_HASH_EXT9(_hNetBuf_)
383 #define _NT_NET_GET_PKT_HASH_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_HASH_TYPE_EXT9(_hNetBuf_)
384 #define _NT_NET_GET_PKT_HASH_VALID_EXT(_hNetBuf_) _NT_NET_GET_PKT_HASH_VALID_EXT9(_hNetBuf_)
385 #define _NT_NET_GET_PKT_JUMBO_EXT(_hNetBuf_) _NT_NET_GET_PKT_JUMBO_EXT9(_hNetBuf_)
386 #define _NT_NET_GET_PKT_BROADCAST_EXT(_hNetBuf_) _NT_NET_GET_PKT_BROADCAST_EXT9(_hNetBuf_)
387 #define _NT_NET_GET_PKT_L4_PORT_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_PORT_TYPE_EXT9(_hNetBuf_)
388 #define _NT_NET_GET_PKT_L4_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_FRAME_TYPE_EXT9(_hNetBuf_)
389 #define _NT_NET_GET_PKT_L3_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_FRAME_TYPE_EXT9(_hNetBuf_)
390 #define _NT_NET_GET_PKT_L2_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_L2_FRAME_TYPE_EXT9(_hNetBuf_)
391 #define _NT_NET_GET_PKT_L4_LENGTH_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_LENGTH_EXT9(_hNetBuf_)
392 #define _NT_NET_GET_PKT_L3_LENGTH_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_LENGTH_EXT9(_hNetBuf_)
393 #define _NT_NET_GET_PKT_MPLS_COUNT_EXT(_hNetBuf_) _NT_NET_GET_PKT_MPLS_COUNT_EXT9(_hNetBuf_)
394 #define _NT_NET_GET_PKT_VLAN_COUNT_EXT(_hNetBuf_) _NT_NET_GET_PKT_VLAN_COUNT_EXT9(_hNetBuf_)
395 #define _NT_NET_GET_PKT_ISL_EXT(_hNetBuf_) _NT_NET_GET_PKT_ISL_EXT9(_hNetBuf_)
396 #define _NT_NET_GET_PKT_DECODE_ERROR_EXT(_hNetBuf_) _NT_NET_GET_PKT_DECODE_ERROR_EXT9(_hNetBuf_)
397 #define _NT_NET_GET_PKT_PROT_SMALL_EXT(_hNetBuf_) _NT_NET_GET_PKT_DECODE_ERROR_EXT9(_hNetBuf_) // Deprecated - use NT_NET_GET_PKT_DECODE_ERROR
398 #define _NT_NET_GET_PKT_FRAME_LARGE_EXT(_hNetBuf_) _NT_NET_GET_PKT_FRAME_LARGE_EXT9(_hNetBuf_)
399 #define _NT_NET_GET_PKT_FRAME_SMALL_EXT(_hNetBuf_) _NT_NET_GET_PKT_FRAME_SMALL_EXT9(_hNetBuf_)
400 #define _NT_NET_GET_PKT_IPV6_FR_HEADER_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPV6_FR_HEADER_EXT9(_hNetBuf_)
401 #define _NT_NET_GET_PKT_IPV6_RT_HEADER_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPV6_RT_HEADER_EXT9(_hNetBuf_)
402 #define _NT_NET_GET_PKT_L4_PROTOCOL_NUM_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_PROTOCOL_NUM_EXT9(_hNetBuf_)
403 #define _NT_NET_GET_PKT_L3_FRAGMENTED_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_FRAGMENTED_EXT9(_hNetBuf_)
404 #define _NT_NET_GET_PKT_L3_FIRST_FRAG_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_FIRST_FRAG_EXT9(_hNetBuf_)
405 #define _NT_NET_GET_PKT_COLOR_EXT(_hNetBuf_) _NT_NET_GET_PKT_COLOR_EXT9(_hNetBuf_)
406 #define _NT_NET_GET_PKT_L5_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_L5_OFFSET_EXT9(_hNetBuf_)
407 #define _NT_NET_GET_PKT_L4_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_L4_OFFSET_EXT9(_hNetBuf_)
408 #define _NT_NET_GET_PKT_L3_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_L3_OFFSET_EXT9(_hNetBuf_)
409 
410 #define _NT_NET_GET_PKT_IPF_UNMATCHED_STREAMID_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPF_UNMATCHED_STREAMID_EXT9(_hNetBuf_)
411 #define _NT_NET_GET_PKT_IPF_UNMATCHED_FLAG_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPF_UNMATCHED_FLAG_EXT9(_hNetBuf_)
412 #define _NT_NET_GET_PKT_IPF_LAST_FRAGMENT_EXT(_hNetBuf_) _NT_NET_GET_PKT_IPF_LAST_FRAGMENT_EXT9(_hNetBuf_)
413 
414 #define _NT_NET_GET_PKT_INNER_L3_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_INNER_L3_OFFSET_EXT9(_hNetBuf_)
415 #define _NT_NET_GET_PKT_INNER_L4_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_INNER_L4_OFFSET_EXT9(_hNetBuf_)
416 #define _NT_NET_GET_PKT_INNER_L5_OFFSET_EXT(_hNetBuf_) _NT_NET_GET_PKT_INNER_L5_OFFSET_EXT9(_hNetBuf_)
417 #define _NT_NET_GET_PKT_INNER_L3_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_INNER_L3_FRAME_TYPE_EXT9(_hNetBuf_)
418 #define _NT_NET_GET_PKT_INNER_L4_FRAME_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_INNER_L4_FRAME_TYPE_EXT9(_hNetBuf_)
419 #define _NT_NET_GET_PKT_INNER_L3_FRAGMENT_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_INNER_L3_FRAGMENT_TYPE_EXT9(_hNetBuf_)
420 #define _NT_NET_GET_PKT_TUNNEL_TYPE_EXT(_hNetBuf_) _NT_NET_GET_PKT_TUNNEL_TYPE_EXT9(_hNetBuf_)
421 #define _NT_NET_GET_PKT_TUNNEL_HDR_LENGTH_EXT(_hNetBuf_) _NT_NET_GET_PKT_TUNNEL_HDR_LENGTH_EXT9(_hNetBuf_)
422 #define _NT_NET_GET_PKT_INNER_DECODE_ERROR_EXT(_hNetBuf_) _NT_NET_GET_PKT_INNER_DECODE_ERROR_EXT9(_hNetBuf_)
423 #define _NT_NET_GET_PKT_DEDUPLICATION_CRC_EXT(_hNetBuf_) _NT_NET_GET_PKT_DEDUPLICATION_CRC_EXT9(_hNetBuf_)
424 
425 #define _NT_NET_SET_PKT_INJECT_TIMESTAMP_EXT(_hNetBuf_, _offset_) _NT_NET_SET_PKT_INJECT_TIMESTAMP_EXT9(_hNetBuf_, _offset_)
426 #define _NT_NET_SET_PKT_ISL_EXT(_hNetBuf_, _bval_) _NT_NET_SET_PKT_ISL_EXT9(_hNetBuf_, _bval_)
427 #define _NT_NET_SET_PKT_VLAN_COUNT_EXT(_hNetBuf_, _count_) _NT_NET_SET_PKT_VLAN_COUNT_EXT9(_hNetBuf_, _count_)
428 #define _NT_NET_SET_PKT_MPLS_COUNT_EXT(_hNetBuf_, _count_) _NT_NET_SET_PKT_MPLS_COUNT_EXT9(_hNetBuf_, _count_)
429 #define _NT_NET_SET_PKT_L2_FRAME_TYPE_EXT(_hNetBuf_, _type_) _NT_NET_SET_PKT_L2_FRAME_TYPE_EXT9(_hNetBuf_, _type_)
430 #define _NT_NET_SET_PKT_L3_FRAME_TYPE_EXT(_hNetBuf_, _type_) _NT_NET_SET_PKT_L3_FRAME_TYPE_EXT9(_hNetBuf_, _type_)
431 #define _NT_NET_SET_PKT_L4_FRAME_TYPE_EXT(_hNetBuf_, _type_) _NT_NET_SET_PKT_L4_FRAME_TYPE_EXT9(_hNetBuf_, _type_)
432 #define _NT_NET_SET_PKT_L3_LENGTH_EXT(_hNetBuf_, _u32len_) _NT_NET_SET_PKT_L3_LENGTH_EXT9(_hNetBuf_, _u32len_)
433 #define _NT_NET_SET_PKT_L4_LENGTH_EXT(_hNetBuf_, _u32len_) _NT_NET_SET_PKT_L4_LENGTH_EXT9(_hNetBuf_, _u32len_)
434 #define _NT_NET_SET_PKT_CALC_L3_CHECKSUM_EXT(_hNetBuf_, _bval_) _NT_NET_SET_PKT_CALC_L3_CHECKSUM_EXT9(_hNetBuf_, _bval_)
435 #define _NT_NET_SET_PKT_CALC_L4_CHECKSUM_EXT(_hNetBuf_, _bval_) _NT_NET_SET_PKT_CALC_L4_CHECKSUM_EXT9(_hNetBuf_, _bval_)
436 
437 #else
438 
439 #define _NT_NET_GET_PKT_HASH_EXT(_hNetBuf_) \
440  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
441  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
442  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
443  _NT_NET_GET_PKT_HASH_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
444 
445 #define _NT_NET_GET_PKT_HASH_TYPE_EXT(_hNetBuf_) \
446  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
447  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
448  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
449  _NT_NET_GET_PKT_HASH_TYPE_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
450 
451 #define _NT_NET_GET_PKT_HASH_VALID_EXT(_hNetBuf_) \
452  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
453  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
454  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
455  _NT_NET_GET_PKT_HASH_VALID_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
456 
457 #define _NT_NET_GET_PKT_JUMBO_EXT(_hNetBuf_) \
458  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
459  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
460  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
461  _NT_NET_GET_PKT_JUMBO_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
462 
463 #define _NT_NET_GET_PKT_BROADCAST_EXT(_hNetBuf_) \
464  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
465  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
466  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
467  _NT_NET_GET_PKT_BROADCAST_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
468 
469 #define _NT_NET_GET_PKT_L4_PORT_TYPE_EXT(_hNetBuf_) \
470  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
471  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8) ? _NT_NET_GET_PKT_L4_PORT_TYPE_EXT7(_hNetBuf_) : \
472  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? _NT_NET_GET_PKT_L4_PORT_TYPE_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U)))
473 
474 #define _NT_NET_GET_PKT_L4_FRAME_TYPE_EXT(_hNetBuf_) \
475  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
476  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
477  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
478  _NT_NET_GET_PKT_L4_FRAME_TYPE_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
479 
480 #define _NT_NET_GET_PKT_L3_FRAME_TYPE_EXT(_hNetBuf_) \
481  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
482  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
483  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
484  _NT_NET_GET_PKT_L3_FRAME_TYPE_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
485 
486 #define _NT_NET_GET_PKT_L2_FRAME_TYPE_EXT(_hNetBuf_) \
487  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
488  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
489  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
490  _NT_NET_GET_PKT_L2_FRAME_TYPE_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
491 
492 #define _NT_NET_GET_PKT_L4_LENGTH_EXT(_hNetBuf_) \
493  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
494  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
495  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
496  _NT_NET_GET_PKT_L4_LENGTH_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
497 
498 #define _NT_NET_GET_PKT_L3_LENGTH_EXT(_hNetBuf_) \
499  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
500  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
501  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
502  _NT_NET_GET_PKT_L3_LENGTH_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
503 
504 #define _NT_NET_GET_PKT_MPLS_COUNT_EXT(_hNetBuf_) \
505  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
506  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
507  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
508  _NT_NET_GET_PKT_MPLS_COUNT_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
509 
510 #define _NT_NET_GET_PKT_VLAN_COUNT_EXT(_hNetBuf_) \
511  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
512  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
513  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
514  _NT_NET_GET_PKT_VLAN_COUNT_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
515 
516 #define _NT_NET_GET_PKT_ISL_EXT(_hNetBuf_) \
517  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
518  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
519  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
520  _NT_NET_GET_PKT_ISL_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
521 
522 #define _NT_NET_GET_PKT_DECODE_ERROR_EXT(_hNetBuf_) \
523  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
524  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
525  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
526  _NT_NET_GET_PKT_DECODE_ERROR_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
527 
528 #define _NT_NET_GET_PKT_FRAME_LARGE_EXT(_hNetBuf_) \
529  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
530  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
531  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
532  _NT_NET_GET_PKT_FRAME_LARGE_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
533 
534 #define _NT_NET_GET_PKT_FRAME_SMALL_EXT(_hNetBuf_) \
535  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
536  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
537  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
538  _NT_NET_GET_PKT_FRAME_SMALL_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
539 
540 #define _NT_NET_GET_PKT_IPV6_FR_HEADER_EXT(_hNetBuf_) \
541  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
542  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
543  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
544  _NT_NET_GET_PKT_IPV6_FR_HEADER_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
545 
546 #define _NT_NET_GET_PKT_IPV6_RT_HEADER_EXT(_hNetBuf_) \
547  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
548  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
549  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
550  _NT_NET_GET_PKT_IPV6_RT_HEADER_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
551 
552 #define _NT_NET_GET_PKT_L4_PROTOCOL_NUM_EXT(_hNetBuf_) \
553  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
554  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
555  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
556  _NT_NET_GET_PKT_L4_PROTOCOL_NUM_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
557 
558 #define _NT_NET_GET_PKT_L3_FRAGMENTED_EXT(_hNetBuf_) \
559  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
560  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
561  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
562  _NT_NET_GET_PKT_L3_FRAGMENTED_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
563 
564 #define _NT_NET_GET_PKT_L3_FIRST_FRAG_EXT(_hNetBuf_) \
565  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
566  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
567  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
568  _NT_NET_GET_PKT_L3_FIRST_FRAG_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
569 
570 #define _NT_NET_GET_PKT_COLOR_EXT(_hNetBuf_) \
571  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
572  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
573  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
574  _NT_NET_GET_PKT_COLOR_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
575 
576 #define _NT_NET_GET_PKT_L5_OFFSET_EXT(_hNetBuf_) \
577  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
578  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
579  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
580  _NT_NET_GET_PKT_L5_OFFSET_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
581 
582 #define _NT_NET_GET_PKT_L4_OFFSET_EXT(_hNetBuf_) \
583  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
584  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
585  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
586  _NT_NET_GET_PKT_L4_OFFSET_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
587 
588 #define _NT_NET_GET_PKT_L3_OFFSET_EXT(_hNetBuf_) \
589  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
590  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
591  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
592  _NT_NET_GET_PKT_L3_OFFSET_EXT7(_hNetBuf_) : _NT_NET_ASSERT(~0U))
593 
594 #define _NT_NET_GET_PKT_IPF_UNMATCHED_STREAMID_EXT(_hNetBuf_) \
595  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
596  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
597  _NT_NET_GET_PKT_IPF_UNMATCHED_STREAMID_EXT8(_hNetBuf_) : _NT_NET_ASSERT(~0))
598 
599 #define _NT_NET_GET_PKT_IPF_UNMATCHED_FLAG_EXT(_hNetBuf_) \
600  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
601  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
602  _NT_NET_GET_PKT_IPF_UNMATCHED_FLAG_EXT8(_hNetBuf_) : _NT_NET_ASSERT(~0U))
603 
604 #define _NT_NET_GET_PKT_IPF_LAST_FRAGMENT_EXT(_hNetBuf_) \
605  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
606  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
607  _NT_NET_GET_PKT_IPF_LAST_FRAGMENT_EXT8(_hNetBuf_) : _NT_NET_ASSERT(~0U))
608 
609 #define _NT_NET_GET_PKT_INNER_L3_OFFSET_EXT(_hNetBuf_) \
610  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
611  _NT_NET_GET_PKT_INNER_L3_OFFSET_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
612 
613 #define _NT_NET_GET_PKT_INNER_L4_OFFSET_EXT(_hNetBuf_) \
614  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
615  _NT_NET_GET_PKT_INNER_L4_OFFSET_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
616 
617 #define _NT_NET_GET_PKT_INNER_L5_OFFSET_EXT(_hNetBuf_) \
618  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
619  _NT_NET_GET_PKT_INNER_L5_OFFSET_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
620 
621 #define _NT_NET_GET_PKT_INNER_L3_FRAME_TYPE_EXT(_hNetBuf_) \
622  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
623  _NT_NET_GET_PKT_INNER_L3_FRAME_TYPE_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
624 
625 #define _NT_NET_GET_PKT_INNER_L4_FRAME_TYPE_EXT(_hNetBuf_) \
626  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
627  _NT_NET_GET_PKT_INNER_L4_FRAME_TYPE_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
628 
629 #define _NT_NET_GET_PKT_INNER_L3_FRAGMENT_TYPE_EXT(_hNetBuf_) \
630  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
631  _NT_NET_GET_PKT_INNER_L3_FRAGMENT_TYPE_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
632 
633 #define _NT_NET_GET_PKT_TUNNEL_TYPE_EXT(_hNetBuf_) \
634  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
635  _NT_NET_GET_PKT_TUNNEL_TYPE_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
636 
637 #define _NT_NET_GET_PKT_TUNNEL_HDR_LENGTH_EXT(_hNetBuf_) \
638  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
639  _NT_NET_GET_PKT_TUNNEL_HDR_LENGTH_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
640 
641 #define _NT_NET_GET_PKT_INNER_DECODE_ERROR_EXT(_hNetBuf_) \
642  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
643  _NT_NET_GET_PKT_INNER_DECODE_ERROR_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
644 
645 #define _NT_NET_GET_PKT_DEDUPLICATION_CRC_EXT(_hNetBuf_) \
646  ((_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) ? \
647  _NT_NET_GET_PKT_DEDUPLICATION_CRC_EXT9(_hNetBuf_) : _NT_NET_ASSERT(~0U))
648 
649 #define _NT_NET_SET_PKT_INJECT_TIMESTAMP_EXT(_hNetBuf_, _offset_) \
650  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
651  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
652  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
653  _NT_NET_SET_PKT_INJECT_TIMESTAMP_EXT7(_hNetBuf_, _offset_); \
654  else assert(0); } while(0)
655 
656 #define _NT_NET_SET_PKT_ISL_EXT(_hNetBuf_, _bval_) \
657  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
658  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
659  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
660  _NT_NET_SET_PKT_ISL_EXT7(_hNetBuf_, _bval_); \
661  else assert(0); } while(0)
662 
663 #define _NT_NET_SET_PKT_VLAN_COUNT_EXT(_hNetBuf_, _count_) \
664  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
665  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
666  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
667  _NT_NET_SET_PKT_VLAN_COUNT_EXT7(_hNetBuf_, _count_); \
668  else assert(0); } while(0)
669 
670 #define _NT_NET_SET_PKT_MPLS_COUNT_EXT(_hNetBuf_, _count_) \
671  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
672  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
673  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
674  _NT_NET_SET_PKT_MPLS_COUNT_EXT7(_hNetBuf_, _count_); \
675  else assert(0); } while(0)
676 
677 #define _NT_NET_SET_PKT_L2_FRAME_TYPE_EXT(_hNetBuf_, _type_) \
678  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
679  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
680  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
681  _NT_NET_SET_PKT_L2_FRAME_TYPE_EXT7(_hNetBuf_, _type_); \
682  else assert(0); } while(0)
683 
684 #define _NT_NET_SET_PKT_L3_FRAME_TYPE_EXT(_hNetBuf_, _type_) \
685  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
686  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
687  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
688  _NT_NET_SET_PKT_L3_FRAME_TYPE_EXT7(_hNetBuf_, _type_); \
689  else assert(0); } while(0)
690 
691 #define _NT_NET_SET_PKT_L4_FRAME_TYPE_EXT(_hNetBuf_, _type_) \
692  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
693  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
694  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
695  _NT_NET_SET_PKT_L4_FRAME_TYPE_EXT7(_hNetBuf_, _type_); \
696  else assert(0); } while(0)
697 
698 #define _NT_NET_SET_PKT_L3_LENGTH_EXT(_hNetBuf_, _u32len_) \
699  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
700  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
701  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
702  _NT_NET_SET_PKT_L3_LENGTH_EXT7(_hNetBuf_, _u32len_); \
703  else assert(0); } while(0)
704 
705 #define _NT_NET_SET_PKT_L4_LENGTH_EXT(_hNetBuf_, _u32len_) \
706  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
707  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
708  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
709  _NT_NET_SET_PKT_L4_LENGTH_EXT7(_hNetBuf_, _u32len_); \
710  else assert(0); } while(0)
711 
712 #define _NT_NET_SET_PKT_CALC_L3_CHECKSUM_EXT(_hNetBuf_, _bval_) \
713  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
714  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
715  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
716  _NT_NET_SET_PKT_CALC_L3_CHECKSUM_EXT7(_hNetBuf_, _bval_); \
717  else assert(0); } while(0)
718 
719 #define _NT_NET_SET_PKT_CALC_L4_CHECKSUM_EXT(_hNetBuf_, _bval_) \
720  do { if(_NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==7 || \
721  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==8 || \
722  _NT_NET_GET_PKT_DESCR_FORMAT(_hNetBuf_)==9) \
723  _NT_NET_SET_PKT_CALC_L4_CHECKSUM_EXT7(_hNetBuf_, _bval_); \
724  else assert(0); } while(0)
725 
726 #endif
727 
728 #endif /* __PKT_DESCR_IMPL_H__ */
729 
730 #endif // DOXYGEN_INTERNAL_ONLY