capsule_ffi/
bindings_rustdoc.rs

1/* automatically generated by rust-bindgen 0.57.0 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    pub fn get_bit(&self, index: usize) -> bool {
20        debug_assert!(index / 8 < self.storage.as_ref().len());
21        let byte_index = index / 8;
22        let byte = self.storage.as_ref()[byte_index];
23        let bit_index = if cfg!(target_endian = "big") {
24            7 - (index % 8)
25        } else {
26            index % 8
27        };
28        let mask = 1 << bit_index;
29        byte & mask == mask
30    }
31    #[inline]
32    pub fn set_bit(&mut self, index: usize, val: bool) {
33        debug_assert!(index / 8 < self.storage.as_ref().len());
34        let byte_index = index / 8;
35        let byte = &mut self.storage.as_mut()[byte_index];
36        let bit_index = if cfg!(target_endian = "big") {
37            7 - (index % 8)
38        } else {
39            index % 8
40        };
41        let mask = 1 << bit_index;
42        if val {
43            *byte |= mask;
44        } else {
45            *byte &= !mask;
46        }
47    }
48    #[inline]
49    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
50        debug_assert!(bit_width <= 64);
51        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
52        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
53        let mut val = 0;
54        for i in 0..(bit_width as usize) {
55            if self.get_bit(i + bit_offset) {
56                let index = if cfg!(target_endian = "big") {
57                    bit_width as usize - 1 - i
58                } else {
59                    i
60                };
61                val |= 1 << index;
62            }
63        }
64        val
65    }
66    #[inline]
67    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
68        debug_assert!(bit_width <= 64);
69        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
70        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
71        for i in 0..(bit_width as usize) {
72            let mask = 1 << i;
73            let val_bit_is_set = val & mask == mask;
74            let index = if cfg!(target_endian = "big") {
75                bit_width as usize - 1 - i
76            } else {
77                i
78            };
79            self.set_bit(index + bit_offset, val_bit_is_set);
80        }
81    }
82}
83#[repr(C)]
84#[derive(Default)]
85pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
86impl<T> __IncompleteArrayField<T> {
87    #[inline]
88    pub const fn new() -> Self {
89        __IncompleteArrayField(::std::marker::PhantomData, [])
90    }
91    #[inline]
92    pub fn as_ptr(&self) -> *const T {
93        self as *const _ as *const T
94    }
95    #[inline]
96    pub fn as_mut_ptr(&mut self) -> *mut T {
97        self as *mut _ as *mut T
98    }
99    #[inline]
100    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
101        ::std::slice::from_raw_parts(self.as_ptr(), len)
102    }
103    #[inline]
104    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
105        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
106    }
107}
108impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
109    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
110        fmt.write_str("__IncompleteArrayField")
111    }
112}
113pub const RTE_ARCH_X86: u32 = 1;
114pub const RTE_ARCH_X86_64: u32 = 1;
115pub const RTE_CACHE_LINE_SIZE: u32 = 64;
116pub const RTE_DRIVER_MEMPOOL_BUCKET_SIZE_KB: u32 = 64;
117pub const RTE_EAL_NUMA_AWARE_HUGEPAGES: u32 = 1;
118pub const RTE_EAL_PMD_PATH: &'static [u8; 47usize] =
119    b"/usr/local/lib/x86_64-linux-gnu/dpdk/pmds-20.0\0";
120pub const RTE_EXEC_ENV_LINUX: u32 = 1;
121pub const RTE_HAS_LIBNUMA: u32 = 1;
122pub const RTE_IXGBE_INC_VECTOR: u32 = 1;
123pub const RTE_LIBRTE_ACL: u32 = 1;
124pub const RTE_LIBRTE_AF_PACKET_PMD: u32 = 1;
125pub const RTE_LIBRTE_ARK_PMD: u32 = 1;
126pub const RTE_LIBRTE_ATLANTIC_PMD: u32 = 1;
127pub const RTE_LIBRTE_AVP_PMD: u32 = 1;
128pub const RTE_LIBRTE_AXGBE_PMD: u32 = 1;
129pub const RTE_LIBRTE_BBDEV: u32 = 1;
130pub const RTE_LIBRTE_BITRATESTATS: u32 = 1;
131pub const RTE_LIBRTE_BNXT_PMD: u32 = 1;
132pub const RTE_LIBRTE_BOND_PMD: u32 = 1;
133pub const RTE_LIBRTE_BPF: u32 = 1;
134pub const RTE_LIBRTE_BUCKET_MEMPOOL: u32 = 1;
135pub const RTE_LIBRTE_CAAM_JR_PMD: u32 = 1;
136pub const RTE_LIBRTE_CFGFILE: u32 = 1;
137pub const RTE_LIBRTE_CMDLINE: u32 = 1;
138pub const RTE_LIBRTE_COMPRESSDEV: u32 = 1;
139pub const RTE_LIBRTE_CPT_COMMON: u32 = 1;
140pub const RTE_LIBRTE_CRYPTODEV: u32 = 1;
141pub const RTE_LIBRTE_CRYPTO_SCHEDULER_PMD: u32 = 1;
142pub const RTE_LIBRTE_CXGBE_PMD: u32 = 1;
143pub const RTE_LIBRTE_DISTRIBUTOR: u32 = 1;
144pub const RTE_LIBRTE_DPAA2_EVENTDEV_PMD: u32 = 1;
145pub const RTE_LIBRTE_DPAA2_MEMPOOL: u32 = 1;
146pub const RTE_LIBRTE_DPAA2_PMD: u32 = 1;
147pub const RTE_LIBRTE_DPAA2_SEC_PMD: u32 = 1;
148pub const RTE_LIBRTE_DPAAX_COMMON: u32 = 1;
149pub const RTE_LIBRTE_DPAA_BUS: u32 = 1;
150pub const RTE_LIBRTE_DPAA_EVENTDEV_PMD: u32 = 1;
151pub const RTE_LIBRTE_DPAA_MEMPOOL: u32 = 1;
152pub const RTE_LIBRTE_DPAA_PMD: u32 = 1;
153pub const RTE_LIBRTE_DPAA_SEC_PMD: u32 = 1;
154pub const RTE_LIBRTE_DSW_EVENTDEV_PMD: u32 = 1;
155pub const RTE_LIBRTE_E1000_PMD: u32 = 1;
156pub const RTE_LIBRTE_EAL: u32 = 1;
157pub const RTE_LIBRTE_EFD: u32 = 1;
158pub const RTE_LIBRTE_ENA_PMD: u32 = 1;
159pub const RTE_LIBRTE_ENETC_PMD: u32 = 1;
160pub const RTE_LIBRTE_ENIC_PMD: u32 = 1;
161pub const RTE_LIBRTE_ETHDEV: u32 = 1;
162pub const RTE_LIBRTE_EVENTDEV: u32 = 1;
163pub const RTE_LIBRTE_FAILSAFE_PMD: u32 = 1;
164pub const RTE_LIBRTE_FIB: u32 = 1;
165pub const RTE_LIBRTE_FLOW_CLASSIFY: u32 = 1;
166pub const RTE_LIBRTE_FM10K_INC_VECTOR: u32 = 1;
167pub const RTE_LIBRTE_FM10K_PMD: u32 = 1;
168pub const RTE_LIBRTE_FSLMC_BUS: u32 = 1;
169pub const RTE_LIBRTE_GRO: u32 = 1;
170pub const RTE_LIBRTE_GSO: u32 = 1;
171pub const RTE_LIBRTE_HASH: u32 = 1;
172pub const RTE_LIBRTE_HINIC_PMD: u32 = 1;
173pub const RTE_LIBRTE_HNS3_PMD: u32 = 1;
174pub const RTE_LIBRTE_I40E_INC_VECTOR: u32 = 1;
175pub const RTE_LIBRTE_I40E_PMD: u32 = 1;
176pub const RTE_LIBRTE_IAVF_PMD: u32 = 1;
177pub const RTE_LIBRTE_ICE_PMD: u32 = 1;
178pub const RTE_LIBRTE_IFC_PMD: u32 = 1;
179pub const RTE_LIBRTE_IFPGA_BUS: u32 = 1;
180pub const RTE_LIBRTE_IPSEC: u32 = 1;
181pub const RTE_LIBRTE_IP_FRAG: u32 = 1;
182pub const RTE_LIBRTE_IXGBE_PMD: u32 = 1;
183pub const RTE_LIBRTE_JOBSTATS: u32 = 1;
184pub const RTE_LIBRTE_KNI: u32 = 1;
185pub const RTE_LIBRTE_KNI_PMD: u32 = 1;
186pub const RTE_LIBRTE_KVARGS: u32 = 1;
187pub const RTE_LIBRTE_LATENCYSTATS: u32 = 1;
188pub const RTE_LIBRTE_LIQUIDIO_PMD: u32 = 1;
189pub const RTE_LIBRTE_LPM: u32 = 1;
190pub const RTE_LIBRTE_MBUF: u32 = 1;
191pub const RTE_LIBRTE_MEMBER: u32 = 1;
192pub const RTE_LIBRTE_MEMIF_PMD: u32 = 1;
193pub const RTE_LIBRTE_MEMPOOL: u32 = 1;
194pub const RTE_LIBRTE_METER: u32 = 1;
195pub const RTE_LIBRTE_METRICS: u32 = 1;
196pub const RTE_LIBRTE_NET: u32 = 1;
197pub const RTE_LIBRTE_NETVSC_PMD: u32 = 1;
198pub const RTE_LIBRTE_NFP_PMD: u32 = 1;
199pub const RTE_LIBRTE_NITROX_PMD: u32 = 1;
200pub const RTE_LIBRTE_NULL_CRYPTO_PMD: u32 = 1;
201pub const RTE_LIBRTE_NULL_PMD: u32 = 1;
202pub const RTE_LIBRTE_OCTEONTX2_COMMON: u32 = 1;
203pub const RTE_LIBRTE_OCTEONTX2_CRYPTO_PMD: u32 = 1;
204pub const RTE_LIBRTE_OCTEONTX2_EVENTDEV_PMD: u32 = 1;
205pub const RTE_LIBRTE_OCTEONTX2_MEMPOOL: u32 = 1;
206pub const RTE_LIBRTE_OCTEONTX2_PMD: u32 = 1;
207pub const RTE_LIBRTE_OCTEONTX_COMMON: u32 = 1;
208pub const RTE_LIBRTE_OCTEONTX_COMPRESS_PMD: u32 = 1;
209pub const RTE_LIBRTE_OCTEONTX_CRYPTO_PMD: u32 = 1;
210pub const RTE_LIBRTE_OCTEONTX_EVENTDEV_PMD: u32 = 1;
211pub const RTE_LIBRTE_OCTEONTX_MEMPOOL: u32 = 1;
212pub const RTE_LIBRTE_OCTEONTX_PMD: u32 = 1;
213pub const RTE_LIBRTE_OPDL_EVENTDEV_PMD: u32 = 1;
214pub const RTE_LIBRTE_PCAP_PMD: u32 = 1;
215pub const RTE_LIBRTE_PCI: u32 = 1;
216pub const RTE_LIBRTE_PCI_BUS: u32 = 1;
217pub const RTE_LIBRTE_PDUMP: u32 = 1;
218pub const RTE_LIBRTE_PFE_PMD: u32 = 1;
219pub const RTE_LIBRTE_PIPELINE: u32 = 1;
220pub const RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC: u32 = 1;
221pub const RTE_LIBRTE_PMD_BBDEV_NULL: u32 = 1;
222pub const RTE_LIBRTE_PMD_BBDEV_TURBO_SW: u32 = 1;
223pub const RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV: u32 = 1;
224pub const RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV: u32 = 1;
225pub const RTE_LIBRTE_PMD_IOAT_RAWDEV: u32 = 1;
226pub const RTE_LIBRTE_PMD_NTB_RAWDEV: u32 = 1;
227pub const RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV: u32 = 1;
228pub const RTE_LIBRTE_PMD_SKELETON_RAWDEV: u32 = 1;
229pub const RTE_LIBRTE_PORT: u32 = 1;
230pub const RTE_LIBRTE_POWER: u32 = 1;
231pub const RTE_LIBRTE_QAT_PMD: u32 = 1;
232pub const RTE_LIBRTE_QEDE_PMD: u32 = 1;
233pub const RTE_LIBRTE_RAWDEV: u32 = 1;
234pub const RTE_LIBRTE_RCU: u32 = 1;
235pub const RTE_LIBRTE_REORDER: u32 = 1;
236pub const RTE_LIBRTE_RIB: u32 = 1;
237pub const RTE_LIBRTE_RING: u32 = 1;
238pub const RTE_LIBRTE_RING_MEMPOOL: u32 = 1;
239pub const RTE_LIBRTE_RING_PMD: u32 = 1;
240pub const RTE_LIBRTE_SCHED: u32 = 1;
241pub const RTE_LIBRTE_SECURITY: u32 = 1;
242pub const RTE_LIBRTE_SFC_PMD: u32 = 1;
243pub const RTE_LIBRTE_SKELETON_EVENTDEV_PMD: u32 = 1;
244pub const RTE_LIBRTE_SOFTNIC_PMD: u32 = 1;
245pub const RTE_LIBRTE_STACK: u32 = 1;
246pub const RTE_LIBRTE_STACK_MEMPOOL: u32 = 1;
247pub const RTE_LIBRTE_SW_EVENTDEV_PMD: u32 = 1;
248pub const RTE_LIBRTE_TABLE: u32 = 1;
249pub const RTE_LIBRTE_TAP_PMD: u32 = 1;
250pub const RTE_LIBRTE_THUNDERX_PMD: u32 = 1;
251pub const RTE_LIBRTE_TIMER: u32 = 1;
252pub const RTE_LIBRTE_VDEV_BUS: u32 = 1;
253pub const RTE_LIBRTE_VDEV_NETVSC_PMD: u32 = 1;
254pub const RTE_LIBRTE_VHOST: u32 = 1;
255pub const RTE_LIBRTE_VHOST_NUMA: u32 = 1;
256pub const RTE_LIBRTE_VHOST_PMD: u32 = 1;
257pub const RTE_LIBRTE_VIRTIO_CRYPTO_PMD: u32 = 1;
258pub const RTE_LIBRTE_VIRTIO_PMD: u32 = 1;
259pub const RTE_LIBRTE_VMBUS_BUS: u32 = 1;
260pub const RTE_LIBRTE_VMXNET3_PMD: u32 = 1;
261pub const RTE_MACHINE_CPUFLAG_SSE: u32 = 1;
262pub const RTE_MACHINE_CPUFLAG_SSE2: u32 = 1;
263pub const RTE_MACHINE_CPUFLAG_SSE3: u32 = 1;
264pub const RTE_MACHINE_CPUFLAG_SSE4_1: u32 = 1;
265pub const RTE_MACHINE_CPUFLAG_SSE4_2: u32 = 1;
266pub const RTE_MACHINE_CPUFLAG_SSSE3: u32 = 1;
267pub const RTE_MAX_ETHPORTS: u32 = 32;
268pub const RTE_MAX_LCORE: u32 = 128;
269pub const RTE_MAX_MEM_MB: u32 = 524288;
270pub const RTE_MAX_NUMA_NODES: u32 = 4;
271pub const RTE_MAX_VFIO_GROUPS: u32 = 64;
272pub const RTE_PORT_PCAP: u32 = 1;
273pub const RTE_TOOLCHAIN: &'static [u8; 4usize] = b"gcc\0";
274pub const RTE_TOOLCHAIN_GCC: u32 = 1;
275pub const RTE_VER_MINOR: u32 = 6;
276pub const RTE_VER_MONTH: u32 = 11;
277pub const RTE_VER_RELEASE: u32 = 99;
278pub const RTE_VER_SUFFIX: &'static [u8; 1usize] = b"\0";
279pub const RTE_VER_YEAR: u32 = 19;
280pub const RTE_VIRTIO_USER: u32 = 1;
281pub const RTE_EXEC_ENV_LINUXAPP: u32 = 1;
282pub const RTE_VER_PREFIX: &'static [u8; 5usize] = b"DPDK\0";
283pub const RTE_MAX_HEAPS: u32 = 32;
284pub const RTE_MAX_MEMSEG_LISTS: u32 = 128;
285pub const RTE_MAX_MEMSEG_PER_LIST: u32 = 8192;
286pub const RTE_MAX_MEM_MB_PER_LIST: u32 = 32768;
287pub const RTE_MAX_MEMSEG_PER_TYPE: u32 = 32768;
288pub const RTE_MAX_MEM_MB_PER_TYPE: u32 = 65536;
289pub const RTE_MAX_MEMZONE: u32 = 2560;
290pub const RTE_MAX_TAILQ: u32 = 32;
291pub const RTE_BACKTRACE: u32 = 1;
292pub const RTE_MAX_VFIO_CONTAINERS: u32 = 64;
293pub const RTE_CONTIGMEM_MAX_NUM_BUFS: u32 = 64;
294pub const RTE_CONTIGMEM_DEFAULT_NUM_BUFS: u32 = 1;
295pub const RTE_CONTIGMEM_DEFAULT_BUF_SIZE: u32 = 536870912;
296pub const RTE_MEMPOOL_CACHE_MAX_SIZE: u32 = 512;
297pub const RTE_MBUF_DEFAULT_MEMPOOL_OPS: &'static [u8; 11usize] = b"ring_mp_mc\0";
298pub const RTE_MBUF_REFCNT_ATOMIC: u32 = 1;
299pub const RTE_PKTMBUF_HEADROOM: u32 = 128;
300pub const RTE_MAX_QUEUES_PER_PORT: u32 = 1024;
301pub const RTE_ETHDEV_QUEUE_STAT_CNTRS: u32 = 16;
302pub const RTE_ETHDEV_RXTX_CALLBACKS: u32 = 1;
303pub const RTE_CRYPTO_MAX_DEVS: u32 = 64;
304pub const RTE_CRYPTODEV_NAME_LEN: u32 = 64;
305pub const RTE_COMPRESS_MAX_DEVS: u32 = 64;
306pub const RTE_EVENT_MAX_DEVS: u32 = 16;
307pub const RTE_EVENT_MAX_QUEUES_PER_DEV: u32 = 64;
308pub const RTE_EVENT_TIMER_ADAPTER_NUM_MAX: u32 = 32;
309pub const RTE_EVENT_ETH_INTR_RING_SIZE: u32 = 1024;
310pub const RTE_EVENT_CRYPTO_ADAPTER_MAX_INSTANCE: u32 = 32;
311pub const RTE_EVENT_ETH_TX_ADAPTER_MAX_INSTANCE: u32 = 32;
312pub const RTE_RAWDEV_MAX_DEVS: u32 = 64;
313pub const RTE_LIBRTE_IP_FRAG_MAX_FRAG: u32 = 4;
314pub const RTE_MAX_LCORE_FREQS: u32 = 64;
315pub const RTE_SCHED_PORT_N_GRINDERS: u32 = 8;
316pub const RTE_KNI_PREEMPT_DEFAULT: u32 = 1;
317pub const RTE_PMD_PACKET_PREFETCH: u32 = 1;
318pub const RTE_PMD_QAT_MAX_PCI_DEVICES: u32 = 48;
319pub const RTE_PMD_QAT_COMP_SGL_MAX_SEGMENTS: u32 = 16;
320pub const RTE_PMD_QAT_COMP_IM_BUFFER_SIZE: u32 = 65536;
321pub const RTE_MAX_VIRTIO_CRYPTO: u32 = 32;
322pub const RTE_LIBRTE_DPAA_MAX_CRYPTODEV: u32 = 4;
323pub const RTE_LIBRTE_FM10K_RX_OLFLAGS_ENABLE: u32 = 1;
324pub const RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC: u32 = 1;
325pub const RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF: u32 = 64;
326pub const RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF: u32 = 4;
327pub const RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM: u32 = 4;
328pub const RTE_PMD_RING_MAX_RX_RINGS: u32 = 16;
329pub const RTE_PMD_RING_MAX_TX_RINGS: u32 = 16;
330pub const RTE_LIBRTE_QEDE_FW: &'static [u8; 1usize] = b"\0";
331pub const RTE_PRIORITY_LOG: u32 = 101;
332pub const RTE_PRIORITY_BUS: u32 = 110;
333pub const RTE_PRIORITY_CLASS: u32 = 120;
334pub const RTE_PRIORITY_LAST: u32 = 65535;
335pub const RTE_CACHE_LINE_MASK: u32 = 63;
336pub const RTE_CACHE_LINE_SIZE_LOG2: u32 = 6;
337pub const RTE_CACHE_LINE_MIN_SIZE: u32 = 64;
338pub const RTE_LOGTYPE_EAL: u32 = 0;
339pub const RTE_LOGTYPE_MALLOC: u32 = 1;
340pub const RTE_LOGTYPE_RING: u32 = 2;
341pub const RTE_LOGTYPE_MEMPOOL: u32 = 3;
342pub const RTE_LOGTYPE_TIMER: u32 = 4;
343pub const RTE_LOGTYPE_PMD: u32 = 5;
344pub const RTE_LOGTYPE_HASH: u32 = 6;
345pub const RTE_LOGTYPE_LPM: u32 = 7;
346pub const RTE_LOGTYPE_KNI: u32 = 8;
347pub const RTE_LOGTYPE_ACL: u32 = 9;
348pub const RTE_LOGTYPE_POWER: u32 = 10;
349pub const RTE_LOGTYPE_METER: u32 = 11;
350pub const RTE_LOGTYPE_SCHED: u32 = 12;
351pub const RTE_LOGTYPE_PORT: u32 = 13;
352pub const RTE_LOGTYPE_TABLE: u32 = 14;
353pub const RTE_LOGTYPE_PIPELINE: u32 = 15;
354pub const RTE_LOGTYPE_MBUF: u32 = 16;
355pub const RTE_LOGTYPE_CRYPTODEV: u32 = 17;
356pub const RTE_LOGTYPE_EFD: u32 = 18;
357pub const RTE_LOGTYPE_EVENTDEV: u32 = 19;
358pub const RTE_LOGTYPE_GSO: u32 = 20;
359pub const RTE_LOGTYPE_USER1: u32 = 24;
360pub const RTE_LOGTYPE_USER2: u32 = 25;
361pub const RTE_LOGTYPE_USER3: u32 = 26;
362pub const RTE_LOGTYPE_USER4: u32 = 27;
363pub const RTE_LOGTYPE_USER5: u32 = 28;
364pub const RTE_LOGTYPE_USER6: u32 = 29;
365pub const RTE_LOGTYPE_USER7: u32 = 30;
366pub const RTE_LOGTYPE_USER8: u32 = 31;
367pub const RTE_LOGTYPE_FIRST_EXT_ID: u32 = 32;
368pub const RTE_LOG_EMERG: u32 = 1;
369pub const RTE_LOG_ALERT: u32 = 2;
370pub const RTE_LOG_CRIT: u32 = 3;
371pub const RTE_LOG_ERR: u32 = 4;
372pub const RTE_LOG_WARNING: u32 = 5;
373pub const RTE_LOG_NOTICE: u32 = 6;
374pub const RTE_LOG_INFO: u32 = 7;
375pub const RTE_LOG_DEBUG: u32 = 8;
376pub const RTE_DEV_NAME_MAX_LEN: u32 = 64;
377pub const RTE_MAGIC: u32 = 19820526;
378pub const RTE_MAX_THREAD_NAME_LEN: u32 = 16;
379pub const RTE_MP_MAX_FD_NUM: u32 = 8;
380pub const RTE_MP_MAX_NAME_LEN: u32 = 64;
381pub const RTE_MP_MAX_PARAM_LEN: u32 = 256;
382pub const RTE_MAX_RXTX_INTR_VEC_ID: u32 = 512;
383pub const RTE_INTR_VEC_ZERO_OFFSET: u32 = 0;
384pub const RTE_INTR_VEC_RXTX_OFFSET: u32 = 1;
385pub const RTE_INTR_EVENT_ADD: u32 = 1;
386pub const RTE_INTR_EVENT_DEL: u32 = 2;
387pub const RTE_EPOLL_PER_THREAD: i32 = -1;
388pub const RTE_XBEGIN_STARTED: i32 = -1;
389pub const RTE_XABORT_EXPLICIT: u32 = 1;
390pub const RTE_XABORT_RETRY: u32 = 2;
391pub const RTE_XABORT_CONFLICT: u32 = 4;
392pub const RTE_XABORT_CAPACITY: u32 = 8;
393pub const RTE_XABORT_DEBUG: u32 = 16;
394pub const RTE_XABORT_NESTED: u32 = 32;
395pub const RTE_RTM_MAX_RETRIES: u32 = 20;
396pub const RTE_XABORT_LOCK_BUSY: u32 = 255;
397pub const RTE_FBARRAY_NAME_LEN: u32 = 64;
398pub const RTE_MEMSEG_FLAG_DO_NOT_FREE: u32 = 1;
399pub const RTE_MEM_EVENT_CALLBACK_NAME_LEN: u32 = 64;
400pub const RTE_MEM_ALLOC_VALIDATOR_NAME_LEN: u32 = 64;
401pub const RTE_MEMZONE_2MB: u32 = 1;
402pub const RTE_MEMZONE_1GB: u32 = 2;
403pub const RTE_MEMZONE_16MB: u32 = 256;
404pub const RTE_MEMZONE_16GB: u32 = 512;
405pub const RTE_MEMZONE_256KB: u32 = 65536;
406pub const RTE_MEMZONE_256MB: u32 = 131072;
407pub const RTE_MEMZONE_512MB: u32 = 262144;
408pub const RTE_MEMZONE_4GB: u32 = 524288;
409pub const RTE_MEMZONE_SIZE_HINT_ONLY: u32 = 4;
410pub const RTE_MEMZONE_IOVA_CONTIG: u32 = 1048576;
411pub const RTE_MEMZONE_NAMESIZE: u32 = 32;
412pub const RTE_TAILQ_RING_NAME: &'static [u8; 9usize] = b"RTE_RING\0";
413pub const RTE_RING_MZ_PREFIX: &'static [u8; 4usize] = b"RG_\0";
414pub const RTE_RING_SZ_MASK: u32 = 2147483647;
415pub const RTE_MEMPOOL_HEADER_COOKIE1: i64 = -4982197544707871147;
416pub const RTE_MEMPOOL_HEADER_COOKIE2: i64 = -941548164385788331;
417pub const RTE_MEMPOOL_TRAILER_COOKIE: i64 = -5921418378119291987;
418pub const RTE_MEMPOOL_MZ_PREFIX: &'static [u8; 4usize] = b"MP_\0";
419pub const RTE_MEMPOOL_MZ_FORMAT: &'static [u8; 6usize] = b"MP_%s\0";
420pub const MEMPOOL_PG_NUM_DEFAULT: u32 = 1;
421pub const RTE_MEMPOOL_ALIGN: u32 = 64;
422pub const RTE_MEMPOOL_ALIGN_MASK: u32 = 63;
423pub const MEMPOOL_F_NO_SPREAD: u32 = 1;
424pub const MEMPOOL_F_NO_CACHE_ALIGN: u32 = 2;
425pub const MEMPOOL_F_SP_PUT: u32 = 4;
426pub const MEMPOOL_F_SC_GET: u32 = 8;
427pub const MEMPOOL_F_POOL_CREATED: u32 = 16;
428pub const MEMPOOL_F_NO_IOVA_CONTIG: u32 = 32;
429pub const MEMPOOL_F_NO_PHYS_CONTIG: u32 = 32;
430pub const RTE_MEMPOOL_OPS_NAMESIZE: u32 = 32;
431pub const RTE_MEMPOOL_POPULATE_F_ALIGN_OBJ: u32 = 1;
432pub const RTE_MEMPOOL_MAX_OPS_IDX: u32 = 16;
433pub const RTE_BIG_ENDIAN: u32 = 1;
434pub const RTE_LITTLE_ENDIAN: u32 = 2;
435pub const RTE_BYTE_ORDER: u32 = 2;
436pub const RTE_PTYPE_UNKNOWN: u32 = 0;
437pub const RTE_PTYPE_L2_ETHER: u32 = 1;
438pub const RTE_PTYPE_L2_ETHER_TIMESYNC: u32 = 2;
439pub const RTE_PTYPE_L2_ETHER_ARP: u32 = 3;
440pub const RTE_PTYPE_L2_ETHER_LLDP: u32 = 4;
441pub const RTE_PTYPE_L2_ETHER_NSH: u32 = 5;
442pub const RTE_PTYPE_L2_ETHER_VLAN: u32 = 6;
443pub const RTE_PTYPE_L2_ETHER_QINQ: u32 = 7;
444pub const RTE_PTYPE_L2_ETHER_PPPOE: u32 = 8;
445pub const RTE_PTYPE_L2_ETHER_FCOE: u32 = 9;
446pub const RTE_PTYPE_L2_ETHER_MPLS: u32 = 10;
447pub const RTE_PTYPE_L2_MASK: u32 = 15;
448pub const RTE_PTYPE_L3_IPV4: u32 = 16;
449pub const RTE_PTYPE_L3_IPV4_EXT: u32 = 48;
450pub const RTE_PTYPE_L3_IPV6: u32 = 64;
451pub const RTE_PTYPE_L3_IPV4_EXT_UNKNOWN: u32 = 144;
452pub const RTE_PTYPE_L3_IPV6_EXT: u32 = 192;
453pub const RTE_PTYPE_L3_IPV6_EXT_UNKNOWN: u32 = 224;
454pub const RTE_PTYPE_L3_MASK: u32 = 240;
455pub const RTE_PTYPE_L4_TCP: u32 = 256;
456pub const RTE_PTYPE_L4_UDP: u32 = 512;
457pub const RTE_PTYPE_L4_FRAG: u32 = 768;
458pub const RTE_PTYPE_L4_SCTP: u32 = 1024;
459pub const RTE_PTYPE_L4_ICMP: u32 = 1280;
460pub const RTE_PTYPE_L4_NONFRAG: u32 = 1536;
461pub const RTE_PTYPE_L4_IGMP: u32 = 1792;
462pub const RTE_PTYPE_L4_MASK: u32 = 3840;
463pub const RTE_PTYPE_TUNNEL_IP: u32 = 4096;
464pub const RTE_PTYPE_TUNNEL_GRE: u32 = 8192;
465pub const RTE_PTYPE_TUNNEL_VXLAN: u32 = 12288;
466pub const RTE_PTYPE_TUNNEL_NVGRE: u32 = 16384;
467pub const RTE_PTYPE_TUNNEL_GENEVE: u32 = 20480;
468pub const RTE_PTYPE_TUNNEL_GRENAT: u32 = 24576;
469pub const RTE_PTYPE_TUNNEL_GTPC: u32 = 28672;
470pub const RTE_PTYPE_TUNNEL_GTPU: u32 = 32768;
471pub const RTE_PTYPE_TUNNEL_ESP: u32 = 36864;
472pub const RTE_PTYPE_TUNNEL_L2TP: u32 = 40960;
473pub const RTE_PTYPE_TUNNEL_VXLAN_GPE: u32 = 45056;
474pub const RTE_PTYPE_TUNNEL_MPLS_IN_GRE: u32 = 49152;
475pub const RTE_PTYPE_TUNNEL_MPLS_IN_UDP: u32 = 53248;
476pub const RTE_PTYPE_TUNNEL_MASK: u32 = 61440;
477pub const RTE_PTYPE_INNER_L2_ETHER: u32 = 65536;
478pub const RTE_PTYPE_INNER_L2_ETHER_VLAN: u32 = 131072;
479pub const RTE_PTYPE_INNER_L2_ETHER_QINQ: u32 = 196608;
480pub const RTE_PTYPE_INNER_L2_MASK: u32 = 983040;
481pub const RTE_PTYPE_INNER_L3_IPV4: u32 = 1048576;
482pub const RTE_PTYPE_INNER_L3_IPV4_EXT: u32 = 2097152;
483pub const RTE_PTYPE_INNER_L3_IPV6: u32 = 3145728;
484pub const RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN: u32 = 4194304;
485pub const RTE_PTYPE_INNER_L3_IPV6_EXT: u32 = 5242880;
486pub const RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN: u32 = 6291456;
487pub const RTE_PTYPE_INNER_L3_MASK: u32 = 15728640;
488pub const RTE_PTYPE_INNER_L4_TCP: u32 = 16777216;
489pub const RTE_PTYPE_INNER_L4_UDP: u32 = 33554432;
490pub const RTE_PTYPE_INNER_L4_FRAG: u32 = 50331648;
491pub const RTE_PTYPE_INNER_L4_SCTP: u32 = 67108864;
492pub const RTE_PTYPE_INNER_L4_ICMP: u32 = 83886080;
493pub const RTE_PTYPE_INNER_L4_NONFRAG: u32 = 100663296;
494pub const RTE_PTYPE_INNER_L4_MASK: u32 = 251658240;
495pub const RTE_PTYPE_ALL_MASK: u32 = 268435455;
496pub const PKT_RX_VLAN: u32 = 1;
497pub const PKT_RX_RSS_HASH: u32 = 2;
498pub const PKT_RX_FDIR: u32 = 4;
499pub const PKT_RX_L4_CKSUM_BAD: u32 = 8;
500pub const PKT_RX_IP_CKSUM_BAD: u32 = 16;
501pub const PKT_RX_EIP_CKSUM_BAD: u32 = 32;
502pub const PKT_RX_VLAN_STRIPPED: u32 = 64;
503pub const PKT_RX_IP_CKSUM_MASK: u32 = 144;
504pub const PKT_RX_IP_CKSUM_UNKNOWN: u32 = 0;
505pub const PKT_RX_IP_CKSUM_GOOD: u32 = 128;
506pub const PKT_RX_IP_CKSUM_NONE: u32 = 144;
507pub const PKT_RX_L4_CKSUM_MASK: u32 = 264;
508pub const PKT_RX_L4_CKSUM_UNKNOWN: u32 = 0;
509pub const PKT_RX_L4_CKSUM_GOOD: u32 = 256;
510pub const PKT_RX_L4_CKSUM_NONE: u32 = 264;
511pub const PKT_RX_IEEE1588_PTP: u32 = 512;
512pub const PKT_RX_IEEE1588_TMST: u32 = 1024;
513pub const PKT_RX_FDIR_ID: u32 = 8192;
514pub const PKT_RX_FDIR_FLX: u32 = 16384;
515pub const PKT_RX_QINQ_STRIPPED: u32 = 32768;
516pub const PKT_RX_LRO: u32 = 65536;
517pub const PKT_RX_TIMESTAMP: u32 = 131072;
518pub const PKT_RX_SEC_OFFLOAD: u32 = 262144;
519pub const PKT_RX_SEC_OFFLOAD_FAILED: u32 = 524288;
520pub const PKT_RX_QINQ: u32 = 1048576;
521pub const PKT_RX_OUTER_L4_CKSUM_MASK: u32 = 6291456;
522pub const PKT_RX_OUTER_L4_CKSUM_UNKNOWN: u32 = 0;
523pub const PKT_RX_OUTER_L4_CKSUM_BAD: u32 = 2097152;
524pub const PKT_RX_OUTER_L4_CKSUM_GOOD: u32 = 4194304;
525pub const PKT_RX_OUTER_L4_CKSUM_INVALID: u32 = 6291456;
526pub const PKT_FIRST_FREE: u32 = 8388608;
527pub const PKT_LAST_FREE: u64 = 1099511627776;
528pub const PKT_TX_OUTER_UDP_CKSUM: u64 = 2199023255552;
529pub const PKT_TX_UDP_SEG: u64 = 4398046511104;
530pub const PKT_TX_SEC_OFFLOAD: u64 = 8796093022208;
531pub const PKT_TX_MACSEC: u64 = 17592186044416;
532pub const PKT_TX_TUNNEL_VXLAN: u64 = 35184372088832;
533pub const PKT_TX_TUNNEL_GRE: u64 = 70368744177664;
534pub const PKT_TX_TUNNEL_IPIP: u64 = 105553116266496;
535pub const PKT_TX_TUNNEL_GENEVE: u64 = 140737488355328;
536pub const PKT_TX_TUNNEL_MPLSINUDP: u64 = 175921860444160;
537pub const PKT_TX_TUNNEL_VXLAN_GPE: u64 = 211106232532992;
538pub const PKT_TX_TUNNEL_GTP: u64 = 246290604621824;
539pub const PKT_TX_TUNNEL_IP: u64 = 457396837154816;
540pub const PKT_TX_TUNNEL_UDP: u64 = 492581209243648;
541pub const PKT_TX_TUNNEL_MASK: u64 = 527765581332480;
542pub const PKT_TX_QINQ: u64 = 562949953421312;
543pub const PKT_TX_QINQ_PKT: u64 = 562949953421312;
544pub const PKT_TX_TCP_SEG: u64 = 1125899906842624;
545pub const PKT_TX_IEEE1588_TMST: u64 = 2251799813685248;
546pub const PKT_TX_L4_NO_CKSUM: u32 = 0;
547pub const PKT_TX_TCP_CKSUM: u64 = 4503599627370496;
548pub const PKT_TX_SCTP_CKSUM: u64 = 9007199254740992;
549pub const PKT_TX_UDP_CKSUM: u64 = 13510798882111488;
550pub const PKT_TX_L4_MASK: u64 = 13510798882111488;
551pub const PKT_TX_IP_CKSUM: u64 = 18014398509481984;
552pub const PKT_TX_IPV4: u64 = 36028797018963968;
553pub const PKT_TX_IPV6: u64 = 72057594037927936;
554pub const PKT_TX_VLAN: u64 = 144115188075855872;
555pub const PKT_TX_VLAN_PKT: u64 = 144115188075855872;
556pub const PKT_TX_OUTER_IP_CKSUM: u64 = 288230376151711744;
557pub const PKT_TX_OUTER_IPV4: u64 = 576460752303423488;
558pub const PKT_TX_OUTER_IPV6: u64 = 1152921504606846976;
559pub const PKT_TX_OFFLOAD_MASK: u64 = 2305840810190438400;
560pub const RTE_MBUF_PRIV_ALIGN: u32 = 8;
561pub const RTE_MBUF_DEFAULT_DATAROOM: u32 = 2048;
562pub const RTE_MBUF_DEFAULT_BUF_SIZE: u32 = 2176;
563pub const RTE_MBUF_MAX_NB_SEGS: u32 = 65535;
564pub const RTE_ETHER_ADDR_LEN: u32 = 6;
565pub const RTE_ETHER_TYPE_LEN: u32 = 2;
566pub const RTE_ETHER_CRC_LEN: u32 = 4;
567pub const RTE_ETHER_HDR_LEN: u32 = 14;
568pub const RTE_ETHER_MIN_LEN: u32 = 64;
569pub const RTE_ETHER_MAX_LEN: u32 = 1518;
570pub const RTE_ETHER_MTU: u32 = 1500;
571pub const RTE_ETHER_MAX_VLAN_FRAME_LEN: u32 = 1522;
572pub const RTE_ETHER_MAX_JUMBO_FRAME_LEN: u32 = 16128;
573pub const RTE_ETHER_MAX_VLAN_ID: u32 = 4095;
574pub const RTE_ETHER_MIN_MTU: u32 = 68;
575pub const RTE_ETHER_LOCAL_ADMIN_ADDR: u32 = 2;
576pub const RTE_ETHER_GROUP_ADDR: u32 = 1;
577pub const RTE_ETHER_ADDR_FMT_SIZE: u32 = 18;
578pub const RTE_ETHER_TYPE_IPV4: u32 = 2048;
579pub const RTE_ETHER_TYPE_IPV6: u32 = 34525;
580pub const RTE_ETHER_TYPE_ARP: u32 = 2054;
581pub const RTE_ETHER_TYPE_RARP: u32 = 32821;
582pub const RTE_ETHER_TYPE_VLAN: u32 = 33024;
583pub const RTE_ETHER_TYPE_QINQ: u32 = 34984;
584pub const RTE_ETHER_TYPE_PPPOE_DISCOVERY: u32 = 34915;
585pub const RTE_ETHER_TYPE_PPPOE_SESSION: u32 = 34916;
586pub const RTE_ETHER_TYPE_ETAG: u32 = 35135;
587pub const RTE_ETHER_TYPE_1588: u32 = 35063;
588pub const RTE_ETHER_TYPE_SLOW: u32 = 34825;
589pub const RTE_ETHER_TYPE_TEB: u32 = 25944;
590pub const RTE_ETHER_TYPE_LLDP: u32 = 35020;
591pub const RTE_ETHER_TYPE_MPLS: u32 = 34887;
592pub const RTE_ETHER_TYPE_MPLSM: u32 = 34888;
593pub const RTE_ETH_MODULE_SFF_8079: u32 = 1;
594pub const RTE_ETH_MODULE_SFF_8079_LEN: u32 = 256;
595pub const RTE_ETH_MODULE_SFF_8472: u32 = 2;
596pub const RTE_ETH_MODULE_SFF_8472_LEN: u32 = 512;
597pub const RTE_ETH_MODULE_SFF_8636: u32 = 3;
598pub const RTE_ETH_MODULE_SFF_8636_LEN: u32 = 256;
599pub const RTE_ETH_MODULE_SFF_8636_MAX_LEN: u32 = 640;
600pub const RTE_ETH_MODULE_SFF_8436: u32 = 4;
601pub const RTE_ETH_MODULE_SFF_8436_LEN: u32 = 256;
602pub const RTE_ETH_MODULE_SFF_8436_MAX_LEN: u32 = 640;
603pub const ETH_LINK_SPEED_AUTONEG: u32 = 0;
604pub const ETH_LINK_SPEED_FIXED: u32 = 1;
605pub const ETH_LINK_SPEED_10M_HD: u32 = 2;
606pub const ETH_LINK_SPEED_10M: u32 = 4;
607pub const ETH_LINK_SPEED_100M_HD: u32 = 8;
608pub const ETH_LINK_SPEED_100M: u32 = 16;
609pub const ETH_LINK_SPEED_1G: u32 = 32;
610pub const ETH_LINK_SPEED_2_5G: u32 = 64;
611pub const ETH_LINK_SPEED_5G: u32 = 128;
612pub const ETH_LINK_SPEED_10G: u32 = 256;
613pub const ETH_LINK_SPEED_20G: u32 = 512;
614pub const ETH_LINK_SPEED_25G: u32 = 1024;
615pub const ETH_LINK_SPEED_40G: u32 = 2048;
616pub const ETH_LINK_SPEED_50G: u32 = 4096;
617pub const ETH_LINK_SPEED_56G: u32 = 8192;
618pub const ETH_LINK_SPEED_100G: u32 = 16384;
619pub const ETH_SPEED_NUM_NONE: u32 = 0;
620pub const ETH_SPEED_NUM_10M: u32 = 10;
621pub const ETH_SPEED_NUM_100M: u32 = 100;
622pub const ETH_SPEED_NUM_1G: u32 = 1000;
623pub const ETH_SPEED_NUM_2_5G: u32 = 2500;
624pub const ETH_SPEED_NUM_5G: u32 = 5000;
625pub const ETH_SPEED_NUM_10G: u32 = 10000;
626pub const ETH_SPEED_NUM_20G: u32 = 20000;
627pub const ETH_SPEED_NUM_25G: u32 = 25000;
628pub const ETH_SPEED_NUM_40G: u32 = 40000;
629pub const ETH_SPEED_NUM_50G: u32 = 50000;
630pub const ETH_SPEED_NUM_56G: u32 = 56000;
631pub const ETH_SPEED_NUM_100G: u32 = 100000;
632pub const ETH_LINK_HALF_DUPLEX: u32 = 0;
633pub const ETH_LINK_FULL_DUPLEX: u32 = 1;
634pub const ETH_LINK_DOWN: u32 = 0;
635pub const ETH_LINK_UP: u32 = 1;
636pub const ETH_LINK_FIXED: u32 = 0;
637pub const ETH_LINK_AUTONEG: u32 = 1;
638pub const ETH_MQ_RX_RSS_FLAG: u32 = 1;
639pub const ETH_MQ_RX_DCB_FLAG: u32 = 2;
640pub const ETH_MQ_RX_VMDQ_FLAG: u32 = 4;
641pub const RTE_ETH_FLOW_UNKNOWN: u32 = 0;
642pub const RTE_ETH_FLOW_RAW: u32 = 1;
643pub const RTE_ETH_FLOW_IPV4: u32 = 2;
644pub const RTE_ETH_FLOW_FRAG_IPV4: u32 = 3;
645pub const RTE_ETH_FLOW_NONFRAG_IPV4_TCP: u32 = 4;
646pub const RTE_ETH_FLOW_NONFRAG_IPV4_UDP: u32 = 5;
647pub const RTE_ETH_FLOW_NONFRAG_IPV4_SCTP: u32 = 6;
648pub const RTE_ETH_FLOW_NONFRAG_IPV4_OTHER: u32 = 7;
649pub const RTE_ETH_FLOW_IPV6: u32 = 8;
650pub const RTE_ETH_FLOW_FRAG_IPV6: u32 = 9;
651pub const RTE_ETH_FLOW_NONFRAG_IPV6_TCP: u32 = 10;
652pub const RTE_ETH_FLOW_NONFRAG_IPV6_UDP: u32 = 11;
653pub const RTE_ETH_FLOW_NONFRAG_IPV6_SCTP: u32 = 12;
654pub const RTE_ETH_FLOW_NONFRAG_IPV6_OTHER: u32 = 13;
655pub const RTE_ETH_FLOW_L2_PAYLOAD: u32 = 14;
656pub const RTE_ETH_FLOW_IPV6_EX: u32 = 15;
657pub const RTE_ETH_FLOW_IPV6_TCP_EX: u32 = 16;
658pub const RTE_ETH_FLOW_IPV6_UDP_EX: u32 = 17;
659pub const RTE_ETH_FLOW_PORT: u32 = 18;
660pub const RTE_ETH_FLOW_VXLAN: u32 = 19;
661pub const RTE_ETH_FLOW_GENEVE: u32 = 20;
662pub const RTE_ETH_FLOW_NVGRE: u32 = 21;
663pub const RTE_ETH_FLOW_VXLAN_GPE: u32 = 22;
664pub const RTE_ETH_FLOW_GTPU: u32 = 23;
665pub const RTE_ETH_FLOW_MAX: u32 = 24;
666pub const ETH_RSS_IPV4: u32 = 4;
667pub const ETH_RSS_FRAG_IPV4: u32 = 8;
668pub const ETH_RSS_NONFRAG_IPV4_TCP: u32 = 16;
669pub const ETH_RSS_NONFRAG_IPV4_UDP: u32 = 32;
670pub const ETH_RSS_NONFRAG_IPV4_SCTP: u32 = 64;
671pub const ETH_RSS_NONFRAG_IPV4_OTHER: u32 = 128;
672pub const ETH_RSS_IPV6: u32 = 256;
673pub const ETH_RSS_FRAG_IPV6: u32 = 512;
674pub const ETH_RSS_NONFRAG_IPV6_TCP: u32 = 1024;
675pub const ETH_RSS_NONFRAG_IPV6_UDP: u32 = 2048;
676pub const ETH_RSS_NONFRAG_IPV6_SCTP: u32 = 4096;
677pub const ETH_RSS_NONFRAG_IPV6_OTHER: u32 = 8192;
678pub const ETH_RSS_L2_PAYLOAD: u32 = 16384;
679pub const ETH_RSS_IPV6_EX: u32 = 32768;
680pub const ETH_RSS_IPV6_TCP_EX: u32 = 65536;
681pub const ETH_RSS_IPV6_UDP_EX: u32 = 131072;
682pub const ETH_RSS_PORT: u32 = 262144;
683pub const ETH_RSS_VXLAN: u32 = 524288;
684pub const ETH_RSS_GENEVE: u32 = 1048576;
685pub const ETH_RSS_NVGRE: u32 = 2097152;
686pub const ETH_RSS_GTPU: u32 = 8388608;
687pub const ETH_RSS_L3_SRC_ONLY: i64 = -9223372036854775808;
688pub const ETH_RSS_L3_DST_ONLY: u64 = 4611686018427387904;
689pub const ETH_RSS_L4_SRC_ONLY: u64 = 2305843009213693952;
690pub const ETH_RSS_L4_DST_ONLY: u64 = 1152921504606846976;
691pub const ETH_RSS_IP: u32 = 41868;
692pub const ETH_RSS_UDP: u32 = 133152;
693pub const ETH_RSS_TCP: u32 = 66576;
694pub const ETH_RSS_SCTP: u32 = 4160;
695pub const ETH_RSS_TUNNEL: u32 = 3670016;
696pub const ETH_RSS_PROTO_MASK: u32 = 4194300;
697pub const ETH_RSS_RETA_SIZE_64: u32 = 64;
698pub const ETH_RSS_RETA_SIZE_128: u32 = 128;
699pub const ETH_RSS_RETA_SIZE_256: u32 = 256;
700pub const ETH_RSS_RETA_SIZE_512: u32 = 512;
701pub const RTE_RETA_GROUP_SIZE: u32 = 64;
702pub const ETH_VMDQ_MAX_VLAN_FILTERS: u32 = 64;
703pub const ETH_DCB_NUM_USER_PRIORITIES: u32 = 8;
704pub const ETH_VMDQ_DCB_NUM_QUEUES: u32 = 128;
705pub const ETH_DCB_NUM_QUEUES: u32 = 128;
706pub const ETH_DCB_PG_SUPPORT: u32 = 1;
707pub const ETH_DCB_PFC_SUPPORT: u32 = 2;
708pub const ETH_VLAN_STRIP_OFFLOAD: u32 = 1;
709pub const ETH_VLAN_FILTER_OFFLOAD: u32 = 2;
710pub const ETH_VLAN_EXTEND_OFFLOAD: u32 = 4;
711pub const ETH_QINQ_STRIP_OFFLOAD: u32 = 8;
712pub const ETH_VLAN_STRIP_MASK: u32 = 1;
713pub const ETH_VLAN_FILTER_MASK: u32 = 2;
714pub const ETH_VLAN_EXTEND_MASK: u32 = 4;
715pub const ETH_QINQ_STRIP_MASK: u32 = 8;
716pub const ETH_VLAN_ID_MAX: u32 = 4095;
717pub const ETH_NUM_RECEIVE_MAC_ADDR: u32 = 128;
718pub const ETH_VMDQ_NUM_UC_HASH_ARRAY: u32 = 128;
719pub const ETH_VMDQ_ACCEPT_UNTAG: u32 = 1;
720pub const ETH_VMDQ_ACCEPT_HASH_MC: u32 = 2;
721pub const ETH_VMDQ_ACCEPT_HASH_UC: u32 = 4;
722pub const ETH_VMDQ_ACCEPT_BROADCAST: u32 = 8;
723pub const ETH_VMDQ_ACCEPT_MULTICAST: u32 = 16;
724pub const ETH_MIRROR_MAX_VLANS: u32 = 64;
725pub const ETH_MIRROR_VIRTUAL_POOL_UP: u32 = 1;
726pub const ETH_MIRROR_UPLINK_PORT: u32 = 2;
727pub const ETH_MIRROR_DOWNLINK_PORT: u32 = 4;
728pub const ETH_MIRROR_VLAN: u32 = 8;
729pub const ETH_MIRROR_VIRTUAL_POOL_DOWN: u32 = 16;
730pub const RTE_ETH_MAX_HAIRPIN_PEERS: u32 = 32;
731pub const RTE_ARP_HRD_ETHER: u32 = 1;
732pub const RTE_ARP_OP_REQUEST: u32 = 1;
733pub const RTE_ARP_OP_REPLY: u32 = 2;
734pub const RTE_ARP_OP_REVREQUEST: u32 = 3;
735pub const RTE_ARP_OP_REVREPLY: u32 = 4;
736pub const RTE_ARP_OP_INVREQUEST: u32 = 8;
737pub const RTE_ARP_OP_INVREPLY: u32 = 9;
738pub const RTE_IP_ICMP_ECHO_REPLY: u32 = 0;
739pub const RTE_IP_ICMP_ECHO_REQUEST: u32 = 8;
740pub const RTE_IPV4_MAX_PKT_LEN: u32 = 65535;
741pub const RTE_IPV4_HDR_IHL_MASK: u32 = 15;
742pub const RTE_IPV4_IHL_MULTIPLIER: u32 = 4;
743pub const RTE_IPV4_HDR_DSCP_MASK: u32 = 252;
744pub const RTE_IPV4_HDR_ECN_MASK: u32 = 3;
745pub const RTE_IPV4_HDR_ECN_CE: u32 = 3;
746pub const RTE_IPV4_HDR_DF_SHIFT: u32 = 14;
747pub const RTE_IPV4_HDR_MF_SHIFT: u32 = 13;
748pub const RTE_IPV4_HDR_FO_SHIFT: u32 = 3;
749pub const RTE_IPV4_HDR_DF_FLAG: u32 = 16384;
750pub const RTE_IPV4_HDR_MF_FLAG: u32 = 8192;
751pub const RTE_IPV4_HDR_OFFSET_MASK: u32 = 8191;
752pub const RTE_IPV4_HDR_OFFSET_UNITS: u32 = 8;
753pub const RTE_IPV4_MIN_IHL: u32 = 5;
754pub const RTE_IPV4_VHL_DEF: u32 = 69;
755pub const RTE_IPV6_HDR_FL_SHIFT: u32 = 0;
756pub const RTE_IPV6_HDR_TC_SHIFT: u32 = 20;
757pub const RTE_IPV6_HDR_FL_MASK: u32 = 1048575;
758pub const RTE_IPV6_HDR_TC_MASK: u32 = 267386880;
759pub const RTE_IPV6_HDR_DSCP_MASK: u32 = 264241152;
760pub const RTE_IPV6_HDR_ECN_MASK: u32 = 3145728;
761pub const RTE_IPV6_HDR_ECN_CE: u32 = 3145728;
762pub const RTE_IPV6_FRAG_HDR_SIZE: u32 = 8;
763pub const RTE_TCP_CWR_FLAG: u32 = 128;
764pub const RTE_TCP_ECE_FLAG: u32 = 64;
765pub const RTE_TCP_URG_FLAG: u32 = 32;
766pub const RTE_TCP_ACK_FLAG: u32 = 16;
767pub const RTE_TCP_PSH_FLAG: u32 = 8;
768pub const RTE_TCP_RST_FLAG: u32 = 4;
769pub const RTE_TCP_SYN_FLAG: u32 = 2;
770pub const RTE_TCP_FIN_FLAG: u32 = 1;
771pub const RTE_MBUF_DYN_NAMESIZE: u32 = 64;
772pub const RTE_MBUF_DYNFIELD_METADATA_NAME: &'static [u8; 27usize] = b"rte_flow_dynfield_metadata\0";
773pub const RTE_MBUF_DYNFLAG_METADATA_NAME: &'static [u8; 26usize] = b"rte_flow_dynflag_metadata\0";
774pub const RTE_ETHTYPE_FLAGS_MAC: u32 = 1;
775pub const RTE_ETHTYPE_FLAGS_DROP: u32 = 2;
776pub const RTE_FLEX_FILTER_MAXLEN: u32 = 128;
777pub const RTE_NTUPLE_FLAGS_DST_IP: u32 = 1;
778pub const RTE_NTUPLE_FLAGS_SRC_IP: u32 = 2;
779pub const RTE_NTUPLE_FLAGS_DST_PORT: u32 = 4;
780pub const RTE_NTUPLE_FLAGS_SRC_PORT: u32 = 8;
781pub const RTE_NTUPLE_FLAGS_PROTO: u32 = 16;
782pub const RTE_NTUPLE_FLAGS_TCP_FLAG: u32 = 32;
783pub const RTE_5TUPLE_FLAGS: u32 = 31;
784pub const RTE_2TUPLE_FLAGS: u32 = 20;
785pub const RTE_NTUPLE_TCP_FLAGS_MASK: u32 = 63;
786pub const ETH_TUNNEL_FILTER_OMAC: u32 = 1;
787pub const ETH_TUNNEL_FILTER_OIP: u32 = 2;
788pub const ETH_TUNNEL_FILTER_TENID: u32 = 4;
789pub const ETH_TUNNEL_FILTER_IMAC: u32 = 8;
790pub const ETH_TUNNEL_FILTER_IVLAN: u32 = 16;
791pub const ETH_TUNNEL_FILTER_IIP: u32 = 32;
792pub const RTE_TUNNEL_FILTER_IMAC_IVLAN: u32 = 24;
793pub const RTE_TUNNEL_FILTER_IMAC_IVLAN_TENID: u32 = 28;
794pub const RTE_TUNNEL_FILTER_IMAC_TENID: u32 = 12;
795pub const RTE_TUNNEL_FILTER_OMAC_TENID_IMAC: u32 = 13;
796pub const RTE_ETH_FDIR_MAX_FLEXLEN: u32 = 16;
797pub const RTE_ETH_INSET_SIZE_MAX: u32 = 128;
798pub const DEV_RX_OFFLOAD_VLAN_STRIP: u32 = 1;
799pub const DEV_RX_OFFLOAD_IPV4_CKSUM: u32 = 2;
800pub const DEV_RX_OFFLOAD_UDP_CKSUM: u32 = 4;
801pub const DEV_RX_OFFLOAD_TCP_CKSUM: u32 = 8;
802pub const DEV_RX_OFFLOAD_TCP_LRO: u32 = 16;
803pub const DEV_RX_OFFLOAD_QINQ_STRIP: u32 = 32;
804pub const DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM: u32 = 64;
805pub const DEV_RX_OFFLOAD_MACSEC_STRIP: u32 = 128;
806pub const DEV_RX_OFFLOAD_HEADER_SPLIT: u32 = 256;
807pub const DEV_RX_OFFLOAD_VLAN_FILTER: u32 = 512;
808pub const DEV_RX_OFFLOAD_VLAN_EXTEND: u32 = 1024;
809pub const DEV_RX_OFFLOAD_JUMBO_FRAME: u32 = 2048;
810pub const DEV_RX_OFFLOAD_SCATTER: u32 = 8192;
811pub const DEV_RX_OFFLOAD_TIMESTAMP: u32 = 16384;
812pub const DEV_RX_OFFLOAD_SECURITY: u32 = 32768;
813pub const DEV_RX_OFFLOAD_KEEP_CRC: u32 = 65536;
814pub const DEV_RX_OFFLOAD_SCTP_CKSUM: u32 = 131072;
815pub const DEV_RX_OFFLOAD_OUTER_UDP_CKSUM: u32 = 262144;
816pub const DEV_RX_OFFLOAD_RSS_HASH: u32 = 524288;
817pub const DEV_RX_OFFLOAD_CHECKSUM: u32 = 14;
818pub const DEV_RX_OFFLOAD_VLAN: u32 = 1569;
819pub const DEV_TX_OFFLOAD_VLAN_INSERT: u32 = 1;
820pub const DEV_TX_OFFLOAD_IPV4_CKSUM: u32 = 2;
821pub const DEV_TX_OFFLOAD_UDP_CKSUM: u32 = 4;
822pub const DEV_TX_OFFLOAD_TCP_CKSUM: u32 = 8;
823pub const DEV_TX_OFFLOAD_SCTP_CKSUM: u32 = 16;
824pub const DEV_TX_OFFLOAD_TCP_TSO: u32 = 32;
825pub const DEV_TX_OFFLOAD_UDP_TSO: u32 = 64;
826pub const DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM: u32 = 128;
827pub const DEV_TX_OFFLOAD_QINQ_INSERT: u32 = 256;
828pub const DEV_TX_OFFLOAD_VXLAN_TNL_TSO: u32 = 512;
829pub const DEV_TX_OFFLOAD_GRE_TNL_TSO: u32 = 1024;
830pub const DEV_TX_OFFLOAD_IPIP_TNL_TSO: u32 = 2048;
831pub const DEV_TX_OFFLOAD_GENEVE_TNL_TSO: u32 = 4096;
832pub const DEV_TX_OFFLOAD_MACSEC_INSERT: u32 = 8192;
833pub const DEV_TX_OFFLOAD_MT_LOCKFREE: u32 = 16384;
834pub const DEV_TX_OFFLOAD_MULTI_SEGS: u32 = 32768;
835pub const DEV_TX_OFFLOAD_MBUF_FAST_FREE: u32 = 65536;
836pub const DEV_TX_OFFLOAD_SECURITY: u32 = 131072;
837pub const DEV_TX_OFFLOAD_UDP_TNL_TSO: u32 = 262144;
838pub const DEV_TX_OFFLOAD_IP_TNL_TSO: u32 = 524288;
839pub const DEV_TX_OFFLOAD_OUTER_UDP_CKSUM: u32 = 1048576;
840pub const RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP: u32 = 1;
841pub const RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP: u32 = 2;
842pub const RTE_ETH_DEV_FALLBACK_RX_RINGSIZE: u32 = 512;
843pub const RTE_ETH_DEV_FALLBACK_TX_RINGSIZE: u32 = 512;
844pub const RTE_ETH_DEV_FALLBACK_RX_NBQUEUES: u32 = 1;
845pub const RTE_ETH_DEV_FALLBACK_TX_NBQUEUES: u32 = 1;
846pub const RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID: u32 = 65535;
847pub const RTE_ETH_BURST_FLAG_PER_QUEUE: u32 = 1;
848pub const RTE_ETH_BURST_MODE_INFO_SIZE: u32 = 1024;
849pub const RTE_ETH_XSTATS_NAME_SIZE: u32 = 64;
850pub const ETH_DCB_NUM_TCS: u32 = 8;
851pub const ETH_MAX_VMDQ_POOL: u32 = 64;
852pub const RTE_ETH_ALL: u32 = 32;
853pub const ETH_L2_TUNNEL_ENABLE_MASK: u32 = 1;
854pub const ETH_L2_TUNNEL_INSERTION_MASK: u32 = 2;
855pub const ETH_L2_TUNNEL_STRIPPING_MASK: u32 = 4;
856pub const ETH_L2_TUNNEL_FORWARDING_MASK: u32 = 8;
857pub const RTE_ETH_NAME_MAX_LEN: u32 = 64;
858pub const RTE_ETH_DEV_NO_OWNER: u32 = 0;
859pub const RTE_ETH_MAX_OWNER_NAME_LEN: u32 = 64;
860pub const RTE_ETH_DEV_CLOSE_REMOVE: u32 = 1;
861pub const RTE_ETH_DEV_INTR_LSC: u32 = 2;
862pub const RTE_ETH_DEV_BONDED_SLAVE: u32 = 4;
863pub const RTE_ETH_DEV_INTR_RMV: u32 = 8;
864pub const RTE_ETH_DEV_REPRESENTOR: u32 = 16;
865pub const RTE_ETH_DEV_NOLIVE_MAC_ADDR: u32 = 32;
866pub const RTE_ETH_RX_DESC_AVAIL: u32 = 0;
867pub const RTE_ETH_RX_DESC_DONE: u32 = 1;
868pub const RTE_ETH_RX_DESC_UNAVAIL: u32 = 2;
869pub const RTE_ETH_TX_DESC_FULL: u32 = 0;
870pub const RTE_ETH_TX_DESC_DONE: u32 = 1;
871pub const RTE_ETH_TX_DESC_UNAVAIL: u32 = 2;
872pub const RTE_CLASS_ANY_ID: u32 = 16777215;
873pub const RTE_KNI_NAMESIZE: u32 = 16;
874pub type __u_char = ::std::os::raw::c_uchar;
875pub type __u_short = ::std::os::raw::c_ushort;
876pub type __u_int = ::std::os::raw::c_uint;
877pub type __int8_t = ::std::os::raw::c_schar;
878pub type __uint8_t = ::std::os::raw::c_uchar;
879pub type __int16_t = ::std::os::raw::c_short;
880pub type __uint16_t = ::std::os::raw::c_ushort;
881pub type __int32_t = ::std::os::raw::c_int;
882pub type __uint32_t = ::std::os::raw::c_uint;
883pub type __int64_t = ::std::os::raw::c_long;
884pub type __uint64_t = ::std::os::raw::c_ulong;
885pub type __off_t = ::std::os::raw::c_long;
886pub type __off64_t = ::std::os::raw::c_long;
887pub type __pid_t = ::std::os::raw::c_int;
888pub type __time_t = ::std::os::raw::c_long;
889pub type __suseconds_t = ::std::os::raw::c_long;
890pub type __ssize_t = ::std::os::raw::c_long;
891pub type __syscall_slong_t = ::std::os::raw::c_long;
892pub type size_t = ::std::os::raw::c_ulong;
893#[repr(C)]
894#[derive(Debug, Default, Copy, Clone, PartialEq)]
895pub struct timespec {
896    pub tv_sec: __time_t,
897    pub tv_nsec: __syscall_slong_t,
898}
899#[test]
900fn bindgen_test_layout_timespec() {
901    assert_eq!(
902        ::std::mem::size_of::<timespec>(),
903        16usize,
904        concat!("Size of: ", stringify!(timespec))
905    );
906    assert_eq!(
907        ::std::mem::align_of::<timespec>(),
908        8usize,
909        concat!("Alignment of ", stringify!(timespec))
910    );
911    assert_eq!(
912        unsafe { &(*(::std::ptr::null::<timespec>())).tv_sec as *const _ as usize },
913        0usize,
914        concat!(
915            "Offset of field: ",
916            stringify!(timespec),
917            "::",
918            stringify!(tv_sec)
919        )
920    );
921    assert_eq!(
922        unsafe { &(*(::std::ptr::null::<timespec>())).tv_nsec as *const _ as usize },
923        8usize,
924        concat!(
925            "Offset of field: ",
926            stringify!(timespec),
927            "::",
928            stringify!(tv_nsec)
929        )
930    );
931}
932pub type pid_t = __pid_t;
933pub type __cpu_mask = ::std::os::raw::c_ulong;
934#[repr(C)]
935#[derive(Debug, Default, Copy, Clone, PartialEq)]
936pub struct cpu_set_t {
937    pub __bits: [__cpu_mask; 16usize],
938}
939#[test]
940fn bindgen_test_layout_cpu_set_t() {
941    assert_eq!(
942        ::std::mem::size_of::<cpu_set_t>(),
943        128usize,
944        concat!("Size of: ", stringify!(cpu_set_t))
945    );
946    assert_eq!(
947        ::std::mem::align_of::<cpu_set_t>(),
948        8usize,
949        concat!("Alignment of ", stringify!(cpu_set_t))
950    );
951    assert_eq!(
952        unsafe { &(*(::std::ptr::null::<cpu_set_t>())).__bits as *const _ as usize },
953        0usize,
954        concat!(
955            "Offset of field: ",
956            stringify!(cpu_set_t),
957            "::",
958            stringify!(__bits)
959        )
960    );
961}
962pub type pthread_t = ::std::os::raw::c_ulong;
963#[repr(C)]
964#[derive(Copy, Clone)]
965pub union pthread_attr_t {
966    pub __size: [::std::os::raw::c_char; 56usize],
967    pub __align: ::std::os::raw::c_long,
968    _bindgen_union_align: [u64; 7usize],
969}
970#[test]
971fn bindgen_test_layout_pthread_attr_t() {
972    assert_eq!(
973        ::std::mem::size_of::<pthread_attr_t>(),
974        56usize,
975        concat!("Size of: ", stringify!(pthread_attr_t))
976    );
977    assert_eq!(
978        ::std::mem::align_of::<pthread_attr_t>(),
979        8usize,
980        concat!("Alignment of ", stringify!(pthread_attr_t))
981    );
982    assert_eq!(
983        unsafe { &(*(::std::ptr::null::<pthread_attr_t>())).__size as *const _ as usize },
984        0usize,
985        concat!(
986            "Offset of field: ",
987            stringify!(pthread_attr_t),
988            "::",
989            stringify!(__size)
990        )
991    );
992    assert_eq!(
993        unsafe { &(*(::std::ptr::null::<pthread_attr_t>())).__align as *const _ as usize },
994        0usize,
995        concat!(
996            "Offset of field: ",
997            stringify!(pthread_attr_t),
998            "::",
999            stringify!(__align)
1000        )
1001    );
1002}
1003impl Default for pthread_attr_t {
1004    fn default() -> Self {
1005        unsafe { ::std::mem::zeroed() }
1006    }
1007}
1008pub type va_list = __builtin_va_list;
1009pub type FILE = _IO_FILE;
1010#[repr(C)]
1011#[derive(Debug, Copy, Clone)]
1012pub struct _IO_marker {
1013    _unused: [u8; 0],
1014}
1015#[repr(C)]
1016#[derive(Debug, Copy, Clone)]
1017pub struct _IO_codecvt {
1018    _unused: [u8; 0],
1019}
1020#[repr(C)]
1021#[derive(Debug, Copy, Clone)]
1022pub struct _IO_wide_data {
1023    _unused: [u8; 0],
1024}
1025pub type _IO_lock_t = ::std::os::raw::c_void;
1026#[repr(C)]
1027#[derive(Debug, Copy, Clone, PartialEq)]
1028pub struct _IO_FILE {
1029    pub _flags: ::std::os::raw::c_int,
1030    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
1031    pub _IO_read_end: *mut ::std::os::raw::c_char,
1032    pub _IO_read_base: *mut ::std::os::raw::c_char,
1033    pub _IO_write_base: *mut ::std::os::raw::c_char,
1034    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
1035    pub _IO_write_end: *mut ::std::os::raw::c_char,
1036    pub _IO_buf_base: *mut ::std::os::raw::c_char,
1037    pub _IO_buf_end: *mut ::std::os::raw::c_char,
1038    pub _IO_save_base: *mut ::std::os::raw::c_char,
1039    pub _IO_backup_base: *mut ::std::os::raw::c_char,
1040    pub _IO_save_end: *mut ::std::os::raw::c_char,
1041    pub _markers: *mut _IO_marker,
1042    pub _chain: *mut _IO_FILE,
1043    pub _fileno: ::std::os::raw::c_int,
1044    pub _flags2: ::std::os::raw::c_int,
1045    pub _old_offset: __off_t,
1046    pub _cur_column: ::std::os::raw::c_ushort,
1047    pub _vtable_offset: ::std::os::raw::c_schar,
1048    pub _shortbuf: [::std::os::raw::c_char; 1usize],
1049    pub _lock: *mut _IO_lock_t,
1050    pub _offset: __off64_t,
1051    pub _codecvt: *mut _IO_codecvt,
1052    pub _wide_data: *mut _IO_wide_data,
1053    pub _freeres_list: *mut _IO_FILE,
1054    pub _freeres_buf: *mut ::std::os::raw::c_void,
1055    pub __pad5: size_t,
1056    pub _mode: ::std::os::raw::c_int,
1057    pub _unused2: [::std::os::raw::c_char; 20usize],
1058}
1059#[test]
1060fn bindgen_test_layout__IO_FILE() {
1061    assert_eq!(
1062        ::std::mem::size_of::<_IO_FILE>(),
1063        216usize,
1064        concat!("Size of: ", stringify!(_IO_FILE))
1065    );
1066    assert_eq!(
1067        ::std::mem::align_of::<_IO_FILE>(),
1068        8usize,
1069        concat!("Alignment of ", stringify!(_IO_FILE))
1070    );
1071    assert_eq!(
1072        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags as *const _ as usize },
1073        0usize,
1074        concat!(
1075            "Offset of field: ",
1076            stringify!(_IO_FILE),
1077            "::",
1078            stringify!(_flags)
1079        )
1080    );
1081    assert_eq!(
1082        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_ptr as *const _ as usize },
1083        8usize,
1084        concat!(
1085            "Offset of field: ",
1086            stringify!(_IO_FILE),
1087            "::",
1088            stringify!(_IO_read_ptr)
1089        )
1090    );
1091    assert_eq!(
1092        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_end as *const _ as usize },
1093        16usize,
1094        concat!(
1095            "Offset of field: ",
1096            stringify!(_IO_FILE),
1097            "::",
1098            stringify!(_IO_read_end)
1099        )
1100    );
1101    assert_eq!(
1102        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_base as *const _ as usize },
1103        24usize,
1104        concat!(
1105            "Offset of field: ",
1106            stringify!(_IO_FILE),
1107            "::",
1108            stringify!(_IO_read_base)
1109        )
1110    );
1111    assert_eq!(
1112        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_base as *const _ as usize },
1113        32usize,
1114        concat!(
1115            "Offset of field: ",
1116            stringify!(_IO_FILE),
1117            "::",
1118            stringify!(_IO_write_base)
1119        )
1120    );
1121    assert_eq!(
1122        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_ptr as *const _ as usize },
1123        40usize,
1124        concat!(
1125            "Offset of field: ",
1126            stringify!(_IO_FILE),
1127            "::",
1128            stringify!(_IO_write_ptr)
1129        )
1130    );
1131    assert_eq!(
1132        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_end as *const _ as usize },
1133        48usize,
1134        concat!(
1135            "Offset of field: ",
1136            stringify!(_IO_FILE),
1137            "::",
1138            stringify!(_IO_write_end)
1139        )
1140    );
1141    assert_eq!(
1142        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_base as *const _ as usize },
1143        56usize,
1144        concat!(
1145            "Offset of field: ",
1146            stringify!(_IO_FILE),
1147            "::",
1148            stringify!(_IO_buf_base)
1149        )
1150    );
1151    assert_eq!(
1152        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_end as *const _ as usize },
1153        64usize,
1154        concat!(
1155            "Offset of field: ",
1156            stringify!(_IO_FILE),
1157            "::",
1158            stringify!(_IO_buf_end)
1159        )
1160    );
1161    assert_eq!(
1162        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_base as *const _ as usize },
1163        72usize,
1164        concat!(
1165            "Offset of field: ",
1166            stringify!(_IO_FILE),
1167            "::",
1168            stringify!(_IO_save_base)
1169        )
1170    );
1171    assert_eq!(
1172        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_backup_base as *const _ as usize },
1173        80usize,
1174        concat!(
1175            "Offset of field: ",
1176            stringify!(_IO_FILE),
1177            "::",
1178            stringify!(_IO_backup_base)
1179        )
1180    );
1181    assert_eq!(
1182        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_end as *const _ as usize },
1183        88usize,
1184        concat!(
1185            "Offset of field: ",
1186            stringify!(_IO_FILE),
1187            "::",
1188            stringify!(_IO_save_end)
1189        )
1190    );
1191    assert_eq!(
1192        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._markers as *const _ as usize },
1193        96usize,
1194        concat!(
1195            "Offset of field: ",
1196            stringify!(_IO_FILE),
1197            "::",
1198            stringify!(_markers)
1199        )
1200    );
1201    assert_eq!(
1202        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._chain as *const _ as usize },
1203        104usize,
1204        concat!(
1205            "Offset of field: ",
1206            stringify!(_IO_FILE),
1207            "::",
1208            stringify!(_chain)
1209        )
1210    );
1211    assert_eq!(
1212        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._fileno as *const _ as usize },
1213        112usize,
1214        concat!(
1215            "Offset of field: ",
1216            stringify!(_IO_FILE),
1217            "::",
1218            stringify!(_fileno)
1219        )
1220    );
1221    assert_eq!(
1222        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags2 as *const _ as usize },
1223        116usize,
1224        concat!(
1225            "Offset of field: ",
1226            stringify!(_IO_FILE),
1227            "::",
1228            stringify!(_flags2)
1229        )
1230    );
1231    assert_eq!(
1232        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._old_offset as *const _ as usize },
1233        120usize,
1234        concat!(
1235            "Offset of field: ",
1236            stringify!(_IO_FILE),
1237            "::",
1238            stringify!(_old_offset)
1239        )
1240    );
1241    assert_eq!(
1242        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._cur_column as *const _ as usize },
1243        128usize,
1244        concat!(
1245            "Offset of field: ",
1246            stringify!(_IO_FILE),
1247            "::",
1248            stringify!(_cur_column)
1249        )
1250    );
1251    assert_eq!(
1252        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._vtable_offset as *const _ as usize },
1253        130usize,
1254        concat!(
1255            "Offset of field: ",
1256            stringify!(_IO_FILE),
1257            "::",
1258            stringify!(_vtable_offset)
1259        )
1260    );
1261    assert_eq!(
1262        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._shortbuf as *const _ as usize },
1263        131usize,
1264        concat!(
1265            "Offset of field: ",
1266            stringify!(_IO_FILE),
1267            "::",
1268            stringify!(_shortbuf)
1269        )
1270    );
1271    assert_eq!(
1272        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._lock as *const _ as usize },
1273        136usize,
1274        concat!(
1275            "Offset of field: ",
1276            stringify!(_IO_FILE),
1277            "::",
1278            stringify!(_lock)
1279        )
1280    );
1281    assert_eq!(
1282        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._offset as *const _ as usize },
1283        144usize,
1284        concat!(
1285            "Offset of field: ",
1286            stringify!(_IO_FILE),
1287            "::",
1288            stringify!(_offset)
1289        )
1290    );
1291    assert_eq!(
1292        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._codecvt as *const _ as usize },
1293        152usize,
1294        concat!(
1295            "Offset of field: ",
1296            stringify!(_IO_FILE),
1297            "::",
1298            stringify!(_codecvt)
1299        )
1300    );
1301    assert_eq!(
1302        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._wide_data as *const _ as usize },
1303        160usize,
1304        concat!(
1305            "Offset of field: ",
1306            stringify!(_IO_FILE),
1307            "::",
1308            stringify!(_wide_data)
1309        )
1310    );
1311    assert_eq!(
1312        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._freeres_list as *const _ as usize },
1313        168usize,
1314        concat!(
1315            "Offset of field: ",
1316            stringify!(_IO_FILE),
1317            "::",
1318            stringify!(_freeres_list)
1319        )
1320    );
1321    assert_eq!(
1322        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._freeres_buf as *const _ as usize },
1323        176usize,
1324        concat!(
1325            "Offset of field: ",
1326            stringify!(_IO_FILE),
1327            "::",
1328            stringify!(_freeres_buf)
1329        )
1330    );
1331    assert_eq!(
1332        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad5 as *const _ as usize },
1333        184usize,
1334        concat!(
1335            "Offset of field: ",
1336            stringify!(_IO_FILE),
1337            "::",
1338            stringify!(__pad5)
1339        )
1340    );
1341    assert_eq!(
1342        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._mode as *const _ as usize },
1343        192usize,
1344        concat!(
1345            "Offset of field: ",
1346            stringify!(_IO_FILE),
1347            "::",
1348            stringify!(_mode)
1349        )
1350    );
1351    assert_eq!(
1352        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._unused2 as *const _ as usize },
1353        196usize,
1354        concat!(
1355            "Offset of field: ",
1356            stringify!(_IO_FILE),
1357            "::",
1358            stringify!(_unused2)
1359        )
1360    );
1361}
1362impl Default for _IO_FILE {
1363    fn default() -> Self {
1364        unsafe { ::std::mem::zeroed() }
1365    }
1366}
1367pub type ssize_t = __ssize_t;
1368pub type u_char = __u_char;
1369pub type u_short = __u_short;
1370pub type u_int = __u_int;
1371#[repr(C)]
1372#[derive(Debug, Default, Copy, Clone, PartialEq)]
1373pub struct timeval {
1374    pub tv_sec: __time_t,
1375    pub tv_usec: __suseconds_t,
1376}
1377#[test]
1378fn bindgen_test_layout_timeval() {
1379    assert_eq!(
1380        ::std::mem::size_of::<timeval>(),
1381        16usize,
1382        concat!("Size of: ", stringify!(timeval))
1383    );
1384    assert_eq!(
1385        ::std::mem::align_of::<timeval>(),
1386        8usize,
1387        concat!("Alignment of ", stringify!(timeval))
1388    );
1389    assert_eq!(
1390        unsafe { &(*(::std::ptr::null::<timeval>())).tv_sec as *const _ as usize },
1391        0usize,
1392        concat!(
1393            "Offset of field: ",
1394            stringify!(timeval),
1395            "::",
1396            stringify!(tv_sec)
1397        )
1398    );
1399    assert_eq!(
1400        unsafe { &(*(::std::ptr::null::<timeval>())).tv_usec as *const _ as usize },
1401        8usize,
1402        concat!(
1403            "Offset of field: ",
1404            stringify!(timeval),
1405            "::",
1406            stringify!(tv_usec)
1407        )
1408    );
1409}
1410pub type rte_cpuset_t = cpu_set_t;
1411pub type phys_addr_t = u64;
1412pub type rte_iova_t = u64;
1413extern "C" {
1414    pub fn rte_exit(exit_code: ::std::os::raw::c_int, format: *const ::std::os::raw::c_char, ...);
1415}
1416#[repr(C)]
1417#[derive(Debug, Copy, Clone)]
1418pub struct rte_log_dynamic_type {
1419    _unused: [u8; 0],
1420}
1421#[repr(C)]
1422#[derive(Debug, Copy, Clone, PartialEq)]
1423pub struct rte_logs {
1424    pub type_: u32,
1425    pub level: u32,
1426    pub file: *mut FILE,
1427    pub dynamic_types_len: size_t,
1428    pub dynamic_types: *mut rte_log_dynamic_type,
1429}
1430#[test]
1431fn bindgen_test_layout_rte_logs() {
1432    assert_eq!(
1433        ::std::mem::size_of::<rte_logs>(),
1434        32usize,
1435        concat!("Size of: ", stringify!(rte_logs))
1436    );
1437    assert_eq!(
1438        ::std::mem::align_of::<rte_logs>(),
1439        8usize,
1440        concat!("Alignment of ", stringify!(rte_logs))
1441    );
1442    assert_eq!(
1443        unsafe { &(*(::std::ptr::null::<rte_logs>())).type_ as *const _ as usize },
1444        0usize,
1445        concat!(
1446            "Offset of field: ",
1447            stringify!(rte_logs),
1448            "::",
1449            stringify!(type_)
1450        )
1451    );
1452    assert_eq!(
1453        unsafe { &(*(::std::ptr::null::<rte_logs>())).level as *const _ as usize },
1454        4usize,
1455        concat!(
1456            "Offset of field: ",
1457            stringify!(rte_logs),
1458            "::",
1459            stringify!(level)
1460        )
1461    );
1462    assert_eq!(
1463        unsafe { &(*(::std::ptr::null::<rte_logs>())).file as *const _ as usize },
1464        8usize,
1465        concat!(
1466            "Offset of field: ",
1467            stringify!(rte_logs),
1468            "::",
1469            stringify!(file)
1470        )
1471    );
1472    assert_eq!(
1473        unsafe { &(*(::std::ptr::null::<rte_logs>())).dynamic_types_len as *const _ as usize },
1474        16usize,
1475        concat!(
1476            "Offset of field: ",
1477            stringify!(rte_logs),
1478            "::",
1479            stringify!(dynamic_types_len)
1480        )
1481    );
1482    assert_eq!(
1483        unsafe { &(*(::std::ptr::null::<rte_logs>())).dynamic_types as *const _ as usize },
1484        24usize,
1485        concat!(
1486            "Offset of field: ",
1487            stringify!(rte_logs),
1488            "::",
1489            stringify!(dynamic_types)
1490        )
1491    );
1492}
1493impl Default for rte_logs {
1494    fn default() -> Self {
1495        unsafe { ::std::mem::zeroed() }
1496    }
1497}
1498extern "C" {
1499    pub static mut rte_logs: rte_logs;
1500}
1501extern "C" {
1502    pub fn rte_openlog_stream(f: *mut FILE) -> ::std::os::raw::c_int;
1503}
1504extern "C" {
1505    pub fn rte_log_get_stream() -> *mut FILE;
1506}
1507extern "C" {
1508    pub fn rte_log_set_global_level(level: u32);
1509}
1510extern "C" {
1511    pub fn rte_log_get_global_level() -> u32;
1512}
1513extern "C" {
1514    pub fn rte_log_get_level(logtype: u32) -> ::std::os::raw::c_int;
1515}
1516extern "C" {
1517    pub fn rte_log_set_level_pattern(
1518        pattern: *const ::std::os::raw::c_char,
1519        level: u32,
1520    ) -> ::std::os::raw::c_int;
1521}
1522extern "C" {
1523    pub fn rte_log_set_level_regexp(
1524        regex: *const ::std::os::raw::c_char,
1525        level: u32,
1526    ) -> ::std::os::raw::c_int;
1527}
1528extern "C" {
1529    pub fn rte_log_set_level(logtype: u32, level: u32) -> ::std::os::raw::c_int;
1530}
1531extern "C" {
1532    pub fn rte_log_cur_msg_loglevel() -> ::std::os::raw::c_int;
1533}
1534extern "C" {
1535    pub fn rte_log_cur_msg_logtype() -> ::std::os::raw::c_int;
1536}
1537extern "C" {
1538    pub fn rte_log_register(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1539}
1540extern "C" {
1541    pub fn rte_log_register_type_and_pick_level(
1542        name: *const ::std::os::raw::c_char,
1543        level_def: u32,
1544    ) -> ::std::os::raw::c_int;
1545}
1546extern "C" {
1547    pub fn rte_log_dump(f: *mut FILE);
1548}
1549extern "C" {
1550    pub fn rte_log(
1551        level: u32,
1552        logtype: u32,
1553        format: *const ::std::os::raw::c_char,
1554        ...
1555    ) -> ::std::os::raw::c_int;
1556}
1557extern "C" {
1558    pub fn rte_vlog(
1559        level: u32,
1560        logtype: u32,
1561        format: *const ::std::os::raw::c_char,
1562        ap: *mut __va_list_tag,
1563    ) -> ::std::os::raw::c_int;
1564}
1565pub mod rte_dev_event_type {
1566    pub type Type = ::std::os::raw::c_uint;
1567    pub const RTE_DEV_EVENT_ADD: Type = 0;
1568    pub const RTE_DEV_EVENT_REMOVE: Type = 1;
1569    pub const RTE_DEV_EVENT_MAX: Type = 2;
1570}
1571#[repr(C)]
1572#[derive(Debug, Copy, Clone, PartialEq)]
1573pub struct rte_dev_event {
1574    pub type_: rte_dev_event_type::Type,
1575    pub subsystem: ::std::os::raw::c_int,
1576    pub devname: *mut ::std::os::raw::c_char,
1577}
1578#[test]
1579fn bindgen_test_layout_rte_dev_event() {
1580    assert_eq!(
1581        ::std::mem::size_of::<rte_dev_event>(),
1582        16usize,
1583        concat!("Size of: ", stringify!(rte_dev_event))
1584    );
1585    assert_eq!(
1586        ::std::mem::align_of::<rte_dev_event>(),
1587        8usize,
1588        concat!("Alignment of ", stringify!(rte_dev_event))
1589    );
1590    assert_eq!(
1591        unsafe { &(*(::std::ptr::null::<rte_dev_event>())).type_ as *const _ as usize },
1592        0usize,
1593        concat!(
1594            "Offset of field: ",
1595            stringify!(rte_dev_event),
1596            "::",
1597            stringify!(type_)
1598        )
1599    );
1600    assert_eq!(
1601        unsafe { &(*(::std::ptr::null::<rte_dev_event>())).subsystem as *const _ as usize },
1602        4usize,
1603        concat!(
1604            "Offset of field: ",
1605            stringify!(rte_dev_event),
1606            "::",
1607            stringify!(subsystem)
1608        )
1609    );
1610    assert_eq!(
1611        unsafe { &(*(::std::ptr::null::<rte_dev_event>())).devname as *const _ as usize },
1612        8usize,
1613        concat!(
1614            "Offset of field: ",
1615            stringify!(rte_dev_event),
1616            "::",
1617            stringify!(devname)
1618        )
1619    );
1620}
1621impl Default for rte_dev_event {
1622    fn default() -> Self {
1623        unsafe { ::std::mem::zeroed() }
1624    }
1625}
1626pub type rte_dev_event_cb_fn = ::std::option::Option<
1627    unsafe extern "C" fn(
1628        device_name: *const ::std::os::raw::c_char,
1629        event: rte_dev_event_type::Type,
1630        cb_arg: *mut ::std::os::raw::c_void,
1631    ),
1632>;
1633pub mod rte_kernel_driver {
1634    pub type Type = ::std::os::raw::c_uint;
1635    pub const RTE_KDRV_UNKNOWN: Type = 0;
1636    pub const RTE_KDRV_IGB_UIO: Type = 1;
1637    pub const RTE_KDRV_VFIO: Type = 2;
1638    pub const RTE_KDRV_UIO_GENERIC: Type = 3;
1639    pub const RTE_KDRV_NIC_UIO: Type = 4;
1640    pub const RTE_KDRV_NONE: Type = 5;
1641}
1642pub mod rte_dev_policy {
1643    pub type Type = ::std::os::raw::c_uint;
1644    pub const RTE_DEV_WHITELISTED: Type = 0;
1645    pub const RTE_DEV_BLACKLISTED: Type = 1;
1646}
1647#[repr(C)]
1648#[derive(Debug, Copy, Clone, PartialEq)]
1649pub struct rte_mem_resource {
1650    pub phys_addr: u64,
1651    pub len: u64,
1652    pub addr: *mut ::std::os::raw::c_void,
1653}
1654#[test]
1655fn bindgen_test_layout_rte_mem_resource() {
1656    assert_eq!(
1657        ::std::mem::size_of::<rte_mem_resource>(),
1658        24usize,
1659        concat!("Size of: ", stringify!(rte_mem_resource))
1660    );
1661    assert_eq!(
1662        ::std::mem::align_of::<rte_mem_resource>(),
1663        8usize,
1664        concat!("Alignment of ", stringify!(rte_mem_resource))
1665    );
1666    assert_eq!(
1667        unsafe { &(*(::std::ptr::null::<rte_mem_resource>())).phys_addr as *const _ as usize },
1668        0usize,
1669        concat!(
1670            "Offset of field: ",
1671            stringify!(rte_mem_resource),
1672            "::",
1673            stringify!(phys_addr)
1674        )
1675    );
1676    assert_eq!(
1677        unsafe { &(*(::std::ptr::null::<rte_mem_resource>())).len as *const _ as usize },
1678        8usize,
1679        concat!(
1680            "Offset of field: ",
1681            stringify!(rte_mem_resource),
1682            "::",
1683            stringify!(len)
1684        )
1685    );
1686    assert_eq!(
1687        unsafe { &(*(::std::ptr::null::<rte_mem_resource>())).addr as *const _ as usize },
1688        16usize,
1689        concat!(
1690            "Offset of field: ",
1691            stringify!(rte_mem_resource),
1692            "::",
1693            stringify!(addr)
1694        )
1695    );
1696}
1697impl Default for rte_mem_resource {
1698    fn default() -> Self {
1699        unsafe { ::std::mem::zeroed() }
1700    }
1701}
1702#[repr(C)]
1703#[derive(Debug, Copy, Clone, PartialEq)]
1704pub struct rte_driver {
1705    pub next: rte_driver__bindgen_ty_1,
1706    pub name: *const ::std::os::raw::c_char,
1707    pub alias: *const ::std::os::raw::c_char,
1708}
1709#[repr(C)]
1710#[derive(Debug, Copy, Clone, PartialEq)]
1711pub struct rte_driver__bindgen_ty_1 {
1712    pub tqe_next: *mut rte_driver,
1713    pub tqe_prev: *mut *mut rte_driver,
1714}
1715#[test]
1716fn bindgen_test_layout_rte_driver__bindgen_ty_1() {
1717    assert_eq!(
1718        ::std::mem::size_of::<rte_driver__bindgen_ty_1>(),
1719        16usize,
1720        concat!("Size of: ", stringify!(rte_driver__bindgen_ty_1))
1721    );
1722    assert_eq!(
1723        ::std::mem::align_of::<rte_driver__bindgen_ty_1>(),
1724        8usize,
1725        concat!("Alignment of ", stringify!(rte_driver__bindgen_ty_1))
1726    );
1727    assert_eq!(
1728        unsafe {
1729            &(*(::std::ptr::null::<rte_driver__bindgen_ty_1>())).tqe_next as *const _ as usize
1730        },
1731        0usize,
1732        concat!(
1733            "Offset of field: ",
1734            stringify!(rte_driver__bindgen_ty_1),
1735            "::",
1736            stringify!(tqe_next)
1737        )
1738    );
1739    assert_eq!(
1740        unsafe {
1741            &(*(::std::ptr::null::<rte_driver__bindgen_ty_1>())).tqe_prev as *const _ as usize
1742        },
1743        8usize,
1744        concat!(
1745            "Offset of field: ",
1746            stringify!(rte_driver__bindgen_ty_1),
1747            "::",
1748            stringify!(tqe_prev)
1749        )
1750    );
1751}
1752impl Default for rte_driver__bindgen_ty_1 {
1753    fn default() -> Self {
1754        unsafe { ::std::mem::zeroed() }
1755    }
1756}
1757#[test]
1758fn bindgen_test_layout_rte_driver() {
1759    assert_eq!(
1760        ::std::mem::size_of::<rte_driver>(),
1761        32usize,
1762        concat!("Size of: ", stringify!(rte_driver))
1763    );
1764    assert_eq!(
1765        ::std::mem::align_of::<rte_driver>(),
1766        8usize,
1767        concat!("Alignment of ", stringify!(rte_driver))
1768    );
1769    assert_eq!(
1770        unsafe { &(*(::std::ptr::null::<rte_driver>())).next as *const _ as usize },
1771        0usize,
1772        concat!(
1773            "Offset of field: ",
1774            stringify!(rte_driver),
1775            "::",
1776            stringify!(next)
1777        )
1778    );
1779    assert_eq!(
1780        unsafe { &(*(::std::ptr::null::<rte_driver>())).name as *const _ as usize },
1781        16usize,
1782        concat!(
1783            "Offset of field: ",
1784            stringify!(rte_driver),
1785            "::",
1786            stringify!(name)
1787        )
1788    );
1789    assert_eq!(
1790        unsafe { &(*(::std::ptr::null::<rte_driver>())).alias as *const _ as usize },
1791        24usize,
1792        concat!(
1793            "Offset of field: ",
1794            stringify!(rte_driver),
1795            "::",
1796            stringify!(alias)
1797        )
1798    );
1799}
1800impl Default for rte_driver {
1801    fn default() -> Self {
1802        unsafe { ::std::mem::zeroed() }
1803    }
1804}
1805#[repr(C)]
1806#[derive(Debug, Copy, Clone, PartialEq)]
1807pub struct rte_device {
1808    pub next: rte_device__bindgen_ty_1,
1809    pub name: *const ::std::os::raw::c_char,
1810    pub driver: *const rte_driver,
1811    pub bus: *const rte_bus,
1812    pub numa_node: ::std::os::raw::c_int,
1813    pub devargs: *mut rte_devargs,
1814}
1815#[repr(C)]
1816#[derive(Debug, Copy, Clone, PartialEq)]
1817pub struct rte_device__bindgen_ty_1 {
1818    pub tqe_next: *mut rte_device,
1819    pub tqe_prev: *mut *mut rte_device,
1820}
1821#[test]
1822fn bindgen_test_layout_rte_device__bindgen_ty_1() {
1823    assert_eq!(
1824        ::std::mem::size_of::<rte_device__bindgen_ty_1>(),
1825        16usize,
1826        concat!("Size of: ", stringify!(rte_device__bindgen_ty_1))
1827    );
1828    assert_eq!(
1829        ::std::mem::align_of::<rte_device__bindgen_ty_1>(),
1830        8usize,
1831        concat!("Alignment of ", stringify!(rte_device__bindgen_ty_1))
1832    );
1833    assert_eq!(
1834        unsafe {
1835            &(*(::std::ptr::null::<rte_device__bindgen_ty_1>())).tqe_next as *const _ as usize
1836        },
1837        0usize,
1838        concat!(
1839            "Offset of field: ",
1840            stringify!(rte_device__bindgen_ty_1),
1841            "::",
1842            stringify!(tqe_next)
1843        )
1844    );
1845    assert_eq!(
1846        unsafe {
1847            &(*(::std::ptr::null::<rte_device__bindgen_ty_1>())).tqe_prev as *const _ as usize
1848        },
1849        8usize,
1850        concat!(
1851            "Offset of field: ",
1852            stringify!(rte_device__bindgen_ty_1),
1853            "::",
1854            stringify!(tqe_prev)
1855        )
1856    );
1857}
1858impl Default for rte_device__bindgen_ty_1 {
1859    fn default() -> Self {
1860        unsafe { ::std::mem::zeroed() }
1861    }
1862}
1863#[test]
1864fn bindgen_test_layout_rte_device() {
1865    assert_eq!(
1866        ::std::mem::size_of::<rte_device>(),
1867        56usize,
1868        concat!("Size of: ", stringify!(rte_device))
1869    );
1870    assert_eq!(
1871        ::std::mem::align_of::<rte_device>(),
1872        8usize,
1873        concat!("Alignment of ", stringify!(rte_device))
1874    );
1875    assert_eq!(
1876        unsafe { &(*(::std::ptr::null::<rte_device>())).next as *const _ as usize },
1877        0usize,
1878        concat!(
1879            "Offset of field: ",
1880            stringify!(rte_device),
1881            "::",
1882            stringify!(next)
1883        )
1884    );
1885    assert_eq!(
1886        unsafe { &(*(::std::ptr::null::<rte_device>())).name as *const _ as usize },
1887        16usize,
1888        concat!(
1889            "Offset of field: ",
1890            stringify!(rte_device),
1891            "::",
1892            stringify!(name)
1893        )
1894    );
1895    assert_eq!(
1896        unsafe { &(*(::std::ptr::null::<rte_device>())).driver as *const _ as usize },
1897        24usize,
1898        concat!(
1899            "Offset of field: ",
1900            stringify!(rte_device),
1901            "::",
1902            stringify!(driver)
1903        )
1904    );
1905    assert_eq!(
1906        unsafe { &(*(::std::ptr::null::<rte_device>())).bus as *const _ as usize },
1907        32usize,
1908        concat!(
1909            "Offset of field: ",
1910            stringify!(rte_device),
1911            "::",
1912            stringify!(bus)
1913        )
1914    );
1915    assert_eq!(
1916        unsafe { &(*(::std::ptr::null::<rte_device>())).numa_node as *const _ as usize },
1917        40usize,
1918        concat!(
1919            "Offset of field: ",
1920            stringify!(rte_device),
1921            "::",
1922            stringify!(numa_node)
1923        )
1924    );
1925    assert_eq!(
1926        unsafe { &(*(::std::ptr::null::<rte_device>())).devargs as *const _ as usize },
1927        48usize,
1928        concat!(
1929            "Offset of field: ",
1930            stringify!(rte_device),
1931            "::",
1932            stringify!(devargs)
1933        )
1934    );
1935}
1936impl Default for rte_device {
1937    fn default() -> Self {
1938        unsafe { ::std::mem::zeroed() }
1939    }
1940}
1941extern "C" {
1942    pub fn rte_dev_is_probed(dev: *const rte_device) -> ::std::os::raw::c_int;
1943}
1944extern "C" {
1945    pub fn rte_eal_hotplug_add(
1946        busname: *const ::std::os::raw::c_char,
1947        devname: *const ::std::os::raw::c_char,
1948        drvargs: *const ::std::os::raw::c_char,
1949    ) -> ::std::os::raw::c_int;
1950}
1951extern "C" {
1952    pub fn rte_dev_probe(devargs: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1953}
1954extern "C" {
1955    pub fn rte_eal_hotplug_remove(
1956        busname: *const ::std::os::raw::c_char,
1957        devname: *const ::std::os::raw::c_char,
1958    ) -> ::std::os::raw::c_int;
1959}
1960extern "C" {
1961    pub fn rte_dev_remove(dev: *mut rte_device) -> ::std::os::raw::c_int;
1962}
1963pub type rte_dev_cmp_t = ::std::option::Option<
1964    unsafe extern "C" fn(
1965        dev: *const rte_device,
1966        data: *const ::std::os::raw::c_void,
1967    ) -> ::std::os::raw::c_int,
1968>;
1969#[repr(C)]
1970#[derive(Debug, Copy, Clone, PartialEq)]
1971pub struct rte_dev_iterator {
1972    pub dev_str: *const ::std::os::raw::c_char,
1973    pub bus_str: *const ::std::os::raw::c_char,
1974    pub cls_str: *const ::std::os::raw::c_char,
1975    pub bus: *mut rte_bus,
1976    pub cls: *mut rte_class,
1977    pub device: *mut rte_device,
1978    pub class_device: *mut ::std::os::raw::c_void,
1979}
1980#[test]
1981fn bindgen_test_layout_rte_dev_iterator() {
1982    assert_eq!(
1983        ::std::mem::size_of::<rte_dev_iterator>(),
1984        56usize,
1985        concat!("Size of: ", stringify!(rte_dev_iterator))
1986    );
1987    assert_eq!(
1988        ::std::mem::align_of::<rte_dev_iterator>(),
1989        8usize,
1990        concat!("Alignment of ", stringify!(rte_dev_iterator))
1991    );
1992    assert_eq!(
1993        unsafe { &(*(::std::ptr::null::<rte_dev_iterator>())).dev_str as *const _ as usize },
1994        0usize,
1995        concat!(
1996            "Offset of field: ",
1997            stringify!(rte_dev_iterator),
1998            "::",
1999            stringify!(dev_str)
2000        )
2001    );
2002    assert_eq!(
2003        unsafe { &(*(::std::ptr::null::<rte_dev_iterator>())).bus_str as *const _ as usize },
2004        8usize,
2005        concat!(
2006            "Offset of field: ",
2007            stringify!(rte_dev_iterator),
2008            "::",
2009            stringify!(bus_str)
2010        )
2011    );
2012    assert_eq!(
2013        unsafe { &(*(::std::ptr::null::<rte_dev_iterator>())).cls_str as *const _ as usize },
2014        16usize,
2015        concat!(
2016            "Offset of field: ",
2017            stringify!(rte_dev_iterator),
2018            "::",
2019            stringify!(cls_str)
2020        )
2021    );
2022    assert_eq!(
2023        unsafe { &(*(::std::ptr::null::<rte_dev_iterator>())).bus as *const _ as usize },
2024        24usize,
2025        concat!(
2026            "Offset of field: ",
2027            stringify!(rte_dev_iterator),
2028            "::",
2029            stringify!(bus)
2030        )
2031    );
2032    assert_eq!(
2033        unsafe { &(*(::std::ptr::null::<rte_dev_iterator>())).cls as *const _ as usize },
2034        32usize,
2035        concat!(
2036            "Offset of field: ",
2037            stringify!(rte_dev_iterator),
2038            "::",
2039            stringify!(cls)
2040        )
2041    );
2042    assert_eq!(
2043        unsafe { &(*(::std::ptr::null::<rte_dev_iterator>())).device as *const _ as usize },
2044        40usize,
2045        concat!(
2046            "Offset of field: ",
2047            stringify!(rte_dev_iterator),
2048            "::",
2049            stringify!(device)
2050        )
2051    );
2052    assert_eq!(
2053        unsafe { &(*(::std::ptr::null::<rte_dev_iterator>())).class_device as *const _ as usize },
2054        48usize,
2055        concat!(
2056            "Offset of field: ",
2057            stringify!(rte_dev_iterator),
2058            "::",
2059            stringify!(class_device)
2060        )
2061    );
2062}
2063impl Default for rte_dev_iterator {
2064    fn default() -> Self {
2065        unsafe { ::std::mem::zeroed() }
2066    }
2067}
2068pub type rte_dev_iterate_t = ::std::option::Option<
2069    unsafe extern "C" fn(
2070        start: *const ::std::os::raw::c_void,
2071        devstr: *const ::std::os::raw::c_char,
2072        it: *const rte_dev_iterator,
2073    ) -> *mut ::std::os::raw::c_void,
2074>;
2075extern "C" {
2076    pub fn rte_dev_iterator_init(
2077        it: *mut rte_dev_iterator,
2078        str_: *const ::std::os::raw::c_char,
2079    ) -> ::std::os::raw::c_int;
2080}
2081extern "C" {
2082    pub fn rte_dev_iterator_next(it: *mut rte_dev_iterator) -> *mut rte_device;
2083}
2084extern "C" {
2085    pub fn rte_dev_event_callback_register(
2086        device_name: *const ::std::os::raw::c_char,
2087        cb_fn: rte_dev_event_cb_fn,
2088        cb_arg: *mut ::std::os::raw::c_void,
2089    ) -> ::std::os::raw::c_int;
2090}
2091extern "C" {
2092    pub fn rte_dev_event_callback_unregister(
2093        device_name: *const ::std::os::raw::c_char,
2094        cb_fn: rte_dev_event_cb_fn,
2095        cb_arg: *mut ::std::os::raw::c_void,
2096    ) -> ::std::os::raw::c_int;
2097}
2098extern "C" {
2099    pub fn rte_dev_event_callback_process(
2100        device_name: *const ::std::os::raw::c_char,
2101        event: rte_dev_event_type::Type,
2102    );
2103}
2104extern "C" {
2105    pub fn rte_dev_event_monitor_start() -> ::std::os::raw::c_int;
2106}
2107extern "C" {
2108    pub fn rte_dev_event_monitor_stop() -> ::std::os::raw::c_int;
2109}
2110extern "C" {
2111    pub fn rte_dev_hotplug_handle_enable() -> ::std::os::raw::c_int;
2112}
2113extern "C" {
2114    pub fn rte_dev_hotplug_handle_disable() -> ::std::os::raw::c_int;
2115}
2116extern "C" {
2117    pub fn rte_dev_dma_map(
2118        dev: *mut rte_device,
2119        addr: *mut ::std::os::raw::c_void,
2120        iova: u64,
2121        len: size_t,
2122    ) -> ::std::os::raw::c_int;
2123}
2124extern "C" {
2125    pub fn rte_dev_dma_unmap(
2126        dev: *mut rte_device,
2127        addr: *mut ::std::os::raw::c_void,
2128        iova: u64,
2129        len: size_t,
2130    ) -> ::std::os::raw::c_int;
2131}
2132#[repr(C)]
2133#[derive(Debug, Copy, Clone, PartialEq)]
2134pub struct rte_bus_list {
2135    pub tqh_first: *mut rte_bus,
2136    pub tqh_last: *mut *mut rte_bus,
2137}
2138#[test]
2139fn bindgen_test_layout_rte_bus_list() {
2140    assert_eq!(
2141        ::std::mem::size_of::<rte_bus_list>(),
2142        16usize,
2143        concat!("Size of: ", stringify!(rte_bus_list))
2144    );
2145    assert_eq!(
2146        ::std::mem::align_of::<rte_bus_list>(),
2147        8usize,
2148        concat!("Alignment of ", stringify!(rte_bus_list))
2149    );
2150    assert_eq!(
2151        unsafe { &(*(::std::ptr::null::<rte_bus_list>())).tqh_first as *const _ as usize },
2152        0usize,
2153        concat!(
2154            "Offset of field: ",
2155            stringify!(rte_bus_list),
2156            "::",
2157            stringify!(tqh_first)
2158        )
2159    );
2160    assert_eq!(
2161        unsafe { &(*(::std::ptr::null::<rte_bus_list>())).tqh_last as *const _ as usize },
2162        8usize,
2163        concat!(
2164            "Offset of field: ",
2165            stringify!(rte_bus_list),
2166            "::",
2167            stringify!(tqh_last)
2168        )
2169    );
2170}
2171impl Default for rte_bus_list {
2172    fn default() -> Self {
2173        unsafe { ::std::mem::zeroed() }
2174    }
2175}
2176pub mod rte_iova_mode {
2177    pub type Type = ::std::os::raw::c_uint;
2178    pub const RTE_IOVA_DC: Type = 0;
2179    pub const RTE_IOVA_PA: Type = 1;
2180    pub const RTE_IOVA_VA: Type = 2;
2181}
2182pub type rte_bus_scan_t = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>;
2183pub type rte_bus_probe_t = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>;
2184pub type rte_bus_find_device_t = ::std::option::Option<
2185    unsafe extern "C" fn(
2186        start: *const rte_device,
2187        cmp: rte_dev_cmp_t,
2188        data: *const ::std::os::raw::c_void,
2189    ) -> *mut rte_device,
2190>;
2191pub type rte_bus_plug_t =
2192    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_device) -> ::std::os::raw::c_int>;
2193pub type rte_bus_unplug_t =
2194    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_device) -> ::std::os::raw::c_int>;
2195pub type rte_bus_parse_t = ::std::option::Option<
2196    unsafe extern "C" fn(
2197        name: *const ::std::os::raw::c_char,
2198        addr: *mut ::std::os::raw::c_void,
2199    ) -> ::std::os::raw::c_int,
2200>;
2201pub type rte_dev_dma_map_t = ::std::option::Option<
2202    unsafe extern "C" fn(
2203        dev: *mut rte_device,
2204        addr: *mut ::std::os::raw::c_void,
2205        iova: u64,
2206        len: size_t,
2207    ) -> ::std::os::raw::c_int,
2208>;
2209pub type rte_dev_dma_unmap_t = ::std::option::Option<
2210    unsafe extern "C" fn(
2211        dev: *mut rte_device,
2212        addr: *mut ::std::os::raw::c_void,
2213        iova: u64,
2214        len: size_t,
2215    ) -> ::std::os::raw::c_int,
2216>;
2217pub type rte_bus_hot_unplug_handler_t =
2218    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_device) -> ::std::os::raw::c_int>;
2219pub type rte_bus_sigbus_handler_t = ::std::option::Option<
2220    unsafe extern "C" fn(failure_addr: *const ::std::os::raw::c_void) -> ::std::os::raw::c_int,
2221>;
2222pub mod rte_bus_scan_mode {
2223    pub type Type = ::std::os::raw::c_uint;
2224    pub const RTE_BUS_SCAN_UNDEFINED: Type = 0;
2225    pub const RTE_BUS_SCAN_WHITELIST: Type = 1;
2226    pub const RTE_BUS_SCAN_BLACKLIST: Type = 2;
2227}
2228#[repr(C)]
2229#[derive(Debug, Copy, Clone, PartialEq)]
2230pub struct rte_bus_conf {
2231    pub scan_mode: rte_bus_scan_mode::Type,
2232}
2233#[test]
2234fn bindgen_test_layout_rte_bus_conf() {
2235    assert_eq!(
2236        ::std::mem::size_of::<rte_bus_conf>(),
2237        4usize,
2238        concat!("Size of: ", stringify!(rte_bus_conf))
2239    );
2240    assert_eq!(
2241        ::std::mem::align_of::<rte_bus_conf>(),
2242        4usize,
2243        concat!("Alignment of ", stringify!(rte_bus_conf))
2244    );
2245    assert_eq!(
2246        unsafe { &(*(::std::ptr::null::<rte_bus_conf>())).scan_mode as *const _ as usize },
2247        0usize,
2248        concat!(
2249            "Offset of field: ",
2250            stringify!(rte_bus_conf),
2251            "::",
2252            stringify!(scan_mode)
2253        )
2254    );
2255}
2256impl Default for rte_bus_conf {
2257    fn default() -> Self {
2258        unsafe { ::std::mem::zeroed() }
2259    }
2260}
2261pub type rte_bus_get_iommu_class_t =
2262    ::std::option::Option<unsafe extern "C" fn() -> rte_iova_mode::Type>;
2263#[repr(C)]
2264#[derive(Debug, Copy, Clone, PartialEq)]
2265pub struct rte_bus {
2266    pub next: rte_bus__bindgen_ty_1,
2267    pub name: *const ::std::os::raw::c_char,
2268    pub scan: rte_bus_scan_t,
2269    pub probe: rte_bus_probe_t,
2270    pub find_device: rte_bus_find_device_t,
2271    pub plug: rte_bus_plug_t,
2272    pub unplug: rte_bus_unplug_t,
2273    pub parse: rte_bus_parse_t,
2274    pub dma_map: rte_dev_dma_map_t,
2275    pub dma_unmap: rte_dev_dma_unmap_t,
2276    pub conf: rte_bus_conf,
2277    pub get_iommu_class: rte_bus_get_iommu_class_t,
2278    pub dev_iterate: rte_dev_iterate_t,
2279    pub hot_unplug_handler: rte_bus_hot_unplug_handler_t,
2280    pub sigbus_handler: rte_bus_sigbus_handler_t,
2281}
2282#[repr(C)]
2283#[derive(Debug, Copy, Clone, PartialEq)]
2284pub struct rte_bus__bindgen_ty_1 {
2285    pub tqe_next: *mut rte_bus,
2286    pub tqe_prev: *mut *mut rte_bus,
2287}
2288#[test]
2289fn bindgen_test_layout_rte_bus__bindgen_ty_1() {
2290    assert_eq!(
2291        ::std::mem::size_of::<rte_bus__bindgen_ty_1>(),
2292        16usize,
2293        concat!("Size of: ", stringify!(rte_bus__bindgen_ty_1))
2294    );
2295    assert_eq!(
2296        ::std::mem::align_of::<rte_bus__bindgen_ty_1>(),
2297        8usize,
2298        concat!("Alignment of ", stringify!(rte_bus__bindgen_ty_1))
2299    );
2300    assert_eq!(
2301        unsafe { &(*(::std::ptr::null::<rte_bus__bindgen_ty_1>())).tqe_next as *const _ as usize },
2302        0usize,
2303        concat!(
2304            "Offset of field: ",
2305            stringify!(rte_bus__bindgen_ty_1),
2306            "::",
2307            stringify!(tqe_next)
2308        )
2309    );
2310    assert_eq!(
2311        unsafe { &(*(::std::ptr::null::<rte_bus__bindgen_ty_1>())).tqe_prev as *const _ as usize },
2312        8usize,
2313        concat!(
2314            "Offset of field: ",
2315            stringify!(rte_bus__bindgen_ty_1),
2316            "::",
2317            stringify!(tqe_prev)
2318        )
2319    );
2320}
2321impl Default for rte_bus__bindgen_ty_1 {
2322    fn default() -> Self {
2323        unsafe { ::std::mem::zeroed() }
2324    }
2325}
2326#[test]
2327fn bindgen_test_layout_rte_bus() {
2328    assert_eq!(
2329        ::std::mem::size_of::<rte_bus>(),
2330        128usize,
2331        concat!("Size of: ", stringify!(rte_bus))
2332    );
2333    assert_eq!(
2334        ::std::mem::align_of::<rte_bus>(),
2335        8usize,
2336        concat!("Alignment of ", stringify!(rte_bus))
2337    );
2338    assert_eq!(
2339        unsafe { &(*(::std::ptr::null::<rte_bus>())).next as *const _ as usize },
2340        0usize,
2341        concat!(
2342            "Offset of field: ",
2343            stringify!(rte_bus),
2344            "::",
2345            stringify!(next)
2346        )
2347    );
2348    assert_eq!(
2349        unsafe { &(*(::std::ptr::null::<rte_bus>())).name as *const _ as usize },
2350        16usize,
2351        concat!(
2352            "Offset of field: ",
2353            stringify!(rte_bus),
2354            "::",
2355            stringify!(name)
2356        )
2357    );
2358    assert_eq!(
2359        unsafe { &(*(::std::ptr::null::<rte_bus>())).scan as *const _ as usize },
2360        24usize,
2361        concat!(
2362            "Offset of field: ",
2363            stringify!(rte_bus),
2364            "::",
2365            stringify!(scan)
2366        )
2367    );
2368    assert_eq!(
2369        unsafe { &(*(::std::ptr::null::<rte_bus>())).probe as *const _ as usize },
2370        32usize,
2371        concat!(
2372            "Offset of field: ",
2373            stringify!(rte_bus),
2374            "::",
2375            stringify!(probe)
2376        )
2377    );
2378    assert_eq!(
2379        unsafe { &(*(::std::ptr::null::<rte_bus>())).find_device as *const _ as usize },
2380        40usize,
2381        concat!(
2382            "Offset of field: ",
2383            stringify!(rte_bus),
2384            "::",
2385            stringify!(find_device)
2386        )
2387    );
2388    assert_eq!(
2389        unsafe { &(*(::std::ptr::null::<rte_bus>())).plug as *const _ as usize },
2390        48usize,
2391        concat!(
2392            "Offset of field: ",
2393            stringify!(rte_bus),
2394            "::",
2395            stringify!(plug)
2396        )
2397    );
2398    assert_eq!(
2399        unsafe { &(*(::std::ptr::null::<rte_bus>())).unplug as *const _ as usize },
2400        56usize,
2401        concat!(
2402            "Offset of field: ",
2403            stringify!(rte_bus),
2404            "::",
2405            stringify!(unplug)
2406        )
2407    );
2408    assert_eq!(
2409        unsafe { &(*(::std::ptr::null::<rte_bus>())).parse as *const _ as usize },
2410        64usize,
2411        concat!(
2412            "Offset of field: ",
2413            stringify!(rte_bus),
2414            "::",
2415            stringify!(parse)
2416        )
2417    );
2418    assert_eq!(
2419        unsafe { &(*(::std::ptr::null::<rte_bus>())).dma_map as *const _ as usize },
2420        72usize,
2421        concat!(
2422            "Offset of field: ",
2423            stringify!(rte_bus),
2424            "::",
2425            stringify!(dma_map)
2426        )
2427    );
2428    assert_eq!(
2429        unsafe { &(*(::std::ptr::null::<rte_bus>())).dma_unmap as *const _ as usize },
2430        80usize,
2431        concat!(
2432            "Offset of field: ",
2433            stringify!(rte_bus),
2434            "::",
2435            stringify!(dma_unmap)
2436        )
2437    );
2438    assert_eq!(
2439        unsafe { &(*(::std::ptr::null::<rte_bus>())).conf as *const _ as usize },
2440        88usize,
2441        concat!(
2442            "Offset of field: ",
2443            stringify!(rte_bus),
2444            "::",
2445            stringify!(conf)
2446        )
2447    );
2448    assert_eq!(
2449        unsafe { &(*(::std::ptr::null::<rte_bus>())).get_iommu_class as *const _ as usize },
2450        96usize,
2451        concat!(
2452            "Offset of field: ",
2453            stringify!(rte_bus),
2454            "::",
2455            stringify!(get_iommu_class)
2456        )
2457    );
2458    assert_eq!(
2459        unsafe { &(*(::std::ptr::null::<rte_bus>())).dev_iterate as *const _ as usize },
2460        104usize,
2461        concat!(
2462            "Offset of field: ",
2463            stringify!(rte_bus),
2464            "::",
2465            stringify!(dev_iterate)
2466        )
2467    );
2468    assert_eq!(
2469        unsafe { &(*(::std::ptr::null::<rte_bus>())).hot_unplug_handler as *const _ as usize },
2470        112usize,
2471        concat!(
2472            "Offset of field: ",
2473            stringify!(rte_bus),
2474            "::",
2475            stringify!(hot_unplug_handler)
2476        )
2477    );
2478    assert_eq!(
2479        unsafe { &(*(::std::ptr::null::<rte_bus>())).sigbus_handler as *const _ as usize },
2480        120usize,
2481        concat!(
2482            "Offset of field: ",
2483            stringify!(rte_bus),
2484            "::",
2485            stringify!(sigbus_handler)
2486        )
2487    );
2488}
2489impl Default for rte_bus {
2490    fn default() -> Self {
2491        unsafe { ::std::mem::zeroed() }
2492    }
2493}
2494extern "C" {
2495    pub fn rte_bus_register(bus: *mut rte_bus);
2496}
2497extern "C" {
2498    pub fn rte_bus_unregister(bus: *mut rte_bus);
2499}
2500extern "C" {
2501    pub fn rte_bus_scan() -> ::std::os::raw::c_int;
2502}
2503extern "C" {
2504    pub fn rte_bus_probe() -> ::std::os::raw::c_int;
2505}
2506extern "C" {
2507    pub fn rte_bus_dump(f: *mut FILE);
2508}
2509pub type rte_bus_cmp_t = ::std::option::Option<
2510    unsafe extern "C" fn(
2511        bus: *const rte_bus,
2512        data: *const ::std::os::raw::c_void,
2513    ) -> ::std::os::raw::c_int,
2514>;
2515extern "C" {
2516    pub fn rte_bus_find(
2517        start: *const rte_bus,
2518        cmp: rte_bus_cmp_t,
2519        data: *const ::std::os::raw::c_void,
2520    ) -> *mut rte_bus;
2521}
2522extern "C" {
2523    pub fn rte_bus_find_by_device(dev: *const rte_device) -> *mut rte_bus;
2524}
2525extern "C" {
2526    pub fn rte_bus_find_by_name(busname: *const ::std::os::raw::c_char) -> *mut rte_bus;
2527}
2528extern "C" {
2529    pub fn rte_bus_get_iommu_class() -> rte_iova_mode::Type;
2530}
2531pub mod rte_intr_mode {
2532    pub type Type = ::std::os::raw::c_uint;
2533    pub const RTE_INTR_MODE_NONE: Type = 0;
2534    pub const RTE_INTR_MODE_LEGACY: Type = 1;
2535    pub const RTE_INTR_MODE_MSI: Type = 2;
2536    pub const RTE_INTR_MODE_MSIX: Type = 3;
2537}
2538pub mod rte_lcore_role_t {
2539    pub type Type = ::std::os::raw::c_uint;
2540    pub const ROLE_RTE: Type = 0;
2541    pub const ROLE_OFF: Type = 1;
2542    pub const ROLE_SERVICE: Type = 2;
2543}
2544pub mod rte_proc_type_t {
2545    pub type Type = ::std::os::raw::c_int;
2546    pub const RTE_PROC_AUTO: Type = -1;
2547    pub const RTE_PROC_PRIMARY: Type = 0;
2548    pub const RTE_PROC_SECONDARY: Type = 1;
2549    pub const RTE_PROC_INVALID: Type = 2;
2550}
2551extern "C" {
2552    pub fn rte_eal_process_type() -> rte_proc_type_t::Type;
2553}
2554extern "C" {
2555    pub fn rte_eal_iopl_init() -> ::std::os::raw::c_int;
2556}
2557extern "C" {
2558    pub fn rte_eal_init(
2559        argc: ::std::os::raw::c_int,
2560        argv: *mut *mut ::std::os::raw::c_char,
2561    ) -> ::std::os::raw::c_int;
2562}
2563extern "C" {
2564    pub fn rte_eal_cleanup() -> ::std::os::raw::c_int;
2565}
2566extern "C" {
2567    pub fn rte_eal_primary_proc_alive(
2568        config_file_path: *const ::std::os::raw::c_char,
2569    ) -> ::std::os::raw::c_int;
2570}
2571#[repr(C)]
2572#[derive(Copy, Clone)]
2573pub struct rte_mp_msg {
2574    pub name: [::std::os::raw::c_char; 64usize],
2575    pub len_param: ::std::os::raw::c_int,
2576    pub num_fds: ::std::os::raw::c_int,
2577    pub param: [u8; 256usize],
2578    pub fds: [::std::os::raw::c_int; 8usize],
2579}
2580#[test]
2581fn bindgen_test_layout_rte_mp_msg() {
2582    assert_eq!(
2583        ::std::mem::size_of::<rte_mp_msg>(),
2584        360usize,
2585        concat!("Size of: ", stringify!(rte_mp_msg))
2586    );
2587    assert_eq!(
2588        ::std::mem::align_of::<rte_mp_msg>(),
2589        4usize,
2590        concat!("Alignment of ", stringify!(rte_mp_msg))
2591    );
2592    assert_eq!(
2593        unsafe { &(*(::std::ptr::null::<rte_mp_msg>())).name as *const _ as usize },
2594        0usize,
2595        concat!(
2596            "Offset of field: ",
2597            stringify!(rte_mp_msg),
2598            "::",
2599            stringify!(name)
2600        )
2601    );
2602    assert_eq!(
2603        unsafe { &(*(::std::ptr::null::<rte_mp_msg>())).len_param as *const _ as usize },
2604        64usize,
2605        concat!(
2606            "Offset of field: ",
2607            stringify!(rte_mp_msg),
2608            "::",
2609            stringify!(len_param)
2610        )
2611    );
2612    assert_eq!(
2613        unsafe { &(*(::std::ptr::null::<rte_mp_msg>())).num_fds as *const _ as usize },
2614        68usize,
2615        concat!(
2616            "Offset of field: ",
2617            stringify!(rte_mp_msg),
2618            "::",
2619            stringify!(num_fds)
2620        )
2621    );
2622    assert_eq!(
2623        unsafe { &(*(::std::ptr::null::<rte_mp_msg>())).param as *const _ as usize },
2624        72usize,
2625        concat!(
2626            "Offset of field: ",
2627            stringify!(rte_mp_msg),
2628            "::",
2629            stringify!(param)
2630        )
2631    );
2632    assert_eq!(
2633        unsafe { &(*(::std::ptr::null::<rte_mp_msg>())).fds as *const _ as usize },
2634        328usize,
2635        concat!(
2636            "Offset of field: ",
2637            stringify!(rte_mp_msg),
2638            "::",
2639            stringify!(fds)
2640        )
2641    );
2642}
2643impl Default for rte_mp_msg {
2644    fn default() -> Self {
2645        unsafe { ::std::mem::zeroed() }
2646    }
2647}
2648#[repr(C)]
2649#[derive(Debug, Copy, Clone, PartialEq)]
2650pub struct rte_mp_reply {
2651    pub nb_sent: ::std::os::raw::c_int,
2652    pub nb_received: ::std::os::raw::c_int,
2653    pub msgs: *mut rte_mp_msg,
2654}
2655#[test]
2656fn bindgen_test_layout_rte_mp_reply() {
2657    assert_eq!(
2658        ::std::mem::size_of::<rte_mp_reply>(),
2659        16usize,
2660        concat!("Size of: ", stringify!(rte_mp_reply))
2661    );
2662    assert_eq!(
2663        ::std::mem::align_of::<rte_mp_reply>(),
2664        8usize,
2665        concat!("Alignment of ", stringify!(rte_mp_reply))
2666    );
2667    assert_eq!(
2668        unsafe { &(*(::std::ptr::null::<rte_mp_reply>())).nb_sent as *const _ as usize },
2669        0usize,
2670        concat!(
2671            "Offset of field: ",
2672            stringify!(rte_mp_reply),
2673            "::",
2674            stringify!(nb_sent)
2675        )
2676    );
2677    assert_eq!(
2678        unsafe { &(*(::std::ptr::null::<rte_mp_reply>())).nb_received as *const _ as usize },
2679        4usize,
2680        concat!(
2681            "Offset of field: ",
2682            stringify!(rte_mp_reply),
2683            "::",
2684            stringify!(nb_received)
2685        )
2686    );
2687    assert_eq!(
2688        unsafe { &(*(::std::ptr::null::<rte_mp_reply>())).msgs as *const _ as usize },
2689        8usize,
2690        concat!(
2691            "Offset of field: ",
2692            stringify!(rte_mp_reply),
2693            "::",
2694            stringify!(msgs)
2695        )
2696    );
2697}
2698impl Default for rte_mp_reply {
2699    fn default() -> Self {
2700        unsafe { ::std::mem::zeroed() }
2701    }
2702}
2703pub type rte_mp_t = ::std::option::Option<
2704    unsafe extern "C" fn(
2705        msg: *const rte_mp_msg,
2706        peer: *const ::std::os::raw::c_void,
2707    ) -> ::std::os::raw::c_int,
2708>;
2709pub type rte_mp_async_reply_t = ::std::option::Option<
2710    unsafe extern "C" fn(
2711        request: *const rte_mp_msg,
2712        reply: *const rte_mp_reply,
2713    ) -> ::std::os::raw::c_int,
2714>;
2715extern "C" {
2716    pub fn rte_mp_action_register(
2717        name: *const ::std::os::raw::c_char,
2718        action: rte_mp_t,
2719    ) -> ::std::os::raw::c_int;
2720}
2721extern "C" {
2722    pub fn rte_mp_action_unregister(name: *const ::std::os::raw::c_char);
2723}
2724extern "C" {
2725    pub fn rte_mp_sendmsg(msg: *mut rte_mp_msg) -> ::std::os::raw::c_int;
2726}
2727extern "C" {
2728    pub fn rte_mp_request_sync(
2729        req: *mut rte_mp_msg,
2730        reply: *mut rte_mp_reply,
2731        ts: *const timespec,
2732    ) -> ::std::os::raw::c_int;
2733}
2734extern "C" {
2735    pub fn rte_mp_request_async(
2736        req: *mut rte_mp_msg,
2737        ts: *const timespec,
2738        clb: rte_mp_async_reply_t,
2739    ) -> ::std::os::raw::c_int;
2740}
2741extern "C" {
2742    pub fn rte_mp_reply(
2743        msg: *mut rte_mp_msg,
2744        peer: *const ::std::os::raw::c_char,
2745    ) -> ::std::os::raw::c_int;
2746}
2747pub type rte_usage_hook_t =
2748    ::std::option::Option<unsafe extern "C" fn(prgname: *const ::std::os::raw::c_char)>;
2749extern "C" {
2750    pub fn rte_set_application_usage_hook(usage_func: rte_usage_hook_t) -> rte_usage_hook_t;
2751}
2752extern "C" {
2753    pub fn rte_eal_has_hugepages() -> ::std::os::raw::c_int;
2754}
2755extern "C" {
2756    pub fn rte_eal_has_pci() -> ::std::os::raw::c_int;
2757}
2758extern "C" {
2759    pub fn rte_eal_create_uio_dev() -> ::std::os::raw::c_int;
2760}
2761extern "C" {
2762    pub fn rte_eal_vfio_intr_mode() -> rte_intr_mode::Type;
2763}
2764extern "C" {
2765    pub fn rte_sys_gettid() -> ::std::os::raw::c_int;
2766}
2767extern "C" {
2768    pub fn rte_eal_iova_mode() -> rte_iova_mode::Type;
2769}
2770extern "C" {
2771    pub fn rte_eal_mbuf_user_pool_ops() -> *const ::std::os::raw::c_char;
2772}
2773extern "C" {
2774    pub fn rte_eal_get_runtime_dir() -> *const ::std::os::raw::c_char;
2775}
2776extern "C" {
2777    pub fn rte_strerror(errnum: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
2778}
2779pub mod _bindgen_ty_12 {
2780    pub type Type = ::std::os::raw::c_uint;
2781    pub const RTE_MIN_ERRNO: Type = 1000;
2782    pub const E_RTE_SECONDARY: Type = 1001;
2783    pub const E_RTE_NO_CONFIG: Type = 1002;
2784    pub const RTE_MAX_ERRNO: Type = 1003;
2785}
2786pub type rte_intr_callback_fn =
2787    ::std::option::Option<unsafe extern "C" fn(cb_arg: *mut ::std::os::raw::c_void)>;
2788pub type rte_intr_unregister_callback_fn = ::std::option::Option<
2789    unsafe extern "C" fn(intr_handle: *mut rte_intr_handle, cb_arg: *mut ::std::os::raw::c_void),
2790>;
2791pub mod rte_intr_handle_type {
2792    pub type Type = ::std::os::raw::c_uint;
2793    pub const RTE_INTR_HANDLE_UNKNOWN: Type = 0;
2794    pub const RTE_INTR_HANDLE_UIO: Type = 1;
2795    pub const RTE_INTR_HANDLE_UIO_INTX: Type = 2;
2796    pub const RTE_INTR_HANDLE_VFIO_LEGACY: Type = 3;
2797    pub const RTE_INTR_HANDLE_VFIO_MSI: Type = 4;
2798    pub const RTE_INTR_HANDLE_VFIO_MSIX: Type = 5;
2799    pub const RTE_INTR_HANDLE_ALARM: Type = 6;
2800    pub const RTE_INTR_HANDLE_EXT: Type = 7;
2801    pub const RTE_INTR_HANDLE_VDEV: Type = 8;
2802    pub const RTE_INTR_HANDLE_DEV_EVENT: Type = 9;
2803    pub const RTE_INTR_HANDLE_VFIO_REQ: Type = 10;
2804    pub const RTE_INTR_HANDLE_MAX: Type = 11;
2805}
2806pub type rte_intr_event_cb_t = ::std::option::Option<
2807    unsafe extern "C" fn(fd: ::std::os::raw::c_int, arg: *mut ::std::os::raw::c_void),
2808>;
2809#[repr(C)]
2810#[derive(Debug, Copy, Clone, PartialEq)]
2811pub struct rte_epoll_data {
2812    pub event: u32,
2813    pub data: *mut ::std::os::raw::c_void,
2814    pub cb_fun: rte_intr_event_cb_t,
2815    pub cb_arg: *mut ::std::os::raw::c_void,
2816}
2817#[test]
2818fn bindgen_test_layout_rte_epoll_data() {
2819    assert_eq!(
2820        ::std::mem::size_of::<rte_epoll_data>(),
2821        32usize,
2822        concat!("Size of: ", stringify!(rte_epoll_data))
2823    );
2824    assert_eq!(
2825        ::std::mem::align_of::<rte_epoll_data>(),
2826        8usize,
2827        concat!("Alignment of ", stringify!(rte_epoll_data))
2828    );
2829    assert_eq!(
2830        unsafe { &(*(::std::ptr::null::<rte_epoll_data>())).event as *const _ as usize },
2831        0usize,
2832        concat!(
2833            "Offset of field: ",
2834            stringify!(rte_epoll_data),
2835            "::",
2836            stringify!(event)
2837        )
2838    );
2839    assert_eq!(
2840        unsafe { &(*(::std::ptr::null::<rte_epoll_data>())).data as *const _ as usize },
2841        8usize,
2842        concat!(
2843            "Offset of field: ",
2844            stringify!(rte_epoll_data),
2845            "::",
2846            stringify!(data)
2847        )
2848    );
2849    assert_eq!(
2850        unsafe { &(*(::std::ptr::null::<rte_epoll_data>())).cb_fun as *const _ as usize },
2851        16usize,
2852        concat!(
2853            "Offset of field: ",
2854            stringify!(rte_epoll_data),
2855            "::",
2856            stringify!(cb_fun)
2857        )
2858    );
2859    assert_eq!(
2860        unsafe { &(*(::std::ptr::null::<rte_epoll_data>())).cb_arg as *const _ as usize },
2861        24usize,
2862        concat!(
2863            "Offset of field: ",
2864            stringify!(rte_epoll_data),
2865            "::",
2866            stringify!(cb_arg)
2867        )
2868    );
2869}
2870impl Default for rte_epoll_data {
2871    fn default() -> Self {
2872        unsafe { ::std::mem::zeroed() }
2873    }
2874}
2875pub mod _bindgen_ty_13 {
2876    pub type Type = ::std::os::raw::c_uint;
2877    pub const RTE_EPOLL_INVALID: Type = 0;
2878    pub const RTE_EPOLL_VALID: Type = 1;
2879    pub const RTE_EPOLL_EXEC: Type = 2;
2880}
2881#[repr(C)]
2882#[derive(Debug, Copy, Clone, PartialEq)]
2883pub struct rte_epoll_event {
2884    pub status: u32,
2885    pub fd: ::std::os::raw::c_int,
2886    pub epfd: ::std::os::raw::c_int,
2887    pub epdata: rte_epoll_data,
2888}
2889#[test]
2890fn bindgen_test_layout_rte_epoll_event() {
2891    assert_eq!(
2892        ::std::mem::size_of::<rte_epoll_event>(),
2893        48usize,
2894        concat!("Size of: ", stringify!(rte_epoll_event))
2895    );
2896    assert_eq!(
2897        ::std::mem::align_of::<rte_epoll_event>(),
2898        8usize,
2899        concat!("Alignment of ", stringify!(rte_epoll_event))
2900    );
2901    assert_eq!(
2902        unsafe { &(*(::std::ptr::null::<rte_epoll_event>())).status as *const _ as usize },
2903        0usize,
2904        concat!(
2905            "Offset of field: ",
2906            stringify!(rte_epoll_event),
2907            "::",
2908            stringify!(status)
2909        )
2910    );
2911    assert_eq!(
2912        unsafe { &(*(::std::ptr::null::<rte_epoll_event>())).fd as *const _ as usize },
2913        4usize,
2914        concat!(
2915            "Offset of field: ",
2916            stringify!(rte_epoll_event),
2917            "::",
2918            stringify!(fd)
2919        )
2920    );
2921    assert_eq!(
2922        unsafe { &(*(::std::ptr::null::<rte_epoll_event>())).epfd as *const _ as usize },
2923        8usize,
2924        concat!(
2925            "Offset of field: ",
2926            stringify!(rte_epoll_event),
2927            "::",
2928            stringify!(epfd)
2929        )
2930    );
2931    assert_eq!(
2932        unsafe { &(*(::std::ptr::null::<rte_epoll_event>())).epdata as *const _ as usize },
2933        16usize,
2934        concat!(
2935            "Offset of field: ",
2936            stringify!(rte_epoll_event),
2937            "::",
2938            stringify!(epdata)
2939        )
2940    );
2941}
2942impl Default for rte_epoll_event {
2943    fn default() -> Self {
2944        unsafe { ::std::mem::zeroed() }
2945    }
2946}
2947#[repr(C)]
2948#[derive(Copy, Clone)]
2949pub struct rte_intr_handle {
2950    pub __bindgen_anon_1: rte_intr_handle__bindgen_ty_1,
2951    pub fd: ::std::os::raw::c_int,
2952    pub type_: rte_intr_handle_type::Type,
2953    pub max_intr: u32,
2954    pub nb_efd: u32,
2955    pub efd_counter_size: u8,
2956    pub efds: [::std::os::raw::c_int; 512usize],
2957    pub elist: [rte_epoll_event; 512usize],
2958    pub intr_vec: *mut ::std::os::raw::c_int,
2959}
2960#[repr(C)]
2961#[derive(Copy, Clone)]
2962pub union rte_intr_handle__bindgen_ty_1 {
2963    pub vfio_dev_fd: ::std::os::raw::c_int,
2964    pub uio_cfg_fd: ::std::os::raw::c_int,
2965    _bindgen_union_align: u32,
2966}
2967#[test]
2968fn bindgen_test_layout_rte_intr_handle__bindgen_ty_1() {
2969    assert_eq!(
2970        ::std::mem::size_of::<rte_intr_handle__bindgen_ty_1>(),
2971        4usize,
2972        concat!("Size of: ", stringify!(rte_intr_handle__bindgen_ty_1))
2973    );
2974    assert_eq!(
2975        ::std::mem::align_of::<rte_intr_handle__bindgen_ty_1>(),
2976        4usize,
2977        concat!("Alignment of ", stringify!(rte_intr_handle__bindgen_ty_1))
2978    );
2979    assert_eq!(
2980        unsafe {
2981            &(*(::std::ptr::null::<rte_intr_handle__bindgen_ty_1>())).vfio_dev_fd as *const _
2982                as usize
2983        },
2984        0usize,
2985        concat!(
2986            "Offset of field: ",
2987            stringify!(rte_intr_handle__bindgen_ty_1),
2988            "::",
2989            stringify!(vfio_dev_fd)
2990        )
2991    );
2992    assert_eq!(
2993        unsafe {
2994            &(*(::std::ptr::null::<rte_intr_handle__bindgen_ty_1>())).uio_cfg_fd as *const _
2995                as usize
2996        },
2997        0usize,
2998        concat!(
2999            "Offset of field: ",
3000            stringify!(rte_intr_handle__bindgen_ty_1),
3001            "::",
3002            stringify!(uio_cfg_fd)
3003        )
3004    );
3005}
3006impl Default for rte_intr_handle__bindgen_ty_1 {
3007    fn default() -> Self {
3008        unsafe { ::std::mem::zeroed() }
3009    }
3010}
3011#[test]
3012fn bindgen_test_layout_rte_intr_handle() {
3013    assert_eq!(
3014        ::std::mem::size_of::<rte_intr_handle>(),
3015        26656usize,
3016        concat!("Size of: ", stringify!(rte_intr_handle))
3017    );
3018    assert_eq!(
3019        ::std::mem::align_of::<rte_intr_handle>(),
3020        8usize,
3021        concat!("Alignment of ", stringify!(rte_intr_handle))
3022    );
3023    assert_eq!(
3024        unsafe { &(*(::std::ptr::null::<rte_intr_handle>())).fd as *const _ as usize },
3025        4usize,
3026        concat!(
3027            "Offset of field: ",
3028            stringify!(rte_intr_handle),
3029            "::",
3030            stringify!(fd)
3031        )
3032    );
3033    assert_eq!(
3034        unsafe { &(*(::std::ptr::null::<rte_intr_handle>())).type_ as *const _ as usize },
3035        8usize,
3036        concat!(
3037            "Offset of field: ",
3038            stringify!(rte_intr_handle),
3039            "::",
3040            stringify!(type_)
3041        )
3042    );
3043    assert_eq!(
3044        unsafe { &(*(::std::ptr::null::<rte_intr_handle>())).max_intr as *const _ as usize },
3045        12usize,
3046        concat!(
3047            "Offset of field: ",
3048            stringify!(rte_intr_handle),
3049            "::",
3050            stringify!(max_intr)
3051        )
3052    );
3053    assert_eq!(
3054        unsafe { &(*(::std::ptr::null::<rte_intr_handle>())).nb_efd as *const _ as usize },
3055        16usize,
3056        concat!(
3057            "Offset of field: ",
3058            stringify!(rte_intr_handle),
3059            "::",
3060            stringify!(nb_efd)
3061        )
3062    );
3063    assert_eq!(
3064        unsafe {
3065            &(*(::std::ptr::null::<rte_intr_handle>())).efd_counter_size as *const _ as usize
3066        },
3067        20usize,
3068        concat!(
3069            "Offset of field: ",
3070            stringify!(rte_intr_handle),
3071            "::",
3072            stringify!(efd_counter_size)
3073        )
3074    );
3075    assert_eq!(
3076        unsafe { &(*(::std::ptr::null::<rte_intr_handle>())).efds as *const _ as usize },
3077        24usize,
3078        concat!(
3079            "Offset of field: ",
3080            stringify!(rte_intr_handle),
3081            "::",
3082            stringify!(efds)
3083        )
3084    );
3085    assert_eq!(
3086        unsafe { &(*(::std::ptr::null::<rte_intr_handle>())).elist as *const _ as usize },
3087        2072usize,
3088        concat!(
3089            "Offset of field: ",
3090            stringify!(rte_intr_handle),
3091            "::",
3092            stringify!(elist)
3093        )
3094    );
3095    assert_eq!(
3096        unsafe { &(*(::std::ptr::null::<rte_intr_handle>())).intr_vec as *const _ as usize },
3097        26648usize,
3098        concat!(
3099            "Offset of field: ",
3100            stringify!(rte_intr_handle),
3101            "::",
3102            stringify!(intr_vec)
3103        )
3104    );
3105}
3106impl Default for rte_intr_handle {
3107    fn default() -> Self {
3108        unsafe { ::std::mem::zeroed() }
3109    }
3110}
3111extern "C" {
3112    pub fn rte_epoll_wait(
3113        epfd: ::std::os::raw::c_int,
3114        events: *mut rte_epoll_event,
3115        maxevents: ::std::os::raw::c_int,
3116        timeout: ::std::os::raw::c_int,
3117    ) -> ::std::os::raw::c_int;
3118}
3119extern "C" {
3120    pub fn rte_epoll_ctl(
3121        epfd: ::std::os::raw::c_int,
3122        op: ::std::os::raw::c_int,
3123        fd: ::std::os::raw::c_int,
3124        event: *mut rte_epoll_event,
3125    ) -> ::std::os::raw::c_int;
3126}
3127extern "C" {
3128    pub fn rte_intr_tls_epfd() -> ::std::os::raw::c_int;
3129}
3130extern "C" {
3131    pub fn rte_intr_rx_ctl(
3132        intr_handle: *mut rte_intr_handle,
3133        epfd: ::std::os::raw::c_int,
3134        op: ::std::os::raw::c_int,
3135        vec: ::std::os::raw::c_uint,
3136        data: *mut ::std::os::raw::c_void,
3137    ) -> ::std::os::raw::c_int;
3138}
3139extern "C" {
3140    pub fn rte_intr_free_epoll_fd(intr_handle: *mut rte_intr_handle);
3141}
3142extern "C" {
3143    pub fn rte_intr_efd_enable(
3144        intr_handle: *mut rte_intr_handle,
3145        nb_efd: u32,
3146    ) -> ::std::os::raw::c_int;
3147}
3148extern "C" {
3149    pub fn rte_intr_efd_disable(intr_handle: *mut rte_intr_handle);
3150}
3151extern "C" {
3152    pub fn rte_intr_dp_is_en(intr_handle: *mut rte_intr_handle) -> ::std::os::raw::c_int;
3153}
3154extern "C" {
3155    pub fn rte_intr_allow_others(intr_handle: *mut rte_intr_handle) -> ::std::os::raw::c_int;
3156}
3157extern "C" {
3158    pub fn rte_intr_cap_multiple(intr_handle: *mut rte_intr_handle) -> ::std::os::raw::c_int;
3159}
3160extern "C" {
3161    pub fn rte_intr_callback_register(
3162        intr_handle: *const rte_intr_handle,
3163        cb: rte_intr_callback_fn,
3164        cb_arg: *mut ::std::os::raw::c_void,
3165    ) -> ::std::os::raw::c_int;
3166}
3167extern "C" {
3168    pub fn rte_intr_callback_unregister(
3169        intr_handle: *const rte_intr_handle,
3170        cb: rte_intr_callback_fn,
3171        cb_arg: *mut ::std::os::raw::c_void,
3172    ) -> ::std::os::raw::c_int;
3173}
3174extern "C" {
3175    pub fn rte_intr_callback_unregister_pending(
3176        intr_handle: *const rte_intr_handle,
3177        cb_fn: rte_intr_callback_fn,
3178        cb_arg: *mut ::std::os::raw::c_void,
3179        ucb_fn: rte_intr_unregister_callback_fn,
3180    ) -> ::std::os::raw::c_int;
3181}
3182extern "C" {
3183    pub fn rte_intr_enable(intr_handle: *const rte_intr_handle) -> ::std::os::raw::c_int;
3184}
3185extern "C" {
3186    pub fn rte_intr_disable(intr_handle: *const rte_intr_handle) -> ::std::os::raw::c_int;
3187}
3188extern "C" {
3189    pub fn rte_intr_ack(intr_handle: *const rte_intr_handle) -> ::std::os::raw::c_int;
3190}
3191pub mod rte_devtype {
3192    pub type Type = ::std::os::raw::c_uint;
3193    pub const RTE_DEVTYPE_WHITELISTED_PCI: Type = 0;
3194    pub const RTE_DEVTYPE_BLACKLISTED_PCI: Type = 1;
3195    pub const RTE_DEVTYPE_VIRTUAL: Type = 2;
3196}
3197#[repr(C)]
3198#[derive(Copy, Clone)]
3199pub struct rte_devargs {
3200    pub next: rte_devargs__bindgen_ty_1,
3201    pub type_: rte_devtype::Type,
3202    pub policy: rte_dev_policy::Type,
3203    pub name: [::std::os::raw::c_char; 64usize],
3204    pub __bindgen_anon_1: rte_devargs__bindgen_ty_2,
3205    pub bus: *mut rte_bus,
3206    pub cls: *mut rte_class,
3207    pub bus_str: *const ::std::os::raw::c_char,
3208    pub cls_str: *const ::std::os::raw::c_char,
3209    pub data: *const ::std::os::raw::c_char,
3210}
3211#[repr(C)]
3212#[derive(Debug, Copy, Clone, PartialEq)]
3213pub struct rte_devargs__bindgen_ty_1 {
3214    pub tqe_next: *mut rte_devargs,
3215    pub tqe_prev: *mut *mut rte_devargs,
3216}
3217#[test]
3218fn bindgen_test_layout_rte_devargs__bindgen_ty_1() {
3219    assert_eq!(
3220        ::std::mem::size_of::<rte_devargs__bindgen_ty_1>(),
3221        16usize,
3222        concat!("Size of: ", stringify!(rte_devargs__bindgen_ty_1))
3223    );
3224    assert_eq!(
3225        ::std::mem::align_of::<rte_devargs__bindgen_ty_1>(),
3226        8usize,
3227        concat!("Alignment of ", stringify!(rte_devargs__bindgen_ty_1))
3228    );
3229    assert_eq!(
3230        unsafe {
3231            &(*(::std::ptr::null::<rte_devargs__bindgen_ty_1>())).tqe_next as *const _ as usize
3232        },
3233        0usize,
3234        concat!(
3235            "Offset of field: ",
3236            stringify!(rte_devargs__bindgen_ty_1),
3237            "::",
3238            stringify!(tqe_next)
3239        )
3240    );
3241    assert_eq!(
3242        unsafe {
3243            &(*(::std::ptr::null::<rte_devargs__bindgen_ty_1>())).tqe_prev as *const _ as usize
3244        },
3245        8usize,
3246        concat!(
3247            "Offset of field: ",
3248            stringify!(rte_devargs__bindgen_ty_1),
3249            "::",
3250            stringify!(tqe_prev)
3251        )
3252    );
3253}
3254impl Default for rte_devargs__bindgen_ty_1 {
3255    fn default() -> Self {
3256        unsafe { ::std::mem::zeroed() }
3257    }
3258}
3259#[repr(C)]
3260#[derive(Copy, Clone)]
3261pub union rte_devargs__bindgen_ty_2 {
3262    pub args: *mut ::std::os::raw::c_char,
3263    pub drv_str: *const ::std::os::raw::c_char,
3264    _bindgen_union_align: u64,
3265}
3266#[test]
3267fn bindgen_test_layout_rte_devargs__bindgen_ty_2() {
3268    assert_eq!(
3269        ::std::mem::size_of::<rte_devargs__bindgen_ty_2>(),
3270        8usize,
3271        concat!("Size of: ", stringify!(rte_devargs__bindgen_ty_2))
3272    );
3273    assert_eq!(
3274        ::std::mem::align_of::<rte_devargs__bindgen_ty_2>(),
3275        8usize,
3276        concat!("Alignment of ", stringify!(rte_devargs__bindgen_ty_2))
3277    );
3278    assert_eq!(
3279        unsafe { &(*(::std::ptr::null::<rte_devargs__bindgen_ty_2>())).args as *const _ as usize },
3280        0usize,
3281        concat!(
3282            "Offset of field: ",
3283            stringify!(rte_devargs__bindgen_ty_2),
3284            "::",
3285            stringify!(args)
3286        )
3287    );
3288    assert_eq!(
3289        unsafe {
3290            &(*(::std::ptr::null::<rte_devargs__bindgen_ty_2>())).drv_str as *const _ as usize
3291        },
3292        0usize,
3293        concat!(
3294            "Offset of field: ",
3295            stringify!(rte_devargs__bindgen_ty_2),
3296            "::",
3297            stringify!(drv_str)
3298        )
3299    );
3300}
3301impl Default for rte_devargs__bindgen_ty_2 {
3302    fn default() -> Self {
3303        unsafe { ::std::mem::zeroed() }
3304    }
3305}
3306#[test]
3307fn bindgen_test_layout_rte_devargs() {
3308    assert_eq!(
3309        ::std::mem::size_of::<rte_devargs>(),
3310        136usize,
3311        concat!("Size of: ", stringify!(rte_devargs))
3312    );
3313    assert_eq!(
3314        ::std::mem::align_of::<rte_devargs>(),
3315        8usize,
3316        concat!("Alignment of ", stringify!(rte_devargs))
3317    );
3318    assert_eq!(
3319        unsafe { &(*(::std::ptr::null::<rte_devargs>())).next as *const _ as usize },
3320        0usize,
3321        concat!(
3322            "Offset of field: ",
3323            stringify!(rte_devargs),
3324            "::",
3325            stringify!(next)
3326        )
3327    );
3328    assert_eq!(
3329        unsafe { &(*(::std::ptr::null::<rte_devargs>())).type_ as *const _ as usize },
3330        16usize,
3331        concat!(
3332            "Offset of field: ",
3333            stringify!(rte_devargs),
3334            "::",
3335            stringify!(type_)
3336        )
3337    );
3338    assert_eq!(
3339        unsafe { &(*(::std::ptr::null::<rte_devargs>())).policy as *const _ as usize },
3340        20usize,
3341        concat!(
3342            "Offset of field: ",
3343            stringify!(rte_devargs),
3344            "::",
3345            stringify!(policy)
3346        )
3347    );
3348    assert_eq!(
3349        unsafe { &(*(::std::ptr::null::<rte_devargs>())).name as *const _ as usize },
3350        24usize,
3351        concat!(
3352            "Offset of field: ",
3353            stringify!(rte_devargs),
3354            "::",
3355            stringify!(name)
3356        )
3357    );
3358    assert_eq!(
3359        unsafe { &(*(::std::ptr::null::<rte_devargs>())).bus as *const _ as usize },
3360        96usize,
3361        concat!(
3362            "Offset of field: ",
3363            stringify!(rte_devargs),
3364            "::",
3365            stringify!(bus)
3366        )
3367    );
3368    assert_eq!(
3369        unsafe { &(*(::std::ptr::null::<rte_devargs>())).cls as *const _ as usize },
3370        104usize,
3371        concat!(
3372            "Offset of field: ",
3373            stringify!(rte_devargs),
3374            "::",
3375            stringify!(cls)
3376        )
3377    );
3378    assert_eq!(
3379        unsafe { &(*(::std::ptr::null::<rte_devargs>())).bus_str as *const _ as usize },
3380        112usize,
3381        concat!(
3382            "Offset of field: ",
3383            stringify!(rte_devargs),
3384            "::",
3385            stringify!(bus_str)
3386        )
3387    );
3388    assert_eq!(
3389        unsafe { &(*(::std::ptr::null::<rte_devargs>())).cls_str as *const _ as usize },
3390        120usize,
3391        concat!(
3392            "Offset of field: ",
3393            stringify!(rte_devargs),
3394            "::",
3395            stringify!(cls_str)
3396        )
3397    );
3398    assert_eq!(
3399        unsafe { &(*(::std::ptr::null::<rte_devargs>())).data as *const _ as usize },
3400        128usize,
3401        concat!(
3402            "Offset of field: ",
3403            stringify!(rte_devargs),
3404            "::",
3405            stringify!(data)
3406        )
3407    );
3408}
3409impl Default for rte_devargs {
3410    fn default() -> Self {
3411        unsafe { ::std::mem::zeroed() }
3412    }
3413}
3414extern "C" {
3415    pub fn rte_devargs_parse(
3416        da: *mut rte_devargs,
3417        dev: *const ::std::os::raw::c_char,
3418    ) -> ::std::os::raw::c_int;
3419}
3420extern "C" {
3421    pub fn rte_devargs_parsef(
3422        da: *mut rte_devargs,
3423        format: *const ::std::os::raw::c_char,
3424        ...
3425    ) -> ::std::os::raw::c_int;
3426}
3427extern "C" {
3428    pub fn rte_devargs_insert(da: *mut *mut rte_devargs) -> ::std::os::raw::c_int;
3429}
3430extern "C" {
3431    pub fn rte_devargs_add(
3432        devtype: rte_devtype::Type,
3433        devargs_str: *const ::std::os::raw::c_char,
3434    ) -> ::std::os::raw::c_int;
3435}
3436extern "C" {
3437    pub fn rte_devargs_remove(devargs: *mut rte_devargs) -> ::std::os::raw::c_int;
3438}
3439extern "C" {
3440    pub fn rte_devargs_type_count(devtype: rte_devtype::Type) -> ::std::os::raw::c_uint;
3441}
3442extern "C" {
3443    pub fn rte_devargs_dump(f: *mut FILE);
3444}
3445extern "C" {
3446    pub fn rte_devargs_next(
3447        busname: *const ::std::os::raw::c_char,
3448        start: *const rte_devargs,
3449    ) -> *mut rte_devargs;
3450}
3451pub type rte_v64u8_t = [u8; 8usize];
3452pub type rte_v64u16_t = [u16; 4usize];
3453pub type rte_v64u32_t = [u32; 2usize];
3454pub type rte_v128u8_t = [u8; 16usize];
3455pub type rte_v128u16_t = [u16; 8usize];
3456pub type rte_v128u32_t = [u32; 4usize];
3457pub type rte_v128u64_t = [u64; 2usize];
3458pub type rte_v256u8_t = [u8; 32usize];
3459pub type rte_v256u16_t = [u16; 16usize];
3460pub type rte_v256u32_t = [u32; 8usize];
3461pub type rte_v256u64_t = [u64; 4usize];
3462pub type rte_v64s8_t = [i8; 8usize];
3463pub type rte_v64s16_t = [i16; 4usize];
3464pub type rte_v64s32_t = [i32; 2usize];
3465pub type rte_v128s8_t = [i8; 16usize];
3466pub type rte_v128s16_t = [i16; 8usize];
3467pub type rte_v128s32_t = [i32; 4usize];
3468pub type rte_v128s64_t = [i64; 2usize];
3469pub type rte_v256s8_t = [i8; 32usize];
3470pub type rte_v256s16_t = [i16; 16usize];
3471pub type rte_v256s32_t = [i32; 8usize];
3472pub type rte_v256s64_t = [i64; 4usize];
3473pub type __m128i = [::std::os::raw::c_longlong; 2usize];
3474pub type __m256i = [::std::os::raw::c_longlong; 4usize];
3475pub type xmm_t = __m128i;
3476#[repr(C)]
3477#[repr(align(16))]
3478#[derive(Copy, Clone)]
3479pub union rte_xmm {
3480    pub x: xmm_t,
3481    pub u8_: [u8; 16usize],
3482    pub u16_: [u16; 8usize],
3483    pub u32_: [u32; 4usize],
3484    pub u64_: [u64; 2usize],
3485    pub pd: [f64; 2usize],
3486    _bindgen_union_align: u128,
3487}
3488#[test]
3489fn bindgen_test_layout_rte_xmm() {
3490    assert_eq!(
3491        ::std::mem::size_of::<rte_xmm>(),
3492        16usize,
3493        concat!("Size of: ", stringify!(rte_xmm))
3494    );
3495    assert_eq!(
3496        ::std::mem::align_of::<rte_xmm>(),
3497        16usize,
3498        concat!("Alignment of ", stringify!(rte_xmm))
3499    );
3500    assert_eq!(
3501        unsafe { &(*(::std::ptr::null::<rte_xmm>())).x as *const _ as usize },
3502        0usize,
3503        concat!(
3504            "Offset of field: ",
3505            stringify!(rte_xmm),
3506            "::",
3507            stringify!(x)
3508        )
3509    );
3510    assert_eq!(
3511        unsafe { &(*(::std::ptr::null::<rte_xmm>())).u8_ as *const _ as usize },
3512        0usize,
3513        concat!(
3514            "Offset of field: ",
3515            stringify!(rte_xmm),
3516            "::",
3517            stringify!(u8_)
3518        )
3519    );
3520    assert_eq!(
3521        unsafe { &(*(::std::ptr::null::<rte_xmm>())).u16_ as *const _ as usize },
3522        0usize,
3523        concat!(
3524            "Offset of field: ",
3525            stringify!(rte_xmm),
3526            "::",
3527            stringify!(u16_)
3528        )
3529    );
3530    assert_eq!(
3531        unsafe { &(*(::std::ptr::null::<rte_xmm>())).u32_ as *const _ as usize },
3532        0usize,
3533        concat!(
3534            "Offset of field: ",
3535            stringify!(rte_xmm),
3536            "::",
3537            stringify!(u32_)
3538        )
3539    );
3540    assert_eq!(
3541        unsafe { &(*(::std::ptr::null::<rte_xmm>())).u64_ as *const _ as usize },
3542        0usize,
3543        concat!(
3544            "Offset of field: ",
3545            stringify!(rte_xmm),
3546            "::",
3547            stringify!(u64_)
3548        )
3549    );
3550    assert_eq!(
3551        unsafe { &(*(::std::ptr::null::<rte_xmm>())).pd as *const _ as usize },
3552        0usize,
3553        concat!(
3554            "Offset of field: ",
3555            stringify!(rte_xmm),
3556            "::",
3557            stringify!(pd)
3558        )
3559    );
3560}
3561impl Default for rte_xmm {
3562    fn default() -> Self {
3563        unsafe { ::std::mem::zeroed() }
3564    }
3565}
3566pub type rte_xmm_t = rte_xmm;
3567pub type ymm_t = __m256i;
3568#[repr(C)]
3569#[repr(align(32))]
3570#[derive(Copy, Clone)]
3571pub union rte_ymm {
3572    pub y: ymm_t,
3573    pub x: [xmm_t; 2usize],
3574    pub u8_: [u8; 32usize],
3575    pub u16_: [u16; 16usize],
3576    pub u32_: [u32; 8usize],
3577    pub u64_: [u64; 4usize],
3578    pub pd: [f64; 4usize],
3579    _bindgen_union_align: [u8; 32usize],
3580}
3581#[test]
3582fn bindgen_test_layout_rte_ymm() {
3583    assert_eq!(
3584        ::std::mem::size_of::<rte_ymm>(),
3585        32usize,
3586        concat!("Size of: ", stringify!(rte_ymm))
3587    );
3588    assert_eq!(
3589        ::std::mem::align_of::<rte_ymm>(),
3590        32usize,
3591        concat!("Alignment of ", stringify!(rte_ymm))
3592    );
3593    assert_eq!(
3594        unsafe { &(*(::std::ptr::null::<rte_ymm>())).y as *const _ as usize },
3595        0usize,
3596        concat!(
3597            "Offset of field: ",
3598            stringify!(rte_ymm),
3599            "::",
3600            stringify!(y)
3601        )
3602    );
3603    assert_eq!(
3604        unsafe { &(*(::std::ptr::null::<rte_ymm>())).x as *const _ as usize },
3605        0usize,
3606        concat!(
3607            "Offset of field: ",
3608            stringify!(rte_ymm),
3609            "::",
3610            stringify!(x)
3611        )
3612    );
3613    assert_eq!(
3614        unsafe { &(*(::std::ptr::null::<rte_ymm>())).u8_ as *const _ as usize },
3615        0usize,
3616        concat!(
3617            "Offset of field: ",
3618            stringify!(rte_ymm),
3619            "::",
3620            stringify!(u8_)
3621        )
3622    );
3623    assert_eq!(
3624        unsafe { &(*(::std::ptr::null::<rte_ymm>())).u16_ as *const _ as usize },
3625        0usize,
3626        concat!(
3627            "Offset of field: ",
3628            stringify!(rte_ymm),
3629            "::",
3630            stringify!(u16_)
3631        )
3632    );
3633    assert_eq!(
3634        unsafe { &(*(::std::ptr::null::<rte_ymm>())).u32_ as *const _ as usize },
3635        0usize,
3636        concat!(
3637            "Offset of field: ",
3638            stringify!(rte_ymm),
3639            "::",
3640            stringify!(u32_)
3641        )
3642    );
3643    assert_eq!(
3644        unsafe { &(*(::std::ptr::null::<rte_ymm>())).u64_ as *const _ as usize },
3645        0usize,
3646        concat!(
3647            "Offset of field: ",
3648            stringify!(rte_ymm),
3649            "::",
3650            stringify!(u64_)
3651        )
3652    );
3653    assert_eq!(
3654        unsafe { &(*(::std::ptr::null::<rte_ymm>())).pd as *const _ as usize },
3655        0usize,
3656        concat!(
3657            "Offset of field: ",
3658            stringify!(rte_ymm),
3659            "::",
3660            stringify!(pd)
3661        )
3662    );
3663}
3664impl Default for rte_ymm {
3665    fn default() -> Self {
3666        unsafe { ::std::mem::zeroed() }
3667    }
3668}
3669pub type rte_ymm_t = rte_ymm;
3670extern "C" {
3671    pub fn rte_srand(seedval: u64);
3672}
3673extern "C" {
3674    pub fn rte_rand() -> u64;
3675}
3676extern "C" {
3677    pub fn rte_rand_max(upper_bound: u64) -> u64;
3678}
3679pub mod rte_lcore_state_t {
3680    pub type Type = ::std::os::raw::c_uint;
3681    pub const WAIT: Type = 0;
3682    pub const RUNNING: Type = 1;
3683    pub const FINISHED: Type = 2;
3684}
3685pub type lcore_function_t = ::std::option::Option<
3686    unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
3687>;
3688extern "C" {
3689    pub fn rte_eal_remote_launch(
3690        f: lcore_function_t,
3691        arg: *mut ::std::os::raw::c_void,
3692        slave_id: ::std::os::raw::c_uint,
3693    ) -> ::std::os::raw::c_int;
3694}
3695pub mod rte_rmt_call_master_t {
3696    pub type Type = ::std::os::raw::c_uint;
3697    pub const SKIP_MASTER: Type = 0;
3698    pub const CALL_MASTER: Type = 1;
3699}
3700extern "C" {
3701    pub fn rte_eal_mp_remote_launch(
3702        f: lcore_function_t,
3703        arg: *mut ::std::os::raw::c_void,
3704        call_master: rte_rmt_call_master_t::Type,
3705    ) -> ::std::os::raw::c_int;
3706}
3707extern "C" {
3708    pub fn rte_eal_get_lcore_state(slave_id: ::std::os::raw::c_uint) -> rte_lcore_state_t::Type;
3709}
3710extern "C" {
3711    pub fn rte_eal_wait_lcore(slave_id: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
3712}
3713extern "C" {
3714    pub fn rte_eal_mp_wait_lcore();
3715}
3716extern "C" {
3717    pub fn rte_eal_lcore_role(lcore_id: ::std::os::raw::c_uint) -> rte_lcore_role_t::Type;
3718}
3719extern "C" {
3720    pub fn rte_get_master_lcore() -> ::std::os::raw::c_uint;
3721}
3722extern "C" {
3723    pub fn rte_lcore_count() -> ::std::os::raw::c_uint;
3724}
3725extern "C" {
3726    pub fn rte_lcore_index(lcore_id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3727}
3728extern "C" {
3729    pub fn rte_socket_id() -> ::std::os::raw::c_uint;
3730}
3731extern "C" {
3732    pub fn rte_socket_count() -> ::std::os::raw::c_uint;
3733}
3734extern "C" {
3735    pub fn rte_socket_id_by_idx(idx: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
3736}
3737extern "C" {
3738    pub fn rte_lcore_to_socket_id(lcore_id: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint;
3739}
3740extern "C" {
3741    pub fn rte_lcore_to_cpu_id(lcore_id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3742}
3743extern "C" {
3744    pub fn rte_lcore_cpuset(lcore_id: ::std::os::raw::c_uint) -> rte_cpuset_t;
3745}
3746extern "C" {
3747    pub fn rte_lcore_is_enabled(lcore_id: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
3748}
3749extern "C" {
3750    pub fn rte_get_next_lcore(
3751        i: ::std::os::raw::c_uint,
3752        skip_master: ::std::os::raw::c_int,
3753        wrap: ::std::os::raw::c_int,
3754    ) -> ::std::os::raw::c_uint;
3755}
3756extern "C" {
3757    pub fn rte_thread_set_affinity(cpusetp: *mut rte_cpuset_t) -> ::std::os::raw::c_int;
3758}
3759extern "C" {
3760    pub fn rte_thread_get_affinity(cpusetp: *mut rte_cpuset_t);
3761}
3762extern "C" {
3763    pub fn rte_thread_setname(
3764        id: pthread_t,
3765        name: *const ::std::os::raw::c_char,
3766    ) -> ::std::os::raw::c_int;
3767}
3768extern "C" {
3769    pub fn rte_ctrl_thread_create(
3770        thread: *mut pthread_t,
3771        name: *const ::std::os::raw::c_char,
3772        attr: *const pthread_attr_t,
3773        start_routine: ::std::option::Option<
3774            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
3775        >,
3776        arg: *mut ::std::os::raw::c_void,
3777    ) -> ::std::os::raw::c_int;
3778}
3779extern "C" {
3780    pub fn rte_lcore_has_role(
3781        lcore_id: ::std::os::raw::c_uint,
3782        role: rte_lcore_role_t::Type,
3783    ) -> ::std::os::raw::c_int;
3784}
3785#[repr(C)]
3786#[derive(Debug, Default, Copy, Clone, PartialEq)]
3787pub struct rte_spinlock_t {
3788    pub locked: ::std::os::raw::c_int,
3789}
3790#[test]
3791fn bindgen_test_layout_rte_spinlock_t() {
3792    assert_eq!(
3793        ::std::mem::size_of::<rte_spinlock_t>(),
3794        4usize,
3795        concat!("Size of: ", stringify!(rte_spinlock_t))
3796    );
3797    assert_eq!(
3798        ::std::mem::align_of::<rte_spinlock_t>(),
3799        4usize,
3800        concat!("Alignment of ", stringify!(rte_spinlock_t))
3801    );
3802    assert_eq!(
3803        unsafe { &(*(::std::ptr::null::<rte_spinlock_t>())).locked as *const _ as usize },
3804        0usize,
3805        concat!(
3806            "Offset of field: ",
3807            stringify!(rte_spinlock_t),
3808            "::",
3809            stringify!(locked)
3810        )
3811    );
3812}
3813#[repr(C)]
3814#[derive(Debug, Default, Copy, Clone, PartialEq)]
3815pub struct rte_spinlock_recursive_t {
3816    pub sl: rte_spinlock_t,
3817    pub user: ::std::os::raw::c_int,
3818    pub count: ::std::os::raw::c_int,
3819}
3820#[test]
3821fn bindgen_test_layout_rte_spinlock_recursive_t() {
3822    assert_eq!(
3823        ::std::mem::size_of::<rte_spinlock_recursive_t>(),
3824        12usize,
3825        concat!("Size of: ", stringify!(rte_spinlock_recursive_t))
3826    );
3827    assert_eq!(
3828        ::std::mem::align_of::<rte_spinlock_recursive_t>(),
3829        4usize,
3830        concat!("Alignment of ", stringify!(rte_spinlock_recursive_t))
3831    );
3832    assert_eq!(
3833        unsafe { &(*(::std::ptr::null::<rte_spinlock_recursive_t>())).sl as *const _ as usize },
3834        0usize,
3835        concat!(
3836            "Offset of field: ",
3837            stringify!(rte_spinlock_recursive_t),
3838            "::",
3839            stringify!(sl)
3840        )
3841    );
3842    assert_eq!(
3843        unsafe { &(*(::std::ptr::null::<rte_spinlock_recursive_t>())).user as *const _ as usize },
3844        4usize,
3845        concat!(
3846            "Offset of field: ",
3847            stringify!(rte_spinlock_recursive_t),
3848            "::",
3849            stringify!(user)
3850        )
3851    );
3852    assert_eq!(
3853        unsafe { &(*(::std::ptr::null::<rte_spinlock_recursive_t>())).count as *const _ as usize },
3854        8usize,
3855        concat!(
3856            "Offset of field: ",
3857            stringify!(rte_spinlock_recursive_t),
3858            "::",
3859            stringify!(count)
3860        )
3861    );
3862}
3863pub mod rte_cpu_flag_t {
3864    pub type Type = ::std::os::raw::c_uint;
3865    pub const RTE_CPUFLAG_SSE3: Type = 0;
3866    pub const RTE_CPUFLAG_PCLMULQDQ: Type = 1;
3867    pub const RTE_CPUFLAG_DTES64: Type = 2;
3868    pub const RTE_CPUFLAG_MONITOR: Type = 3;
3869    pub const RTE_CPUFLAG_DS_CPL: Type = 4;
3870    pub const RTE_CPUFLAG_VMX: Type = 5;
3871    pub const RTE_CPUFLAG_SMX: Type = 6;
3872    pub const RTE_CPUFLAG_EIST: Type = 7;
3873    pub const RTE_CPUFLAG_TM2: Type = 8;
3874    pub const RTE_CPUFLAG_SSSE3: Type = 9;
3875    pub const RTE_CPUFLAG_CNXT_ID: Type = 10;
3876    pub const RTE_CPUFLAG_FMA: Type = 11;
3877    pub const RTE_CPUFLAG_CMPXCHG16B: Type = 12;
3878    pub const RTE_CPUFLAG_XTPR: Type = 13;
3879    pub const RTE_CPUFLAG_PDCM: Type = 14;
3880    pub const RTE_CPUFLAG_PCID: Type = 15;
3881    pub const RTE_CPUFLAG_DCA: Type = 16;
3882    pub const RTE_CPUFLAG_SSE4_1: Type = 17;
3883    pub const RTE_CPUFLAG_SSE4_2: Type = 18;
3884    pub const RTE_CPUFLAG_X2APIC: Type = 19;
3885    pub const RTE_CPUFLAG_MOVBE: Type = 20;
3886    pub const RTE_CPUFLAG_POPCNT: Type = 21;
3887    pub const RTE_CPUFLAG_TSC_DEADLINE: Type = 22;
3888    pub const RTE_CPUFLAG_AES: Type = 23;
3889    pub const RTE_CPUFLAG_XSAVE: Type = 24;
3890    pub const RTE_CPUFLAG_OSXSAVE: Type = 25;
3891    pub const RTE_CPUFLAG_AVX: Type = 26;
3892    pub const RTE_CPUFLAG_F16C: Type = 27;
3893    pub const RTE_CPUFLAG_RDRAND: Type = 28;
3894    pub const RTE_CPUFLAG_HYPERVISOR: Type = 29;
3895    pub const RTE_CPUFLAG_FPU: Type = 30;
3896    pub const RTE_CPUFLAG_VME: Type = 31;
3897    pub const RTE_CPUFLAG_DE: Type = 32;
3898    pub const RTE_CPUFLAG_PSE: Type = 33;
3899    pub const RTE_CPUFLAG_TSC: Type = 34;
3900    pub const RTE_CPUFLAG_MSR: Type = 35;
3901    pub const RTE_CPUFLAG_PAE: Type = 36;
3902    pub const RTE_CPUFLAG_MCE: Type = 37;
3903    pub const RTE_CPUFLAG_CX8: Type = 38;
3904    pub const RTE_CPUFLAG_APIC: Type = 39;
3905    pub const RTE_CPUFLAG_SEP: Type = 40;
3906    pub const RTE_CPUFLAG_MTRR: Type = 41;
3907    pub const RTE_CPUFLAG_PGE: Type = 42;
3908    pub const RTE_CPUFLAG_MCA: Type = 43;
3909    pub const RTE_CPUFLAG_CMOV: Type = 44;
3910    pub const RTE_CPUFLAG_PAT: Type = 45;
3911    pub const RTE_CPUFLAG_PSE36: Type = 46;
3912    pub const RTE_CPUFLAG_PSN: Type = 47;
3913    pub const RTE_CPUFLAG_CLFSH: Type = 48;
3914    pub const RTE_CPUFLAG_DS: Type = 49;
3915    pub const RTE_CPUFLAG_ACPI: Type = 50;
3916    pub const RTE_CPUFLAG_MMX: Type = 51;
3917    pub const RTE_CPUFLAG_FXSR: Type = 52;
3918    pub const RTE_CPUFLAG_SSE: Type = 53;
3919    pub const RTE_CPUFLAG_SSE2: Type = 54;
3920    pub const RTE_CPUFLAG_SS: Type = 55;
3921    pub const RTE_CPUFLAG_HTT: Type = 56;
3922    pub const RTE_CPUFLAG_TM: Type = 57;
3923    pub const RTE_CPUFLAG_PBE: Type = 58;
3924    pub const RTE_CPUFLAG_DIGTEMP: Type = 59;
3925    pub const RTE_CPUFLAG_TRBOBST: Type = 60;
3926    pub const RTE_CPUFLAG_ARAT: Type = 61;
3927    pub const RTE_CPUFLAG_PLN: Type = 62;
3928    pub const RTE_CPUFLAG_ECMD: Type = 63;
3929    pub const RTE_CPUFLAG_PTM: Type = 64;
3930    pub const RTE_CPUFLAG_MPERF_APERF_MSR: Type = 65;
3931    pub const RTE_CPUFLAG_ACNT2: Type = 66;
3932    pub const RTE_CPUFLAG_ENERGY_EFF: Type = 67;
3933    pub const RTE_CPUFLAG_FSGSBASE: Type = 68;
3934    pub const RTE_CPUFLAG_BMI1: Type = 69;
3935    pub const RTE_CPUFLAG_HLE: Type = 70;
3936    pub const RTE_CPUFLAG_AVX2: Type = 71;
3937    pub const RTE_CPUFLAG_SMEP: Type = 72;
3938    pub const RTE_CPUFLAG_BMI2: Type = 73;
3939    pub const RTE_CPUFLAG_ERMS: Type = 74;
3940    pub const RTE_CPUFLAG_INVPCID: Type = 75;
3941    pub const RTE_CPUFLAG_RTM: Type = 76;
3942    pub const RTE_CPUFLAG_AVX512F: Type = 77;
3943    pub const RTE_CPUFLAG_RDSEED: Type = 78;
3944    pub const RTE_CPUFLAG_LAHF_SAHF: Type = 79;
3945    pub const RTE_CPUFLAG_LZCNT: Type = 80;
3946    pub const RTE_CPUFLAG_SYSCALL: Type = 81;
3947    pub const RTE_CPUFLAG_XD: Type = 82;
3948    pub const RTE_CPUFLAG_1GB_PG: Type = 83;
3949    pub const RTE_CPUFLAG_RDTSCP: Type = 84;
3950    pub const RTE_CPUFLAG_EM64T: Type = 85;
3951    pub const RTE_CPUFLAG_INVTSC: Type = 86;
3952    pub const RTE_CPUFLAG_NUMFLAGS: Type = 87;
3953}
3954extern "C" {
3955    pub fn rte_cpu_get_flag_name(feature: rte_cpu_flag_t::Type) -> *const ::std::os::raw::c_char;
3956}
3957extern "C" {
3958    pub fn rte_cpu_get_flag_enabled(feature: rte_cpu_flag_t::Type) -> ::std::os::raw::c_int;
3959}
3960extern "C" {
3961    pub fn rte_cpu_is_supported() -> ::std::os::raw::c_int;
3962}
3963extern "C" {
3964    pub fn rte_cpu_getauxval(type_: ::std::os::raw::c_ulong) -> ::std::os::raw::c_ulong;
3965}
3966extern "C" {
3967    pub fn rte_cpu_strcmp_auxval(
3968        type_: ::std::os::raw::c_ulong,
3969        str_: *const ::std::os::raw::c_char,
3970    ) -> ::std::os::raw::c_int;
3971}
3972extern "C" {
3973    pub fn rte_dump_stack();
3974}
3975extern "C" {
3976    pub fn rte_dump_registers();
3977}
3978#[repr(C)]
3979#[derive(Debug, Default, Copy, Clone, PartialEq)]
3980pub struct rte_atomic16_t {
3981    pub cnt: i16,
3982}
3983#[test]
3984fn bindgen_test_layout_rte_atomic16_t() {
3985    assert_eq!(
3986        ::std::mem::size_of::<rte_atomic16_t>(),
3987        2usize,
3988        concat!("Size of: ", stringify!(rte_atomic16_t))
3989    );
3990    assert_eq!(
3991        ::std::mem::align_of::<rte_atomic16_t>(),
3992        2usize,
3993        concat!("Alignment of ", stringify!(rte_atomic16_t))
3994    );
3995    assert_eq!(
3996        unsafe { &(*(::std::ptr::null::<rte_atomic16_t>())).cnt as *const _ as usize },
3997        0usize,
3998        concat!(
3999            "Offset of field: ",
4000            stringify!(rte_atomic16_t),
4001            "::",
4002            stringify!(cnt)
4003        )
4004    );
4005}
4006#[repr(C)]
4007#[derive(Debug, Default, Copy, Clone, PartialEq)]
4008pub struct rte_atomic32_t {
4009    pub cnt: i32,
4010}
4011#[test]
4012fn bindgen_test_layout_rte_atomic32_t() {
4013    assert_eq!(
4014        ::std::mem::size_of::<rte_atomic32_t>(),
4015        4usize,
4016        concat!("Size of: ", stringify!(rte_atomic32_t))
4017    );
4018    assert_eq!(
4019        ::std::mem::align_of::<rte_atomic32_t>(),
4020        4usize,
4021        concat!("Alignment of ", stringify!(rte_atomic32_t))
4022    );
4023    assert_eq!(
4024        unsafe { &(*(::std::ptr::null::<rte_atomic32_t>())).cnt as *const _ as usize },
4025        0usize,
4026        concat!(
4027            "Offset of field: ",
4028            stringify!(rte_atomic32_t),
4029            "::",
4030            stringify!(cnt)
4031        )
4032    );
4033}
4034#[repr(C)]
4035#[derive(Debug, Default, Copy, Clone, PartialEq)]
4036pub struct rte_atomic64_t {
4037    pub cnt: i64,
4038}
4039#[test]
4040fn bindgen_test_layout_rte_atomic64_t() {
4041    assert_eq!(
4042        ::std::mem::size_of::<rte_atomic64_t>(),
4043        8usize,
4044        concat!("Size of: ", stringify!(rte_atomic64_t))
4045    );
4046    assert_eq!(
4047        ::std::mem::align_of::<rte_atomic64_t>(),
4048        8usize,
4049        concat!("Alignment of ", stringify!(rte_atomic64_t))
4050    );
4051    assert_eq!(
4052        unsafe { &(*(::std::ptr::null::<rte_atomic64_t>())).cnt as *const _ as usize },
4053        0usize,
4054        concat!(
4055            "Offset of field: ",
4056            stringify!(rte_atomic64_t),
4057            "::",
4058            stringify!(cnt)
4059        )
4060    );
4061}
4062#[repr(C)]
4063#[repr(align(16))]
4064#[derive(Copy, Clone)]
4065pub struct rte_int128_t {
4066    pub __bindgen_anon_1: rte_int128_t__bindgen_ty_1,
4067}
4068#[repr(C)]
4069#[repr(align(16))]
4070#[derive(Copy, Clone)]
4071pub union rte_int128_t__bindgen_ty_1 {
4072    pub val: [u64; 2usize],
4073    pub int128: i128,
4074    _bindgen_union_align: u128,
4075}
4076#[test]
4077fn bindgen_test_layout_rte_int128_t__bindgen_ty_1() {
4078    assert_eq!(
4079        ::std::mem::size_of::<rte_int128_t__bindgen_ty_1>(),
4080        16usize,
4081        concat!("Size of: ", stringify!(rte_int128_t__bindgen_ty_1))
4082    );
4083    assert_eq!(
4084        ::std::mem::align_of::<rte_int128_t__bindgen_ty_1>(),
4085        16usize,
4086        concat!("Alignment of ", stringify!(rte_int128_t__bindgen_ty_1))
4087    );
4088    assert_eq!(
4089        unsafe { &(*(::std::ptr::null::<rte_int128_t__bindgen_ty_1>())).val as *const _ as usize },
4090        0usize,
4091        concat!(
4092            "Offset of field: ",
4093            stringify!(rte_int128_t__bindgen_ty_1),
4094            "::",
4095            stringify!(val)
4096        )
4097    );
4098    assert_eq!(
4099        unsafe {
4100            &(*(::std::ptr::null::<rte_int128_t__bindgen_ty_1>())).int128 as *const _ as usize
4101        },
4102        0usize,
4103        concat!(
4104            "Offset of field: ",
4105            stringify!(rte_int128_t__bindgen_ty_1),
4106            "::",
4107            stringify!(int128)
4108        )
4109    );
4110}
4111impl Default for rte_int128_t__bindgen_ty_1 {
4112    fn default() -> Self {
4113        unsafe { ::std::mem::zeroed() }
4114    }
4115}
4116#[test]
4117fn bindgen_test_layout_rte_int128_t() {
4118    assert_eq!(
4119        ::std::mem::size_of::<rte_int128_t>(),
4120        16usize,
4121        concat!("Size of: ", stringify!(rte_int128_t))
4122    );
4123    assert_eq!(
4124        ::std::mem::align_of::<rte_int128_t>(),
4125        16usize,
4126        concat!("Alignment of ", stringify!(rte_int128_t))
4127    );
4128}
4129impl Default for rte_int128_t {
4130    fn default() -> Self {
4131        unsafe { ::std::mem::zeroed() }
4132    }
4133}
4134extern "C" {
4135    pub fn rte_get_tsc_hz() -> u64;
4136}
4137extern "C" {
4138    pub static mut rte_delay_us:
4139        ::std::option::Option<unsafe extern "C" fn(us: ::std::os::raw::c_uint)>;
4140}
4141extern "C" {
4142    pub fn rte_delay_us_block(us: ::std::os::raw::c_uint);
4143}
4144extern "C" {
4145    pub fn rte_delay_us_sleep(us: ::std::os::raw::c_uint);
4146}
4147extern "C" {
4148    pub fn rte_delay_us_callback_register(
4149        userfunc: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_uint)>,
4150    );
4151}
4152extern "C" {
4153    pub static mut rte_rtm_supported: u8;
4154}
4155#[repr(C)]
4156#[derive(Debug, Default, Copy, Clone, PartialEq)]
4157pub struct rte_rwlock_t {
4158    pub cnt: i32,
4159}
4160#[test]
4161fn bindgen_test_layout_rte_rwlock_t() {
4162    assert_eq!(
4163        ::std::mem::size_of::<rte_rwlock_t>(),
4164        4usize,
4165        concat!("Size of: ", stringify!(rte_rwlock_t))
4166    );
4167    assert_eq!(
4168        ::std::mem::align_of::<rte_rwlock_t>(),
4169        4usize,
4170        concat!("Alignment of ", stringify!(rte_rwlock_t))
4171    );
4172    assert_eq!(
4173        unsafe { &(*(::std::ptr::null::<rte_rwlock_t>())).cnt as *const _ as usize },
4174        0usize,
4175        concat!(
4176            "Offset of field: ",
4177            stringify!(rte_rwlock_t),
4178            "::",
4179            stringify!(cnt)
4180        )
4181    );
4182}
4183#[repr(C)]
4184#[derive(Copy, Clone)]
4185pub struct rte_fbarray {
4186    pub name: [::std::os::raw::c_char; 64usize],
4187    pub count: ::std::os::raw::c_uint,
4188    pub len: ::std::os::raw::c_uint,
4189    pub elt_sz: ::std::os::raw::c_uint,
4190    pub data: *mut ::std::os::raw::c_void,
4191    pub rwlock: rte_rwlock_t,
4192}
4193#[test]
4194fn bindgen_test_layout_rte_fbarray() {
4195    assert_eq!(
4196        ::std::mem::size_of::<rte_fbarray>(),
4197        96usize,
4198        concat!("Size of: ", stringify!(rte_fbarray))
4199    );
4200    assert_eq!(
4201        ::std::mem::align_of::<rte_fbarray>(),
4202        8usize,
4203        concat!("Alignment of ", stringify!(rte_fbarray))
4204    );
4205    assert_eq!(
4206        unsafe { &(*(::std::ptr::null::<rte_fbarray>())).name as *const _ as usize },
4207        0usize,
4208        concat!(
4209            "Offset of field: ",
4210            stringify!(rte_fbarray),
4211            "::",
4212            stringify!(name)
4213        )
4214    );
4215    assert_eq!(
4216        unsafe { &(*(::std::ptr::null::<rte_fbarray>())).count as *const _ as usize },
4217        64usize,
4218        concat!(
4219            "Offset of field: ",
4220            stringify!(rte_fbarray),
4221            "::",
4222            stringify!(count)
4223        )
4224    );
4225    assert_eq!(
4226        unsafe { &(*(::std::ptr::null::<rte_fbarray>())).len as *const _ as usize },
4227        68usize,
4228        concat!(
4229            "Offset of field: ",
4230            stringify!(rte_fbarray),
4231            "::",
4232            stringify!(len)
4233        )
4234    );
4235    assert_eq!(
4236        unsafe { &(*(::std::ptr::null::<rte_fbarray>())).elt_sz as *const _ as usize },
4237        72usize,
4238        concat!(
4239            "Offset of field: ",
4240            stringify!(rte_fbarray),
4241            "::",
4242            stringify!(elt_sz)
4243        )
4244    );
4245    assert_eq!(
4246        unsafe { &(*(::std::ptr::null::<rte_fbarray>())).data as *const _ as usize },
4247        80usize,
4248        concat!(
4249            "Offset of field: ",
4250            stringify!(rte_fbarray),
4251            "::",
4252            stringify!(data)
4253        )
4254    );
4255    assert_eq!(
4256        unsafe { &(*(::std::ptr::null::<rte_fbarray>())).rwlock as *const _ as usize },
4257        88usize,
4258        concat!(
4259            "Offset of field: ",
4260            stringify!(rte_fbarray),
4261            "::",
4262            stringify!(rwlock)
4263        )
4264    );
4265}
4266impl Default for rte_fbarray {
4267    fn default() -> Self {
4268        unsafe { ::std::mem::zeroed() }
4269    }
4270}
4271extern "C" {
4272    pub fn rte_fbarray_init(
4273        arr: *mut rte_fbarray,
4274        name: *const ::std::os::raw::c_char,
4275        len: ::std::os::raw::c_uint,
4276        elt_sz: ::std::os::raw::c_uint,
4277    ) -> ::std::os::raw::c_int;
4278}
4279extern "C" {
4280    pub fn rte_fbarray_attach(arr: *mut rte_fbarray) -> ::std::os::raw::c_int;
4281}
4282extern "C" {
4283    pub fn rte_fbarray_destroy(arr: *mut rte_fbarray) -> ::std::os::raw::c_int;
4284}
4285extern "C" {
4286    pub fn rte_fbarray_detach(arr: *mut rte_fbarray) -> ::std::os::raw::c_int;
4287}
4288extern "C" {
4289    pub fn rte_fbarray_get(
4290        arr: *const rte_fbarray,
4291        idx: ::std::os::raw::c_uint,
4292    ) -> *mut ::std::os::raw::c_void;
4293}
4294extern "C" {
4295    pub fn rte_fbarray_find_idx(
4296        arr: *const rte_fbarray,
4297        elt: *const ::std::os::raw::c_void,
4298    ) -> ::std::os::raw::c_int;
4299}
4300extern "C" {
4301    pub fn rte_fbarray_set_used(
4302        arr: *mut rte_fbarray,
4303        idx: ::std::os::raw::c_uint,
4304    ) -> ::std::os::raw::c_int;
4305}
4306extern "C" {
4307    pub fn rte_fbarray_set_free(
4308        arr: *mut rte_fbarray,
4309        idx: ::std::os::raw::c_uint,
4310    ) -> ::std::os::raw::c_int;
4311}
4312extern "C" {
4313    pub fn rte_fbarray_is_used(
4314        arr: *mut rte_fbarray,
4315        idx: ::std::os::raw::c_uint,
4316    ) -> ::std::os::raw::c_int;
4317}
4318extern "C" {
4319    pub fn rte_fbarray_find_next_free(
4320        arr: *mut rte_fbarray,
4321        start: ::std::os::raw::c_uint,
4322    ) -> ::std::os::raw::c_int;
4323}
4324extern "C" {
4325    pub fn rte_fbarray_find_next_used(
4326        arr: *mut rte_fbarray,
4327        start: ::std::os::raw::c_uint,
4328    ) -> ::std::os::raw::c_int;
4329}
4330extern "C" {
4331    pub fn rte_fbarray_find_next_n_free(
4332        arr: *mut rte_fbarray,
4333        start: ::std::os::raw::c_uint,
4334        n: ::std::os::raw::c_uint,
4335    ) -> ::std::os::raw::c_int;
4336}
4337extern "C" {
4338    pub fn rte_fbarray_find_next_n_used(
4339        arr: *mut rte_fbarray,
4340        start: ::std::os::raw::c_uint,
4341        n: ::std::os::raw::c_uint,
4342    ) -> ::std::os::raw::c_int;
4343}
4344extern "C" {
4345    pub fn rte_fbarray_find_contig_free(
4346        arr: *mut rte_fbarray,
4347        start: ::std::os::raw::c_uint,
4348    ) -> ::std::os::raw::c_int;
4349}
4350extern "C" {
4351    pub fn rte_fbarray_find_contig_used(
4352        arr: *mut rte_fbarray,
4353        start: ::std::os::raw::c_uint,
4354    ) -> ::std::os::raw::c_int;
4355}
4356extern "C" {
4357    pub fn rte_fbarray_find_prev_free(
4358        arr: *mut rte_fbarray,
4359        start: ::std::os::raw::c_uint,
4360    ) -> ::std::os::raw::c_int;
4361}
4362extern "C" {
4363    pub fn rte_fbarray_find_prev_used(
4364        arr: *mut rte_fbarray,
4365        start: ::std::os::raw::c_uint,
4366    ) -> ::std::os::raw::c_int;
4367}
4368extern "C" {
4369    pub fn rte_fbarray_find_prev_n_free(
4370        arr: *mut rte_fbarray,
4371        start: ::std::os::raw::c_uint,
4372        n: ::std::os::raw::c_uint,
4373    ) -> ::std::os::raw::c_int;
4374}
4375extern "C" {
4376    pub fn rte_fbarray_find_prev_n_used(
4377        arr: *mut rte_fbarray,
4378        start: ::std::os::raw::c_uint,
4379        n: ::std::os::raw::c_uint,
4380    ) -> ::std::os::raw::c_int;
4381}
4382extern "C" {
4383    pub fn rte_fbarray_find_rev_contig_free(
4384        arr: *mut rte_fbarray,
4385        start: ::std::os::raw::c_uint,
4386    ) -> ::std::os::raw::c_int;
4387}
4388extern "C" {
4389    pub fn rte_fbarray_find_rev_contig_used(
4390        arr: *mut rte_fbarray,
4391        start: ::std::os::raw::c_uint,
4392    ) -> ::std::os::raw::c_int;
4393}
4394extern "C" {
4395    pub fn rte_fbarray_find_biggest_free(
4396        arr: *mut rte_fbarray,
4397        start: ::std::os::raw::c_uint,
4398    ) -> ::std::os::raw::c_int;
4399}
4400extern "C" {
4401    pub fn rte_fbarray_find_biggest_used(
4402        arr: *mut rte_fbarray,
4403        start: ::std::os::raw::c_uint,
4404    ) -> ::std::os::raw::c_int;
4405}
4406extern "C" {
4407    pub fn rte_fbarray_find_rev_biggest_free(
4408        arr: *mut rte_fbarray,
4409        start: ::std::os::raw::c_uint,
4410    ) -> ::std::os::raw::c_int;
4411}
4412extern "C" {
4413    pub fn rte_fbarray_find_rev_biggest_used(
4414        arr: *mut rte_fbarray,
4415        start: ::std::os::raw::c_uint,
4416    ) -> ::std::os::raw::c_int;
4417}
4418extern "C" {
4419    pub fn rte_fbarray_dump_metadata(arr: *mut rte_fbarray, f: *mut FILE);
4420}
4421pub mod rte_page_sizes {
4422    pub type Type = ::std::os::raw::c_ulong;
4423    pub const RTE_PGSIZE_4K: Type = 4096;
4424    pub const RTE_PGSIZE_64K: Type = 65536;
4425    pub const RTE_PGSIZE_256K: Type = 262144;
4426    pub const RTE_PGSIZE_2M: Type = 2097152;
4427    pub const RTE_PGSIZE_16M: Type = 16777216;
4428    pub const RTE_PGSIZE_256M: Type = 268435456;
4429    pub const RTE_PGSIZE_512M: Type = 536870912;
4430    pub const RTE_PGSIZE_1G: Type = 1073741824;
4431    pub const RTE_PGSIZE_4G: Type = 4294967296;
4432    pub const RTE_PGSIZE_16G: Type = 17179869184;
4433}
4434#[repr(C, packed)]
4435#[derive(Copy, Clone)]
4436pub struct rte_memseg {
4437    pub __bindgen_anon_1: rte_memseg__bindgen_ty_1,
4438    pub __bindgen_anon_2: rte_memseg__bindgen_ty_2,
4439    pub len: size_t,
4440    pub hugepage_sz: u64,
4441    pub socket_id: i32,
4442    pub nchannel: u32,
4443    pub nrank: u32,
4444    pub flags: u32,
4445}
4446#[repr(C)]
4447#[derive(Copy, Clone)]
4448pub union rte_memseg__bindgen_ty_1 {
4449    pub phys_addr: phys_addr_t,
4450    pub iova: rte_iova_t,
4451    _bindgen_union_align: u64,
4452}
4453#[test]
4454fn bindgen_test_layout_rte_memseg__bindgen_ty_1() {
4455    assert_eq!(
4456        ::std::mem::size_of::<rte_memseg__bindgen_ty_1>(),
4457        8usize,
4458        concat!("Size of: ", stringify!(rte_memseg__bindgen_ty_1))
4459    );
4460    assert_eq!(
4461        ::std::mem::align_of::<rte_memseg__bindgen_ty_1>(),
4462        8usize,
4463        concat!("Alignment of ", stringify!(rte_memseg__bindgen_ty_1))
4464    );
4465    assert_eq!(
4466        unsafe {
4467            &(*(::std::ptr::null::<rte_memseg__bindgen_ty_1>())).phys_addr as *const _ as usize
4468        },
4469        0usize,
4470        concat!(
4471            "Offset of field: ",
4472            stringify!(rte_memseg__bindgen_ty_1),
4473            "::",
4474            stringify!(phys_addr)
4475        )
4476    );
4477    assert_eq!(
4478        unsafe { &(*(::std::ptr::null::<rte_memseg__bindgen_ty_1>())).iova as *const _ as usize },
4479        0usize,
4480        concat!(
4481            "Offset of field: ",
4482            stringify!(rte_memseg__bindgen_ty_1),
4483            "::",
4484            stringify!(iova)
4485        )
4486    );
4487}
4488impl Default for rte_memseg__bindgen_ty_1 {
4489    fn default() -> Self {
4490        unsafe { ::std::mem::zeroed() }
4491    }
4492}
4493#[repr(C)]
4494#[derive(Copy, Clone)]
4495pub union rte_memseg__bindgen_ty_2 {
4496    pub addr: *mut ::std::os::raw::c_void,
4497    pub addr_64: u64,
4498    _bindgen_union_align: u64,
4499}
4500#[test]
4501fn bindgen_test_layout_rte_memseg__bindgen_ty_2() {
4502    assert_eq!(
4503        ::std::mem::size_of::<rte_memseg__bindgen_ty_2>(),
4504        8usize,
4505        concat!("Size of: ", stringify!(rte_memseg__bindgen_ty_2))
4506    );
4507    assert_eq!(
4508        ::std::mem::align_of::<rte_memseg__bindgen_ty_2>(),
4509        8usize,
4510        concat!("Alignment of ", stringify!(rte_memseg__bindgen_ty_2))
4511    );
4512    assert_eq!(
4513        unsafe { &(*(::std::ptr::null::<rte_memseg__bindgen_ty_2>())).addr as *const _ as usize },
4514        0usize,
4515        concat!(
4516            "Offset of field: ",
4517            stringify!(rte_memseg__bindgen_ty_2),
4518            "::",
4519            stringify!(addr)
4520        )
4521    );
4522    assert_eq!(
4523        unsafe {
4524            &(*(::std::ptr::null::<rte_memseg__bindgen_ty_2>())).addr_64 as *const _ as usize
4525        },
4526        0usize,
4527        concat!(
4528            "Offset of field: ",
4529            stringify!(rte_memseg__bindgen_ty_2),
4530            "::",
4531            stringify!(addr_64)
4532        )
4533    );
4534}
4535impl Default for rte_memseg__bindgen_ty_2 {
4536    fn default() -> Self {
4537        unsafe { ::std::mem::zeroed() }
4538    }
4539}
4540#[test]
4541fn bindgen_test_layout_rte_memseg() {
4542    assert_eq!(
4543        ::std::mem::size_of::<rte_memseg>(),
4544        48usize,
4545        concat!("Size of: ", stringify!(rte_memseg))
4546    );
4547    assert_eq!(
4548        ::std::mem::align_of::<rte_memseg>(),
4549        1usize,
4550        concat!("Alignment of ", stringify!(rte_memseg))
4551    );
4552    assert_eq!(
4553        unsafe { &(*(::std::ptr::null::<rte_memseg>())).len as *const _ as usize },
4554        16usize,
4555        concat!(
4556            "Offset of field: ",
4557            stringify!(rte_memseg),
4558            "::",
4559            stringify!(len)
4560        )
4561    );
4562    assert_eq!(
4563        unsafe { &(*(::std::ptr::null::<rte_memseg>())).hugepage_sz as *const _ as usize },
4564        24usize,
4565        concat!(
4566            "Offset of field: ",
4567            stringify!(rte_memseg),
4568            "::",
4569            stringify!(hugepage_sz)
4570        )
4571    );
4572    assert_eq!(
4573        unsafe { &(*(::std::ptr::null::<rte_memseg>())).socket_id as *const _ as usize },
4574        32usize,
4575        concat!(
4576            "Offset of field: ",
4577            stringify!(rte_memseg),
4578            "::",
4579            stringify!(socket_id)
4580        )
4581    );
4582    assert_eq!(
4583        unsafe { &(*(::std::ptr::null::<rte_memseg>())).nchannel as *const _ as usize },
4584        36usize,
4585        concat!(
4586            "Offset of field: ",
4587            stringify!(rte_memseg),
4588            "::",
4589            stringify!(nchannel)
4590        )
4591    );
4592    assert_eq!(
4593        unsafe { &(*(::std::ptr::null::<rte_memseg>())).nrank as *const _ as usize },
4594        40usize,
4595        concat!(
4596            "Offset of field: ",
4597            stringify!(rte_memseg),
4598            "::",
4599            stringify!(nrank)
4600        )
4601    );
4602    assert_eq!(
4603        unsafe { &(*(::std::ptr::null::<rte_memseg>())).flags as *const _ as usize },
4604        44usize,
4605        concat!(
4606            "Offset of field: ",
4607            stringify!(rte_memseg),
4608            "::",
4609            stringify!(flags)
4610        )
4611    );
4612}
4613impl Default for rte_memseg {
4614    fn default() -> Self {
4615        unsafe { ::std::mem::zeroed() }
4616    }
4617}
4618#[repr(C)]
4619#[derive(Copy, Clone)]
4620pub struct rte_memseg_list {
4621    pub __bindgen_anon_1: rte_memseg_list__bindgen_ty_1,
4622    pub page_sz: u64,
4623    pub socket_id: ::std::os::raw::c_int,
4624    pub version: u32,
4625    pub len: size_t,
4626    pub external: ::std::os::raw::c_uint,
4627    pub heap: ::std::os::raw::c_uint,
4628    pub memseg_arr: rte_fbarray,
4629}
4630#[repr(C)]
4631#[derive(Copy, Clone)]
4632pub union rte_memseg_list__bindgen_ty_1 {
4633    pub base_va: *mut ::std::os::raw::c_void,
4634    pub addr_64: u64,
4635    _bindgen_union_align: u64,
4636}
4637#[test]
4638fn bindgen_test_layout_rte_memseg_list__bindgen_ty_1() {
4639    assert_eq!(
4640        ::std::mem::size_of::<rte_memseg_list__bindgen_ty_1>(),
4641        8usize,
4642        concat!("Size of: ", stringify!(rte_memseg_list__bindgen_ty_1))
4643    );
4644    assert_eq!(
4645        ::std::mem::align_of::<rte_memseg_list__bindgen_ty_1>(),
4646        8usize,
4647        concat!("Alignment of ", stringify!(rte_memseg_list__bindgen_ty_1))
4648    );
4649    assert_eq!(
4650        unsafe {
4651            &(*(::std::ptr::null::<rte_memseg_list__bindgen_ty_1>())).base_va as *const _ as usize
4652        },
4653        0usize,
4654        concat!(
4655            "Offset of field: ",
4656            stringify!(rte_memseg_list__bindgen_ty_1),
4657            "::",
4658            stringify!(base_va)
4659        )
4660    );
4661    assert_eq!(
4662        unsafe {
4663            &(*(::std::ptr::null::<rte_memseg_list__bindgen_ty_1>())).addr_64 as *const _ as usize
4664        },
4665        0usize,
4666        concat!(
4667            "Offset of field: ",
4668            stringify!(rte_memseg_list__bindgen_ty_1),
4669            "::",
4670            stringify!(addr_64)
4671        )
4672    );
4673}
4674impl Default for rte_memseg_list__bindgen_ty_1 {
4675    fn default() -> Self {
4676        unsafe { ::std::mem::zeroed() }
4677    }
4678}
4679#[test]
4680fn bindgen_test_layout_rte_memseg_list() {
4681    assert_eq!(
4682        ::std::mem::size_of::<rte_memseg_list>(),
4683        136usize,
4684        concat!("Size of: ", stringify!(rte_memseg_list))
4685    );
4686    assert_eq!(
4687        ::std::mem::align_of::<rte_memseg_list>(),
4688        8usize,
4689        concat!("Alignment of ", stringify!(rte_memseg_list))
4690    );
4691    assert_eq!(
4692        unsafe { &(*(::std::ptr::null::<rte_memseg_list>())).page_sz as *const _ as usize },
4693        8usize,
4694        concat!(
4695            "Offset of field: ",
4696            stringify!(rte_memseg_list),
4697            "::",
4698            stringify!(page_sz)
4699        )
4700    );
4701    assert_eq!(
4702        unsafe { &(*(::std::ptr::null::<rte_memseg_list>())).socket_id as *const _ as usize },
4703        16usize,
4704        concat!(
4705            "Offset of field: ",
4706            stringify!(rte_memseg_list),
4707            "::",
4708            stringify!(socket_id)
4709        )
4710    );
4711    assert_eq!(
4712        unsafe { &(*(::std::ptr::null::<rte_memseg_list>())).version as *const _ as usize },
4713        20usize,
4714        concat!(
4715            "Offset of field: ",
4716            stringify!(rte_memseg_list),
4717            "::",
4718            stringify!(version)
4719        )
4720    );
4721    assert_eq!(
4722        unsafe { &(*(::std::ptr::null::<rte_memseg_list>())).len as *const _ as usize },
4723        24usize,
4724        concat!(
4725            "Offset of field: ",
4726            stringify!(rte_memseg_list),
4727            "::",
4728            stringify!(len)
4729        )
4730    );
4731    assert_eq!(
4732        unsafe { &(*(::std::ptr::null::<rte_memseg_list>())).external as *const _ as usize },
4733        32usize,
4734        concat!(
4735            "Offset of field: ",
4736            stringify!(rte_memseg_list),
4737            "::",
4738            stringify!(external)
4739        )
4740    );
4741    assert_eq!(
4742        unsafe { &(*(::std::ptr::null::<rte_memseg_list>())).heap as *const _ as usize },
4743        36usize,
4744        concat!(
4745            "Offset of field: ",
4746            stringify!(rte_memseg_list),
4747            "::",
4748            stringify!(heap)
4749        )
4750    );
4751    assert_eq!(
4752        unsafe { &(*(::std::ptr::null::<rte_memseg_list>())).memseg_arr as *const _ as usize },
4753        40usize,
4754        concat!(
4755            "Offset of field: ",
4756            stringify!(rte_memseg_list),
4757            "::",
4758            stringify!(memseg_arr)
4759        )
4760    );
4761}
4762impl Default for rte_memseg_list {
4763    fn default() -> Self {
4764        unsafe { ::std::mem::zeroed() }
4765    }
4766}
4767extern "C" {
4768    pub fn rte_mem_lock_page(virt: *const ::std::os::raw::c_void) -> ::std::os::raw::c_int;
4769}
4770extern "C" {
4771    pub fn rte_mem_virt2phy(virt: *const ::std::os::raw::c_void) -> phys_addr_t;
4772}
4773extern "C" {
4774    pub fn rte_mem_virt2iova(virt: *const ::std::os::raw::c_void) -> rte_iova_t;
4775}
4776extern "C" {
4777    pub fn rte_mem_iova2virt(iova: rte_iova_t) -> *mut ::std::os::raw::c_void;
4778}
4779extern "C" {
4780    pub fn rte_mem_virt2memseg(
4781        virt: *const ::std::os::raw::c_void,
4782        msl: *const rte_memseg_list,
4783    ) -> *mut rte_memseg;
4784}
4785extern "C" {
4786    pub fn rte_mem_virt2memseg_list(virt: *const ::std::os::raw::c_void) -> *mut rte_memseg_list;
4787}
4788pub type rte_memseg_walk_t = ::std::option::Option<
4789    unsafe extern "C" fn(
4790        msl: *const rte_memseg_list,
4791        ms: *const rte_memseg,
4792        arg: *mut ::std::os::raw::c_void,
4793    ) -> ::std::os::raw::c_int,
4794>;
4795pub type rte_memseg_contig_walk_t = ::std::option::Option<
4796    unsafe extern "C" fn(
4797        msl: *const rte_memseg_list,
4798        ms: *const rte_memseg,
4799        len: size_t,
4800        arg: *mut ::std::os::raw::c_void,
4801    ) -> ::std::os::raw::c_int,
4802>;
4803pub type rte_memseg_list_walk_t = ::std::option::Option<
4804    unsafe extern "C" fn(
4805        msl: *const rte_memseg_list,
4806        arg: *mut ::std::os::raw::c_void,
4807    ) -> ::std::os::raw::c_int,
4808>;
4809extern "C" {
4810    pub fn rte_memseg_walk(
4811        func: rte_memseg_walk_t,
4812        arg: *mut ::std::os::raw::c_void,
4813    ) -> ::std::os::raw::c_int;
4814}
4815extern "C" {
4816    pub fn rte_memseg_contig_walk(
4817        func: rte_memseg_contig_walk_t,
4818        arg: *mut ::std::os::raw::c_void,
4819    ) -> ::std::os::raw::c_int;
4820}
4821extern "C" {
4822    pub fn rte_memseg_list_walk(
4823        func: rte_memseg_list_walk_t,
4824        arg: *mut ::std::os::raw::c_void,
4825    ) -> ::std::os::raw::c_int;
4826}
4827extern "C" {
4828    pub fn rte_memseg_walk_thread_unsafe(
4829        func: rte_memseg_walk_t,
4830        arg: *mut ::std::os::raw::c_void,
4831    ) -> ::std::os::raw::c_int;
4832}
4833extern "C" {
4834    pub fn rte_memseg_contig_walk_thread_unsafe(
4835        func: rte_memseg_contig_walk_t,
4836        arg: *mut ::std::os::raw::c_void,
4837    ) -> ::std::os::raw::c_int;
4838}
4839extern "C" {
4840    pub fn rte_memseg_list_walk_thread_unsafe(
4841        func: rte_memseg_list_walk_t,
4842        arg: *mut ::std::os::raw::c_void,
4843    ) -> ::std::os::raw::c_int;
4844}
4845extern "C" {
4846    pub fn rte_memseg_get_fd(ms: *const rte_memseg) -> ::std::os::raw::c_int;
4847}
4848extern "C" {
4849    pub fn rte_memseg_get_fd_thread_unsafe(ms: *const rte_memseg) -> ::std::os::raw::c_int;
4850}
4851extern "C" {
4852    pub fn rte_memseg_get_fd_offset(
4853        ms: *const rte_memseg,
4854        offset: *mut size_t,
4855    ) -> ::std::os::raw::c_int;
4856}
4857extern "C" {
4858    pub fn rte_memseg_get_fd_offset_thread_unsafe(
4859        ms: *const rte_memseg,
4860        offset: *mut size_t,
4861    ) -> ::std::os::raw::c_int;
4862}
4863extern "C" {
4864    pub fn rte_extmem_register(
4865        va_addr: *mut ::std::os::raw::c_void,
4866        len: size_t,
4867        iova_addrs: *mut rte_iova_t,
4868        n_pages: ::std::os::raw::c_uint,
4869        page_sz: size_t,
4870    ) -> ::std::os::raw::c_int;
4871}
4872extern "C" {
4873    pub fn rte_extmem_unregister(
4874        va_addr: *mut ::std::os::raw::c_void,
4875        len: size_t,
4876    ) -> ::std::os::raw::c_int;
4877}
4878extern "C" {
4879    pub fn rte_extmem_attach(
4880        va_addr: *mut ::std::os::raw::c_void,
4881        len: size_t,
4882    ) -> ::std::os::raw::c_int;
4883}
4884extern "C" {
4885    pub fn rte_extmem_detach(
4886        va_addr: *mut ::std::os::raw::c_void,
4887        len: size_t,
4888    ) -> ::std::os::raw::c_int;
4889}
4890extern "C" {
4891    pub fn rte_dump_physmem_layout(f: *mut FILE);
4892}
4893extern "C" {
4894    pub fn rte_eal_get_physmem_size() -> u64;
4895}
4896extern "C" {
4897    pub fn rte_memory_get_nchannel() -> ::std::os::raw::c_uint;
4898}
4899extern "C" {
4900    pub fn rte_memory_get_nrank() -> ::std::os::raw::c_uint;
4901}
4902extern "C" {
4903    pub fn rte_mem_check_dma_mask(maskbits: u8) -> ::std::os::raw::c_int;
4904}
4905extern "C" {
4906    pub fn rte_mem_check_dma_mask_thread_unsafe(maskbits: u8) -> ::std::os::raw::c_int;
4907}
4908extern "C" {
4909    pub fn rte_mem_set_dma_mask(maskbits: u8);
4910}
4911extern "C" {
4912    pub fn rte_eal_using_phys_addrs() -> ::std::os::raw::c_int;
4913}
4914pub mod rte_mem_event {
4915    pub type Type = ::std::os::raw::c_uint;
4916    pub const RTE_MEM_EVENT_ALLOC: Type = 0;
4917    pub const RTE_MEM_EVENT_FREE: Type = 1;
4918}
4919pub type rte_mem_event_callback_t = ::std::option::Option<
4920    unsafe extern "C" fn(
4921        event_type: rte_mem_event::Type,
4922        addr: *const ::std::os::raw::c_void,
4923        len: size_t,
4924        arg: *mut ::std::os::raw::c_void,
4925    ),
4926>;
4927extern "C" {
4928    pub fn rte_mem_event_callback_register(
4929        name: *const ::std::os::raw::c_char,
4930        clb: rte_mem_event_callback_t,
4931        arg: *mut ::std::os::raw::c_void,
4932    ) -> ::std::os::raw::c_int;
4933}
4934extern "C" {
4935    pub fn rte_mem_event_callback_unregister(
4936        name: *const ::std::os::raw::c_char,
4937        arg: *mut ::std::os::raw::c_void,
4938    ) -> ::std::os::raw::c_int;
4939}
4940pub type rte_mem_alloc_validator_t = ::std::option::Option<
4941    unsafe extern "C" fn(
4942        socket_id: ::std::os::raw::c_int,
4943        cur_limit: size_t,
4944        new_len: size_t,
4945    ) -> ::std::os::raw::c_int,
4946>;
4947extern "C" {
4948    pub fn rte_mem_alloc_validator_register(
4949        name: *const ::std::os::raw::c_char,
4950        clb: rte_mem_alloc_validator_t,
4951        socket_id: ::std::os::raw::c_int,
4952        limit: size_t,
4953    ) -> ::std::os::raw::c_int;
4954}
4955extern "C" {
4956    pub fn rte_mem_alloc_validator_unregister(
4957        name: *const ::std::os::raw::c_char,
4958        socket_id: ::std::os::raw::c_int,
4959    ) -> ::std::os::raw::c_int;
4960}
4961#[repr(C, packed)]
4962#[derive(Copy, Clone)]
4963pub struct rte_memzone {
4964    pub name: [::std::os::raw::c_char; 32usize],
4965    pub __bindgen_anon_1: rte_memzone__bindgen_ty_1,
4966    pub __bindgen_anon_2: rte_memzone__bindgen_ty_2,
4967    pub len: size_t,
4968    pub hugepage_sz: u64,
4969    pub socket_id: i32,
4970    pub flags: u32,
4971}
4972#[repr(C)]
4973#[derive(Copy, Clone)]
4974pub union rte_memzone__bindgen_ty_1 {
4975    pub phys_addr: phys_addr_t,
4976    pub iova: rte_iova_t,
4977    _bindgen_union_align: u64,
4978}
4979#[test]
4980fn bindgen_test_layout_rte_memzone__bindgen_ty_1() {
4981    assert_eq!(
4982        ::std::mem::size_of::<rte_memzone__bindgen_ty_1>(),
4983        8usize,
4984        concat!("Size of: ", stringify!(rte_memzone__bindgen_ty_1))
4985    );
4986    assert_eq!(
4987        ::std::mem::align_of::<rte_memzone__bindgen_ty_1>(),
4988        8usize,
4989        concat!("Alignment of ", stringify!(rte_memzone__bindgen_ty_1))
4990    );
4991    assert_eq!(
4992        unsafe {
4993            &(*(::std::ptr::null::<rte_memzone__bindgen_ty_1>())).phys_addr as *const _ as usize
4994        },
4995        0usize,
4996        concat!(
4997            "Offset of field: ",
4998            stringify!(rte_memzone__bindgen_ty_1),
4999            "::",
5000            stringify!(phys_addr)
5001        )
5002    );
5003    assert_eq!(
5004        unsafe { &(*(::std::ptr::null::<rte_memzone__bindgen_ty_1>())).iova as *const _ as usize },
5005        0usize,
5006        concat!(
5007            "Offset of field: ",
5008            stringify!(rte_memzone__bindgen_ty_1),
5009            "::",
5010            stringify!(iova)
5011        )
5012    );
5013}
5014impl Default for rte_memzone__bindgen_ty_1 {
5015    fn default() -> Self {
5016        unsafe { ::std::mem::zeroed() }
5017    }
5018}
5019#[repr(C)]
5020#[derive(Copy, Clone)]
5021pub union rte_memzone__bindgen_ty_2 {
5022    pub addr: *mut ::std::os::raw::c_void,
5023    pub addr_64: u64,
5024    _bindgen_union_align: u64,
5025}
5026#[test]
5027fn bindgen_test_layout_rte_memzone__bindgen_ty_2() {
5028    assert_eq!(
5029        ::std::mem::size_of::<rte_memzone__bindgen_ty_2>(),
5030        8usize,
5031        concat!("Size of: ", stringify!(rte_memzone__bindgen_ty_2))
5032    );
5033    assert_eq!(
5034        ::std::mem::align_of::<rte_memzone__bindgen_ty_2>(),
5035        8usize,
5036        concat!("Alignment of ", stringify!(rte_memzone__bindgen_ty_2))
5037    );
5038    assert_eq!(
5039        unsafe { &(*(::std::ptr::null::<rte_memzone__bindgen_ty_2>())).addr as *const _ as usize },
5040        0usize,
5041        concat!(
5042            "Offset of field: ",
5043            stringify!(rte_memzone__bindgen_ty_2),
5044            "::",
5045            stringify!(addr)
5046        )
5047    );
5048    assert_eq!(
5049        unsafe {
5050            &(*(::std::ptr::null::<rte_memzone__bindgen_ty_2>())).addr_64 as *const _ as usize
5051        },
5052        0usize,
5053        concat!(
5054            "Offset of field: ",
5055            stringify!(rte_memzone__bindgen_ty_2),
5056            "::",
5057            stringify!(addr_64)
5058        )
5059    );
5060}
5061impl Default for rte_memzone__bindgen_ty_2 {
5062    fn default() -> Self {
5063        unsafe { ::std::mem::zeroed() }
5064    }
5065}
5066#[test]
5067fn bindgen_test_layout_rte_memzone() {
5068    assert_eq!(
5069        ::std::mem::size_of::<rte_memzone>(),
5070        72usize,
5071        concat!("Size of: ", stringify!(rte_memzone))
5072    );
5073    assert_eq!(
5074        ::std::mem::align_of::<rte_memzone>(),
5075        1usize,
5076        concat!("Alignment of ", stringify!(rte_memzone))
5077    );
5078    assert_eq!(
5079        unsafe { &(*(::std::ptr::null::<rte_memzone>())).name as *const _ as usize },
5080        0usize,
5081        concat!(
5082            "Offset of field: ",
5083            stringify!(rte_memzone),
5084            "::",
5085            stringify!(name)
5086        )
5087    );
5088    assert_eq!(
5089        unsafe { &(*(::std::ptr::null::<rte_memzone>())).len as *const _ as usize },
5090        48usize,
5091        concat!(
5092            "Offset of field: ",
5093            stringify!(rte_memzone),
5094            "::",
5095            stringify!(len)
5096        )
5097    );
5098    assert_eq!(
5099        unsafe { &(*(::std::ptr::null::<rte_memzone>())).hugepage_sz as *const _ as usize },
5100        56usize,
5101        concat!(
5102            "Offset of field: ",
5103            stringify!(rte_memzone),
5104            "::",
5105            stringify!(hugepage_sz)
5106        )
5107    );
5108    assert_eq!(
5109        unsafe { &(*(::std::ptr::null::<rte_memzone>())).socket_id as *const _ as usize },
5110        64usize,
5111        concat!(
5112            "Offset of field: ",
5113            stringify!(rte_memzone),
5114            "::",
5115            stringify!(socket_id)
5116        )
5117    );
5118    assert_eq!(
5119        unsafe { &(*(::std::ptr::null::<rte_memzone>())).flags as *const _ as usize },
5120        68usize,
5121        concat!(
5122            "Offset of field: ",
5123            stringify!(rte_memzone),
5124            "::",
5125            stringify!(flags)
5126        )
5127    );
5128}
5129impl Default for rte_memzone {
5130    fn default() -> Self {
5131        unsafe { ::std::mem::zeroed() }
5132    }
5133}
5134extern "C" {
5135    pub fn rte_memzone_reserve(
5136        name: *const ::std::os::raw::c_char,
5137        len: size_t,
5138        socket_id: ::std::os::raw::c_int,
5139        flags: ::std::os::raw::c_uint,
5140    ) -> *const rte_memzone;
5141}
5142extern "C" {
5143    pub fn rte_memzone_reserve_aligned(
5144        name: *const ::std::os::raw::c_char,
5145        len: size_t,
5146        socket_id: ::std::os::raw::c_int,
5147        flags: ::std::os::raw::c_uint,
5148        align: ::std::os::raw::c_uint,
5149    ) -> *const rte_memzone;
5150}
5151extern "C" {
5152    pub fn rte_memzone_reserve_bounded(
5153        name: *const ::std::os::raw::c_char,
5154        len: size_t,
5155        socket_id: ::std::os::raw::c_int,
5156        flags: ::std::os::raw::c_uint,
5157        align: ::std::os::raw::c_uint,
5158        bound: ::std::os::raw::c_uint,
5159    ) -> *const rte_memzone;
5160}
5161extern "C" {
5162    pub fn rte_memzone_free(mz: *const rte_memzone) -> ::std::os::raw::c_int;
5163}
5164extern "C" {
5165    pub fn rte_memzone_lookup(name: *const ::std::os::raw::c_char) -> *const rte_memzone;
5166}
5167extern "C" {
5168    pub fn rte_memzone_dump(f: *mut FILE);
5169}
5170extern "C" {
5171    pub fn rte_memzone_walk(
5172        func: ::std::option::Option<
5173            unsafe extern "C" fn(arg1: *const rte_memzone, arg: *mut ::std::os::raw::c_void),
5174        >,
5175        arg: *mut ::std::os::raw::c_void,
5176    );
5177}
5178pub mod rte_ring_queue_behavior {
5179    pub type Type = ::std::os::raw::c_uint;
5180    pub const RTE_RING_QUEUE_FIXED: Type = 0;
5181    pub const RTE_RING_QUEUE_VARIABLE: Type = 1;
5182}
5183#[repr(C)]
5184#[derive(Debug, Default, Copy, Clone, PartialEq)]
5185pub struct rte_ring_headtail {
5186    pub head: u32,
5187    pub tail: u32,
5188    pub single: u32,
5189}
5190#[test]
5191fn bindgen_test_layout_rte_ring_headtail() {
5192    assert_eq!(
5193        ::std::mem::size_of::<rte_ring_headtail>(),
5194        12usize,
5195        concat!("Size of: ", stringify!(rte_ring_headtail))
5196    );
5197    assert_eq!(
5198        ::std::mem::align_of::<rte_ring_headtail>(),
5199        4usize,
5200        concat!("Alignment of ", stringify!(rte_ring_headtail))
5201    );
5202    assert_eq!(
5203        unsafe { &(*(::std::ptr::null::<rte_ring_headtail>())).head as *const _ as usize },
5204        0usize,
5205        concat!(
5206            "Offset of field: ",
5207            stringify!(rte_ring_headtail),
5208            "::",
5209            stringify!(head)
5210        )
5211    );
5212    assert_eq!(
5213        unsafe { &(*(::std::ptr::null::<rte_ring_headtail>())).tail as *const _ as usize },
5214        4usize,
5215        concat!(
5216            "Offset of field: ",
5217            stringify!(rte_ring_headtail),
5218            "::",
5219            stringify!(tail)
5220        )
5221    );
5222    assert_eq!(
5223        unsafe { &(*(::std::ptr::null::<rte_ring_headtail>())).single as *const _ as usize },
5224        8usize,
5225        concat!(
5226            "Offset of field: ",
5227            stringify!(rte_ring_headtail),
5228            "::",
5229            stringify!(single)
5230        )
5231    );
5232}
5233#[repr(C)]
5234#[repr(align(64))]
5235#[derive(Copy, Clone)]
5236pub struct rte_ring {
5237    pub name: [::std::os::raw::c_char; 32usize],
5238    pub flags: ::std::os::raw::c_int,
5239    pub memzone: *const rte_memzone,
5240    pub size: u32,
5241    pub mask: u32,
5242    pub capacity: u32,
5243    pub __bindgen_padding_0: [u8; 4usize],
5244    pub pad0: ::std::os::raw::c_char,
5245    pub __bindgen_padding_1: [u32; 15usize],
5246    pub prod: rte_ring_headtail,
5247    pub __bindgen_padding_2: [u8; 52usize],
5248    pub pad1: ::std::os::raw::c_char,
5249    pub __bindgen_padding_3: [u32; 15usize],
5250    pub cons: rte_ring_headtail,
5251    pub __bindgen_padding_4: [u8; 52usize],
5252    pub pad2: ::std::os::raw::c_char,
5253}
5254#[test]
5255fn bindgen_test_layout_rte_ring() {
5256    assert_eq!(
5257        ::std::mem::size_of::<rte_ring>(),
5258        384usize,
5259        concat!("Size of: ", stringify!(rte_ring))
5260    );
5261    assert_eq!(
5262        ::std::mem::align_of::<rte_ring>(),
5263        64usize,
5264        concat!("Alignment of ", stringify!(rte_ring))
5265    );
5266    assert_eq!(
5267        unsafe { &(*(::std::ptr::null::<rte_ring>())).name as *const _ as usize },
5268        0usize,
5269        concat!(
5270            "Offset of field: ",
5271            stringify!(rte_ring),
5272            "::",
5273            stringify!(name)
5274        )
5275    );
5276    assert_eq!(
5277        unsafe { &(*(::std::ptr::null::<rte_ring>())).flags as *const _ as usize },
5278        32usize,
5279        concat!(
5280            "Offset of field: ",
5281            stringify!(rte_ring),
5282            "::",
5283            stringify!(flags)
5284        )
5285    );
5286    assert_eq!(
5287        unsafe { &(*(::std::ptr::null::<rte_ring>())).memzone as *const _ as usize },
5288        40usize,
5289        concat!(
5290            "Offset of field: ",
5291            stringify!(rte_ring),
5292            "::",
5293            stringify!(memzone)
5294        )
5295    );
5296    assert_eq!(
5297        unsafe { &(*(::std::ptr::null::<rte_ring>())).size as *const _ as usize },
5298        48usize,
5299        concat!(
5300            "Offset of field: ",
5301            stringify!(rte_ring),
5302            "::",
5303            stringify!(size)
5304        )
5305    );
5306    assert_eq!(
5307        unsafe { &(*(::std::ptr::null::<rte_ring>())).mask as *const _ as usize },
5308        52usize,
5309        concat!(
5310            "Offset of field: ",
5311            stringify!(rte_ring),
5312            "::",
5313            stringify!(mask)
5314        )
5315    );
5316    assert_eq!(
5317        unsafe { &(*(::std::ptr::null::<rte_ring>())).capacity as *const _ as usize },
5318        56usize,
5319        concat!(
5320            "Offset of field: ",
5321            stringify!(rte_ring),
5322            "::",
5323            stringify!(capacity)
5324        )
5325    );
5326    assert_eq!(
5327        unsafe { &(*(::std::ptr::null::<rte_ring>())).pad0 as *const _ as usize },
5328        64usize,
5329        concat!(
5330            "Offset of field: ",
5331            stringify!(rte_ring),
5332            "::",
5333            stringify!(pad0)
5334        )
5335    );
5336    assert_eq!(
5337        unsafe { &(*(::std::ptr::null::<rte_ring>())).prod as *const _ as usize },
5338        128usize,
5339        concat!(
5340            "Offset of field: ",
5341            stringify!(rte_ring),
5342            "::",
5343            stringify!(prod)
5344        )
5345    );
5346    assert_eq!(
5347        unsafe { &(*(::std::ptr::null::<rte_ring>())).pad1 as *const _ as usize },
5348        192usize,
5349        concat!(
5350            "Offset of field: ",
5351            stringify!(rte_ring),
5352            "::",
5353            stringify!(pad1)
5354        )
5355    );
5356    assert_eq!(
5357        unsafe { &(*(::std::ptr::null::<rte_ring>())).cons as *const _ as usize },
5358        256usize,
5359        concat!(
5360            "Offset of field: ",
5361            stringify!(rte_ring),
5362            "::",
5363            stringify!(cons)
5364        )
5365    );
5366    assert_eq!(
5367        unsafe { &(*(::std::ptr::null::<rte_ring>())).pad2 as *const _ as usize },
5368        320usize,
5369        concat!(
5370            "Offset of field: ",
5371            stringify!(rte_ring),
5372            "::",
5373            stringify!(pad2)
5374        )
5375    );
5376}
5377impl Default for rte_ring {
5378    fn default() -> Self {
5379        unsafe { ::std::mem::zeroed() }
5380    }
5381}
5382extern "C" {
5383    pub fn rte_ring_get_memsize(count: ::std::os::raw::c_uint) -> ssize_t;
5384}
5385extern "C" {
5386    pub fn rte_ring_init(
5387        r: *mut rte_ring,
5388        name: *const ::std::os::raw::c_char,
5389        count: ::std::os::raw::c_uint,
5390        flags: ::std::os::raw::c_uint,
5391    ) -> ::std::os::raw::c_int;
5392}
5393extern "C" {
5394    pub fn rte_ring_create(
5395        name: *const ::std::os::raw::c_char,
5396        count: ::std::os::raw::c_uint,
5397        socket_id: ::std::os::raw::c_int,
5398        flags: ::std::os::raw::c_uint,
5399    ) -> *mut rte_ring;
5400}
5401extern "C" {
5402    pub fn rte_ring_free(r: *mut rte_ring);
5403}
5404extern "C" {
5405    pub fn rte_ring_dump(f: *mut FILE, r: *const rte_ring);
5406}
5407extern "C" {
5408    pub fn rte_ring_reset(r: *mut rte_ring);
5409}
5410extern "C" {
5411    pub fn rte_ring_list_dump(f: *mut FILE);
5412}
5413extern "C" {
5414    pub fn rte_ring_lookup(name: *const ::std::os::raw::c_char) -> *mut rte_ring;
5415}
5416#[repr(C)]
5417#[repr(align(64))]
5418#[derive(Copy, Clone)]
5419pub struct rte_mempool_cache {
5420    pub size: u32,
5421    pub flushthresh: u32,
5422    pub len: u32,
5423    pub objs: [*mut ::std::os::raw::c_void; 1536usize],
5424}
5425#[test]
5426fn bindgen_test_layout_rte_mempool_cache() {
5427    assert_eq!(
5428        ::std::mem::size_of::<rte_mempool_cache>(),
5429        12352usize,
5430        concat!("Size of: ", stringify!(rte_mempool_cache))
5431    );
5432    assert_eq!(
5433        ::std::mem::align_of::<rte_mempool_cache>(),
5434        64usize,
5435        concat!("Alignment of ", stringify!(rte_mempool_cache))
5436    );
5437    assert_eq!(
5438        unsafe { &(*(::std::ptr::null::<rte_mempool_cache>())).size as *const _ as usize },
5439        0usize,
5440        concat!(
5441            "Offset of field: ",
5442            stringify!(rte_mempool_cache),
5443            "::",
5444            stringify!(size)
5445        )
5446    );
5447    assert_eq!(
5448        unsafe { &(*(::std::ptr::null::<rte_mempool_cache>())).flushthresh as *const _ as usize },
5449        4usize,
5450        concat!(
5451            "Offset of field: ",
5452            stringify!(rte_mempool_cache),
5453            "::",
5454            stringify!(flushthresh)
5455        )
5456    );
5457    assert_eq!(
5458        unsafe { &(*(::std::ptr::null::<rte_mempool_cache>())).len as *const _ as usize },
5459        8usize,
5460        concat!(
5461            "Offset of field: ",
5462            stringify!(rte_mempool_cache),
5463            "::",
5464            stringify!(len)
5465        )
5466    );
5467    assert_eq!(
5468        unsafe { &(*(::std::ptr::null::<rte_mempool_cache>())).objs as *const _ as usize },
5469        16usize,
5470        concat!(
5471            "Offset of field: ",
5472            stringify!(rte_mempool_cache),
5473            "::",
5474            stringify!(objs)
5475        )
5476    );
5477}
5478impl Default for rte_mempool_cache {
5479    fn default() -> Self {
5480        unsafe { ::std::mem::zeroed() }
5481    }
5482}
5483#[repr(C)]
5484#[derive(Debug, Default, Copy, Clone, PartialEq)]
5485pub struct rte_mempool_objsz {
5486    pub elt_size: u32,
5487    pub header_size: u32,
5488    pub trailer_size: u32,
5489    pub total_size: u32,
5490}
5491#[test]
5492fn bindgen_test_layout_rte_mempool_objsz() {
5493    assert_eq!(
5494        ::std::mem::size_of::<rte_mempool_objsz>(),
5495        16usize,
5496        concat!("Size of: ", stringify!(rte_mempool_objsz))
5497    );
5498    assert_eq!(
5499        ::std::mem::align_of::<rte_mempool_objsz>(),
5500        4usize,
5501        concat!("Alignment of ", stringify!(rte_mempool_objsz))
5502    );
5503    assert_eq!(
5504        unsafe { &(*(::std::ptr::null::<rte_mempool_objsz>())).elt_size as *const _ as usize },
5505        0usize,
5506        concat!(
5507            "Offset of field: ",
5508            stringify!(rte_mempool_objsz),
5509            "::",
5510            stringify!(elt_size)
5511        )
5512    );
5513    assert_eq!(
5514        unsafe { &(*(::std::ptr::null::<rte_mempool_objsz>())).header_size as *const _ as usize },
5515        4usize,
5516        concat!(
5517            "Offset of field: ",
5518            stringify!(rte_mempool_objsz),
5519            "::",
5520            stringify!(header_size)
5521        )
5522    );
5523    assert_eq!(
5524        unsafe { &(*(::std::ptr::null::<rte_mempool_objsz>())).trailer_size as *const _ as usize },
5525        8usize,
5526        concat!(
5527            "Offset of field: ",
5528            stringify!(rte_mempool_objsz),
5529            "::",
5530            stringify!(trailer_size)
5531        )
5532    );
5533    assert_eq!(
5534        unsafe { &(*(::std::ptr::null::<rte_mempool_objsz>())).total_size as *const _ as usize },
5535        12usize,
5536        concat!(
5537            "Offset of field: ",
5538            stringify!(rte_mempool_objsz),
5539            "::",
5540            stringify!(total_size)
5541        )
5542    );
5543}
5544#[repr(C)]
5545#[derive(Copy, Clone)]
5546pub struct rte_mempool_objhdr {
5547    pub next: rte_mempool_objhdr__bindgen_ty_1,
5548    pub mp: *mut rte_mempool,
5549    pub __bindgen_anon_1: rte_mempool_objhdr__bindgen_ty_2,
5550}
5551#[repr(C)]
5552#[derive(Debug, Copy, Clone, PartialEq)]
5553pub struct rte_mempool_objhdr__bindgen_ty_1 {
5554    pub stqe_next: *mut rte_mempool_objhdr,
5555}
5556#[test]
5557fn bindgen_test_layout_rte_mempool_objhdr__bindgen_ty_1() {
5558    assert_eq!(
5559        ::std::mem::size_of::<rte_mempool_objhdr__bindgen_ty_1>(),
5560        8usize,
5561        concat!("Size of: ", stringify!(rte_mempool_objhdr__bindgen_ty_1))
5562    );
5563    assert_eq!(
5564        ::std::mem::align_of::<rte_mempool_objhdr__bindgen_ty_1>(),
5565        8usize,
5566        concat!(
5567            "Alignment of ",
5568            stringify!(rte_mempool_objhdr__bindgen_ty_1)
5569        )
5570    );
5571    assert_eq!(
5572        unsafe {
5573            &(*(::std::ptr::null::<rte_mempool_objhdr__bindgen_ty_1>())).stqe_next as *const _
5574                as usize
5575        },
5576        0usize,
5577        concat!(
5578            "Offset of field: ",
5579            stringify!(rte_mempool_objhdr__bindgen_ty_1),
5580            "::",
5581            stringify!(stqe_next)
5582        )
5583    );
5584}
5585impl Default for rte_mempool_objhdr__bindgen_ty_1 {
5586    fn default() -> Self {
5587        unsafe { ::std::mem::zeroed() }
5588    }
5589}
5590#[repr(C)]
5591#[derive(Copy, Clone)]
5592pub union rte_mempool_objhdr__bindgen_ty_2 {
5593    pub iova: rte_iova_t,
5594    pub physaddr: phys_addr_t,
5595    _bindgen_union_align: u64,
5596}
5597#[test]
5598fn bindgen_test_layout_rte_mempool_objhdr__bindgen_ty_2() {
5599    assert_eq!(
5600        ::std::mem::size_of::<rte_mempool_objhdr__bindgen_ty_2>(),
5601        8usize,
5602        concat!("Size of: ", stringify!(rte_mempool_objhdr__bindgen_ty_2))
5603    );
5604    assert_eq!(
5605        ::std::mem::align_of::<rte_mempool_objhdr__bindgen_ty_2>(),
5606        8usize,
5607        concat!(
5608            "Alignment of ",
5609            stringify!(rte_mempool_objhdr__bindgen_ty_2)
5610        )
5611    );
5612    assert_eq!(
5613        unsafe {
5614            &(*(::std::ptr::null::<rte_mempool_objhdr__bindgen_ty_2>())).iova as *const _ as usize
5615        },
5616        0usize,
5617        concat!(
5618            "Offset of field: ",
5619            stringify!(rte_mempool_objhdr__bindgen_ty_2),
5620            "::",
5621            stringify!(iova)
5622        )
5623    );
5624    assert_eq!(
5625        unsafe {
5626            &(*(::std::ptr::null::<rte_mempool_objhdr__bindgen_ty_2>())).physaddr as *const _
5627                as usize
5628        },
5629        0usize,
5630        concat!(
5631            "Offset of field: ",
5632            stringify!(rte_mempool_objhdr__bindgen_ty_2),
5633            "::",
5634            stringify!(physaddr)
5635        )
5636    );
5637}
5638impl Default for rte_mempool_objhdr__bindgen_ty_2 {
5639    fn default() -> Self {
5640        unsafe { ::std::mem::zeroed() }
5641    }
5642}
5643#[test]
5644fn bindgen_test_layout_rte_mempool_objhdr() {
5645    assert_eq!(
5646        ::std::mem::size_of::<rte_mempool_objhdr>(),
5647        24usize,
5648        concat!("Size of: ", stringify!(rte_mempool_objhdr))
5649    );
5650    assert_eq!(
5651        ::std::mem::align_of::<rte_mempool_objhdr>(),
5652        8usize,
5653        concat!("Alignment of ", stringify!(rte_mempool_objhdr))
5654    );
5655    assert_eq!(
5656        unsafe { &(*(::std::ptr::null::<rte_mempool_objhdr>())).next as *const _ as usize },
5657        0usize,
5658        concat!(
5659            "Offset of field: ",
5660            stringify!(rte_mempool_objhdr),
5661            "::",
5662            stringify!(next)
5663        )
5664    );
5665    assert_eq!(
5666        unsafe { &(*(::std::ptr::null::<rte_mempool_objhdr>())).mp as *const _ as usize },
5667        8usize,
5668        concat!(
5669            "Offset of field: ",
5670            stringify!(rte_mempool_objhdr),
5671            "::",
5672            stringify!(mp)
5673        )
5674    );
5675}
5676impl Default for rte_mempool_objhdr {
5677    fn default() -> Self {
5678        unsafe { ::std::mem::zeroed() }
5679    }
5680}
5681#[repr(C)]
5682#[derive(Debug, Copy, Clone, PartialEq)]
5683pub struct rte_mempool_objhdr_list {
5684    pub stqh_first: *mut rte_mempool_objhdr,
5685    pub stqh_last: *mut *mut rte_mempool_objhdr,
5686}
5687#[test]
5688fn bindgen_test_layout_rte_mempool_objhdr_list() {
5689    assert_eq!(
5690        ::std::mem::size_of::<rte_mempool_objhdr_list>(),
5691        16usize,
5692        concat!("Size of: ", stringify!(rte_mempool_objhdr_list))
5693    );
5694    assert_eq!(
5695        ::std::mem::align_of::<rte_mempool_objhdr_list>(),
5696        8usize,
5697        concat!("Alignment of ", stringify!(rte_mempool_objhdr_list))
5698    );
5699    assert_eq!(
5700        unsafe {
5701            &(*(::std::ptr::null::<rte_mempool_objhdr_list>())).stqh_first as *const _ as usize
5702        },
5703        0usize,
5704        concat!(
5705            "Offset of field: ",
5706            stringify!(rte_mempool_objhdr_list),
5707            "::",
5708            stringify!(stqh_first)
5709        )
5710    );
5711    assert_eq!(
5712        unsafe {
5713            &(*(::std::ptr::null::<rte_mempool_objhdr_list>())).stqh_last as *const _ as usize
5714        },
5715        8usize,
5716        concat!(
5717            "Offset of field: ",
5718            stringify!(rte_mempool_objhdr_list),
5719            "::",
5720            stringify!(stqh_last)
5721        )
5722    );
5723}
5724impl Default for rte_mempool_objhdr_list {
5725    fn default() -> Self {
5726        unsafe { ::std::mem::zeroed() }
5727    }
5728}
5729#[repr(C)]
5730#[derive(Debug, Copy, Clone, PartialEq)]
5731pub struct rte_mempool_memhdr_list {
5732    pub stqh_first: *mut rte_mempool_memhdr,
5733    pub stqh_last: *mut *mut rte_mempool_memhdr,
5734}
5735#[test]
5736fn bindgen_test_layout_rte_mempool_memhdr_list() {
5737    assert_eq!(
5738        ::std::mem::size_of::<rte_mempool_memhdr_list>(),
5739        16usize,
5740        concat!("Size of: ", stringify!(rte_mempool_memhdr_list))
5741    );
5742    assert_eq!(
5743        ::std::mem::align_of::<rte_mempool_memhdr_list>(),
5744        8usize,
5745        concat!("Alignment of ", stringify!(rte_mempool_memhdr_list))
5746    );
5747    assert_eq!(
5748        unsafe {
5749            &(*(::std::ptr::null::<rte_mempool_memhdr_list>())).stqh_first as *const _ as usize
5750        },
5751        0usize,
5752        concat!(
5753            "Offset of field: ",
5754            stringify!(rte_mempool_memhdr_list),
5755            "::",
5756            stringify!(stqh_first)
5757        )
5758    );
5759    assert_eq!(
5760        unsafe {
5761            &(*(::std::ptr::null::<rte_mempool_memhdr_list>())).stqh_last as *const _ as usize
5762        },
5763        8usize,
5764        concat!(
5765            "Offset of field: ",
5766            stringify!(rte_mempool_memhdr_list),
5767            "::",
5768            stringify!(stqh_last)
5769        )
5770    );
5771}
5772impl Default for rte_mempool_memhdr_list {
5773    fn default() -> Self {
5774        unsafe { ::std::mem::zeroed() }
5775    }
5776}
5777pub type rte_mempool_memchunk_free_cb_t = ::std::option::Option<
5778    unsafe extern "C" fn(memhdr: *mut rte_mempool_memhdr, opaque: *mut ::std::os::raw::c_void),
5779>;
5780#[repr(C)]
5781#[derive(Copy, Clone)]
5782pub struct rte_mempool_memhdr {
5783    pub next: rte_mempool_memhdr__bindgen_ty_1,
5784    pub mp: *mut rte_mempool,
5785    pub addr: *mut ::std::os::raw::c_void,
5786    pub __bindgen_anon_1: rte_mempool_memhdr__bindgen_ty_2,
5787    pub len: size_t,
5788    pub free_cb: rte_mempool_memchunk_free_cb_t,
5789    pub opaque: *mut ::std::os::raw::c_void,
5790}
5791#[repr(C)]
5792#[derive(Debug, Copy, Clone, PartialEq)]
5793pub struct rte_mempool_memhdr__bindgen_ty_1 {
5794    pub stqe_next: *mut rte_mempool_memhdr,
5795}
5796#[test]
5797fn bindgen_test_layout_rte_mempool_memhdr__bindgen_ty_1() {
5798    assert_eq!(
5799        ::std::mem::size_of::<rte_mempool_memhdr__bindgen_ty_1>(),
5800        8usize,
5801        concat!("Size of: ", stringify!(rte_mempool_memhdr__bindgen_ty_1))
5802    );
5803    assert_eq!(
5804        ::std::mem::align_of::<rte_mempool_memhdr__bindgen_ty_1>(),
5805        8usize,
5806        concat!(
5807            "Alignment of ",
5808            stringify!(rte_mempool_memhdr__bindgen_ty_1)
5809        )
5810    );
5811    assert_eq!(
5812        unsafe {
5813            &(*(::std::ptr::null::<rte_mempool_memhdr__bindgen_ty_1>())).stqe_next as *const _
5814                as usize
5815        },
5816        0usize,
5817        concat!(
5818            "Offset of field: ",
5819            stringify!(rte_mempool_memhdr__bindgen_ty_1),
5820            "::",
5821            stringify!(stqe_next)
5822        )
5823    );
5824}
5825impl Default for rte_mempool_memhdr__bindgen_ty_1 {
5826    fn default() -> Self {
5827        unsafe { ::std::mem::zeroed() }
5828    }
5829}
5830#[repr(C)]
5831#[derive(Copy, Clone)]
5832pub union rte_mempool_memhdr__bindgen_ty_2 {
5833    pub iova: rte_iova_t,
5834    pub phys_addr: phys_addr_t,
5835    _bindgen_union_align: u64,
5836}
5837#[test]
5838fn bindgen_test_layout_rte_mempool_memhdr__bindgen_ty_2() {
5839    assert_eq!(
5840        ::std::mem::size_of::<rte_mempool_memhdr__bindgen_ty_2>(),
5841        8usize,
5842        concat!("Size of: ", stringify!(rte_mempool_memhdr__bindgen_ty_2))
5843    );
5844    assert_eq!(
5845        ::std::mem::align_of::<rte_mempool_memhdr__bindgen_ty_2>(),
5846        8usize,
5847        concat!(
5848            "Alignment of ",
5849            stringify!(rte_mempool_memhdr__bindgen_ty_2)
5850        )
5851    );
5852    assert_eq!(
5853        unsafe {
5854            &(*(::std::ptr::null::<rte_mempool_memhdr__bindgen_ty_2>())).iova as *const _ as usize
5855        },
5856        0usize,
5857        concat!(
5858            "Offset of field: ",
5859            stringify!(rte_mempool_memhdr__bindgen_ty_2),
5860            "::",
5861            stringify!(iova)
5862        )
5863    );
5864    assert_eq!(
5865        unsafe {
5866            &(*(::std::ptr::null::<rte_mempool_memhdr__bindgen_ty_2>())).phys_addr as *const _
5867                as usize
5868        },
5869        0usize,
5870        concat!(
5871            "Offset of field: ",
5872            stringify!(rte_mempool_memhdr__bindgen_ty_2),
5873            "::",
5874            stringify!(phys_addr)
5875        )
5876    );
5877}
5878impl Default for rte_mempool_memhdr__bindgen_ty_2 {
5879    fn default() -> Self {
5880        unsafe { ::std::mem::zeroed() }
5881    }
5882}
5883#[test]
5884fn bindgen_test_layout_rte_mempool_memhdr() {
5885    assert_eq!(
5886        ::std::mem::size_of::<rte_mempool_memhdr>(),
5887        56usize,
5888        concat!("Size of: ", stringify!(rte_mempool_memhdr))
5889    );
5890    assert_eq!(
5891        ::std::mem::align_of::<rte_mempool_memhdr>(),
5892        8usize,
5893        concat!("Alignment of ", stringify!(rte_mempool_memhdr))
5894    );
5895    assert_eq!(
5896        unsafe { &(*(::std::ptr::null::<rte_mempool_memhdr>())).next as *const _ as usize },
5897        0usize,
5898        concat!(
5899            "Offset of field: ",
5900            stringify!(rte_mempool_memhdr),
5901            "::",
5902            stringify!(next)
5903        )
5904    );
5905    assert_eq!(
5906        unsafe { &(*(::std::ptr::null::<rte_mempool_memhdr>())).mp as *const _ as usize },
5907        8usize,
5908        concat!(
5909            "Offset of field: ",
5910            stringify!(rte_mempool_memhdr),
5911            "::",
5912            stringify!(mp)
5913        )
5914    );
5915    assert_eq!(
5916        unsafe { &(*(::std::ptr::null::<rte_mempool_memhdr>())).addr as *const _ as usize },
5917        16usize,
5918        concat!(
5919            "Offset of field: ",
5920            stringify!(rte_mempool_memhdr),
5921            "::",
5922            stringify!(addr)
5923        )
5924    );
5925    assert_eq!(
5926        unsafe { &(*(::std::ptr::null::<rte_mempool_memhdr>())).len as *const _ as usize },
5927        32usize,
5928        concat!(
5929            "Offset of field: ",
5930            stringify!(rte_mempool_memhdr),
5931            "::",
5932            stringify!(len)
5933        )
5934    );
5935    assert_eq!(
5936        unsafe { &(*(::std::ptr::null::<rte_mempool_memhdr>())).free_cb as *const _ as usize },
5937        40usize,
5938        concat!(
5939            "Offset of field: ",
5940            stringify!(rte_mempool_memhdr),
5941            "::",
5942            stringify!(free_cb)
5943        )
5944    );
5945    assert_eq!(
5946        unsafe { &(*(::std::ptr::null::<rte_mempool_memhdr>())).opaque as *const _ as usize },
5947        48usize,
5948        concat!(
5949            "Offset of field: ",
5950            stringify!(rte_mempool_memhdr),
5951            "::",
5952            stringify!(opaque)
5953        )
5954    );
5955}
5956impl Default for rte_mempool_memhdr {
5957    fn default() -> Self {
5958        unsafe { ::std::mem::zeroed() }
5959    }
5960}
5961#[repr(C)]
5962#[repr(align(64))]
5963#[derive(Copy, Clone)]
5964pub struct rte_mempool_info {
5965    pub contig_block_size: ::std::os::raw::c_uint,
5966}
5967#[test]
5968fn bindgen_test_layout_rte_mempool_info() {
5969    assert_eq!(
5970        ::std::mem::size_of::<rte_mempool_info>(),
5971        64usize,
5972        concat!("Size of: ", stringify!(rte_mempool_info))
5973    );
5974    assert_eq!(
5975        ::std::mem::align_of::<rte_mempool_info>(),
5976        64usize,
5977        concat!("Alignment of ", stringify!(rte_mempool_info))
5978    );
5979    assert_eq!(
5980        unsafe {
5981            &(*(::std::ptr::null::<rte_mempool_info>())).contig_block_size as *const _ as usize
5982        },
5983        0usize,
5984        concat!(
5985            "Offset of field: ",
5986            stringify!(rte_mempool_info),
5987            "::",
5988            stringify!(contig_block_size)
5989        )
5990    );
5991}
5992impl Default for rte_mempool_info {
5993    fn default() -> Self {
5994        unsafe { ::std::mem::zeroed() }
5995    }
5996}
5997#[repr(C)]
5998#[repr(align(64))]
5999#[derive(Copy, Clone)]
6000pub struct rte_mempool {
6001    pub name: [::std::os::raw::c_char; 32usize],
6002    pub __bindgen_anon_1: rte_mempool__bindgen_ty_1,
6003    pub pool_config: *mut ::std::os::raw::c_void,
6004    pub mz: *const rte_memzone,
6005    pub flags: ::std::os::raw::c_uint,
6006    pub socket_id: ::std::os::raw::c_int,
6007    pub size: u32,
6008    pub cache_size: u32,
6009    pub elt_size: u32,
6010    pub header_size: u32,
6011    pub trailer_size: u32,
6012    pub private_data_size: ::std::os::raw::c_uint,
6013    pub ops_index: i32,
6014    pub local_cache: *mut rte_mempool_cache,
6015    pub populated_size: u32,
6016    pub elt_list: rte_mempool_objhdr_list,
6017    pub nb_mem_chunks: u32,
6018    pub mem_list: rte_mempool_memhdr_list,
6019}
6020#[repr(C)]
6021#[derive(Copy, Clone)]
6022pub union rte_mempool__bindgen_ty_1 {
6023    pub pool_data: *mut ::std::os::raw::c_void,
6024    pub pool_id: u64,
6025    _bindgen_union_align: u64,
6026}
6027#[test]
6028fn bindgen_test_layout_rte_mempool__bindgen_ty_1() {
6029    assert_eq!(
6030        ::std::mem::size_of::<rte_mempool__bindgen_ty_1>(),
6031        8usize,
6032        concat!("Size of: ", stringify!(rte_mempool__bindgen_ty_1))
6033    );
6034    assert_eq!(
6035        ::std::mem::align_of::<rte_mempool__bindgen_ty_1>(),
6036        8usize,
6037        concat!("Alignment of ", stringify!(rte_mempool__bindgen_ty_1))
6038    );
6039    assert_eq!(
6040        unsafe {
6041            &(*(::std::ptr::null::<rte_mempool__bindgen_ty_1>())).pool_data as *const _ as usize
6042        },
6043        0usize,
6044        concat!(
6045            "Offset of field: ",
6046            stringify!(rte_mempool__bindgen_ty_1),
6047            "::",
6048            stringify!(pool_data)
6049        )
6050    );
6051    assert_eq!(
6052        unsafe {
6053            &(*(::std::ptr::null::<rte_mempool__bindgen_ty_1>())).pool_id as *const _ as usize
6054        },
6055        0usize,
6056        concat!(
6057            "Offset of field: ",
6058            stringify!(rte_mempool__bindgen_ty_1),
6059            "::",
6060            stringify!(pool_id)
6061        )
6062    );
6063}
6064impl Default for rte_mempool__bindgen_ty_1 {
6065    fn default() -> Self {
6066        unsafe { ::std::mem::zeroed() }
6067    }
6068}
6069#[test]
6070fn bindgen_test_layout_rte_mempool() {
6071    assert_eq!(
6072        ::std::mem::size_of::<rte_mempool>(),
6073        192usize,
6074        concat!("Size of: ", stringify!(rte_mempool))
6075    );
6076    assert_eq!(
6077        ::std::mem::align_of::<rte_mempool>(),
6078        64usize,
6079        concat!("Alignment of ", stringify!(rte_mempool))
6080    );
6081    assert_eq!(
6082        unsafe { &(*(::std::ptr::null::<rte_mempool>())).name as *const _ as usize },
6083        0usize,
6084        concat!(
6085            "Offset of field: ",
6086            stringify!(rte_mempool),
6087            "::",
6088            stringify!(name)
6089        )
6090    );
6091    assert_eq!(
6092        unsafe { &(*(::std::ptr::null::<rte_mempool>())).pool_config as *const _ as usize },
6093        40usize,
6094        concat!(
6095            "Offset of field: ",
6096            stringify!(rte_mempool),
6097            "::",
6098            stringify!(pool_config)
6099        )
6100    );
6101    assert_eq!(
6102        unsafe { &(*(::std::ptr::null::<rte_mempool>())).mz as *const _ as usize },
6103        48usize,
6104        concat!(
6105            "Offset of field: ",
6106            stringify!(rte_mempool),
6107            "::",
6108            stringify!(mz)
6109        )
6110    );
6111    assert_eq!(
6112        unsafe { &(*(::std::ptr::null::<rte_mempool>())).flags as *const _ as usize },
6113        56usize,
6114        concat!(
6115            "Offset of field: ",
6116            stringify!(rte_mempool),
6117            "::",
6118            stringify!(flags)
6119        )
6120    );
6121    assert_eq!(
6122        unsafe { &(*(::std::ptr::null::<rte_mempool>())).socket_id as *const _ as usize },
6123        60usize,
6124        concat!(
6125            "Offset of field: ",
6126            stringify!(rte_mempool),
6127            "::",
6128            stringify!(socket_id)
6129        )
6130    );
6131    assert_eq!(
6132        unsafe { &(*(::std::ptr::null::<rte_mempool>())).size as *const _ as usize },
6133        64usize,
6134        concat!(
6135            "Offset of field: ",
6136            stringify!(rte_mempool),
6137            "::",
6138            stringify!(size)
6139        )
6140    );
6141    assert_eq!(
6142        unsafe { &(*(::std::ptr::null::<rte_mempool>())).cache_size as *const _ as usize },
6143        68usize,
6144        concat!(
6145            "Offset of field: ",
6146            stringify!(rte_mempool),
6147            "::",
6148            stringify!(cache_size)
6149        )
6150    );
6151    assert_eq!(
6152        unsafe { &(*(::std::ptr::null::<rte_mempool>())).elt_size as *const _ as usize },
6153        72usize,
6154        concat!(
6155            "Offset of field: ",
6156            stringify!(rte_mempool),
6157            "::",
6158            stringify!(elt_size)
6159        )
6160    );
6161    assert_eq!(
6162        unsafe { &(*(::std::ptr::null::<rte_mempool>())).header_size as *const _ as usize },
6163        76usize,
6164        concat!(
6165            "Offset of field: ",
6166            stringify!(rte_mempool),
6167            "::",
6168            stringify!(header_size)
6169        )
6170    );
6171    assert_eq!(
6172        unsafe { &(*(::std::ptr::null::<rte_mempool>())).trailer_size as *const _ as usize },
6173        80usize,
6174        concat!(
6175            "Offset of field: ",
6176            stringify!(rte_mempool),
6177            "::",
6178            stringify!(trailer_size)
6179        )
6180    );
6181    assert_eq!(
6182        unsafe { &(*(::std::ptr::null::<rte_mempool>())).private_data_size as *const _ as usize },
6183        84usize,
6184        concat!(
6185            "Offset of field: ",
6186            stringify!(rte_mempool),
6187            "::",
6188            stringify!(private_data_size)
6189        )
6190    );
6191    assert_eq!(
6192        unsafe { &(*(::std::ptr::null::<rte_mempool>())).ops_index as *const _ as usize },
6193        88usize,
6194        concat!(
6195            "Offset of field: ",
6196            stringify!(rte_mempool),
6197            "::",
6198            stringify!(ops_index)
6199        )
6200    );
6201    assert_eq!(
6202        unsafe { &(*(::std::ptr::null::<rte_mempool>())).local_cache as *const _ as usize },
6203        96usize,
6204        concat!(
6205            "Offset of field: ",
6206            stringify!(rte_mempool),
6207            "::",
6208            stringify!(local_cache)
6209        )
6210    );
6211    assert_eq!(
6212        unsafe { &(*(::std::ptr::null::<rte_mempool>())).populated_size as *const _ as usize },
6213        104usize,
6214        concat!(
6215            "Offset of field: ",
6216            stringify!(rte_mempool),
6217            "::",
6218            stringify!(populated_size)
6219        )
6220    );
6221    assert_eq!(
6222        unsafe { &(*(::std::ptr::null::<rte_mempool>())).elt_list as *const _ as usize },
6223        112usize,
6224        concat!(
6225            "Offset of field: ",
6226            stringify!(rte_mempool),
6227            "::",
6228            stringify!(elt_list)
6229        )
6230    );
6231    assert_eq!(
6232        unsafe { &(*(::std::ptr::null::<rte_mempool>())).nb_mem_chunks as *const _ as usize },
6233        128usize,
6234        concat!(
6235            "Offset of field: ",
6236            stringify!(rte_mempool),
6237            "::",
6238            stringify!(nb_mem_chunks)
6239        )
6240    );
6241    assert_eq!(
6242        unsafe { &(*(::std::ptr::null::<rte_mempool>())).mem_list as *const _ as usize },
6243        136usize,
6244        concat!(
6245            "Offset of field: ",
6246            stringify!(rte_mempool),
6247            "::",
6248            stringify!(mem_list)
6249        )
6250    );
6251}
6252impl Default for rte_mempool {
6253    fn default() -> Self {
6254        unsafe { ::std::mem::zeroed() }
6255    }
6256}
6257#[repr(C)]
6258#[derive(Debug, Copy, Clone)]
6259pub struct rte_mempool_objtlr {
6260    _unused: [u8; 0],
6261}
6262extern "C" {
6263    pub fn rte_mempool_check_cookies(
6264        mp: *const rte_mempool,
6265        obj_table_const: *const *mut ::std::os::raw::c_void,
6266        n: ::std::os::raw::c_uint,
6267        free: ::std::os::raw::c_int,
6268    );
6269}
6270extern "C" {
6271    pub fn rte_mempool_contig_blocks_check_cookies(
6272        mp: *const rte_mempool,
6273        first_obj_table_const: *const *mut ::std::os::raw::c_void,
6274        n: ::std::os::raw::c_uint,
6275        free: ::std::os::raw::c_int,
6276    );
6277}
6278pub type rte_mempool_alloc_t =
6279    ::std::option::Option<unsafe extern "C" fn(mp: *mut rte_mempool) -> ::std::os::raw::c_int>;
6280pub type rte_mempool_free_t = ::std::option::Option<unsafe extern "C" fn(mp: *mut rte_mempool)>;
6281pub type rte_mempool_enqueue_t = ::std::option::Option<
6282    unsafe extern "C" fn(
6283        mp: *mut rte_mempool,
6284        obj_table: *const *mut ::std::os::raw::c_void,
6285        n: ::std::os::raw::c_uint,
6286    ) -> ::std::os::raw::c_int,
6287>;
6288pub type rte_mempool_dequeue_t = ::std::option::Option<
6289    unsafe extern "C" fn(
6290        mp: *mut rte_mempool,
6291        obj_table: *mut *mut ::std::os::raw::c_void,
6292        n: ::std::os::raw::c_uint,
6293    ) -> ::std::os::raw::c_int,
6294>;
6295pub type rte_mempool_dequeue_contig_blocks_t = ::std::option::Option<
6296    unsafe extern "C" fn(
6297        mp: *mut rte_mempool,
6298        first_obj_table: *mut *mut ::std::os::raw::c_void,
6299        n: ::std::os::raw::c_uint,
6300    ) -> ::std::os::raw::c_int,
6301>;
6302pub type rte_mempool_get_count =
6303    ::std::option::Option<unsafe extern "C" fn(mp: *const rte_mempool) -> ::std::os::raw::c_uint>;
6304pub type rte_mempool_calc_mem_size_t = ::std::option::Option<
6305    unsafe extern "C" fn(
6306        mp: *const rte_mempool,
6307        obj_num: u32,
6308        pg_shift: u32,
6309        min_chunk_size: *mut size_t,
6310        align: *mut size_t,
6311    ) -> ssize_t,
6312>;
6313extern "C" {
6314    pub fn rte_mempool_op_calc_mem_size_helper(
6315        mp: *const rte_mempool,
6316        obj_num: u32,
6317        pg_shift: u32,
6318        chunk_reserve: size_t,
6319        min_chunk_size: *mut size_t,
6320        align: *mut size_t,
6321    ) -> ssize_t;
6322}
6323extern "C" {
6324    pub fn rte_mempool_op_calc_mem_size_default(
6325        mp: *const rte_mempool,
6326        obj_num: u32,
6327        pg_shift: u32,
6328        min_chunk_size: *mut size_t,
6329        align: *mut size_t,
6330    ) -> ssize_t;
6331}
6332pub type rte_mempool_populate_obj_cb_t = ::std::option::Option<
6333    unsafe extern "C" fn(
6334        mp: *mut rte_mempool,
6335        opaque: *mut ::std::os::raw::c_void,
6336        vaddr: *mut ::std::os::raw::c_void,
6337        iova: rte_iova_t,
6338    ),
6339>;
6340pub type rte_mempool_populate_t = ::std::option::Option<
6341    unsafe extern "C" fn(
6342        mp: *mut rte_mempool,
6343        max_objs: ::std::os::raw::c_uint,
6344        vaddr: *mut ::std::os::raw::c_void,
6345        iova: rte_iova_t,
6346        len: size_t,
6347        obj_cb: rte_mempool_populate_obj_cb_t,
6348        obj_cb_arg: *mut ::std::os::raw::c_void,
6349    ) -> ::std::os::raw::c_int,
6350>;
6351extern "C" {
6352    pub fn rte_mempool_op_populate_helper(
6353        mp: *mut rte_mempool,
6354        flags: ::std::os::raw::c_uint,
6355        max_objs: ::std::os::raw::c_uint,
6356        vaddr: *mut ::std::os::raw::c_void,
6357        iova: rte_iova_t,
6358        len: size_t,
6359        obj_cb: rte_mempool_populate_obj_cb_t,
6360        obj_cb_arg: *mut ::std::os::raw::c_void,
6361    ) -> ::std::os::raw::c_int;
6362}
6363extern "C" {
6364    pub fn rte_mempool_op_populate_default(
6365        mp: *mut rte_mempool,
6366        max_objs: ::std::os::raw::c_uint,
6367        vaddr: *mut ::std::os::raw::c_void,
6368        iova: rte_iova_t,
6369        len: size_t,
6370        obj_cb: rte_mempool_populate_obj_cb_t,
6371        obj_cb_arg: *mut ::std::os::raw::c_void,
6372    ) -> ::std::os::raw::c_int;
6373}
6374pub type rte_mempool_get_info_t = ::std::option::Option<
6375    unsafe extern "C" fn(
6376        mp: *const rte_mempool,
6377        info: *mut rte_mempool_info,
6378    ) -> ::std::os::raw::c_int,
6379>;
6380#[repr(C)]
6381#[repr(align(64))]
6382#[derive(Copy, Clone)]
6383pub struct rte_mempool_ops {
6384    pub name: [::std::os::raw::c_char; 32usize],
6385    pub alloc: rte_mempool_alloc_t,
6386    pub free: rte_mempool_free_t,
6387    pub enqueue: rte_mempool_enqueue_t,
6388    pub dequeue: rte_mempool_dequeue_t,
6389    pub get_count: rte_mempool_get_count,
6390    pub calc_mem_size: rte_mempool_calc_mem_size_t,
6391    pub populate: rte_mempool_populate_t,
6392    pub get_info: rte_mempool_get_info_t,
6393    pub dequeue_contig_blocks: rte_mempool_dequeue_contig_blocks_t,
6394}
6395#[test]
6396fn bindgen_test_layout_rte_mempool_ops() {
6397    assert_eq!(
6398        ::std::mem::size_of::<rte_mempool_ops>(),
6399        128usize,
6400        concat!("Size of: ", stringify!(rte_mempool_ops))
6401    );
6402    assert_eq!(
6403        ::std::mem::align_of::<rte_mempool_ops>(),
6404        64usize,
6405        concat!("Alignment of ", stringify!(rte_mempool_ops))
6406    );
6407    assert_eq!(
6408        unsafe { &(*(::std::ptr::null::<rte_mempool_ops>())).name as *const _ as usize },
6409        0usize,
6410        concat!(
6411            "Offset of field: ",
6412            stringify!(rte_mempool_ops),
6413            "::",
6414            stringify!(name)
6415        )
6416    );
6417    assert_eq!(
6418        unsafe { &(*(::std::ptr::null::<rte_mempool_ops>())).alloc as *const _ as usize },
6419        32usize,
6420        concat!(
6421            "Offset of field: ",
6422            stringify!(rte_mempool_ops),
6423            "::",
6424            stringify!(alloc)
6425        )
6426    );
6427    assert_eq!(
6428        unsafe { &(*(::std::ptr::null::<rte_mempool_ops>())).free as *const _ as usize },
6429        40usize,
6430        concat!(
6431            "Offset of field: ",
6432            stringify!(rte_mempool_ops),
6433            "::",
6434            stringify!(free)
6435        )
6436    );
6437    assert_eq!(
6438        unsafe { &(*(::std::ptr::null::<rte_mempool_ops>())).enqueue as *const _ as usize },
6439        48usize,
6440        concat!(
6441            "Offset of field: ",
6442            stringify!(rte_mempool_ops),
6443            "::",
6444            stringify!(enqueue)
6445        )
6446    );
6447    assert_eq!(
6448        unsafe { &(*(::std::ptr::null::<rte_mempool_ops>())).dequeue as *const _ as usize },
6449        56usize,
6450        concat!(
6451            "Offset of field: ",
6452            stringify!(rte_mempool_ops),
6453            "::",
6454            stringify!(dequeue)
6455        )
6456    );
6457    assert_eq!(
6458        unsafe { &(*(::std::ptr::null::<rte_mempool_ops>())).get_count as *const _ as usize },
6459        64usize,
6460        concat!(
6461            "Offset of field: ",
6462            stringify!(rte_mempool_ops),
6463            "::",
6464            stringify!(get_count)
6465        )
6466    );
6467    assert_eq!(
6468        unsafe { &(*(::std::ptr::null::<rte_mempool_ops>())).calc_mem_size as *const _ as usize },
6469        72usize,
6470        concat!(
6471            "Offset of field: ",
6472            stringify!(rte_mempool_ops),
6473            "::",
6474            stringify!(calc_mem_size)
6475        )
6476    );
6477    assert_eq!(
6478        unsafe { &(*(::std::ptr::null::<rte_mempool_ops>())).populate as *const _ as usize },
6479        80usize,
6480        concat!(
6481            "Offset of field: ",
6482            stringify!(rte_mempool_ops),
6483            "::",
6484            stringify!(populate)
6485        )
6486    );
6487    assert_eq!(
6488        unsafe { &(*(::std::ptr::null::<rte_mempool_ops>())).get_info as *const _ as usize },
6489        88usize,
6490        concat!(
6491            "Offset of field: ",
6492            stringify!(rte_mempool_ops),
6493            "::",
6494            stringify!(get_info)
6495        )
6496    );
6497    assert_eq!(
6498        unsafe {
6499            &(*(::std::ptr::null::<rte_mempool_ops>())).dequeue_contig_blocks as *const _ as usize
6500        },
6501        96usize,
6502        concat!(
6503            "Offset of field: ",
6504            stringify!(rte_mempool_ops),
6505            "::",
6506            stringify!(dequeue_contig_blocks)
6507        )
6508    );
6509}
6510impl Default for rte_mempool_ops {
6511    fn default() -> Self {
6512        unsafe { ::std::mem::zeroed() }
6513    }
6514}
6515#[repr(C)]
6516#[repr(align(64))]
6517#[derive(Copy, Clone)]
6518pub struct rte_mempool_ops_table {
6519    pub sl: rte_spinlock_t,
6520    pub num_ops: u32,
6521    pub __bindgen_padding_0: [u64; 7usize],
6522    pub ops: [rte_mempool_ops; 16usize],
6523}
6524#[test]
6525fn bindgen_test_layout_rte_mempool_ops_table() {
6526    assert_eq!(
6527        ::std::mem::size_of::<rte_mempool_ops_table>(),
6528        2112usize,
6529        concat!("Size of: ", stringify!(rte_mempool_ops_table))
6530    );
6531    assert_eq!(
6532        ::std::mem::align_of::<rte_mempool_ops_table>(),
6533        64usize,
6534        concat!("Alignment of ", stringify!(rte_mempool_ops_table))
6535    );
6536    assert_eq!(
6537        unsafe { &(*(::std::ptr::null::<rte_mempool_ops_table>())).sl as *const _ as usize },
6538        0usize,
6539        concat!(
6540            "Offset of field: ",
6541            stringify!(rte_mempool_ops_table),
6542            "::",
6543            stringify!(sl)
6544        )
6545    );
6546    assert_eq!(
6547        unsafe { &(*(::std::ptr::null::<rte_mempool_ops_table>())).num_ops as *const _ as usize },
6548        4usize,
6549        concat!(
6550            "Offset of field: ",
6551            stringify!(rte_mempool_ops_table),
6552            "::",
6553            stringify!(num_ops)
6554        )
6555    );
6556    assert_eq!(
6557        unsafe { &(*(::std::ptr::null::<rte_mempool_ops_table>())).ops as *const _ as usize },
6558        64usize,
6559        concat!(
6560            "Offset of field: ",
6561            stringify!(rte_mempool_ops_table),
6562            "::",
6563            stringify!(ops)
6564        )
6565    );
6566}
6567impl Default for rte_mempool_ops_table {
6568    fn default() -> Self {
6569        unsafe { ::std::mem::zeroed() }
6570    }
6571}
6572extern "C" {
6573    pub static mut rte_mempool_ops_table: rte_mempool_ops_table;
6574}
6575extern "C" {
6576    pub fn rte_mempool_ops_alloc(mp: *mut rte_mempool) -> ::std::os::raw::c_int;
6577}
6578extern "C" {
6579    pub fn rte_mempool_ops_get_count(mp: *const rte_mempool) -> ::std::os::raw::c_uint;
6580}
6581extern "C" {
6582    pub fn rte_mempool_ops_calc_mem_size(
6583        mp: *const rte_mempool,
6584        obj_num: u32,
6585        pg_shift: u32,
6586        min_chunk_size: *mut size_t,
6587        align: *mut size_t,
6588    ) -> ssize_t;
6589}
6590extern "C" {
6591    pub fn rte_mempool_ops_populate(
6592        mp: *mut rte_mempool,
6593        max_objs: ::std::os::raw::c_uint,
6594        vaddr: *mut ::std::os::raw::c_void,
6595        iova: rte_iova_t,
6596        len: size_t,
6597        obj_cb: rte_mempool_populate_obj_cb_t,
6598        obj_cb_arg: *mut ::std::os::raw::c_void,
6599    ) -> ::std::os::raw::c_int;
6600}
6601extern "C" {
6602    pub fn rte_mempool_ops_get_info(
6603        mp: *const rte_mempool,
6604        info: *mut rte_mempool_info,
6605    ) -> ::std::os::raw::c_int;
6606}
6607extern "C" {
6608    pub fn rte_mempool_ops_free(mp: *mut rte_mempool);
6609}
6610extern "C" {
6611    pub fn rte_mempool_set_ops_byname(
6612        mp: *mut rte_mempool,
6613        name: *const ::std::os::raw::c_char,
6614        pool_config: *mut ::std::os::raw::c_void,
6615    ) -> ::std::os::raw::c_int;
6616}
6617extern "C" {
6618    pub fn rte_mempool_register_ops(ops: *const rte_mempool_ops) -> ::std::os::raw::c_int;
6619}
6620pub type rte_mempool_obj_cb_t = ::std::option::Option<
6621    unsafe extern "C" fn(
6622        mp: *mut rte_mempool,
6623        opaque: *mut ::std::os::raw::c_void,
6624        obj: *mut ::std::os::raw::c_void,
6625        obj_idx: ::std::os::raw::c_uint,
6626    ),
6627>;
6628pub type rte_mempool_obj_ctor_t = rte_mempool_obj_cb_t;
6629pub type rte_mempool_mem_cb_t = ::std::option::Option<
6630    unsafe extern "C" fn(
6631        mp: *mut rte_mempool,
6632        opaque: *mut ::std::os::raw::c_void,
6633        memhdr: *mut rte_mempool_memhdr,
6634        mem_idx: ::std::os::raw::c_uint,
6635    ),
6636>;
6637pub type rte_mempool_ctor_t = ::std::option::Option<
6638    unsafe extern "C" fn(arg1: *mut rte_mempool, arg2: *mut ::std::os::raw::c_void),
6639>;
6640extern "C" {
6641    pub fn rte_mempool_create(
6642        name: *const ::std::os::raw::c_char,
6643        n: ::std::os::raw::c_uint,
6644        elt_size: ::std::os::raw::c_uint,
6645        cache_size: ::std::os::raw::c_uint,
6646        private_data_size: ::std::os::raw::c_uint,
6647        mp_init: rte_mempool_ctor_t,
6648        mp_init_arg: *mut ::std::os::raw::c_void,
6649        obj_init: rte_mempool_obj_cb_t,
6650        obj_init_arg: *mut ::std::os::raw::c_void,
6651        socket_id: ::std::os::raw::c_int,
6652        flags: ::std::os::raw::c_uint,
6653    ) -> *mut rte_mempool;
6654}
6655extern "C" {
6656    pub fn rte_mempool_create_empty(
6657        name: *const ::std::os::raw::c_char,
6658        n: ::std::os::raw::c_uint,
6659        elt_size: ::std::os::raw::c_uint,
6660        cache_size: ::std::os::raw::c_uint,
6661        private_data_size: ::std::os::raw::c_uint,
6662        socket_id: ::std::os::raw::c_int,
6663        flags: ::std::os::raw::c_uint,
6664    ) -> *mut rte_mempool;
6665}
6666extern "C" {
6667    pub fn rte_mempool_free(mp: *mut rte_mempool);
6668}
6669extern "C" {
6670    pub fn rte_mempool_populate_iova(
6671        mp: *mut rte_mempool,
6672        vaddr: *mut ::std::os::raw::c_char,
6673        iova: rte_iova_t,
6674        len: size_t,
6675        free_cb: rte_mempool_memchunk_free_cb_t,
6676        opaque: *mut ::std::os::raw::c_void,
6677    ) -> ::std::os::raw::c_int;
6678}
6679extern "C" {
6680    pub fn rte_mempool_populate_virt(
6681        mp: *mut rte_mempool,
6682        addr: *mut ::std::os::raw::c_char,
6683        len: size_t,
6684        pg_sz: size_t,
6685        free_cb: rte_mempool_memchunk_free_cb_t,
6686        opaque: *mut ::std::os::raw::c_void,
6687    ) -> ::std::os::raw::c_int;
6688}
6689extern "C" {
6690    pub fn rte_mempool_populate_default(mp: *mut rte_mempool) -> ::std::os::raw::c_int;
6691}
6692extern "C" {
6693    pub fn rte_mempool_populate_anon(mp: *mut rte_mempool) -> ::std::os::raw::c_int;
6694}
6695extern "C" {
6696    pub fn rte_mempool_obj_iter(
6697        mp: *mut rte_mempool,
6698        obj_cb: rte_mempool_obj_cb_t,
6699        obj_cb_arg: *mut ::std::os::raw::c_void,
6700    ) -> u32;
6701}
6702extern "C" {
6703    pub fn rte_mempool_mem_iter(
6704        mp: *mut rte_mempool,
6705        mem_cb: rte_mempool_mem_cb_t,
6706        mem_cb_arg: *mut ::std::os::raw::c_void,
6707    ) -> u32;
6708}
6709extern "C" {
6710    pub fn rte_mempool_dump(f: *mut FILE, mp: *mut rte_mempool);
6711}
6712extern "C" {
6713    pub fn rte_mempool_cache_create(
6714        size: u32,
6715        socket_id: ::std::os::raw::c_int,
6716    ) -> *mut rte_mempool_cache;
6717}
6718extern "C" {
6719    pub fn rte_mempool_cache_free(cache: *mut rte_mempool_cache);
6720}
6721extern "C" {
6722    pub fn rte_mempool_avail_count(mp: *const rte_mempool) -> ::std::os::raw::c_uint;
6723}
6724extern "C" {
6725    pub fn rte_mempool_in_use_count(mp: *const rte_mempool) -> ::std::os::raw::c_uint;
6726}
6727extern "C" {
6728    pub fn rte_mempool_audit(mp: *mut rte_mempool);
6729}
6730extern "C" {
6731    pub fn rte_mempool_list_dump(f: *mut FILE);
6732}
6733extern "C" {
6734    pub fn rte_mempool_lookup(name: *const ::std::os::raw::c_char) -> *mut rte_mempool;
6735}
6736extern "C" {
6737    pub fn rte_mempool_calc_obj_size(elt_size: u32, flags: u32, sz: *mut rte_mempool_objsz) -> u32;
6738}
6739extern "C" {
6740    pub fn rte_mempool_walk(
6741        func: ::std::option::Option<
6742            unsafe extern "C" fn(arg1: *mut rte_mempool, arg: *mut ::std::os::raw::c_void),
6743        >,
6744        arg: *mut ::std::os::raw::c_void,
6745    );
6746}
6747extern "C" {
6748    pub fn rte_mempool_get_page_size(
6749        mp: *mut rte_mempool,
6750        pg_sz: *mut size_t,
6751    ) -> ::std::os::raw::c_int;
6752}
6753pub type rte_be16_t = u16;
6754pub type rte_be32_t = u32;
6755pub type rte_be64_t = u64;
6756pub type rte_le16_t = u16;
6757pub type rte_le32_t = u32;
6758pub type rte_le64_t = u64;
6759extern "C" {
6760    pub fn rte_get_ptype_l2_name(ptype: u32) -> *const ::std::os::raw::c_char;
6761}
6762extern "C" {
6763    pub fn rte_get_ptype_l3_name(ptype: u32) -> *const ::std::os::raw::c_char;
6764}
6765extern "C" {
6766    pub fn rte_get_ptype_l4_name(ptype: u32) -> *const ::std::os::raw::c_char;
6767}
6768extern "C" {
6769    pub fn rte_get_ptype_tunnel_name(ptype: u32) -> *const ::std::os::raw::c_char;
6770}
6771extern "C" {
6772    pub fn rte_get_ptype_inner_l2_name(ptype: u32) -> *const ::std::os::raw::c_char;
6773}
6774extern "C" {
6775    pub fn rte_get_ptype_inner_l3_name(ptype: u32) -> *const ::std::os::raw::c_char;
6776}
6777extern "C" {
6778    pub fn rte_get_ptype_inner_l4_name(ptype: u32) -> *const ::std::os::raw::c_char;
6779}
6780extern "C" {
6781    pub fn rte_get_ptype_name(
6782        ptype: u32,
6783        buf: *mut ::std::os::raw::c_char,
6784        buflen: size_t,
6785    ) -> ::std::os::raw::c_int;
6786}
6787pub type MARKER = [*mut ::std::os::raw::c_void; 0usize];
6788pub type MARKER64 = [u64; 0usize];
6789#[repr(C)]
6790#[derive(Debug, Default, Copy, Clone, PartialEq)]
6791pub struct rte_mbuf_sched {
6792    pub queue_id: u32,
6793    pub traffic_class: u8,
6794    pub color: u8,
6795    pub reserved: u16,
6796}
6797#[test]
6798fn bindgen_test_layout_rte_mbuf_sched() {
6799    assert_eq!(
6800        ::std::mem::size_of::<rte_mbuf_sched>(),
6801        8usize,
6802        concat!("Size of: ", stringify!(rte_mbuf_sched))
6803    );
6804    assert_eq!(
6805        ::std::mem::align_of::<rte_mbuf_sched>(),
6806        4usize,
6807        concat!("Alignment of ", stringify!(rte_mbuf_sched))
6808    );
6809    assert_eq!(
6810        unsafe { &(*(::std::ptr::null::<rte_mbuf_sched>())).queue_id as *const _ as usize },
6811        0usize,
6812        concat!(
6813            "Offset of field: ",
6814            stringify!(rte_mbuf_sched),
6815            "::",
6816            stringify!(queue_id)
6817        )
6818    );
6819    assert_eq!(
6820        unsafe { &(*(::std::ptr::null::<rte_mbuf_sched>())).traffic_class as *const _ as usize },
6821        4usize,
6822        concat!(
6823            "Offset of field: ",
6824            stringify!(rte_mbuf_sched),
6825            "::",
6826            stringify!(traffic_class)
6827        )
6828    );
6829    assert_eq!(
6830        unsafe { &(*(::std::ptr::null::<rte_mbuf_sched>())).color as *const _ as usize },
6831        5usize,
6832        concat!(
6833            "Offset of field: ",
6834            stringify!(rte_mbuf_sched),
6835            "::",
6836            stringify!(color)
6837        )
6838    );
6839    assert_eq!(
6840        unsafe { &(*(::std::ptr::null::<rte_mbuf_sched>())).reserved as *const _ as usize },
6841        6usize,
6842        concat!(
6843            "Offset of field: ",
6844            stringify!(rte_mbuf_sched),
6845            "::",
6846            stringify!(reserved)
6847        )
6848    );
6849}
6850pub mod _bindgen_ty_14 {
6851    pub type Type = ::std::os::raw::c_uint;
6852    pub const RTE_MBUF_L2_LEN_BITS: Type = 7;
6853    pub const RTE_MBUF_L3_LEN_BITS: Type = 9;
6854    pub const RTE_MBUF_L4_LEN_BITS: Type = 8;
6855    pub const RTE_MBUF_TSO_SEGSZ_BITS: Type = 16;
6856    pub const RTE_MBUF_OUTL3_LEN_BITS: Type = 9;
6857    pub const RTE_MBUF_OUTL2_LEN_BITS: Type = 7;
6858    pub const RTE_MBUF_TXOFLD_UNUSED_BITS: Type = 8;
6859    pub const RTE_MBUF_L2_LEN_OFS: Type = 0;
6860    pub const RTE_MBUF_L3_LEN_OFS: Type = 7;
6861    pub const RTE_MBUF_L4_LEN_OFS: Type = 16;
6862    pub const RTE_MBUF_TSO_SEGSZ_OFS: Type = 24;
6863    pub const RTE_MBUF_OUTL3_LEN_OFS: Type = 40;
6864    pub const RTE_MBUF_OUTL2_LEN_OFS: Type = 49;
6865    pub const RTE_MBUF_TXOFLD_UNUSED_OFS: Type = 56;
6866}
6867#[repr(C)]
6868#[repr(align(64))]
6869pub struct rte_mbuf {
6870    pub cacheline0: MARKER,
6871    pub buf_addr: *mut ::std::os::raw::c_void,
6872    pub __bindgen_anon_1: rte_mbuf__bindgen_ty_1,
6873    pub rearm_data: MARKER64,
6874    pub data_off: u16,
6875    pub __bindgen_anon_2: rte_mbuf__bindgen_ty_2,
6876    pub nb_segs: u16,
6877    pub port: u16,
6878    pub ol_flags: u64,
6879    pub rx_descriptor_fields1: MARKER,
6880    pub __bindgen_anon_3: rte_mbuf__bindgen_ty_3,
6881    pub pkt_len: u32,
6882    pub data_len: u16,
6883    pub vlan_tci: u16,
6884    pub __bindgen_anon_4: rte_mbuf__bindgen_ty_4,
6885    pub vlan_tci_outer: u16,
6886    pub buf_len: u16,
6887    pub timestamp: u64,
6888    pub cacheline1: MARKER,
6889    pub __bindgen_anon_5: rte_mbuf__bindgen_ty_5,
6890    pub pool: *mut rte_mempool,
6891    pub next: *mut rte_mbuf,
6892    pub __bindgen_anon_6: rte_mbuf__bindgen_ty_6,
6893    pub priv_size: u16,
6894    pub timesync: u16,
6895    pub seqn: u32,
6896    pub shinfo: *mut rte_mbuf_ext_shared_info,
6897    pub dynfield1: [u64; 2usize],
6898}
6899#[repr(C)]
6900#[derive(Copy, Clone)]
6901pub union rte_mbuf__bindgen_ty_1 {
6902    pub buf_iova: rte_iova_t,
6903    pub buf_physaddr: rte_iova_t,
6904    _bindgen_union_align: u64,
6905}
6906#[test]
6907fn bindgen_test_layout_rte_mbuf__bindgen_ty_1() {
6908    assert_eq!(
6909        ::std::mem::size_of::<rte_mbuf__bindgen_ty_1>(),
6910        8usize,
6911        concat!("Size of: ", stringify!(rte_mbuf__bindgen_ty_1))
6912    );
6913    assert_eq!(
6914        ::std::mem::align_of::<rte_mbuf__bindgen_ty_1>(),
6915        8usize,
6916        concat!("Alignment of ", stringify!(rte_mbuf__bindgen_ty_1))
6917    );
6918    assert_eq!(
6919        unsafe { &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_1>())).buf_iova as *const _ as usize },
6920        0usize,
6921        concat!(
6922            "Offset of field: ",
6923            stringify!(rte_mbuf__bindgen_ty_1),
6924            "::",
6925            stringify!(buf_iova)
6926        )
6927    );
6928    assert_eq!(
6929        unsafe {
6930            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_1>())).buf_physaddr as *const _ as usize
6931        },
6932        0usize,
6933        concat!(
6934            "Offset of field: ",
6935            stringify!(rte_mbuf__bindgen_ty_1),
6936            "::",
6937            stringify!(buf_physaddr)
6938        )
6939    );
6940}
6941impl Default for rte_mbuf__bindgen_ty_1 {
6942    fn default() -> Self {
6943        unsafe { ::std::mem::zeroed() }
6944    }
6945}
6946#[repr(C)]
6947#[derive(Copy, Clone)]
6948pub union rte_mbuf__bindgen_ty_2 {
6949    pub refcnt_atomic: rte_atomic16_t,
6950    pub refcnt: u16,
6951    _bindgen_union_align: u16,
6952}
6953#[test]
6954fn bindgen_test_layout_rte_mbuf__bindgen_ty_2() {
6955    assert_eq!(
6956        ::std::mem::size_of::<rte_mbuf__bindgen_ty_2>(),
6957        2usize,
6958        concat!("Size of: ", stringify!(rte_mbuf__bindgen_ty_2))
6959    );
6960    assert_eq!(
6961        ::std::mem::align_of::<rte_mbuf__bindgen_ty_2>(),
6962        2usize,
6963        concat!("Alignment of ", stringify!(rte_mbuf__bindgen_ty_2))
6964    );
6965    assert_eq!(
6966        unsafe {
6967            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_2>())).refcnt_atomic as *const _ as usize
6968        },
6969        0usize,
6970        concat!(
6971            "Offset of field: ",
6972            stringify!(rte_mbuf__bindgen_ty_2),
6973            "::",
6974            stringify!(refcnt_atomic)
6975        )
6976    );
6977    assert_eq!(
6978        unsafe { &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_2>())).refcnt as *const _ as usize },
6979        0usize,
6980        concat!(
6981            "Offset of field: ",
6982            stringify!(rte_mbuf__bindgen_ty_2),
6983            "::",
6984            stringify!(refcnt)
6985        )
6986    );
6987}
6988impl Default for rte_mbuf__bindgen_ty_2 {
6989    fn default() -> Self {
6990        unsafe { ::std::mem::zeroed() }
6991    }
6992}
6993#[repr(C)]
6994#[derive(Copy, Clone)]
6995pub union rte_mbuf__bindgen_ty_3 {
6996    pub packet_type: u32,
6997    pub __bindgen_anon_1: rte_mbuf__bindgen_ty_3__bindgen_ty_1,
6998    _bindgen_union_align: u32,
6999}
7000#[repr(C)]
7001#[repr(align(4))]
7002#[derive(Copy, Clone)]
7003pub struct rte_mbuf__bindgen_ty_3__bindgen_ty_1 {
7004    pub _bitfield_align_1: [u8; 0],
7005    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7006    pub __bindgen_anon_1: rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1,
7007    pub _bitfield_align_2: [u8; 0],
7008    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
7009}
7010#[repr(C)]
7011#[derive(Copy, Clone)]
7012pub union rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1 {
7013    pub inner_esp_next_proto: u8,
7014    pub __bindgen_anon_1: rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
7015    _bindgen_union_align: u8,
7016}
7017#[repr(C, packed)]
7018#[derive(Debug, Default, Copy, Clone, PartialEq)]
7019pub struct rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
7020    pub _bitfield_align_1: [u8; 0],
7021    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
7022}
7023#[test]
7024fn bindgen_test_layout_rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
7025    assert_eq!(
7026        ::std::mem::size_of::<rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
7027        1usize,
7028        concat!(
7029            "Size of: ",
7030            stringify!(rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
7031        )
7032    );
7033    assert_eq!(
7034        ::std::mem::align_of::<rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
7035        1usize,
7036        concat!(
7037            "Alignment of ",
7038            stringify!(rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
7039        )
7040    );
7041}
7042impl rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
7043    #[inline]
7044    pub fn inner_l2_type(&self) -> u8 {
7045        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7046    }
7047    #[inline]
7048    pub fn set_inner_l2_type(&mut self, val: u8) {
7049        unsafe {
7050            let val: u8 = ::std::mem::transmute(val);
7051            self._bitfield_1.set(0usize, 4u8, val as u64)
7052        }
7053    }
7054    #[inline]
7055    pub fn inner_l3_type(&self) -> u8 {
7056        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7057    }
7058    #[inline]
7059    pub fn set_inner_l3_type(&mut self, val: u8) {
7060        unsafe {
7061            let val: u8 = ::std::mem::transmute(val);
7062            self._bitfield_1.set(4usize, 4u8, val as u64)
7063        }
7064    }
7065    #[inline]
7066    pub fn new_bitfield_1(
7067        inner_l2_type: u8,
7068        inner_l3_type: u8,
7069    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
7070        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
7071        __bindgen_bitfield_unit.set(0usize, 4u8, {
7072            let inner_l2_type: u8 = unsafe { ::std::mem::transmute(inner_l2_type) };
7073            inner_l2_type as u64
7074        });
7075        __bindgen_bitfield_unit.set(4usize, 4u8, {
7076            let inner_l3_type: u8 = unsafe { ::std::mem::transmute(inner_l3_type) };
7077            inner_l3_type as u64
7078        });
7079        __bindgen_bitfield_unit
7080    }
7081}
7082#[test]
7083fn bindgen_test_layout_rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1() {
7084    assert_eq!(
7085        ::std::mem::size_of::<rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1>(),
7086        1usize,
7087        concat!(
7088            "Size of: ",
7089            stringify!(rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1)
7090        )
7091    );
7092    assert_eq!(
7093        ::std::mem::align_of::<rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1>(),
7094        1usize,
7095        concat!(
7096            "Alignment of ",
7097            stringify!(rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1)
7098        )
7099    );
7100    assert_eq!(
7101        unsafe {
7102            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1>()))
7103                .inner_esp_next_proto as *const _ as usize
7104        },
7105        0usize,
7106        concat!(
7107            "Offset of field: ",
7108            stringify!(rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1),
7109            "::",
7110            stringify!(inner_esp_next_proto)
7111        )
7112    );
7113}
7114impl Default for rte_mbuf__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1 {
7115    fn default() -> Self {
7116        unsafe { ::std::mem::zeroed() }
7117    }
7118}
7119#[test]
7120fn bindgen_test_layout_rte_mbuf__bindgen_ty_3__bindgen_ty_1() {
7121    assert_eq!(
7122        ::std::mem::size_of::<rte_mbuf__bindgen_ty_3__bindgen_ty_1>(),
7123        4usize,
7124        concat!(
7125            "Size of: ",
7126            stringify!(rte_mbuf__bindgen_ty_3__bindgen_ty_1)
7127        )
7128    );
7129    assert_eq!(
7130        ::std::mem::align_of::<rte_mbuf__bindgen_ty_3__bindgen_ty_1>(),
7131        4usize,
7132        concat!(
7133            "Alignment of ",
7134            stringify!(rte_mbuf__bindgen_ty_3__bindgen_ty_1)
7135        )
7136    );
7137}
7138impl Default for rte_mbuf__bindgen_ty_3__bindgen_ty_1 {
7139    fn default() -> Self {
7140        unsafe { ::std::mem::zeroed() }
7141    }
7142}
7143impl rte_mbuf__bindgen_ty_3__bindgen_ty_1 {
7144    #[inline]
7145    pub fn l2_type(&self) -> u32 {
7146        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
7147    }
7148    #[inline]
7149    pub fn set_l2_type(&mut self, val: u32) {
7150        unsafe {
7151            let val: u32 = ::std::mem::transmute(val);
7152            self._bitfield_1.set(0usize, 4u8, val as u64)
7153        }
7154    }
7155    #[inline]
7156    pub fn l3_type(&self) -> u32 {
7157        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u32) }
7158    }
7159    #[inline]
7160    pub fn set_l3_type(&mut self, val: u32) {
7161        unsafe {
7162            let val: u32 = ::std::mem::transmute(val);
7163            self._bitfield_1.set(4usize, 4u8, val as u64)
7164        }
7165    }
7166    #[inline]
7167    pub fn l4_type(&self) -> u32 {
7168        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u32) }
7169    }
7170    #[inline]
7171    pub fn set_l4_type(&mut self, val: u32) {
7172        unsafe {
7173            let val: u32 = ::std::mem::transmute(val);
7174            self._bitfield_1.set(8usize, 4u8, val as u64)
7175        }
7176    }
7177    #[inline]
7178    pub fn tun_type(&self) -> u32 {
7179        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u32) }
7180    }
7181    #[inline]
7182    pub fn set_tun_type(&mut self, val: u32) {
7183        unsafe {
7184            let val: u32 = ::std::mem::transmute(val);
7185            self._bitfield_1.set(12usize, 4u8, val as u64)
7186        }
7187    }
7188    #[inline]
7189    pub fn new_bitfield_1(
7190        l2_type: u32,
7191        l3_type: u32,
7192        l4_type: u32,
7193        tun_type: u32,
7194    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7195        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7196        __bindgen_bitfield_unit.set(0usize, 4u8, {
7197            let l2_type: u32 = unsafe { ::std::mem::transmute(l2_type) };
7198            l2_type as u64
7199        });
7200        __bindgen_bitfield_unit.set(4usize, 4u8, {
7201            let l3_type: u32 = unsafe { ::std::mem::transmute(l3_type) };
7202            l3_type as u64
7203        });
7204        __bindgen_bitfield_unit.set(8usize, 4u8, {
7205            let l4_type: u32 = unsafe { ::std::mem::transmute(l4_type) };
7206            l4_type as u64
7207        });
7208        __bindgen_bitfield_unit.set(12usize, 4u8, {
7209            let tun_type: u32 = unsafe { ::std::mem::transmute(tun_type) };
7210            tun_type as u64
7211        });
7212        __bindgen_bitfield_unit
7213    }
7214    #[inline]
7215    pub fn inner_l4_type(&self) -> u32 {
7216        unsafe { ::std::mem::transmute(self._bitfield_2.get(0usize, 4u8) as u32) }
7217    }
7218    #[inline]
7219    pub fn set_inner_l4_type(&mut self, val: u32) {
7220        unsafe {
7221            let val: u32 = ::std::mem::transmute(val);
7222            self._bitfield_2.set(0usize, 4u8, val as u64)
7223        }
7224    }
7225    #[inline]
7226    pub fn new_bitfield_2(inner_l4_type: u32) -> __BindgenBitfieldUnit<[u8; 1usize]> {
7227        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
7228        __bindgen_bitfield_unit.set(0usize, 4u8, {
7229            let inner_l4_type: u32 = unsafe { ::std::mem::transmute(inner_l4_type) };
7230            inner_l4_type as u64
7231        });
7232        __bindgen_bitfield_unit
7233    }
7234}
7235#[test]
7236fn bindgen_test_layout_rte_mbuf__bindgen_ty_3() {
7237    assert_eq!(
7238        ::std::mem::size_of::<rte_mbuf__bindgen_ty_3>(),
7239        4usize,
7240        concat!("Size of: ", stringify!(rte_mbuf__bindgen_ty_3))
7241    );
7242    assert_eq!(
7243        ::std::mem::align_of::<rte_mbuf__bindgen_ty_3>(),
7244        4usize,
7245        concat!("Alignment of ", stringify!(rte_mbuf__bindgen_ty_3))
7246    );
7247    assert_eq!(
7248        unsafe {
7249            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_3>())).packet_type as *const _ as usize
7250        },
7251        0usize,
7252        concat!(
7253            "Offset of field: ",
7254            stringify!(rte_mbuf__bindgen_ty_3),
7255            "::",
7256            stringify!(packet_type)
7257        )
7258    );
7259}
7260impl Default for rte_mbuf__bindgen_ty_3 {
7261    fn default() -> Self {
7262        unsafe { ::std::mem::zeroed() }
7263    }
7264}
7265#[repr(C)]
7266#[derive(Copy, Clone)]
7267pub union rte_mbuf__bindgen_ty_4 {
7268    pub hash: rte_mbuf__bindgen_ty_4__bindgen_ty_1,
7269    _bindgen_union_align: [u32; 2usize],
7270}
7271#[repr(C)]
7272#[derive(Copy, Clone)]
7273pub union rte_mbuf__bindgen_ty_4__bindgen_ty_1 {
7274    pub rss: u32,
7275    pub fdir: rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
7276    pub sched: rte_mbuf_sched,
7277    pub txadapter: rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2,
7278    pub usr: u32,
7279    _bindgen_union_align: [u32; 2usize],
7280}
7281#[repr(C)]
7282#[derive(Copy, Clone)]
7283pub struct rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
7284    pub __bindgen_anon_1: rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
7285    pub hi: u32,
7286}
7287#[repr(C)]
7288#[derive(Copy, Clone)]
7289pub union rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
7290    pub __bindgen_anon_1:
7291        rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
7292    pub lo: u32,
7293    _bindgen_union_align: u32,
7294}
7295#[repr(C)]
7296#[derive(Debug, Default, Copy, Clone, PartialEq)]
7297pub struct rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
7298    pub hash: u16,
7299    pub id: u16,
7300}
7301#[test]
7302fn bindgen_test_layout_rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1(
7303) {
7304    assert_eq!(
7305        ::std::mem::size_of::<
7306            rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
7307        >(),
7308        4usize,
7309        concat!(
7310            "Size of: ",
7311            stringify!(
7312                rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1
7313            )
7314        )
7315    );
7316    assert_eq!(
7317        ::std::mem::align_of::<
7318            rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
7319        >(),
7320        2usize,
7321        concat!(
7322            "Alignment of ",
7323            stringify!(
7324                rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1
7325            )
7326        )
7327    );
7328    assert_eq!(
7329        unsafe {
7330            &(*(::std::ptr::null::<
7331                rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
7332            >()))
7333            .hash as *const _ as usize
7334        },
7335        0usize,
7336        concat!(
7337            "Offset of field: ",
7338            stringify!(
7339                rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1
7340            ),
7341            "::",
7342            stringify!(hash)
7343        )
7344    );
7345    assert_eq!(
7346        unsafe {
7347            &(*(::std::ptr::null::<
7348                rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
7349            >()))
7350            .id as *const _ as usize
7351        },
7352        2usize,
7353        concat!(
7354            "Offset of field: ",
7355            stringify!(
7356                rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1
7357            ),
7358            "::",
7359            stringify!(id)
7360        )
7361    );
7362}
7363#[test]
7364fn bindgen_test_layout_rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
7365    assert_eq!(
7366        ::std::mem::size_of::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
7367        4usize,
7368        concat!(
7369            "Size of: ",
7370            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
7371        )
7372    );
7373    assert_eq!(
7374        ::std::mem::align_of::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
7375        4usize,
7376        concat!(
7377            "Alignment of ",
7378            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
7379        )
7380    );
7381    assert_eq!(
7382        unsafe {
7383            & (* (:: std :: ptr :: null :: < rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ())) . lo as * const _ as usize
7384        },
7385        0usize,
7386        concat!(
7387            "Offset of field: ",
7388            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
7389            "::",
7390            stringify!(lo)
7391        )
7392    );
7393}
7394impl Default for rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
7395    fn default() -> Self {
7396        unsafe { ::std::mem::zeroed() }
7397    }
7398}
7399#[test]
7400fn bindgen_test_layout_rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1() {
7401    assert_eq!(
7402        ::std::mem::size_of::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1>(),
7403        8usize,
7404        concat!(
7405            "Size of: ",
7406            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1)
7407        )
7408    );
7409    assert_eq!(
7410        ::std::mem::align_of::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1>(),
7411        4usize,
7412        concat!(
7413            "Alignment of ",
7414            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1)
7415        )
7416    );
7417    assert_eq!(
7418        unsafe {
7419            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1>())).hi
7420                as *const _ as usize
7421        },
7422        4usize,
7423        concat!(
7424            "Offset of field: ",
7425            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1),
7426            "::",
7427            stringify!(hi)
7428        )
7429    );
7430}
7431impl Default for rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
7432    fn default() -> Self {
7433        unsafe { ::std::mem::zeroed() }
7434    }
7435}
7436#[repr(C)]
7437#[derive(Debug, Default, Copy, Clone, PartialEq)]
7438pub struct rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2 {
7439    pub reserved1: u32,
7440    pub reserved2: u16,
7441    pub txq: u16,
7442}
7443#[test]
7444fn bindgen_test_layout_rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2() {
7445    assert_eq!(
7446        ::std::mem::size_of::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2>(),
7447        8usize,
7448        concat!(
7449            "Size of: ",
7450            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2)
7451        )
7452    );
7453    assert_eq!(
7454        ::std::mem::align_of::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2>(),
7455        4usize,
7456        concat!(
7457            "Alignment of ",
7458            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2)
7459        )
7460    );
7461    assert_eq!(
7462        unsafe {
7463            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2>())).reserved1
7464                as *const _ as usize
7465        },
7466        0usize,
7467        concat!(
7468            "Offset of field: ",
7469            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2),
7470            "::",
7471            stringify!(reserved1)
7472        )
7473    );
7474    assert_eq!(
7475        unsafe {
7476            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2>())).reserved2
7477                as *const _ as usize
7478        },
7479        4usize,
7480        concat!(
7481            "Offset of field: ",
7482            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2),
7483            "::",
7484            stringify!(reserved2)
7485        )
7486    );
7487    assert_eq!(
7488        unsafe {
7489            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2>())).txq
7490                as *const _ as usize
7491        },
7492        6usize,
7493        concat!(
7494            "Offset of field: ",
7495            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2),
7496            "::",
7497            stringify!(txq)
7498        )
7499    );
7500}
7501#[test]
7502fn bindgen_test_layout_rte_mbuf__bindgen_ty_4__bindgen_ty_1() {
7503    assert_eq!(
7504        ::std::mem::size_of::<rte_mbuf__bindgen_ty_4__bindgen_ty_1>(),
7505        8usize,
7506        concat!(
7507            "Size of: ",
7508            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1)
7509        )
7510    );
7511    assert_eq!(
7512        ::std::mem::align_of::<rte_mbuf__bindgen_ty_4__bindgen_ty_1>(),
7513        4usize,
7514        concat!(
7515            "Alignment of ",
7516            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1)
7517        )
7518    );
7519    assert_eq!(
7520        unsafe {
7521            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4__bindgen_ty_1>())).rss as *const _
7522                as usize
7523        },
7524        0usize,
7525        concat!(
7526            "Offset of field: ",
7527            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1),
7528            "::",
7529            stringify!(rss)
7530        )
7531    );
7532    assert_eq!(
7533        unsafe {
7534            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4__bindgen_ty_1>())).fdir as *const _
7535                as usize
7536        },
7537        0usize,
7538        concat!(
7539            "Offset of field: ",
7540            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1),
7541            "::",
7542            stringify!(fdir)
7543        )
7544    );
7545    assert_eq!(
7546        unsafe {
7547            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4__bindgen_ty_1>())).sched as *const _
7548                as usize
7549        },
7550        0usize,
7551        concat!(
7552            "Offset of field: ",
7553            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1),
7554            "::",
7555            stringify!(sched)
7556        )
7557    );
7558    assert_eq!(
7559        unsafe {
7560            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4__bindgen_ty_1>())).txadapter as *const _
7561                as usize
7562        },
7563        0usize,
7564        concat!(
7565            "Offset of field: ",
7566            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1),
7567            "::",
7568            stringify!(txadapter)
7569        )
7570    );
7571    assert_eq!(
7572        unsafe {
7573            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4__bindgen_ty_1>())).usr as *const _
7574                as usize
7575        },
7576        0usize,
7577        concat!(
7578            "Offset of field: ",
7579            stringify!(rte_mbuf__bindgen_ty_4__bindgen_ty_1),
7580            "::",
7581            stringify!(usr)
7582        )
7583    );
7584}
7585impl Default for rte_mbuf__bindgen_ty_4__bindgen_ty_1 {
7586    fn default() -> Self {
7587        unsafe { ::std::mem::zeroed() }
7588    }
7589}
7590#[test]
7591fn bindgen_test_layout_rte_mbuf__bindgen_ty_4() {
7592    assert_eq!(
7593        ::std::mem::size_of::<rte_mbuf__bindgen_ty_4>(),
7594        8usize,
7595        concat!("Size of: ", stringify!(rte_mbuf__bindgen_ty_4))
7596    );
7597    assert_eq!(
7598        ::std::mem::align_of::<rte_mbuf__bindgen_ty_4>(),
7599        4usize,
7600        concat!("Alignment of ", stringify!(rte_mbuf__bindgen_ty_4))
7601    );
7602    assert_eq!(
7603        unsafe { &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_4>())).hash as *const _ as usize },
7604        0usize,
7605        concat!(
7606            "Offset of field: ",
7607            stringify!(rte_mbuf__bindgen_ty_4),
7608            "::",
7609            stringify!(hash)
7610        )
7611    );
7612}
7613impl Default for rte_mbuf__bindgen_ty_4 {
7614    fn default() -> Self {
7615        unsafe { ::std::mem::zeroed() }
7616    }
7617}
7618#[repr(C)]
7619#[derive(Copy, Clone)]
7620pub union rte_mbuf__bindgen_ty_5 {
7621    pub userdata: *mut ::std::os::raw::c_void,
7622    pub udata64: u64,
7623    _bindgen_union_align: u64,
7624}
7625#[test]
7626fn bindgen_test_layout_rte_mbuf__bindgen_ty_5() {
7627    assert_eq!(
7628        ::std::mem::size_of::<rte_mbuf__bindgen_ty_5>(),
7629        8usize,
7630        concat!("Size of: ", stringify!(rte_mbuf__bindgen_ty_5))
7631    );
7632    assert_eq!(
7633        ::std::mem::align_of::<rte_mbuf__bindgen_ty_5>(),
7634        8usize,
7635        concat!("Alignment of ", stringify!(rte_mbuf__bindgen_ty_5))
7636    );
7637    assert_eq!(
7638        unsafe { &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_5>())).userdata as *const _ as usize },
7639        0usize,
7640        concat!(
7641            "Offset of field: ",
7642            stringify!(rte_mbuf__bindgen_ty_5),
7643            "::",
7644            stringify!(userdata)
7645        )
7646    );
7647    assert_eq!(
7648        unsafe { &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_5>())).udata64 as *const _ as usize },
7649        0usize,
7650        concat!(
7651            "Offset of field: ",
7652            stringify!(rte_mbuf__bindgen_ty_5),
7653            "::",
7654            stringify!(udata64)
7655        )
7656    );
7657}
7658impl Default for rte_mbuf__bindgen_ty_5 {
7659    fn default() -> Self {
7660        unsafe { ::std::mem::zeroed() }
7661    }
7662}
7663#[repr(C)]
7664#[derive(Copy, Clone)]
7665pub union rte_mbuf__bindgen_ty_6 {
7666    pub tx_offload: u64,
7667    pub __bindgen_anon_1: rte_mbuf__bindgen_ty_6__bindgen_ty_1,
7668    _bindgen_union_align: u64,
7669}
7670#[repr(C)]
7671#[repr(align(8))]
7672#[derive(Debug, Default, Copy, Clone, PartialEq)]
7673pub struct rte_mbuf__bindgen_ty_6__bindgen_ty_1 {
7674    pub _bitfield_align_1: [u16; 0],
7675    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>,
7676}
7677#[test]
7678fn bindgen_test_layout_rte_mbuf__bindgen_ty_6__bindgen_ty_1() {
7679    assert_eq!(
7680        ::std::mem::size_of::<rte_mbuf__bindgen_ty_6__bindgen_ty_1>(),
7681        8usize,
7682        concat!(
7683            "Size of: ",
7684            stringify!(rte_mbuf__bindgen_ty_6__bindgen_ty_1)
7685        )
7686    );
7687    assert_eq!(
7688        ::std::mem::align_of::<rte_mbuf__bindgen_ty_6__bindgen_ty_1>(),
7689        8usize,
7690        concat!(
7691            "Alignment of ",
7692            stringify!(rte_mbuf__bindgen_ty_6__bindgen_ty_1)
7693        )
7694    );
7695}
7696impl rte_mbuf__bindgen_ty_6__bindgen_ty_1 {
7697    #[inline]
7698    pub fn l2_len(&self) -> u64 {
7699        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 7u8) as u64) }
7700    }
7701    #[inline]
7702    pub fn set_l2_len(&mut self, val: u64) {
7703        unsafe {
7704            let val: u64 = ::std::mem::transmute(val);
7705            self._bitfield_1.set(0usize, 7u8, val as u64)
7706        }
7707    }
7708    #[inline]
7709    pub fn l3_len(&self) -> u64 {
7710        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 9u8) as u64) }
7711    }
7712    #[inline]
7713    pub fn set_l3_len(&mut self, val: u64) {
7714        unsafe {
7715            let val: u64 = ::std::mem::transmute(val);
7716            self._bitfield_1.set(7usize, 9u8, val as u64)
7717        }
7718    }
7719    #[inline]
7720    pub fn l4_len(&self) -> u64 {
7721        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 8u8) as u64) }
7722    }
7723    #[inline]
7724    pub fn set_l4_len(&mut self, val: u64) {
7725        unsafe {
7726            let val: u64 = ::std::mem::transmute(val);
7727            self._bitfield_1.set(16usize, 8u8, val as u64)
7728        }
7729    }
7730    #[inline]
7731    pub fn tso_segsz(&self) -> u64 {
7732        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 16u8) as u64) }
7733    }
7734    #[inline]
7735    pub fn set_tso_segsz(&mut self, val: u64) {
7736        unsafe {
7737            let val: u64 = ::std::mem::transmute(val);
7738            self._bitfield_1.set(24usize, 16u8, val as u64)
7739        }
7740    }
7741    #[inline]
7742    pub fn outer_l3_len(&self) -> u64 {
7743        unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 9u8) as u64) }
7744    }
7745    #[inline]
7746    pub fn set_outer_l3_len(&mut self, val: u64) {
7747        unsafe {
7748            let val: u64 = ::std::mem::transmute(val);
7749            self._bitfield_1.set(40usize, 9u8, val as u64)
7750        }
7751    }
7752    #[inline]
7753    pub fn outer_l2_len(&self) -> u64 {
7754        unsafe { ::std::mem::transmute(self._bitfield_1.get(49usize, 7u8) as u64) }
7755    }
7756    #[inline]
7757    pub fn set_outer_l2_len(&mut self, val: u64) {
7758        unsafe {
7759            let val: u64 = ::std::mem::transmute(val);
7760            self._bitfield_1.set(49usize, 7u8, val as u64)
7761        }
7762    }
7763    #[inline]
7764    pub fn new_bitfield_1(
7765        l2_len: u64,
7766        l3_len: u64,
7767        l4_len: u64,
7768        tso_segsz: u64,
7769        outer_l3_len: u64,
7770        outer_l2_len: u64,
7771    ) -> __BindgenBitfieldUnit<[u8; 7usize]> {
7772        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default();
7773        __bindgen_bitfield_unit.set(0usize, 7u8, {
7774            let l2_len: u64 = unsafe { ::std::mem::transmute(l2_len) };
7775            l2_len as u64
7776        });
7777        __bindgen_bitfield_unit.set(7usize, 9u8, {
7778            let l3_len: u64 = unsafe { ::std::mem::transmute(l3_len) };
7779            l3_len as u64
7780        });
7781        __bindgen_bitfield_unit.set(16usize, 8u8, {
7782            let l4_len: u64 = unsafe { ::std::mem::transmute(l4_len) };
7783            l4_len as u64
7784        });
7785        __bindgen_bitfield_unit.set(24usize, 16u8, {
7786            let tso_segsz: u64 = unsafe { ::std::mem::transmute(tso_segsz) };
7787            tso_segsz as u64
7788        });
7789        __bindgen_bitfield_unit.set(40usize, 9u8, {
7790            let outer_l3_len: u64 = unsafe { ::std::mem::transmute(outer_l3_len) };
7791            outer_l3_len as u64
7792        });
7793        __bindgen_bitfield_unit.set(49usize, 7u8, {
7794            let outer_l2_len: u64 = unsafe { ::std::mem::transmute(outer_l2_len) };
7795            outer_l2_len as u64
7796        });
7797        __bindgen_bitfield_unit
7798    }
7799}
7800#[test]
7801fn bindgen_test_layout_rte_mbuf__bindgen_ty_6() {
7802    assert_eq!(
7803        ::std::mem::size_of::<rte_mbuf__bindgen_ty_6>(),
7804        8usize,
7805        concat!("Size of: ", stringify!(rte_mbuf__bindgen_ty_6))
7806    );
7807    assert_eq!(
7808        ::std::mem::align_of::<rte_mbuf__bindgen_ty_6>(),
7809        8usize,
7810        concat!("Alignment of ", stringify!(rte_mbuf__bindgen_ty_6))
7811    );
7812    assert_eq!(
7813        unsafe {
7814            &(*(::std::ptr::null::<rte_mbuf__bindgen_ty_6>())).tx_offload as *const _ as usize
7815        },
7816        0usize,
7817        concat!(
7818            "Offset of field: ",
7819            stringify!(rte_mbuf__bindgen_ty_6),
7820            "::",
7821            stringify!(tx_offload)
7822        )
7823    );
7824}
7825impl Default for rte_mbuf__bindgen_ty_6 {
7826    fn default() -> Self {
7827        unsafe { ::std::mem::zeroed() }
7828    }
7829}
7830#[test]
7831fn bindgen_test_layout_rte_mbuf() {
7832    assert_eq!(
7833        ::std::mem::size_of::<rte_mbuf>(),
7834        128usize,
7835        concat!("Size of: ", stringify!(rte_mbuf))
7836    );
7837    assert_eq!(
7838        ::std::mem::align_of::<rte_mbuf>(),
7839        64usize,
7840        concat!("Alignment of ", stringify!(rte_mbuf))
7841    );
7842    assert_eq!(
7843        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).cacheline0 as *const _ as usize },
7844        0usize,
7845        concat!(
7846            "Offset of field: ",
7847            stringify!(rte_mbuf),
7848            "::",
7849            stringify!(cacheline0)
7850        )
7851    );
7852    assert_eq!(
7853        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).buf_addr as *const _ as usize },
7854        0usize,
7855        concat!(
7856            "Offset of field: ",
7857            stringify!(rte_mbuf),
7858            "::",
7859            stringify!(buf_addr)
7860        )
7861    );
7862    assert_eq!(
7863        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).rearm_data as *const _ as usize },
7864        16usize,
7865        concat!(
7866            "Offset of field: ",
7867            stringify!(rte_mbuf),
7868            "::",
7869            stringify!(rearm_data)
7870        )
7871    );
7872    assert_eq!(
7873        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).data_off as *const _ as usize },
7874        16usize,
7875        concat!(
7876            "Offset of field: ",
7877            stringify!(rte_mbuf),
7878            "::",
7879            stringify!(data_off)
7880        )
7881    );
7882    assert_eq!(
7883        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).nb_segs as *const _ as usize },
7884        20usize,
7885        concat!(
7886            "Offset of field: ",
7887            stringify!(rte_mbuf),
7888            "::",
7889            stringify!(nb_segs)
7890        )
7891    );
7892    assert_eq!(
7893        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).port as *const _ as usize },
7894        22usize,
7895        concat!(
7896            "Offset of field: ",
7897            stringify!(rte_mbuf),
7898            "::",
7899            stringify!(port)
7900        )
7901    );
7902    assert_eq!(
7903        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).ol_flags as *const _ as usize },
7904        24usize,
7905        concat!(
7906            "Offset of field: ",
7907            stringify!(rte_mbuf),
7908            "::",
7909            stringify!(ol_flags)
7910        )
7911    );
7912    assert_eq!(
7913        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).rx_descriptor_fields1 as *const _ as usize },
7914        32usize,
7915        concat!(
7916            "Offset of field: ",
7917            stringify!(rte_mbuf),
7918            "::",
7919            stringify!(rx_descriptor_fields1)
7920        )
7921    );
7922    assert_eq!(
7923        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).pkt_len as *const _ as usize },
7924        36usize,
7925        concat!(
7926            "Offset of field: ",
7927            stringify!(rte_mbuf),
7928            "::",
7929            stringify!(pkt_len)
7930        )
7931    );
7932    assert_eq!(
7933        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).data_len as *const _ as usize },
7934        40usize,
7935        concat!(
7936            "Offset of field: ",
7937            stringify!(rte_mbuf),
7938            "::",
7939            stringify!(data_len)
7940        )
7941    );
7942    assert_eq!(
7943        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).vlan_tci as *const _ as usize },
7944        42usize,
7945        concat!(
7946            "Offset of field: ",
7947            stringify!(rte_mbuf),
7948            "::",
7949            stringify!(vlan_tci)
7950        )
7951    );
7952    assert_eq!(
7953        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).vlan_tci_outer as *const _ as usize },
7954        52usize,
7955        concat!(
7956            "Offset of field: ",
7957            stringify!(rte_mbuf),
7958            "::",
7959            stringify!(vlan_tci_outer)
7960        )
7961    );
7962    assert_eq!(
7963        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).buf_len as *const _ as usize },
7964        54usize,
7965        concat!(
7966            "Offset of field: ",
7967            stringify!(rte_mbuf),
7968            "::",
7969            stringify!(buf_len)
7970        )
7971    );
7972    assert_eq!(
7973        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).timestamp as *const _ as usize },
7974        56usize,
7975        concat!(
7976            "Offset of field: ",
7977            stringify!(rte_mbuf),
7978            "::",
7979            stringify!(timestamp)
7980        )
7981    );
7982    assert_eq!(
7983        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).cacheline1 as *const _ as usize },
7984        64usize,
7985        concat!(
7986            "Offset of field: ",
7987            stringify!(rte_mbuf),
7988            "::",
7989            stringify!(cacheline1)
7990        )
7991    );
7992    assert_eq!(
7993        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).pool as *const _ as usize },
7994        72usize,
7995        concat!(
7996            "Offset of field: ",
7997            stringify!(rte_mbuf),
7998            "::",
7999            stringify!(pool)
8000        )
8001    );
8002    assert_eq!(
8003        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).next as *const _ as usize },
8004        80usize,
8005        concat!(
8006            "Offset of field: ",
8007            stringify!(rte_mbuf),
8008            "::",
8009            stringify!(next)
8010        )
8011    );
8012    assert_eq!(
8013        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).priv_size as *const _ as usize },
8014        96usize,
8015        concat!(
8016            "Offset of field: ",
8017            stringify!(rte_mbuf),
8018            "::",
8019            stringify!(priv_size)
8020        )
8021    );
8022    assert_eq!(
8023        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).timesync as *const _ as usize },
8024        98usize,
8025        concat!(
8026            "Offset of field: ",
8027            stringify!(rte_mbuf),
8028            "::",
8029            stringify!(timesync)
8030        )
8031    );
8032    assert_eq!(
8033        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).seqn as *const _ as usize },
8034        100usize,
8035        concat!(
8036            "Offset of field: ",
8037            stringify!(rte_mbuf),
8038            "::",
8039            stringify!(seqn)
8040        )
8041    );
8042    assert_eq!(
8043        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).shinfo as *const _ as usize },
8044        104usize,
8045        concat!(
8046            "Offset of field: ",
8047            stringify!(rte_mbuf),
8048            "::",
8049            stringify!(shinfo)
8050        )
8051    );
8052    assert_eq!(
8053        unsafe { &(*(::std::ptr::null::<rte_mbuf>())).dynfield1 as *const _ as usize },
8054        112usize,
8055        concat!(
8056            "Offset of field: ",
8057            stringify!(rte_mbuf),
8058            "::",
8059            stringify!(dynfield1)
8060        )
8061    );
8062}
8063impl Default for rte_mbuf {
8064    fn default() -> Self {
8065        unsafe { ::std::mem::zeroed() }
8066    }
8067}
8068pub type rte_mbuf_extbuf_free_callback_t = ::std::option::Option<
8069    unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void, opaque: *mut ::std::os::raw::c_void),
8070>;
8071#[repr(C)]
8072#[derive(Debug, Copy, Clone, PartialEq)]
8073pub struct rte_mbuf_ext_shared_info {
8074    pub free_cb: rte_mbuf_extbuf_free_callback_t,
8075    pub fcb_opaque: *mut ::std::os::raw::c_void,
8076    pub refcnt_atomic: rte_atomic16_t,
8077}
8078#[test]
8079fn bindgen_test_layout_rte_mbuf_ext_shared_info() {
8080    assert_eq!(
8081        ::std::mem::size_of::<rte_mbuf_ext_shared_info>(),
8082        24usize,
8083        concat!("Size of: ", stringify!(rte_mbuf_ext_shared_info))
8084    );
8085    assert_eq!(
8086        ::std::mem::align_of::<rte_mbuf_ext_shared_info>(),
8087        8usize,
8088        concat!("Alignment of ", stringify!(rte_mbuf_ext_shared_info))
8089    );
8090    assert_eq!(
8091        unsafe {
8092            &(*(::std::ptr::null::<rte_mbuf_ext_shared_info>())).free_cb as *const _ as usize
8093        },
8094        0usize,
8095        concat!(
8096            "Offset of field: ",
8097            stringify!(rte_mbuf_ext_shared_info),
8098            "::",
8099            stringify!(free_cb)
8100        )
8101    );
8102    assert_eq!(
8103        unsafe {
8104            &(*(::std::ptr::null::<rte_mbuf_ext_shared_info>())).fcb_opaque as *const _ as usize
8105        },
8106        8usize,
8107        concat!(
8108            "Offset of field: ",
8109            stringify!(rte_mbuf_ext_shared_info),
8110            "::",
8111            stringify!(fcb_opaque)
8112        )
8113    );
8114    assert_eq!(
8115        unsafe {
8116            &(*(::std::ptr::null::<rte_mbuf_ext_shared_info>())).refcnt_atomic as *const _ as usize
8117        },
8118        16usize,
8119        concat!(
8120            "Offset of field: ",
8121            stringify!(rte_mbuf_ext_shared_info),
8122            "::",
8123            stringify!(refcnt_atomic)
8124        )
8125    );
8126}
8127impl Default for rte_mbuf_ext_shared_info {
8128    fn default() -> Self {
8129        unsafe { ::std::mem::zeroed() }
8130    }
8131}
8132extern "C" {
8133    pub fn rte_get_rx_ol_flag_name(mask: u64) -> *const ::std::os::raw::c_char;
8134}
8135extern "C" {
8136    pub fn rte_get_rx_ol_flag_list(
8137        mask: u64,
8138        buf: *mut ::std::os::raw::c_char,
8139        buflen: size_t,
8140    ) -> ::std::os::raw::c_int;
8141}
8142extern "C" {
8143    pub fn rte_get_tx_ol_flag_name(mask: u64) -> *const ::std::os::raw::c_char;
8144}
8145extern "C" {
8146    pub fn rte_get_tx_ol_flag_list(
8147        mask: u64,
8148        buf: *mut ::std::os::raw::c_char,
8149        buflen: size_t,
8150    ) -> ::std::os::raw::c_int;
8151}
8152#[repr(C)]
8153#[derive(Debug, Default, Copy, Clone, PartialEq)]
8154pub struct rte_pktmbuf_pool_private {
8155    pub mbuf_data_room_size: u16,
8156    pub mbuf_priv_size: u16,
8157    pub flags: u32,
8158}
8159#[test]
8160fn bindgen_test_layout_rte_pktmbuf_pool_private() {
8161    assert_eq!(
8162        ::std::mem::size_of::<rte_pktmbuf_pool_private>(),
8163        8usize,
8164        concat!("Size of: ", stringify!(rte_pktmbuf_pool_private))
8165    );
8166    assert_eq!(
8167        ::std::mem::align_of::<rte_pktmbuf_pool_private>(),
8168        4usize,
8169        concat!("Alignment of ", stringify!(rte_pktmbuf_pool_private))
8170    );
8171    assert_eq!(
8172        unsafe {
8173            &(*(::std::ptr::null::<rte_pktmbuf_pool_private>())).mbuf_data_room_size as *const _
8174                as usize
8175        },
8176        0usize,
8177        concat!(
8178            "Offset of field: ",
8179            stringify!(rte_pktmbuf_pool_private),
8180            "::",
8181            stringify!(mbuf_data_room_size)
8182        )
8183    );
8184    assert_eq!(
8185        unsafe {
8186            &(*(::std::ptr::null::<rte_pktmbuf_pool_private>())).mbuf_priv_size as *const _ as usize
8187        },
8188        2usize,
8189        concat!(
8190            "Offset of field: ",
8191            stringify!(rte_pktmbuf_pool_private),
8192            "::",
8193            stringify!(mbuf_priv_size)
8194        )
8195    );
8196    assert_eq!(
8197        unsafe { &(*(::std::ptr::null::<rte_pktmbuf_pool_private>())).flags as *const _ as usize },
8198        4usize,
8199        concat!(
8200            "Offset of field: ",
8201            stringify!(rte_pktmbuf_pool_private),
8202            "::",
8203            stringify!(flags)
8204        )
8205    );
8206}
8207extern "C" {
8208    pub fn rte_mbuf_sanity_check(m: *const rte_mbuf, is_header: ::std::os::raw::c_int);
8209}
8210extern "C" {
8211    pub fn rte_mbuf_check(
8212        m: *const rte_mbuf,
8213        is_header: ::std::os::raw::c_int,
8214        reason: *mut *const ::std::os::raw::c_char,
8215    ) -> ::std::os::raw::c_int;
8216}
8217extern "C" {
8218    pub fn rte_pktmbuf_init(
8219        mp: *mut rte_mempool,
8220        opaque_arg: *mut ::std::os::raw::c_void,
8221        m: *mut ::std::os::raw::c_void,
8222        i: ::std::os::raw::c_uint,
8223    );
8224}
8225extern "C" {
8226    pub fn rte_pktmbuf_pool_init(mp: *mut rte_mempool, opaque_arg: *mut ::std::os::raw::c_void);
8227}
8228extern "C" {
8229    pub fn rte_pktmbuf_pool_create(
8230        name: *const ::std::os::raw::c_char,
8231        n: ::std::os::raw::c_uint,
8232        cache_size: ::std::os::raw::c_uint,
8233        priv_size: u16,
8234        data_room_size: u16,
8235        socket_id: ::std::os::raw::c_int,
8236    ) -> *mut rte_mempool;
8237}
8238extern "C" {
8239    pub fn rte_pktmbuf_pool_create_by_ops(
8240        name: *const ::std::os::raw::c_char,
8241        n: ::std::os::raw::c_uint,
8242        cache_size: ::std::os::raw::c_uint,
8243        priv_size: u16,
8244        data_room_size: u16,
8245        socket_id: ::std::os::raw::c_int,
8246        ops_name: *const ::std::os::raw::c_char,
8247    ) -> *mut rte_mempool;
8248}
8249extern "C" {
8250    pub fn rte_pktmbuf_free_bulk(mbufs: *mut *mut rte_mbuf, count: ::std::os::raw::c_uint);
8251}
8252extern "C" {
8253    pub fn rte_pktmbuf_clone(md: *mut rte_mbuf, mp: *mut rte_mempool) -> *mut rte_mbuf;
8254}
8255extern "C" {
8256    pub fn rte_pktmbuf_copy(
8257        m: *const rte_mbuf,
8258        mp: *mut rte_mempool,
8259        offset: u32,
8260        length: u32,
8261    ) -> *mut rte_mbuf;
8262}
8263extern "C" {
8264    pub fn rte_pktmbuf_dump(f: *mut FILE, m: *const rte_mbuf, dump_len: ::std::os::raw::c_uint);
8265}
8266#[repr(C)]
8267#[repr(align(2))]
8268#[derive(Debug, Default, Copy, Clone, PartialEq)]
8269pub struct rte_ether_addr {
8270    pub addr_bytes: [u8; 6usize],
8271}
8272#[test]
8273fn bindgen_test_layout_rte_ether_addr() {
8274    assert_eq!(
8275        ::std::mem::size_of::<rte_ether_addr>(),
8276        6usize,
8277        concat!("Size of: ", stringify!(rte_ether_addr))
8278    );
8279    assert_eq!(
8280        ::std::mem::align_of::<rte_ether_addr>(),
8281        2usize,
8282        concat!("Alignment of ", stringify!(rte_ether_addr))
8283    );
8284    assert_eq!(
8285        unsafe { &(*(::std::ptr::null::<rte_ether_addr>())).addr_bytes as *const _ as usize },
8286        0usize,
8287        concat!(
8288            "Offset of field: ",
8289            stringify!(rte_ether_addr),
8290            "::",
8291            stringify!(addr_bytes)
8292        )
8293    );
8294}
8295extern "C" {
8296    pub fn rte_eth_random_addr(addr: *mut u8);
8297}
8298extern "C" {
8299    pub fn rte_ether_format_addr(
8300        buf: *mut ::std::os::raw::c_char,
8301        size: u16,
8302        eth_addr: *const rte_ether_addr,
8303    );
8304}
8305extern "C" {
8306    pub fn rte_ether_unformat_addr(
8307        str_: *const ::std::os::raw::c_char,
8308        eth_addr: *mut rte_ether_addr,
8309    ) -> ::std::os::raw::c_int;
8310}
8311#[repr(C)]
8312#[derive(Debug, Default, Copy, Clone, PartialEq)]
8313pub struct rte_ether_hdr {
8314    pub d_addr: rte_ether_addr,
8315    pub s_addr: rte_ether_addr,
8316    pub ether_type: u16,
8317}
8318#[test]
8319fn bindgen_test_layout_rte_ether_hdr() {
8320    assert_eq!(
8321        ::std::mem::size_of::<rte_ether_hdr>(),
8322        14usize,
8323        concat!("Size of: ", stringify!(rte_ether_hdr))
8324    );
8325    assert_eq!(
8326        ::std::mem::align_of::<rte_ether_hdr>(),
8327        2usize,
8328        concat!("Alignment of ", stringify!(rte_ether_hdr))
8329    );
8330    assert_eq!(
8331        unsafe { &(*(::std::ptr::null::<rte_ether_hdr>())).d_addr as *const _ as usize },
8332        0usize,
8333        concat!(
8334            "Offset of field: ",
8335            stringify!(rte_ether_hdr),
8336            "::",
8337            stringify!(d_addr)
8338        )
8339    );
8340    assert_eq!(
8341        unsafe { &(*(::std::ptr::null::<rte_ether_hdr>())).s_addr as *const _ as usize },
8342        6usize,
8343        concat!(
8344            "Offset of field: ",
8345            stringify!(rte_ether_hdr),
8346            "::",
8347            stringify!(s_addr)
8348        )
8349    );
8350    assert_eq!(
8351        unsafe { &(*(::std::ptr::null::<rte_ether_hdr>())).ether_type as *const _ as usize },
8352        12usize,
8353        concat!(
8354            "Offset of field: ",
8355            stringify!(rte_ether_hdr),
8356            "::",
8357            stringify!(ether_type)
8358        )
8359    );
8360}
8361#[repr(C, packed)]
8362#[derive(Debug, Default, Copy, Clone, PartialEq)]
8363pub struct rte_vlan_hdr {
8364    pub vlan_tci: u16,
8365    pub eth_proto: u16,
8366}
8367#[test]
8368fn bindgen_test_layout_rte_vlan_hdr() {
8369    assert_eq!(
8370        ::std::mem::size_of::<rte_vlan_hdr>(),
8371        4usize,
8372        concat!("Size of: ", stringify!(rte_vlan_hdr))
8373    );
8374    assert_eq!(
8375        ::std::mem::align_of::<rte_vlan_hdr>(),
8376        1usize,
8377        concat!("Alignment of ", stringify!(rte_vlan_hdr))
8378    );
8379    assert_eq!(
8380        unsafe { &(*(::std::ptr::null::<rte_vlan_hdr>())).vlan_tci as *const _ as usize },
8381        0usize,
8382        concat!(
8383            "Offset of field: ",
8384            stringify!(rte_vlan_hdr),
8385            "::",
8386            stringify!(vlan_tci)
8387        )
8388    );
8389    assert_eq!(
8390        unsafe { &(*(::std::ptr::null::<rte_vlan_hdr>())).eth_proto as *const _ as usize },
8391        2usize,
8392        concat!(
8393            "Offset of field: ",
8394            stringify!(rte_vlan_hdr),
8395            "::",
8396            stringify!(eth_proto)
8397        )
8398    );
8399}
8400#[repr(C)]
8401#[derive(Debug, Copy, Clone, PartialEq)]
8402pub struct rte_dev_reg_info {
8403    pub data: *mut ::std::os::raw::c_void,
8404    pub offset: u32,
8405    pub length: u32,
8406    pub width: u32,
8407    pub version: u32,
8408}
8409#[test]
8410fn bindgen_test_layout_rte_dev_reg_info() {
8411    assert_eq!(
8412        ::std::mem::size_of::<rte_dev_reg_info>(),
8413        24usize,
8414        concat!("Size of: ", stringify!(rte_dev_reg_info))
8415    );
8416    assert_eq!(
8417        ::std::mem::align_of::<rte_dev_reg_info>(),
8418        8usize,
8419        concat!("Alignment of ", stringify!(rte_dev_reg_info))
8420    );
8421    assert_eq!(
8422        unsafe { &(*(::std::ptr::null::<rte_dev_reg_info>())).data as *const _ as usize },
8423        0usize,
8424        concat!(
8425            "Offset of field: ",
8426            stringify!(rte_dev_reg_info),
8427            "::",
8428            stringify!(data)
8429        )
8430    );
8431    assert_eq!(
8432        unsafe { &(*(::std::ptr::null::<rte_dev_reg_info>())).offset as *const _ as usize },
8433        8usize,
8434        concat!(
8435            "Offset of field: ",
8436            stringify!(rte_dev_reg_info),
8437            "::",
8438            stringify!(offset)
8439        )
8440    );
8441    assert_eq!(
8442        unsafe { &(*(::std::ptr::null::<rte_dev_reg_info>())).length as *const _ as usize },
8443        12usize,
8444        concat!(
8445            "Offset of field: ",
8446            stringify!(rte_dev_reg_info),
8447            "::",
8448            stringify!(length)
8449        )
8450    );
8451    assert_eq!(
8452        unsafe { &(*(::std::ptr::null::<rte_dev_reg_info>())).width as *const _ as usize },
8453        16usize,
8454        concat!(
8455            "Offset of field: ",
8456            stringify!(rte_dev_reg_info),
8457            "::",
8458            stringify!(width)
8459        )
8460    );
8461    assert_eq!(
8462        unsafe { &(*(::std::ptr::null::<rte_dev_reg_info>())).version as *const _ as usize },
8463        20usize,
8464        concat!(
8465            "Offset of field: ",
8466            stringify!(rte_dev_reg_info),
8467            "::",
8468            stringify!(version)
8469        )
8470    );
8471}
8472impl Default for rte_dev_reg_info {
8473    fn default() -> Self {
8474        unsafe { ::std::mem::zeroed() }
8475    }
8476}
8477#[repr(C)]
8478#[derive(Debug, Copy, Clone, PartialEq)]
8479pub struct rte_dev_eeprom_info {
8480    pub data: *mut ::std::os::raw::c_void,
8481    pub offset: u32,
8482    pub length: u32,
8483    pub magic: u32,
8484}
8485#[test]
8486fn bindgen_test_layout_rte_dev_eeprom_info() {
8487    assert_eq!(
8488        ::std::mem::size_of::<rte_dev_eeprom_info>(),
8489        24usize,
8490        concat!("Size of: ", stringify!(rte_dev_eeprom_info))
8491    );
8492    assert_eq!(
8493        ::std::mem::align_of::<rte_dev_eeprom_info>(),
8494        8usize,
8495        concat!("Alignment of ", stringify!(rte_dev_eeprom_info))
8496    );
8497    assert_eq!(
8498        unsafe { &(*(::std::ptr::null::<rte_dev_eeprom_info>())).data as *const _ as usize },
8499        0usize,
8500        concat!(
8501            "Offset of field: ",
8502            stringify!(rte_dev_eeprom_info),
8503            "::",
8504            stringify!(data)
8505        )
8506    );
8507    assert_eq!(
8508        unsafe { &(*(::std::ptr::null::<rte_dev_eeprom_info>())).offset as *const _ as usize },
8509        8usize,
8510        concat!(
8511            "Offset of field: ",
8512            stringify!(rte_dev_eeprom_info),
8513            "::",
8514            stringify!(offset)
8515        )
8516    );
8517    assert_eq!(
8518        unsafe { &(*(::std::ptr::null::<rte_dev_eeprom_info>())).length as *const _ as usize },
8519        12usize,
8520        concat!(
8521            "Offset of field: ",
8522            stringify!(rte_dev_eeprom_info),
8523            "::",
8524            stringify!(length)
8525        )
8526    );
8527    assert_eq!(
8528        unsafe { &(*(::std::ptr::null::<rte_dev_eeprom_info>())).magic as *const _ as usize },
8529        16usize,
8530        concat!(
8531            "Offset of field: ",
8532            stringify!(rte_dev_eeprom_info),
8533            "::",
8534            stringify!(magic)
8535        )
8536    );
8537}
8538impl Default for rte_dev_eeprom_info {
8539    fn default() -> Self {
8540        unsafe { ::std::mem::zeroed() }
8541    }
8542}
8543#[repr(C)]
8544#[derive(Debug, Default, Copy, Clone, PartialEq)]
8545pub struct rte_eth_dev_module_info {
8546    pub type_: u32,
8547    pub eeprom_len: u32,
8548}
8549#[test]
8550fn bindgen_test_layout_rte_eth_dev_module_info() {
8551    assert_eq!(
8552        ::std::mem::size_of::<rte_eth_dev_module_info>(),
8553        8usize,
8554        concat!("Size of: ", stringify!(rte_eth_dev_module_info))
8555    );
8556    assert_eq!(
8557        ::std::mem::align_of::<rte_eth_dev_module_info>(),
8558        4usize,
8559        concat!("Alignment of ", stringify!(rte_eth_dev_module_info))
8560    );
8561    assert_eq!(
8562        unsafe { &(*(::std::ptr::null::<rte_eth_dev_module_info>())).type_ as *const _ as usize },
8563        0usize,
8564        concat!(
8565            "Offset of field: ",
8566            stringify!(rte_eth_dev_module_info),
8567            "::",
8568            stringify!(type_)
8569        )
8570    );
8571    assert_eq!(
8572        unsafe {
8573            &(*(::std::ptr::null::<rte_eth_dev_module_info>())).eeprom_len as *const _ as usize
8574        },
8575        4usize,
8576        concat!(
8577            "Offset of field: ",
8578            stringify!(rte_eth_dev_module_info),
8579            "::",
8580            stringify!(eeprom_len)
8581        )
8582    );
8583}
8584extern "C" {
8585    pub static mut rte_eth_dev_logtype: ::std::os::raw::c_int;
8586}
8587extern "C" {
8588    pub fn rte_eth_iterator_init(
8589        iter: *mut rte_dev_iterator,
8590        devargs: *const ::std::os::raw::c_char,
8591    ) -> ::std::os::raw::c_int;
8592}
8593extern "C" {
8594    pub fn rte_eth_iterator_next(iter: *mut rte_dev_iterator) -> u16;
8595}
8596extern "C" {
8597    pub fn rte_eth_iterator_cleanup(iter: *mut rte_dev_iterator);
8598}
8599#[repr(C)]
8600#[derive(Debug, Default, Copy, Clone, PartialEq)]
8601pub struct rte_eth_stats {
8602    pub ipackets: u64,
8603    pub opackets: u64,
8604    pub ibytes: u64,
8605    pub obytes: u64,
8606    pub imissed: u64,
8607    pub ierrors: u64,
8608    pub oerrors: u64,
8609    pub rx_nombuf: u64,
8610    pub q_ipackets: [u64; 16usize],
8611    pub q_opackets: [u64; 16usize],
8612    pub q_ibytes: [u64; 16usize],
8613    pub q_obytes: [u64; 16usize],
8614    pub q_errors: [u64; 16usize],
8615}
8616#[test]
8617fn bindgen_test_layout_rte_eth_stats() {
8618    assert_eq!(
8619        ::std::mem::size_of::<rte_eth_stats>(),
8620        704usize,
8621        concat!("Size of: ", stringify!(rte_eth_stats))
8622    );
8623    assert_eq!(
8624        ::std::mem::align_of::<rte_eth_stats>(),
8625        8usize,
8626        concat!("Alignment of ", stringify!(rte_eth_stats))
8627    );
8628    assert_eq!(
8629        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).ipackets as *const _ as usize },
8630        0usize,
8631        concat!(
8632            "Offset of field: ",
8633            stringify!(rte_eth_stats),
8634            "::",
8635            stringify!(ipackets)
8636        )
8637    );
8638    assert_eq!(
8639        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).opackets as *const _ as usize },
8640        8usize,
8641        concat!(
8642            "Offset of field: ",
8643            stringify!(rte_eth_stats),
8644            "::",
8645            stringify!(opackets)
8646        )
8647    );
8648    assert_eq!(
8649        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).ibytes as *const _ as usize },
8650        16usize,
8651        concat!(
8652            "Offset of field: ",
8653            stringify!(rte_eth_stats),
8654            "::",
8655            stringify!(ibytes)
8656        )
8657    );
8658    assert_eq!(
8659        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).obytes as *const _ as usize },
8660        24usize,
8661        concat!(
8662            "Offset of field: ",
8663            stringify!(rte_eth_stats),
8664            "::",
8665            stringify!(obytes)
8666        )
8667    );
8668    assert_eq!(
8669        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).imissed as *const _ as usize },
8670        32usize,
8671        concat!(
8672            "Offset of field: ",
8673            stringify!(rte_eth_stats),
8674            "::",
8675            stringify!(imissed)
8676        )
8677    );
8678    assert_eq!(
8679        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).ierrors as *const _ as usize },
8680        40usize,
8681        concat!(
8682            "Offset of field: ",
8683            stringify!(rte_eth_stats),
8684            "::",
8685            stringify!(ierrors)
8686        )
8687    );
8688    assert_eq!(
8689        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).oerrors as *const _ as usize },
8690        48usize,
8691        concat!(
8692            "Offset of field: ",
8693            stringify!(rte_eth_stats),
8694            "::",
8695            stringify!(oerrors)
8696        )
8697    );
8698    assert_eq!(
8699        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).rx_nombuf as *const _ as usize },
8700        56usize,
8701        concat!(
8702            "Offset of field: ",
8703            stringify!(rte_eth_stats),
8704            "::",
8705            stringify!(rx_nombuf)
8706        )
8707    );
8708    assert_eq!(
8709        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).q_ipackets as *const _ as usize },
8710        64usize,
8711        concat!(
8712            "Offset of field: ",
8713            stringify!(rte_eth_stats),
8714            "::",
8715            stringify!(q_ipackets)
8716        )
8717    );
8718    assert_eq!(
8719        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).q_opackets as *const _ as usize },
8720        192usize,
8721        concat!(
8722            "Offset of field: ",
8723            stringify!(rte_eth_stats),
8724            "::",
8725            stringify!(q_opackets)
8726        )
8727    );
8728    assert_eq!(
8729        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).q_ibytes as *const _ as usize },
8730        320usize,
8731        concat!(
8732            "Offset of field: ",
8733            stringify!(rte_eth_stats),
8734            "::",
8735            stringify!(q_ibytes)
8736        )
8737    );
8738    assert_eq!(
8739        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).q_obytes as *const _ as usize },
8740        448usize,
8741        concat!(
8742            "Offset of field: ",
8743            stringify!(rte_eth_stats),
8744            "::",
8745            stringify!(q_obytes)
8746        )
8747    );
8748    assert_eq!(
8749        unsafe { &(*(::std::ptr::null::<rte_eth_stats>())).q_errors as *const _ as usize },
8750        576usize,
8751        concat!(
8752            "Offset of field: ",
8753            stringify!(rte_eth_stats),
8754            "::",
8755            stringify!(q_errors)
8756        )
8757    );
8758}
8759#[repr(C)]
8760#[repr(align(8))]
8761#[derive(Debug, Default, Copy, Clone, PartialEq)]
8762pub struct rte_eth_link {
8763    pub link_speed: u32,
8764    pub _bitfield_align_1: [u8; 0],
8765    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
8766    pub __bindgen_padding_0: [u8; 3usize],
8767}
8768#[test]
8769fn bindgen_test_layout_rte_eth_link() {
8770    assert_eq!(
8771        ::std::mem::size_of::<rte_eth_link>(),
8772        8usize,
8773        concat!("Size of: ", stringify!(rte_eth_link))
8774    );
8775    assert_eq!(
8776        ::std::mem::align_of::<rte_eth_link>(),
8777        8usize,
8778        concat!("Alignment of ", stringify!(rte_eth_link))
8779    );
8780    assert_eq!(
8781        unsafe { &(*(::std::ptr::null::<rte_eth_link>())).link_speed as *const _ as usize },
8782        0usize,
8783        concat!(
8784            "Offset of field: ",
8785            stringify!(rte_eth_link),
8786            "::",
8787            stringify!(link_speed)
8788        )
8789    );
8790}
8791impl rte_eth_link {
8792    #[inline]
8793    pub fn link_duplex(&self) -> u16 {
8794        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
8795    }
8796    #[inline]
8797    pub fn set_link_duplex(&mut self, val: u16) {
8798        unsafe {
8799            let val: u16 = ::std::mem::transmute(val);
8800            self._bitfield_1.set(0usize, 1u8, val as u64)
8801        }
8802    }
8803    #[inline]
8804    pub fn link_autoneg(&self) -> u16 {
8805        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
8806    }
8807    #[inline]
8808    pub fn set_link_autoneg(&mut self, val: u16) {
8809        unsafe {
8810            let val: u16 = ::std::mem::transmute(val);
8811            self._bitfield_1.set(1usize, 1u8, val as u64)
8812        }
8813    }
8814    #[inline]
8815    pub fn link_status(&self) -> u16 {
8816        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
8817    }
8818    #[inline]
8819    pub fn set_link_status(&mut self, val: u16) {
8820        unsafe {
8821            let val: u16 = ::std::mem::transmute(val);
8822            self._bitfield_1.set(2usize, 1u8, val as u64)
8823        }
8824    }
8825    #[inline]
8826    pub fn new_bitfield_1(
8827        link_duplex: u16,
8828        link_autoneg: u16,
8829        link_status: u16,
8830    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
8831        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
8832        __bindgen_bitfield_unit.set(0usize, 1u8, {
8833            let link_duplex: u16 = unsafe { ::std::mem::transmute(link_duplex) };
8834            link_duplex as u64
8835        });
8836        __bindgen_bitfield_unit.set(1usize, 1u8, {
8837            let link_autoneg: u16 = unsafe { ::std::mem::transmute(link_autoneg) };
8838            link_autoneg as u64
8839        });
8840        __bindgen_bitfield_unit.set(2usize, 1u8, {
8841            let link_status: u16 = unsafe { ::std::mem::transmute(link_status) };
8842            link_status as u64
8843        });
8844        __bindgen_bitfield_unit
8845    }
8846}
8847#[repr(C)]
8848#[derive(Debug, Default, Copy, Clone, PartialEq)]
8849pub struct rte_eth_thresh {
8850    pub pthresh: u8,
8851    pub hthresh: u8,
8852    pub wthresh: u8,
8853}
8854#[test]
8855fn bindgen_test_layout_rte_eth_thresh() {
8856    assert_eq!(
8857        ::std::mem::size_of::<rte_eth_thresh>(),
8858        3usize,
8859        concat!("Size of: ", stringify!(rte_eth_thresh))
8860    );
8861    assert_eq!(
8862        ::std::mem::align_of::<rte_eth_thresh>(),
8863        1usize,
8864        concat!("Alignment of ", stringify!(rte_eth_thresh))
8865    );
8866    assert_eq!(
8867        unsafe { &(*(::std::ptr::null::<rte_eth_thresh>())).pthresh as *const _ as usize },
8868        0usize,
8869        concat!(
8870            "Offset of field: ",
8871            stringify!(rte_eth_thresh),
8872            "::",
8873            stringify!(pthresh)
8874        )
8875    );
8876    assert_eq!(
8877        unsafe { &(*(::std::ptr::null::<rte_eth_thresh>())).hthresh as *const _ as usize },
8878        1usize,
8879        concat!(
8880            "Offset of field: ",
8881            stringify!(rte_eth_thresh),
8882            "::",
8883            stringify!(hthresh)
8884        )
8885    );
8886    assert_eq!(
8887        unsafe { &(*(::std::ptr::null::<rte_eth_thresh>())).wthresh as *const _ as usize },
8888        2usize,
8889        concat!(
8890            "Offset of field: ",
8891            stringify!(rte_eth_thresh),
8892            "::",
8893            stringify!(wthresh)
8894        )
8895    );
8896}
8897pub mod rte_eth_rx_mq_mode {
8898    pub type Type = ::std::os::raw::c_uint;
8899    pub const ETH_MQ_RX_NONE: Type = 0;
8900    pub const ETH_MQ_RX_RSS: Type = 1;
8901    pub const ETH_MQ_RX_DCB: Type = 2;
8902    pub const ETH_MQ_RX_DCB_RSS: Type = 3;
8903    pub const ETH_MQ_RX_VMDQ_ONLY: Type = 4;
8904    pub const ETH_MQ_RX_VMDQ_RSS: Type = 5;
8905    pub const ETH_MQ_RX_VMDQ_DCB: Type = 6;
8906    pub const ETH_MQ_RX_VMDQ_DCB_RSS: Type = 7;
8907}
8908pub mod rte_eth_tx_mq_mode {
8909    pub type Type = ::std::os::raw::c_uint;
8910    pub const ETH_MQ_TX_NONE: Type = 0;
8911    pub const ETH_MQ_TX_DCB: Type = 1;
8912    pub const ETH_MQ_TX_VMDQ_DCB: Type = 2;
8913    pub const ETH_MQ_TX_VMDQ_ONLY: Type = 3;
8914}
8915#[repr(C)]
8916#[derive(Debug, Copy, Clone, PartialEq)]
8917pub struct rte_eth_rxmode {
8918    pub mq_mode: rte_eth_rx_mq_mode::Type,
8919    pub max_rx_pkt_len: u32,
8920    pub max_lro_pkt_size: u32,
8921    pub split_hdr_size: u16,
8922    pub offloads: u64,
8923    pub reserved_64s: [u64; 2usize],
8924    pub reserved_ptrs: [*mut ::std::os::raw::c_void; 2usize],
8925}
8926#[test]
8927fn bindgen_test_layout_rte_eth_rxmode() {
8928    assert_eq!(
8929        ::std::mem::size_of::<rte_eth_rxmode>(),
8930        56usize,
8931        concat!("Size of: ", stringify!(rte_eth_rxmode))
8932    );
8933    assert_eq!(
8934        ::std::mem::align_of::<rte_eth_rxmode>(),
8935        8usize,
8936        concat!("Alignment of ", stringify!(rte_eth_rxmode))
8937    );
8938    assert_eq!(
8939        unsafe { &(*(::std::ptr::null::<rte_eth_rxmode>())).mq_mode as *const _ as usize },
8940        0usize,
8941        concat!(
8942            "Offset of field: ",
8943            stringify!(rte_eth_rxmode),
8944            "::",
8945            stringify!(mq_mode)
8946        )
8947    );
8948    assert_eq!(
8949        unsafe { &(*(::std::ptr::null::<rte_eth_rxmode>())).max_rx_pkt_len as *const _ as usize },
8950        4usize,
8951        concat!(
8952            "Offset of field: ",
8953            stringify!(rte_eth_rxmode),
8954            "::",
8955            stringify!(max_rx_pkt_len)
8956        )
8957    );
8958    assert_eq!(
8959        unsafe { &(*(::std::ptr::null::<rte_eth_rxmode>())).max_lro_pkt_size as *const _ as usize },
8960        8usize,
8961        concat!(
8962            "Offset of field: ",
8963            stringify!(rte_eth_rxmode),
8964            "::",
8965            stringify!(max_lro_pkt_size)
8966        )
8967    );
8968    assert_eq!(
8969        unsafe { &(*(::std::ptr::null::<rte_eth_rxmode>())).split_hdr_size as *const _ as usize },
8970        12usize,
8971        concat!(
8972            "Offset of field: ",
8973            stringify!(rte_eth_rxmode),
8974            "::",
8975            stringify!(split_hdr_size)
8976        )
8977    );
8978    assert_eq!(
8979        unsafe { &(*(::std::ptr::null::<rte_eth_rxmode>())).offloads as *const _ as usize },
8980        16usize,
8981        concat!(
8982            "Offset of field: ",
8983            stringify!(rte_eth_rxmode),
8984            "::",
8985            stringify!(offloads)
8986        )
8987    );
8988    assert_eq!(
8989        unsafe { &(*(::std::ptr::null::<rte_eth_rxmode>())).reserved_64s as *const _ as usize },
8990        24usize,
8991        concat!(
8992            "Offset of field: ",
8993            stringify!(rte_eth_rxmode),
8994            "::",
8995            stringify!(reserved_64s)
8996        )
8997    );
8998    assert_eq!(
8999        unsafe { &(*(::std::ptr::null::<rte_eth_rxmode>())).reserved_ptrs as *const _ as usize },
9000        40usize,
9001        concat!(
9002            "Offset of field: ",
9003            stringify!(rte_eth_rxmode),
9004            "::",
9005            stringify!(reserved_ptrs)
9006        )
9007    );
9008}
9009impl Default for rte_eth_rxmode {
9010    fn default() -> Self {
9011        unsafe { ::std::mem::zeroed() }
9012    }
9013}
9014pub mod rte_vlan_type {
9015    pub type Type = ::std::os::raw::c_uint;
9016    pub const ETH_VLAN_TYPE_UNKNOWN: Type = 0;
9017    pub const ETH_VLAN_TYPE_INNER: Type = 1;
9018    pub const ETH_VLAN_TYPE_OUTER: Type = 2;
9019    pub const ETH_VLAN_TYPE_MAX: Type = 3;
9020}
9021#[repr(C)]
9022#[derive(Copy, Clone)]
9023pub struct rte_vlan_filter_conf {
9024    pub ids: [u64; 64usize],
9025}
9026#[test]
9027fn bindgen_test_layout_rte_vlan_filter_conf() {
9028    assert_eq!(
9029        ::std::mem::size_of::<rte_vlan_filter_conf>(),
9030        512usize,
9031        concat!("Size of: ", stringify!(rte_vlan_filter_conf))
9032    );
9033    assert_eq!(
9034        ::std::mem::align_of::<rte_vlan_filter_conf>(),
9035        8usize,
9036        concat!("Alignment of ", stringify!(rte_vlan_filter_conf))
9037    );
9038    assert_eq!(
9039        unsafe { &(*(::std::ptr::null::<rte_vlan_filter_conf>())).ids as *const _ as usize },
9040        0usize,
9041        concat!(
9042            "Offset of field: ",
9043            stringify!(rte_vlan_filter_conf),
9044            "::",
9045            stringify!(ids)
9046        )
9047    );
9048}
9049impl Default for rte_vlan_filter_conf {
9050    fn default() -> Self {
9051        unsafe { ::std::mem::zeroed() }
9052    }
9053}
9054#[repr(C)]
9055#[derive(Debug, Copy, Clone, PartialEq)]
9056pub struct rte_eth_rss_conf {
9057    pub rss_key: *mut u8,
9058    pub rss_key_len: u8,
9059    pub rss_hf: u64,
9060}
9061#[test]
9062fn bindgen_test_layout_rte_eth_rss_conf() {
9063    assert_eq!(
9064        ::std::mem::size_of::<rte_eth_rss_conf>(),
9065        24usize,
9066        concat!("Size of: ", stringify!(rte_eth_rss_conf))
9067    );
9068    assert_eq!(
9069        ::std::mem::align_of::<rte_eth_rss_conf>(),
9070        8usize,
9071        concat!("Alignment of ", stringify!(rte_eth_rss_conf))
9072    );
9073    assert_eq!(
9074        unsafe { &(*(::std::ptr::null::<rte_eth_rss_conf>())).rss_key as *const _ as usize },
9075        0usize,
9076        concat!(
9077            "Offset of field: ",
9078            stringify!(rte_eth_rss_conf),
9079            "::",
9080            stringify!(rss_key)
9081        )
9082    );
9083    assert_eq!(
9084        unsafe { &(*(::std::ptr::null::<rte_eth_rss_conf>())).rss_key_len as *const _ as usize },
9085        8usize,
9086        concat!(
9087            "Offset of field: ",
9088            stringify!(rte_eth_rss_conf),
9089            "::",
9090            stringify!(rss_key_len)
9091        )
9092    );
9093    assert_eq!(
9094        unsafe { &(*(::std::ptr::null::<rte_eth_rss_conf>())).rss_hf as *const _ as usize },
9095        16usize,
9096        concat!(
9097            "Offset of field: ",
9098            stringify!(rte_eth_rss_conf),
9099            "::",
9100            stringify!(rss_hf)
9101        )
9102    );
9103}
9104impl Default for rte_eth_rss_conf {
9105    fn default() -> Self {
9106        unsafe { ::std::mem::zeroed() }
9107    }
9108}
9109#[repr(C)]
9110#[derive(Copy, Clone)]
9111pub struct rte_eth_vlan_mirror {
9112    pub vlan_mask: u64,
9113    pub vlan_id: [u16; 64usize],
9114}
9115#[test]
9116fn bindgen_test_layout_rte_eth_vlan_mirror() {
9117    assert_eq!(
9118        ::std::mem::size_of::<rte_eth_vlan_mirror>(),
9119        136usize,
9120        concat!("Size of: ", stringify!(rte_eth_vlan_mirror))
9121    );
9122    assert_eq!(
9123        ::std::mem::align_of::<rte_eth_vlan_mirror>(),
9124        8usize,
9125        concat!("Alignment of ", stringify!(rte_eth_vlan_mirror))
9126    );
9127    assert_eq!(
9128        unsafe { &(*(::std::ptr::null::<rte_eth_vlan_mirror>())).vlan_mask as *const _ as usize },
9129        0usize,
9130        concat!(
9131            "Offset of field: ",
9132            stringify!(rte_eth_vlan_mirror),
9133            "::",
9134            stringify!(vlan_mask)
9135        )
9136    );
9137    assert_eq!(
9138        unsafe { &(*(::std::ptr::null::<rte_eth_vlan_mirror>())).vlan_id as *const _ as usize },
9139        8usize,
9140        concat!(
9141            "Offset of field: ",
9142            stringify!(rte_eth_vlan_mirror),
9143            "::",
9144            stringify!(vlan_id)
9145        )
9146    );
9147}
9148impl Default for rte_eth_vlan_mirror {
9149    fn default() -> Self {
9150        unsafe { ::std::mem::zeroed() }
9151    }
9152}
9153#[repr(C)]
9154#[derive(Copy, Clone)]
9155pub struct rte_eth_mirror_conf {
9156    pub rule_type: u8,
9157    pub dst_pool: u8,
9158    pub pool_mask: u64,
9159    pub vlan: rte_eth_vlan_mirror,
9160}
9161#[test]
9162fn bindgen_test_layout_rte_eth_mirror_conf() {
9163    assert_eq!(
9164        ::std::mem::size_of::<rte_eth_mirror_conf>(),
9165        152usize,
9166        concat!("Size of: ", stringify!(rte_eth_mirror_conf))
9167    );
9168    assert_eq!(
9169        ::std::mem::align_of::<rte_eth_mirror_conf>(),
9170        8usize,
9171        concat!("Alignment of ", stringify!(rte_eth_mirror_conf))
9172    );
9173    assert_eq!(
9174        unsafe { &(*(::std::ptr::null::<rte_eth_mirror_conf>())).rule_type as *const _ as usize },
9175        0usize,
9176        concat!(
9177            "Offset of field: ",
9178            stringify!(rte_eth_mirror_conf),
9179            "::",
9180            stringify!(rule_type)
9181        )
9182    );
9183    assert_eq!(
9184        unsafe { &(*(::std::ptr::null::<rte_eth_mirror_conf>())).dst_pool as *const _ as usize },
9185        1usize,
9186        concat!(
9187            "Offset of field: ",
9188            stringify!(rte_eth_mirror_conf),
9189            "::",
9190            stringify!(dst_pool)
9191        )
9192    );
9193    assert_eq!(
9194        unsafe { &(*(::std::ptr::null::<rte_eth_mirror_conf>())).pool_mask as *const _ as usize },
9195        8usize,
9196        concat!(
9197            "Offset of field: ",
9198            stringify!(rte_eth_mirror_conf),
9199            "::",
9200            stringify!(pool_mask)
9201        )
9202    );
9203    assert_eq!(
9204        unsafe { &(*(::std::ptr::null::<rte_eth_mirror_conf>())).vlan as *const _ as usize },
9205        16usize,
9206        concat!(
9207            "Offset of field: ",
9208            stringify!(rte_eth_mirror_conf),
9209            "::",
9210            stringify!(vlan)
9211        )
9212    );
9213}
9214impl Default for rte_eth_mirror_conf {
9215    fn default() -> Self {
9216        unsafe { ::std::mem::zeroed() }
9217    }
9218}
9219#[repr(C)]
9220#[derive(Copy, Clone)]
9221pub struct rte_eth_rss_reta_entry64 {
9222    pub mask: u64,
9223    pub reta: [u16; 64usize],
9224}
9225#[test]
9226fn bindgen_test_layout_rte_eth_rss_reta_entry64() {
9227    assert_eq!(
9228        ::std::mem::size_of::<rte_eth_rss_reta_entry64>(),
9229        136usize,
9230        concat!("Size of: ", stringify!(rte_eth_rss_reta_entry64))
9231    );
9232    assert_eq!(
9233        ::std::mem::align_of::<rte_eth_rss_reta_entry64>(),
9234        8usize,
9235        concat!("Alignment of ", stringify!(rte_eth_rss_reta_entry64))
9236    );
9237    assert_eq!(
9238        unsafe { &(*(::std::ptr::null::<rte_eth_rss_reta_entry64>())).mask as *const _ as usize },
9239        0usize,
9240        concat!(
9241            "Offset of field: ",
9242            stringify!(rte_eth_rss_reta_entry64),
9243            "::",
9244            stringify!(mask)
9245        )
9246    );
9247    assert_eq!(
9248        unsafe { &(*(::std::ptr::null::<rte_eth_rss_reta_entry64>())).reta as *const _ as usize },
9249        8usize,
9250        concat!(
9251            "Offset of field: ",
9252            stringify!(rte_eth_rss_reta_entry64),
9253            "::",
9254            stringify!(reta)
9255        )
9256    );
9257}
9258impl Default for rte_eth_rss_reta_entry64 {
9259    fn default() -> Self {
9260        unsafe { ::std::mem::zeroed() }
9261    }
9262}
9263pub mod rte_eth_nb_tcs {
9264    pub type Type = ::std::os::raw::c_uint;
9265    pub const ETH_4_TCS: Type = 4;
9266    pub const ETH_8_TCS: Type = 8;
9267}
9268pub mod rte_eth_nb_pools {
9269    pub type Type = ::std::os::raw::c_uint;
9270    pub const ETH_8_POOLS: Type = 8;
9271    pub const ETH_16_POOLS: Type = 16;
9272    pub const ETH_32_POOLS: Type = 32;
9273    pub const ETH_64_POOLS: Type = 64;
9274}
9275#[repr(C)]
9276#[derive(Debug, Copy, Clone, PartialEq)]
9277pub struct rte_eth_dcb_rx_conf {
9278    pub nb_tcs: rte_eth_nb_tcs::Type,
9279    pub dcb_tc: [u8; 8usize],
9280}
9281#[test]
9282fn bindgen_test_layout_rte_eth_dcb_rx_conf() {
9283    assert_eq!(
9284        ::std::mem::size_of::<rte_eth_dcb_rx_conf>(),
9285        12usize,
9286        concat!("Size of: ", stringify!(rte_eth_dcb_rx_conf))
9287    );
9288    assert_eq!(
9289        ::std::mem::align_of::<rte_eth_dcb_rx_conf>(),
9290        4usize,
9291        concat!("Alignment of ", stringify!(rte_eth_dcb_rx_conf))
9292    );
9293    assert_eq!(
9294        unsafe { &(*(::std::ptr::null::<rte_eth_dcb_rx_conf>())).nb_tcs as *const _ as usize },
9295        0usize,
9296        concat!(
9297            "Offset of field: ",
9298            stringify!(rte_eth_dcb_rx_conf),
9299            "::",
9300            stringify!(nb_tcs)
9301        )
9302    );
9303    assert_eq!(
9304        unsafe { &(*(::std::ptr::null::<rte_eth_dcb_rx_conf>())).dcb_tc as *const _ as usize },
9305        4usize,
9306        concat!(
9307            "Offset of field: ",
9308            stringify!(rte_eth_dcb_rx_conf),
9309            "::",
9310            stringify!(dcb_tc)
9311        )
9312    );
9313}
9314impl Default for rte_eth_dcb_rx_conf {
9315    fn default() -> Self {
9316        unsafe { ::std::mem::zeroed() }
9317    }
9318}
9319#[repr(C)]
9320#[derive(Debug, Copy, Clone, PartialEq)]
9321pub struct rte_eth_vmdq_dcb_tx_conf {
9322    pub nb_queue_pools: rte_eth_nb_pools::Type,
9323    pub dcb_tc: [u8; 8usize],
9324}
9325#[test]
9326fn bindgen_test_layout_rte_eth_vmdq_dcb_tx_conf() {
9327    assert_eq!(
9328        ::std::mem::size_of::<rte_eth_vmdq_dcb_tx_conf>(),
9329        12usize,
9330        concat!("Size of: ", stringify!(rte_eth_vmdq_dcb_tx_conf))
9331    );
9332    assert_eq!(
9333        ::std::mem::align_of::<rte_eth_vmdq_dcb_tx_conf>(),
9334        4usize,
9335        concat!("Alignment of ", stringify!(rte_eth_vmdq_dcb_tx_conf))
9336    );
9337    assert_eq!(
9338        unsafe {
9339            &(*(::std::ptr::null::<rte_eth_vmdq_dcb_tx_conf>())).nb_queue_pools as *const _ as usize
9340        },
9341        0usize,
9342        concat!(
9343            "Offset of field: ",
9344            stringify!(rte_eth_vmdq_dcb_tx_conf),
9345            "::",
9346            stringify!(nb_queue_pools)
9347        )
9348    );
9349    assert_eq!(
9350        unsafe { &(*(::std::ptr::null::<rte_eth_vmdq_dcb_tx_conf>())).dcb_tc as *const _ as usize },
9351        4usize,
9352        concat!(
9353            "Offset of field: ",
9354            stringify!(rte_eth_vmdq_dcb_tx_conf),
9355            "::",
9356            stringify!(dcb_tc)
9357        )
9358    );
9359}
9360impl Default for rte_eth_vmdq_dcb_tx_conf {
9361    fn default() -> Self {
9362        unsafe { ::std::mem::zeroed() }
9363    }
9364}
9365#[repr(C)]
9366#[derive(Debug, Copy, Clone, PartialEq)]
9367pub struct rte_eth_dcb_tx_conf {
9368    pub nb_tcs: rte_eth_nb_tcs::Type,
9369    pub dcb_tc: [u8; 8usize],
9370}
9371#[test]
9372fn bindgen_test_layout_rte_eth_dcb_tx_conf() {
9373    assert_eq!(
9374        ::std::mem::size_of::<rte_eth_dcb_tx_conf>(),
9375        12usize,
9376        concat!("Size of: ", stringify!(rte_eth_dcb_tx_conf))
9377    );
9378    assert_eq!(
9379        ::std::mem::align_of::<rte_eth_dcb_tx_conf>(),
9380        4usize,
9381        concat!("Alignment of ", stringify!(rte_eth_dcb_tx_conf))
9382    );
9383    assert_eq!(
9384        unsafe { &(*(::std::ptr::null::<rte_eth_dcb_tx_conf>())).nb_tcs as *const _ as usize },
9385        0usize,
9386        concat!(
9387            "Offset of field: ",
9388            stringify!(rte_eth_dcb_tx_conf),
9389            "::",
9390            stringify!(nb_tcs)
9391        )
9392    );
9393    assert_eq!(
9394        unsafe { &(*(::std::ptr::null::<rte_eth_dcb_tx_conf>())).dcb_tc as *const _ as usize },
9395        4usize,
9396        concat!(
9397            "Offset of field: ",
9398            stringify!(rte_eth_dcb_tx_conf),
9399            "::",
9400            stringify!(dcb_tc)
9401        )
9402    );
9403}
9404impl Default for rte_eth_dcb_tx_conf {
9405    fn default() -> Self {
9406        unsafe { ::std::mem::zeroed() }
9407    }
9408}
9409#[repr(C)]
9410#[derive(Debug, Copy, Clone, PartialEq)]
9411pub struct rte_eth_vmdq_tx_conf {
9412    pub nb_queue_pools: rte_eth_nb_pools::Type,
9413}
9414#[test]
9415fn bindgen_test_layout_rte_eth_vmdq_tx_conf() {
9416    assert_eq!(
9417        ::std::mem::size_of::<rte_eth_vmdq_tx_conf>(),
9418        4usize,
9419        concat!("Size of: ", stringify!(rte_eth_vmdq_tx_conf))
9420    );
9421    assert_eq!(
9422        ::std::mem::align_of::<rte_eth_vmdq_tx_conf>(),
9423        4usize,
9424        concat!("Alignment of ", stringify!(rte_eth_vmdq_tx_conf))
9425    );
9426    assert_eq!(
9427        unsafe {
9428            &(*(::std::ptr::null::<rte_eth_vmdq_tx_conf>())).nb_queue_pools as *const _ as usize
9429        },
9430        0usize,
9431        concat!(
9432            "Offset of field: ",
9433            stringify!(rte_eth_vmdq_tx_conf),
9434            "::",
9435            stringify!(nb_queue_pools)
9436        )
9437    );
9438}
9439impl Default for rte_eth_vmdq_tx_conf {
9440    fn default() -> Self {
9441        unsafe { ::std::mem::zeroed() }
9442    }
9443}
9444#[repr(C)]
9445#[derive(Copy, Clone)]
9446pub struct rte_eth_vmdq_dcb_conf {
9447    pub nb_queue_pools: rte_eth_nb_pools::Type,
9448    pub enable_default_pool: u8,
9449    pub default_pool: u8,
9450    pub nb_pool_maps: u8,
9451    pub pool_map: [rte_eth_vmdq_dcb_conf__bindgen_ty_1; 64usize],
9452    pub dcb_tc: [u8; 8usize],
9453}
9454#[repr(C)]
9455#[derive(Debug, Default, Copy, Clone, PartialEq)]
9456pub struct rte_eth_vmdq_dcb_conf__bindgen_ty_1 {
9457    pub vlan_id: u16,
9458    pub pools: u64,
9459}
9460#[test]
9461fn bindgen_test_layout_rte_eth_vmdq_dcb_conf__bindgen_ty_1() {
9462    assert_eq!(
9463        ::std::mem::size_of::<rte_eth_vmdq_dcb_conf__bindgen_ty_1>(),
9464        16usize,
9465        concat!("Size of: ", stringify!(rte_eth_vmdq_dcb_conf__bindgen_ty_1))
9466    );
9467    assert_eq!(
9468        ::std::mem::align_of::<rte_eth_vmdq_dcb_conf__bindgen_ty_1>(),
9469        8usize,
9470        concat!(
9471            "Alignment of ",
9472            stringify!(rte_eth_vmdq_dcb_conf__bindgen_ty_1)
9473        )
9474    );
9475    assert_eq!(
9476        unsafe {
9477            &(*(::std::ptr::null::<rte_eth_vmdq_dcb_conf__bindgen_ty_1>())).vlan_id as *const _
9478                as usize
9479        },
9480        0usize,
9481        concat!(
9482            "Offset of field: ",
9483            stringify!(rte_eth_vmdq_dcb_conf__bindgen_ty_1),
9484            "::",
9485            stringify!(vlan_id)
9486        )
9487    );
9488    assert_eq!(
9489        unsafe {
9490            &(*(::std::ptr::null::<rte_eth_vmdq_dcb_conf__bindgen_ty_1>())).pools as *const _
9491                as usize
9492        },
9493        8usize,
9494        concat!(
9495            "Offset of field: ",
9496            stringify!(rte_eth_vmdq_dcb_conf__bindgen_ty_1),
9497            "::",
9498            stringify!(pools)
9499        )
9500    );
9501}
9502#[test]
9503fn bindgen_test_layout_rte_eth_vmdq_dcb_conf() {
9504    assert_eq!(
9505        ::std::mem::size_of::<rte_eth_vmdq_dcb_conf>(),
9506        1040usize,
9507        concat!("Size of: ", stringify!(rte_eth_vmdq_dcb_conf))
9508    );
9509    assert_eq!(
9510        ::std::mem::align_of::<rte_eth_vmdq_dcb_conf>(),
9511        8usize,
9512        concat!("Alignment of ", stringify!(rte_eth_vmdq_dcb_conf))
9513    );
9514    assert_eq!(
9515        unsafe {
9516            &(*(::std::ptr::null::<rte_eth_vmdq_dcb_conf>())).nb_queue_pools as *const _ as usize
9517        },
9518        0usize,
9519        concat!(
9520            "Offset of field: ",
9521            stringify!(rte_eth_vmdq_dcb_conf),
9522            "::",
9523            stringify!(nb_queue_pools)
9524        )
9525    );
9526    assert_eq!(
9527        unsafe {
9528            &(*(::std::ptr::null::<rte_eth_vmdq_dcb_conf>())).enable_default_pool as *const _
9529                as usize
9530        },
9531        4usize,
9532        concat!(
9533            "Offset of field: ",
9534            stringify!(rte_eth_vmdq_dcb_conf),
9535            "::",
9536            stringify!(enable_default_pool)
9537        )
9538    );
9539    assert_eq!(
9540        unsafe {
9541            &(*(::std::ptr::null::<rte_eth_vmdq_dcb_conf>())).default_pool as *const _ as usize
9542        },
9543        5usize,
9544        concat!(
9545            "Offset of field: ",
9546            stringify!(rte_eth_vmdq_dcb_conf),
9547            "::",
9548            stringify!(default_pool)
9549        )
9550    );
9551    assert_eq!(
9552        unsafe {
9553            &(*(::std::ptr::null::<rte_eth_vmdq_dcb_conf>())).nb_pool_maps as *const _ as usize
9554        },
9555        6usize,
9556        concat!(
9557            "Offset of field: ",
9558            stringify!(rte_eth_vmdq_dcb_conf),
9559            "::",
9560            stringify!(nb_pool_maps)
9561        )
9562    );
9563    assert_eq!(
9564        unsafe { &(*(::std::ptr::null::<rte_eth_vmdq_dcb_conf>())).pool_map as *const _ as usize },
9565        8usize,
9566        concat!(
9567            "Offset of field: ",
9568            stringify!(rte_eth_vmdq_dcb_conf),
9569            "::",
9570            stringify!(pool_map)
9571        )
9572    );
9573    assert_eq!(
9574        unsafe { &(*(::std::ptr::null::<rte_eth_vmdq_dcb_conf>())).dcb_tc as *const _ as usize },
9575        1032usize,
9576        concat!(
9577            "Offset of field: ",
9578            stringify!(rte_eth_vmdq_dcb_conf),
9579            "::",
9580            stringify!(dcb_tc)
9581        )
9582    );
9583}
9584impl Default for rte_eth_vmdq_dcb_conf {
9585    fn default() -> Self {
9586        unsafe { ::std::mem::zeroed() }
9587    }
9588}
9589#[repr(C)]
9590#[derive(Copy, Clone)]
9591pub struct rte_eth_vmdq_rx_conf {
9592    pub nb_queue_pools: rte_eth_nb_pools::Type,
9593    pub enable_default_pool: u8,
9594    pub default_pool: u8,
9595    pub enable_loop_back: u8,
9596    pub nb_pool_maps: u8,
9597    pub rx_mode: u32,
9598    pub pool_map: [rte_eth_vmdq_rx_conf__bindgen_ty_1; 64usize],
9599}
9600#[repr(C)]
9601#[derive(Debug, Default, Copy, Clone, PartialEq)]
9602pub struct rte_eth_vmdq_rx_conf__bindgen_ty_1 {
9603    pub vlan_id: u16,
9604    pub pools: u64,
9605}
9606#[test]
9607fn bindgen_test_layout_rte_eth_vmdq_rx_conf__bindgen_ty_1() {
9608    assert_eq!(
9609        ::std::mem::size_of::<rte_eth_vmdq_rx_conf__bindgen_ty_1>(),
9610        16usize,
9611        concat!("Size of: ", stringify!(rte_eth_vmdq_rx_conf__bindgen_ty_1))
9612    );
9613    assert_eq!(
9614        ::std::mem::align_of::<rte_eth_vmdq_rx_conf__bindgen_ty_1>(),
9615        8usize,
9616        concat!(
9617            "Alignment of ",
9618            stringify!(rte_eth_vmdq_rx_conf__bindgen_ty_1)
9619        )
9620    );
9621    assert_eq!(
9622        unsafe {
9623            &(*(::std::ptr::null::<rte_eth_vmdq_rx_conf__bindgen_ty_1>())).vlan_id as *const _
9624                as usize
9625        },
9626        0usize,
9627        concat!(
9628            "Offset of field: ",
9629            stringify!(rte_eth_vmdq_rx_conf__bindgen_ty_1),
9630            "::",
9631            stringify!(vlan_id)
9632        )
9633    );
9634    assert_eq!(
9635        unsafe {
9636            &(*(::std::ptr::null::<rte_eth_vmdq_rx_conf__bindgen_ty_1>())).pools as *const _
9637                as usize
9638        },
9639        8usize,
9640        concat!(
9641            "Offset of field: ",
9642            stringify!(rte_eth_vmdq_rx_conf__bindgen_ty_1),
9643            "::",
9644            stringify!(pools)
9645        )
9646    );
9647}
9648#[test]
9649fn bindgen_test_layout_rte_eth_vmdq_rx_conf() {
9650    assert_eq!(
9651        ::std::mem::size_of::<rte_eth_vmdq_rx_conf>(),
9652        1040usize,
9653        concat!("Size of: ", stringify!(rte_eth_vmdq_rx_conf))
9654    );
9655    assert_eq!(
9656        ::std::mem::align_of::<rte_eth_vmdq_rx_conf>(),
9657        8usize,
9658        concat!("Alignment of ", stringify!(rte_eth_vmdq_rx_conf))
9659    );
9660    assert_eq!(
9661        unsafe {
9662            &(*(::std::ptr::null::<rte_eth_vmdq_rx_conf>())).nb_queue_pools as *const _ as usize
9663        },
9664        0usize,
9665        concat!(
9666            "Offset of field: ",
9667            stringify!(rte_eth_vmdq_rx_conf),
9668            "::",
9669            stringify!(nb_queue_pools)
9670        )
9671    );
9672    assert_eq!(
9673        unsafe {
9674            &(*(::std::ptr::null::<rte_eth_vmdq_rx_conf>())).enable_default_pool as *const _
9675                as usize
9676        },
9677        4usize,
9678        concat!(
9679            "Offset of field: ",
9680            stringify!(rte_eth_vmdq_rx_conf),
9681            "::",
9682            stringify!(enable_default_pool)
9683        )
9684    );
9685    assert_eq!(
9686        unsafe {
9687            &(*(::std::ptr::null::<rte_eth_vmdq_rx_conf>())).default_pool as *const _ as usize
9688        },
9689        5usize,
9690        concat!(
9691            "Offset of field: ",
9692            stringify!(rte_eth_vmdq_rx_conf),
9693            "::",
9694            stringify!(default_pool)
9695        )
9696    );
9697    assert_eq!(
9698        unsafe {
9699            &(*(::std::ptr::null::<rte_eth_vmdq_rx_conf>())).enable_loop_back as *const _ as usize
9700        },
9701        6usize,
9702        concat!(
9703            "Offset of field: ",
9704            stringify!(rte_eth_vmdq_rx_conf),
9705            "::",
9706            stringify!(enable_loop_back)
9707        )
9708    );
9709    assert_eq!(
9710        unsafe {
9711            &(*(::std::ptr::null::<rte_eth_vmdq_rx_conf>())).nb_pool_maps as *const _ as usize
9712        },
9713        7usize,
9714        concat!(
9715            "Offset of field: ",
9716            stringify!(rte_eth_vmdq_rx_conf),
9717            "::",
9718            stringify!(nb_pool_maps)
9719        )
9720    );
9721    assert_eq!(
9722        unsafe { &(*(::std::ptr::null::<rte_eth_vmdq_rx_conf>())).rx_mode as *const _ as usize },
9723        8usize,
9724        concat!(
9725            "Offset of field: ",
9726            stringify!(rte_eth_vmdq_rx_conf),
9727            "::",
9728            stringify!(rx_mode)
9729        )
9730    );
9731    assert_eq!(
9732        unsafe { &(*(::std::ptr::null::<rte_eth_vmdq_rx_conf>())).pool_map as *const _ as usize },
9733        16usize,
9734        concat!(
9735            "Offset of field: ",
9736            stringify!(rte_eth_vmdq_rx_conf),
9737            "::",
9738            stringify!(pool_map)
9739        )
9740    );
9741}
9742impl Default for rte_eth_vmdq_rx_conf {
9743    fn default() -> Self {
9744        unsafe { ::std::mem::zeroed() }
9745    }
9746}
9747#[repr(C)]
9748#[derive(Debug, Copy, Clone, PartialEq)]
9749pub struct rte_eth_txmode {
9750    pub mq_mode: rte_eth_tx_mq_mode::Type,
9751    pub offloads: u64,
9752    pub pvid: u16,
9753    pub _bitfield_align_1: [u8; 0],
9754    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
9755    pub reserved_64s: [u64; 2usize],
9756    pub reserved_ptrs: [*mut ::std::os::raw::c_void; 2usize],
9757}
9758#[test]
9759fn bindgen_test_layout_rte_eth_txmode() {
9760    assert_eq!(
9761        ::std::mem::size_of::<rte_eth_txmode>(),
9762        56usize,
9763        concat!("Size of: ", stringify!(rte_eth_txmode))
9764    );
9765    assert_eq!(
9766        ::std::mem::align_of::<rte_eth_txmode>(),
9767        8usize,
9768        concat!("Alignment of ", stringify!(rte_eth_txmode))
9769    );
9770    assert_eq!(
9771        unsafe { &(*(::std::ptr::null::<rte_eth_txmode>())).mq_mode as *const _ as usize },
9772        0usize,
9773        concat!(
9774            "Offset of field: ",
9775            stringify!(rte_eth_txmode),
9776            "::",
9777            stringify!(mq_mode)
9778        )
9779    );
9780    assert_eq!(
9781        unsafe { &(*(::std::ptr::null::<rte_eth_txmode>())).offloads as *const _ as usize },
9782        8usize,
9783        concat!(
9784            "Offset of field: ",
9785            stringify!(rte_eth_txmode),
9786            "::",
9787            stringify!(offloads)
9788        )
9789    );
9790    assert_eq!(
9791        unsafe { &(*(::std::ptr::null::<rte_eth_txmode>())).pvid as *const _ as usize },
9792        16usize,
9793        concat!(
9794            "Offset of field: ",
9795            stringify!(rte_eth_txmode),
9796            "::",
9797            stringify!(pvid)
9798        )
9799    );
9800    assert_eq!(
9801        unsafe { &(*(::std::ptr::null::<rte_eth_txmode>())).reserved_64s as *const _ as usize },
9802        24usize,
9803        concat!(
9804            "Offset of field: ",
9805            stringify!(rte_eth_txmode),
9806            "::",
9807            stringify!(reserved_64s)
9808        )
9809    );
9810    assert_eq!(
9811        unsafe { &(*(::std::ptr::null::<rte_eth_txmode>())).reserved_ptrs as *const _ as usize },
9812        40usize,
9813        concat!(
9814            "Offset of field: ",
9815            stringify!(rte_eth_txmode),
9816            "::",
9817            stringify!(reserved_ptrs)
9818        )
9819    );
9820}
9821impl Default for rte_eth_txmode {
9822    fn default() -> Self {
9823        unsafe { ::std::mem::zeroed() }
9824    }
9825}
9826impl rte_eth_txmode {
9827    #[inline]
9828    pub fn hw_vlan_reject_tagged(&self) -> u8 {
9829        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
9830    }
9831    #[inline]
9832    pub fn set_hw_vlan_reject_tagged(&mut self, val: u8) {
9833        unsafe {
9834            let val: u8 = ::std::mem::transmute(val);
9835            self._bitfield_1.set(0usize, 1u8, val as u64)
9836        }
9837    }
9838    #[inline]
9839    pub fn hw_vlan_reject_untagged(&self) -> u8 {
9840        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
9841    }
9842    #[inline]
9843    pub fn set_hw_vlan_reject_untagged(&mut self, val: u8) {
9844        unsafe {
9845            let val: u8 = ::std::mem::transmute(val);
9846            self._bitfield_1.set(1usize, 1u8, val as u64)
9847        }
9848    }
9849    #[inline]
9850    pub fn hw_vlan_insert_pvid(&self) -> u8 {
9851        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
9852    }
9853    #[inline]
9854    pub fn set_hw_vlan_insert_pvid(&mut self, val: u8) {
9855        unsafe {
9856            let val: u8 = ::std::mem::transmute(val);
9857            self._bitfield_1.set(2usize, 1u8, val as u64)
9858        }
9859    }
9860    #[inline]
9861    pub fn new_bitfield_1(
9862        hw_vlan_reject_tagged: u8,
9863        hw_vlan_reject_untagged: u8,
9864        hw_vlan_insert_pvid: u8,
9865    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
9866        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
9867        __bindgen_bitfield_unit.set(0usize, 1u8, {
9868            let hw_vlan_reject_tagged: u8 = unsafe { ::std::mem::transmute(hw_vlan_reject_tagged) };
9869            hw_vlan_reject_tagged as u64
9870        });
9871        __bindgen_bitfield_unit.set(1usize, 1u8, {
9872            let hw_vlan_reject_untagged: u8 =
9873                unsafe { ::std::mem::transmute(hw_vlan_reject_untagged) };
9874            hw_vlan_reject_untagged as u64
9875        });
9876        __bindgen_bitfield_unit.set(2usize, 1u8, {
9877            let hw_vlan_insert_pvid: u8 = unsafe { ::std::mem::transmute(hw_vlan_insert_pvid) };
9878            hw_vlan_insert_pvid as u64
9879        });
9880        __bindgen_bitfield_unit
9881    }
9882}
9883#[repr(C)]
9884#[derive(Debug, Copy, Clone, PartialEq)]
9885pub struct rte_eth_rxconf {
9886    pub rx_thresh: rte_eth_thresh,
9887    pub rx_free_thresh: u16,
9888    pub rx_drop_en: u8,
9889    pub rx_deferred_start: u8,
9890    pub offloads: u64,
9891    pub reserved_64s: [u64; 2usize],
9892    pub reserved_ptrs: [*mut ::std::os::raw::c_void; 2usize],
9893}
9894#[test]
9895fn bindgen_test_layout_rte_eth_rxconf() {
9896    assert_eq!(
9897        ::std::mem::size_of::<rte_eth_rxconf>(),
9898        48usize,
9899        concat!("Size of: ", stringify!(rte_eth_rxconf))
9900    );
9901    assert_eq!(
9902        ::std::mem::align_of::<rte_eth_rxconf>(),
9903        8usize,
9904        concat!("Alignment of ", stringify!(rte_eth_rxconf))
9905    );
9906    assert_eq!(
9907        unsafe { &(*(::std::ptr::null::<rte_eth_rxconf>())).rx_thresh as *const _ as usize },
9908        0usize,
9909        concat!(
9910            "Offset of field: ",
9911            stringify!(rte_eth_rxconf),
9912            "::",
9913            stringify!(rx_thresh)
9914        )
9915    );
9916    assert_eq!(
9917        unsafe { &(*(::std::ptr::null::<rte_eth_rxconf>())).rx_free_thresh as *const _ as usize },
9918        4usize,
9919        concat!(
9920            "Offset of field: ",
9921            stringify!(rte_eth_rxconf),
9922            "::",
9923            stringify!(rx_free_thresh)
9924        )
9925    );
9926    assert_eq!(
9927        unsafe { &(*(::std::ptr::null::<rte_eth_rxconf>())).rx_drop_en as *const _ as usize },
9928        6usize,
9929        concat!(
9930            "Offset of field: ",
9931            stringify!(rte_eth_rxconf),
9932            "::",
9933            stringify!(rx_drop_en)
9934        )
9935    );
9936    assert_eq!(
9937        unsafe {
9938            &(*(::std::ptr::null::<rte_eth_rxconf>())).rx_deferred_start as *const _ as usize
9939        },
9940        7usize,
9941        concat!(
9942            "Offset of field: ",
9943            stringify!(rte_eth_rxconf),
9944            "::",
9945            stringify!(rx_deferred_start)
9946        )
9947    );
9948    assert_eq!(
9949        unsafe { &(*(::std::ptr::null::<rte_eth_rxconf>())).offloads as *const _ as usize },
9950        8usize,
9951        concat!(
9952            "Offset of field: ",
9953            stringify!(rte_eth_rxconf),
9954            "::",
9955            stringify!(offloads)
9956        )
9957    );
9958    assert_eq!(
9959        unsafe { &(*(::std::ptr::null::<rte_eth_rxconf>())).reserved_64s as *const _ as usize },
9960        16usize,
9961        concat!(
9962            "Offset of field: ",
9963            stringify!(rte_eth_rxconf),
9964            "::",
9965            stringify!(reserved_64s)
9966        )
9967    );
9968    assert_eq!(
9969        unsafe { &(*(::std::ptr::null::<rte_eth_rxconf>())).reserved_ptrs as *const _ as usize },
9970        32usize,
9971        concat!(
9972            "Offset of field: ",
9973            stringify!(rte_eth_rxconf),
9974            "::",
9975            stringify!(reserved_ptrs)
9976        )
9977    );
9978}
9979impl Default for rte_eth_rxconf {
9980    fn default() -> Self {
9981        unsafe { ::std::mem::zeroed() }
9982    }
9983}
9984#[repr(C)]
9985#[derive(Debug, Copy, Clone, PartialEq)]
9986pub struct rte_eth_txconf {
9987    pub tx_thresh: rte_eth_thresh,
9988    pub tx_rs_thresh: u16,
9989    pub tx_free_thresh: u16,
9990    pub tx_deferred_start: u8,
9991    pub offloads: u64,
9992    pub reserved_64s: [u64; 2usize],
9993    pub reserved_ptrs: [*mut ::std::os::raw::c_void; 2usize],
9994}
9995#[test]
9996fn bindgen_test_layout_rte_eth_txconf() {
9997    assert_eq!(
9998        ::std::mem::size_of::<rte_eth_txconf>(),
9999        56usize,
10000        concat!("Size of: ", stringify!(rte_eth_txconf))
10001    );
10002    assert_eq!(
10003        ::std::mem::align_of::<rte_eth_txconf>(),
10004        8usize,
10005        concat!("Alignment of ", stringify!(rte_eth_txconf))
10006    );
10007    assert_eq!(
10008        unsafe { &(*(::std::ptr::null::<rte_eth_txconf>())).tx_thresh as *const _ as usize },
10009        0usize,
10010        concat!(
10011            "Offset of field: ",
10012            stringify!(rte_eth_txconf),
10013            "::",
10014            stringify!(tx_thresh)
10015        )
10016    );
10017    assert_eq!(
10018        unsafe { &(*(::std::ptr::null::<rte_eth_txconf>())).tx_rs_thresh as *const _ as usize },
10019        4usize,
10020        concat!(
10021            "Offset of field: ",
10022            stringify!(rte_eth_txconf),
10023            "::",
10024            stringify!(tx_rs_thresh)
10025        )
10026    );
10027    assert_eq!(
10028        unsafe { &(*(::std::ptr::null::<rte_eth_txconf>())).tx_free_thresh as *const _ as usize },
10029        6usize,
10030        concat!(
10031            "Offset of field: ",
10032            stringify!(rte_eth_txconf),
10033            "::",
10034            stringify!(tx_free_thresh)
10035        )
10036    );
10037    assert_eq!(
10038        unsafe {
10039            &(*(::std::ptr::null::<rte_eth_txconf>())).tx_deferred_start as *const _ as usize
10040        },
10041        8usize,
10042        concat!(
10043            "Offset of field: ",
10044            stringify!(rte_eth_txconf),
10045            "::",
10046            stringify!(tx_deferred_start)
10047        )
10048    );
10049    assert_eq!(
10050        unsafe { &(*(::std::ptr::null::<rte_eth_txconf>())).offloads as *const _ as usize },
10051        16usize,
10052        concat!(
10053            "Offset of field: ",
10054            stringify!(rte_eth_txconf),
10055            "::",
10056            stringify!(offloads)
10057        )
10058    );
10059    assert_eq!(
10060        unsafe { &(*(::std::ptr::null::<rte_eth_txconf>())).reserved_64s as *const _ as usize },
10061        24usize,
10062        concat!(
10063            "Offset of field: ",
10064            stringify!(rte_eth_txconf),
10065            "::",
10066            stringify!(reserved_64s)
10067        )
10068    );
10069    assert_eq!(
10070        unsafe { &(*(::std::ptr::null::<rte_eth_txconf>())).reserved_ptrs as *const _ as usize },
10071        40usize,
10072        concat!(
10073            "Offset of field: ",
10074            stringify!(rte_eth_txconf),
10075            "::",
10076            stringify!(reserved_ptrs)
10077        )
10078    );
10079}
10080impl Default for rte_eth_txconf {
10081    fn default() -> Self {
10082        unsafe { ::std::mem::zeroed() }
10083    }
10084}
10085#[repr(C)]
10086#[derive(Debug, Default, Copy, Clone, PartialEq)]
10087pub struct rte_eth_hairpin_cap {
10088    pub max_nb_queues: u16,
10089    pub max_rx_2_tx: u16,
10090    pub max_tx_2_rx: u16,
10091    pub max_nb_desc: u16,
10092}
10093#[test]
10094fn bindgen_test_layout_rte_eth_hairpin_cap() {
10095    assert_eq!(
10096        ::std::mem::size_of::<rte_eth_hairpin_cap>(),
10097        8usize,
10098        concat!("Size of: ", stringify!(rte_eth_hairpin_cap))
10099    );
10100    assert_eq!(
10101        ::std::mem::align_of::<rte_eth_hairpin_cap>(),
10102        2usize,
10103        concat!("Alignment of ", stringify!(rte_eth_hairpin_cap))
10104    );
10105    assert_eq!(
10106        unsafe {
10107            &(*(::std::ptr::null::<rte_eth_hairpin_cap>())).max_nb_queues as *const _ as usize
10108        },
10109        0usize,
10110        concat!(
10111            "Offset of field: ",
10112            stringify!(rte_eth_hairpin_cap),
10113            "::",
10114            stringify!(max_nb_queues)
10115        )
10116    );
10117    assert_eq!(
10118        unsafe { &(*(::std::ptr::null::<rte_eth_hairpin_cap>())).max_rx_2_tx as *const _ as usize },
10119        2usize,
10120        concat!(
10121            "Offset of field: ",
10122            stringify!(rte_eth_hairpin_cap),
10123            "::",
10124            stringify!(max_rx_2_tx)
10125        )
10126    );
10127    assert_eq!(
10128        unsafe { &(*(::std::ptr::null::<rte_eth_hairpin_cap>())).max_tx_2_rx as *const _ as usize },
10129        4usize,
10130        concat!(
10131            "Offset of field: ",
10132            stringify!(rte_eth_hairpin_cap),
10133            "::",
10134            stringify!(max_tx_2_rx)
10135        )
10136    );
10137    assert_eq!(
10138        unsafe { &(*(::std::ptr::null::<rte_eth_hairpin_cap>())).max_nb_desc as *const _ as usize },
10139        6usize,
10140        concat!(
10141            "Offset of field: ",
10142            stringify!(rte_eth_hairpin_cap),
10143            "::",
10144            stringify!(max_nb_desc)
10145        )
10146    );
10147}
10148#[repr(C)]
10149#[derive(Debug, Default, Copy, Clone, PartialEq)]
10150pub struct rte_eth_hairpin_peer {
10151    pub port: u16,
10152    pub queue: u16,
10153}
10154#[test]
10155fn bindgen_test_layout_rte_eth_hairpin_peer() {
10156    assert_eq!(
10157        ::std::mem::size_of::<rte_eth_hairpin_peer>(),
10158        4usize,
10159        concat!("Size of: ", stringify!(rte_eth_hairpin_peer))
10160    );
10161    assert_eq!(
10162        ::std::mem::align_of::<rte_eth_hairpin_peer>(),
10163        2usize,
10164        concat!("Alignment of ", stringify!(rte_eth_hairpin_peer))
10165    );
10166    assert_eq!(
10167        unsafe { &(*(::std::ptr::null::<rte_eth_hairpin_peer>())).port as *const _ as usize },
10168        0usize,
10169        concat!(
10170            "Offset of field: ",
10171            stringify!(rte_eth_hairpin_peer),
10172            "::",
10173            stringify!(port)
10174        )
10175    );
10176    assert_eq!(
10177        unsafe { &(*(::std::ptr::null::<rte_eth_hairpin_peer>())).queue as *const _ as usize },
10178        2usize,
10179        concat!(
10180            "Offset of field: ",
10181            stringify!(rte_eth_hairpin_peer),
10182            "::",
10183            stringify!(queue)
10184        )
10185    );
10186}
10187#[repr(C)]
10188#[derive(Debug, Default, Copy, Clone, PartialEq)]
10189pub struct rte_eth_hairpin_conf {
10190    pub peer_count: u16,
10191    pub peers: [rte_eth_hairpin_peer; 32usize],
10192}
10193#[test]
10194fn bindgen_test_layout_rte_eth_hairpin_conf() {
10195    assert_eq!(
10196        ::std::mem::size_of::<rte_eth_hairpin_conf>(),
10197        130usize,
10198        concat!("Size of: ", stringify!(rte_eth_hairpin_conf))
10199    );
10200    assert_eq!(
10201        ::std::mem::align_of::<rte_eth_hairpin_conf>(),
10202        2usize,
10203        concat!("Alignment of ", stringify!(rte_eth_hairpin_conf))
10204    );
10205    assert_eq!(
10206        unsafe { &(*(::std::ptr::null::<rte_eth_hairpin_conf>())).peer_count as *const _ as usize },
10207        0usize,
10208        concat!(
10209            "Offset of field: ",
10210            stringify!(rte_eth_hairpin_conf),
10211            "::",
10212            stringify!(peer_count)
10213        )
10214    );
10215    assert_eq!(
10216        unsafe { &(*(::std::ptr::null::<rte_eth_hairpin_conf>())).peers as *const _ as usize },
10217        2usize,
10218        concat!(
10219            "Offset of field: ",
10220            stringify!(rte_eth_hairpin_conf),
10221            "::",
10222            stringify!(peers)
10223        )
10224    );
10225}
10226#[repr(C)]
10227#[derive(Debug, Default, Copy, Clone, PartialEq)]
10228pub struct rte_eth_desc_lim {
10229    pub nb_max: u16,
10230    pub nb_min: u16,
10231    pub nb_align: u16,
10232    pub nb_seg_max: u16,
10233    pub nb_mtu_seg_max: u16,
10234}
10235#[test]
10236fn bindgen_test_layout_rte_eth_desc_lim() {
10237    assert_eq!(
10238        ::std::mem::size_of::<rte_eth_desc_lim>(),
10239        10usize,
10240        concat!("Size of: ", stringify!(rte_eth_desc_lim))
10241    );
10242    assert_eq!(
10243        ::std::mem::align_of::<rte_eth_desc_lim>(),
10244        2usize,
10245        concat!("Alignment of ", stringify!(rte_eth_desc_lim))
10246    );
10247    assert_eq!(
10248        unsafe { &(*(::std::ptr::null::<rte_eth_desc_lim>())).nb_max as *const _ as usize },
10249        0usize,
10250        concat!(
10251            "Offset of field: ",
10252            stringify!(rte_eth_desc_lim),
10253            "::",
10254            stringify!(nb_max)
10255        )
10256    );
10257    assert_eq!(
10258        unsafe { &(*(::std::ptr::null::<rte_eth_desc_lim>())).nb_min as *const _ as usize },
10259        2usize,
10260        concat!(
10261            "Offset of field: ",
10262            stringify!(rte_eth_desc_lim),
10263            "::",
10264            stringify!(nb_min)
10265        )
10266    );
10267    assert_eq!(
10268        unsafe { &(*(::std::ptr::null::<rte_eth_desc_lim>())).nb_align as *const _ as usize },
10269        4usize,
10270        concat!(
10271            "Offset of field: ",
10272            stringify!(rte_eth_desc_lim),
10273            "::",
10274            stringify!(nb_align)
10275        )
10276    );
10277    assert_eq!(
10278        unsafe { &(*(::std::ptr::null::<rte_eth_desc_lim>())).nb_seg_max as *const _ as usize },
10279        6usize,
10280        concat!(
10281            "Offset of field: ",
10282            stringify!(rte_eth_desc_lim),
10283            "::",
10284            stringify!(nb_seg_max)
10285        )
10286    );
10287    assert_eq!(
10288        unsafe { &(*(::std::ptr::null::<rte_eth_desc_lim>())).nb_mtu_seg_max as *const _ as usize },
10289        8usize,
10290        concat!(
10291            "Offset of field: ",
10292            stringify!(rte_eth_desc_lim),
10293            "::",
10294            stringify!(nb_mtu_seg_max)
10295        )
10296    );
10297}
10298pub mod rte_eth_fc_mode {
10299    pub type Type = ::std::os::raw::c_uint;
10300    pub const RTE_FC_NONE: Type = 0;
10301    pub const RTE_FC_RX_PAUSE: Type = 1;
10302    pub const RTE_FC_TX_PAUSE: Type = 2;
10303    pub const RTE_FC_FULL: Type = 3;
10304}
10305#[repr(C)]
10306#[derive(Debug, Copy, Clone, PartialEq)]
10307pub struct rte_eth_fc_conf {
10308    pub high_water: u32,
10309    pub low_water: u32,
10310    pub pause_time: u16,
10311    pub send_xon: u16,
10312    pub mode: rte_eth_fc_mode::Type,
10313    pub mac_ctrl_frame_fwd: u8,
10314    pub autoneg: u8,
10315}
10316#[test]
10317fn bindgen_test_layout_rte_eth_fc_conf() {
10318    assert_eq!(
10319        ::std::mem::size_of::<rte_eth_fc_conf>(),
10320        20usize,
10321        concat!("Size of: ", stringify!(rte_eth_fc_conf))
10322    );
10323    assert_eq!(
10324        ::std::mem::align_of::<rte_eth_fc_conf>(),
10325        4usize,
10326        concat!("Alignment of ", stringify!(rte_eth_fc_conf))
10327    );
10328    assert_eq!(
10329        unsafe { &(*(::std::ptr::null::<rte_eth_fc_conf>())).high_water as *const _ as usize },
10330        0usize,
10331        concat!(
10332            "Offset of field: ",
10333            stringify!(rte_eth_fc_conf),
10334            "::",
10335            stringify!(high_water)
10336        )
10337    );
10338    assert_eq!(
10339        unsafe { &(*(::std::ptr::null::<rte_eth_fc_conf>())).low_water as *const _ as usize },
10340        4usize,
10341        concat!(
10342            "Offset of field: ",
10343            stringify!(rte_eth_fc_conf),
10344            "::",
10345            stringify!(low_water)
10346        )
10347    );
10348    assert_eq!(
10349        unsafe { &(*(::std::ptr::null::<rte_eth_fc_conf>())).pause_time as *const _ as usize },
10350        8usize,
10351        concat!(
10352            "Offset of field: ",
10353            stringify!(rte_eth_fc_conf),
10354            "::",
10355            stringify!(pause_time)
10356        )
10357    );
10358    assert_eq!(
10359        unsafe { &(*(::std::ptr::null::<rte_eth_fc_conf>())).send_xon as *const _ as usize },
10360        10usize,
10361        concat!(
10362            "Offset of field: ",
10363            stringify!(rte_eth_fc_conf),
10364            "::",
10365            stringify!(send_xon)
10366        )
10367    );
10368    assert_eq!(
10369        unsafe { &(*(::std::ptr::null::<rte_eth_fc_conf>())).mode as *const _ as usize },
10370        12usize,
10371        concat!(
10372            "Offset of field: ",
10373            stringify!(rte_eth_fc_conf),
10374            "::",
10375            stringify!(mode)
10376        )
10377    );
10378    assert_eq!(
10379        unsafe {
10380            &(*(::std::ptr::null::<rte_eth_fc_conf>())).mac_ctrl_frame_fwd as *const _ as usize
10381        },
10382        16usize,
10383        concat!(
10384            "Offset of field: ",
10385            stringify!(rte_eth_fc_conf),
10386            "::",
10387            stringify!(mac_ctrl_frame_fwd)
10388        )
10389    );
10390    assert_eq!(
10391        unsafe { &(*(::std::ptr::null::<rte_eth_fc_conf>())).autoneg as *const _ as usize },
10392        17usize,
10393        concat!(
10394            "Offset of field: ",
10395            stringify!(rte_eth_fc_conf),
10396            "::",
10397            stringify!(autoneg)
10398        )
10399    );
10400}
10401impl Default for rte_eth_fc_conf {
10402    fn default() -> Self {
10403        unsafe { ::std::mem::zeroed() }
10404    }
10405}
10406#[repr(C)]
10407#[derive(Debug, Copy, Clone, PartialEq)]
10408pub struct rte_eth_pfc_conf {
10409    pub fc: rte_eth_fc_conf,
10410    pub priority: u8,
10411}
10412#[test]
10413fn bindgen_test_layout_rte_eth_pfc_conf() {
10414    assert_eq!(
10415        ::std::mem::size_of::<rte_eth_pfc_conf>(),
10416        24usize,
10417        concat!("Size of: ", stringify!(rte_eth_pfc_conf))
10418    );
10419    assert_eq!(
10420        ::std::mem::align_of::<rte_eth_pfc_conf>(),
10421        4usize,
10422        concat!("Alignment of ", stringify!(rte_eth_pfc_conf))
10423    );
10424    assert_eq!(
10425        unsafe { &(*(::std::ptr::null::<rte_eth_pfc_conf>())).fc as *const _ as usize },
10426        0usize,
10427        concat!(
10428            "Offset of field: ",
10429            stringify!(rte_eth_pfc_conf),
10430            "::",
10431            stringify!(fc)
10432        )
10433    );
10434    assert_eq!(
10435        unsafe { &(*(::std::ptr::null::<rte_eth_pfc_conf>())).priority as *const _ as usize },
10436        20usize,
10437        concat!(
10438            "Offset of field: ",
10439            stringify!(rte_eth_pfc_conf),
10440            "::",
10441            stringify!(priority)
10442        )
10443    );
10444}
10445impl Default for rte_eth_pfc_conf {
10446    fn default() -> Self {
10447        unsafe { ::std::mem::zeroed() }
10448    }
10449}
10450pub mod rte_eth_tunnel_type {
10451    pub type Type = ::std::os::raw::c_uint;
10452    pub const RTE_TUNNEL_TYPE_NONE: Type = 0;
10453    pub const RTE_TUNNEL_TYPE_VXLAN: Type = 1;
10454    pub const RTE_TUNNEL_TYPE_GENEVE: Type = 2;
10455    pub const RTE_TUNNEL_TYPE_TEREDO: Type = 3;
10456    pub const RTE_TUNNEL_TYPE_NVGRE: Type = 4;
10457    pub const RTE_TUNNEL_TYPE_IP_IN_GRE: Type = 5;
10458    pub const RTE_L2_TUNNEL_TYPE_E_TAG: Type = 6;
10459    pub const RTE_TUNNEL_TYPE_VXLAN_GPE: Type = 7;
10460    pub const RTE_TUNNEL_TYPE_MAX: Type = 8;
10461}
10462#[repr(C)]
10463#[repr(align(2))]
10464#[derive(Debug, Default, Copy, Clone, PartialEq)]
10465pub struct rte_arp_ipv4 {
10466    pub _bindgen_opaque_blob: [u16; 10usize],
10467}
10468#[test]
10469fn bindgen_test_layout_rte_arp_ipv4() {
10470    assert_eq!(
10471        ::std::mem::size_of::<rte_arp_ipv4>(),
10472        20usize,
10473        concat!("Size of: ", stringify!(rte_arp_ipv4))
10474    );
10475    assert_eq!(
10476        ::std::mem::align_of::<rte_arp_ipv4>(),
10477        2usize,
10478        concat!("Alignment of ", stringify!(rte_arp_ipv4))
10479    );
10480}
10481#[repr(C)]
10482#[repr(align(2))]
10483#[derive(Debug, Default, Copy, Clone, PartialEq)]
10484pub struct rte_arp_hdr {
10485    pub _bindgen_opaque_blob: [u16; 14usize],
10486}
10487#[test]
10488fn bindgen_test_layout_rte_arp_hdr() {
10489    assert_eq!(
10490        ::std::mem::size_of::<rte_arp_hdr>(),
10491        28usize,
10492        concat!("Size of: ", stringify!(rte_arp_hdr))
10493    );
10494    assert_eq!(
10495        ::std::mem::align_of::<rte_arp_hdr>(),
10496        2usize,
10497        concat!("Alignment of ", stringify!(rte_arp_hdr))
10498    );
10499}
10500extern "C" {
10501    pub fn rte_net_make_rarp_packet(
10502        mpool: *mut rte_mempool,
10503        mac: *const rte_ether_addr,
10504    ) -> *mut rte_mbuf;
10505}
10506#[repr(C, packed)]
10507#[derive(Debug, Default, Copy, Clone, PartialEq)]
10508pub struct rte_icmp_hdr {
10509    pub icmp_type: u8,
10510    pub icmp_code: u8,
10511    pub icmp_cksum: rte_be16_t,
10512    pub icmp_ident: rte_be16_t,
10513    pub icmp_seq_nb: rte_be16_t,
10514}
10515#[test]
10516fn bindgen_test_layout_rte_icmp_hdr() {
10517    assert_eq!(
10518        ::std::mem::size_of::<rte_icmp_hdr>(),
10519        8usize,
10520        concat!("Size of: ", stringify!(rte_icmp_hdr))
10521    );
10522    assert_eq!(
10523        ::std::mem::align_of::<rte_icmp_hdr>(),
10524        1usize,
10525        concat!("Alignment of ", stringify!(rte_icmp_hdr))
10526    );
10527    assert_eq!(
10528        unsafe { &(*(::std::ptr::null::<rte_icmp_hdr>())).icmp_type as *const _ as usize },
10529        0usize,
10530        concat!(
10531            "Offset of field: ",
10532            stringify!(rte_icmp_hdr),
10533            "::",
10534            stringify!(icmp_type)
10535        )
10536    );
10537    assert_eq!(
10538        unsafe { &(*(::std::ptr::null::<rte_icmp_hdr>())).icmp_code as *const _ as usize },
10539        1usize,
10540        concat!(
10541            "Offset of field: ",
10542            stringify!(rte_icmp_hdr),
10543            "::",
10544            stringify!(icmp_code)
10545        )
10546    );
10547    assert_eq!(
10548        unsafe { &(*(::std::ptr::null::<rte_icmp_hdr>())).icmp_cksum as *const _ as usize },
10549        2usize,
10550        concat!(
10551            "Offset of field: ",
10552            stringify!(rte_icmp_hdr),
10553            "::",
10554            stringify!(icmp_cksum)
10555        )
10556    );
10557    assert_eq!(
10558        unsafe { &(*(::std::ptr::null::<rte_icmp_hdr>())).icmp_ident as *const _ as usize },
10559        4usize,
10560        concat!(
10561            "Offset of field: ",
10562            stringify!(rte_icmp_hdr),
10563            "::",
10564            stringify!(icmp_ident)
10565        )
10566    );
10567    assert_eq!(
10568        unsafe { &(*(::std::ptr::null::<rte_icmp_hdr>())).icmp_seq_nb as *const _ as usize },
10569        6usize,
10570        concat!(
10571            "Offset of field: ",
10572            stringify!(rte_icmp_hdr),
10573            "::",
10574            stringify!(icmp_seq_nb)
10575        )
10576    );
10577}
10578pub type sa_family_t = ::std::os::raw::c_ushort;
10579#[repr(C)]
10580#[derive(Debug, Default, Copy, Clone, PartialEq)]
10581pub struct sockaddr {
10582    pub sa_family: sa_family_t,
10583    pub sa_data: [::std::os::raw::c_char; 14usize],
10584}
10585#[test]
10586fn bindgen_test_layout_sockaddr() {
10587    assert_eq!(
10588        ::std::mem::size_of::<sockaddr>(),
10589        16usize,
10590        concat!("Size of: ", stringify!(sockaddr))
10591    );
10592    assert_eq!(
10593        ::std::mem::align_of::<sockaddr>(),
10594        2usize,
10595        concat!("Alignment of ", stringify!(sockaddr))
10596    );
10597    assert_eq!(
10598        unsafe { &(*(::std::ptr::null::<sockaddr>())).sa_family as *const _ as usize },
10599        0usize,
10600        concat!(
10601            "Offset of field: ",
10602            stringify!(sockaddr),
10603            "::",
10604            stringify!(sa_family)
10605        )
10606    );
10607    assert_eq!(
10608        unsafe { &(*(::std::ptr::null::<sockaddr>())).sa_data as *const _ as usize },
10609        2usize,
10610        concat!(
10611            "Offset of field: ",
10612            stringify!(sockaddr),
10613            "::",
10614            stringify!(sa_data)
10615        )
10616    );
10617}
10618#[repr(C, packed)]
10619#[derive(Debug, Default, Copy, Clone, PartialEq)]
10620pub struct rte_ipv4_hdr {
10621    pub version_ihl: u8,
10622    pub type_of_service: u8,
10623    pub total_length: rte_be16_t,
10624    pub packet_id: rte_be16_t,
10625    pub fragment_offset: rte_be16_t,
10626    pub time_to_live: u8,
10627    pub next_proto_id: u8,
10628    pub hdr_checksum: rte_be16_t,
10629    pub src_addr: rte_be32_t,
10630    pub dst_addr: rte_be32_t,
10631}
10632#[test]
10633fn bindgen_test_layout_rte_ipv4_hdr() {
10634    assert_eq!(
10635        ::std::mem::size_of::<rte_ipv4_hdr>(),
10636        20usize,
10637        concat!("Size of: ", stringify!(rte_ipv4_hdr))
10638    );
10639    assert_eq!(
10640        ::std::mem::align_of::<rte_ipv4_hdr>(),
10641        1usize,
10642        concat!("Alignment of ", stringify!(rte_ipv4_hdr))
10643    );
10644    assert_eq!(
10645        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).version_ihl as *const _ as usize },
10646        0usize,
10647        concat!(
10648            "Offset of field: ",
10649            stringify!(rte_ipv4_hdr),
10650            "::",
10651            stringify!(version_ihl)
10652        )
10653    );
10654    assert_eq!(
10655        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).type_of_service as *const _ as usize },
10656        1usize,
10657        concat!(
10658            "Offset of field: ",
10659            stringify!(rte_ipv4_hdr),
10660            "::",
10661            stringify!(type_of_service)
10662        )
10663    );
10664    assert_eq!(
10665        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).total_length as *const _ as usize },
10666        2usize,
10667        concat!(
10668            "Offset of field: ",
10669            stringify!(rte_ipv4_hdr),
10670            "::",
10671            stringify!(total_length)
10672        )
10673    );
10674    assert_eq!(
10675        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).packet_id as *const _ as usize },
10676        4usize,
10677        concat!(
10678            "Offset of field: ",
10679            stringify!(rte_ipv4_hdr),
10680            "::",
10681            stringify!(packet_id)
10682        )
10683    );
10684    assert_eq!(
10685        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).fragment_offset as *const _ as usize },
10686        6usize,
10687        concat!(
10688            "Offset of field: ",
10689            stringify!(rte_ipv4_hdr),
10690            "::",
10691            stringify!(fragment_offset)
10692        )
10693    );
10694    assert_eq!(
10695        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).time_to_live as *const _ as usize },
10696        8usize,
10697        concat!(
10698            "Offset of field: ",
10699            stringify!(rte_ipv4_hdr),
10700            "::",
10701            stringify!(time_to_live)
10702        )
10703    );
10704    assert_eq!(
10705        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).next_proto_id as *const _ as usize },
10706        9usize,
10707        concat!(
10708            "Offset of field: ",
10709            stringify!(rte_ipv4_hdr),
10710            "::",
10711            stringify!(next_proto_id)
10712        )
10713    );
10714    assert_eq!(
10715        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).hdr_checksum as *const _ as usize },
10716        10usize,
10717        concat!(
10718            "Offset of field: ",
10719            stringify!(rte_ipv4_hdr),
10720            "::",
10721            stringify!(hdr_checksum)
10722        )
10723    );
10724    assert_eq!(
10725        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).src_addr as *const _ as usize },
10726        12usize,
10727        concat!(
10728            "Offset of field: ",
10729            stringify!(rte_ipv4_hdr),
10730            "::",
10731            stringify!(src_addr)
10732        )
10733    );
10734    assert_eq!(
10735        unsafe { &(*(::std::ptr::null::<rte_ipv4_hdr>())).dst_addr as *const _ as usize },
10736        16usize,
10737        concat!(
10738            "Offset of field: ",
10739            stringify!(rte_ipv4_hdr),
10740            "::",
10741            stringify!(dst_addr)
10742        )
10743    );
10744}
10745#[repr(C, packed)]
10746#[derive(Debug, Default, Copy, Clone, PartialEq)]
10747pub struct rte_ipv6_hdr {
10748    pub vtc_flow: rte_be32_t,
10749    pub payload_len: rte_be16_t,
10750    pub proto: u8,
10751    pub hop_limits: u8,
10752    pub src_addr: [u8; 16usize],
10753    pub dst_addr: [u8; 16usize],
10754}
10755#[test]
10756fn bindgen_test_layout_rte_ipv6_hdr() {
10757    assert_eq!(
10758        ::std::mem::size_of::<rte_ipv6_hdr>(),
10759        40usize,
10760        concat!("Size of: ", stringify!(rte_ipv6_hdr))
10761    );
10762    assert_eq!(
10763        ::std::mem::align_of::<rte_ipv6_hdr>(),
10764        1usize,
10765        concat!("Alignment of ", stringify!(rte_ipv6_hdr))
10766    );
10767    assert_eq!(
10768        unsafe { &(*(::std::ptr::null::<rte_ipv6_hdr>())).vtc_flow as *const _ as usize },
10769        0usize,
10770        concat!(
10771            "Offset of field: ",
10772            stringify!(rte_ipv6_hdr),
10773            "::",
10774            stringify!(vtc_flow)
10775        )
10776    );
10777    assert_eq!(
10778        unsafe { &(*(::std::ptr::null::<rte_ipv6_hdr>())).payload_len as *const _ as usize },
10779        4usize,
10780        concat!(
10781            "Offset of field: ",
10782            stringify!(rte_ipv6_hdr),
10783            "::",
10784            stringify!(payload_len)
10785        )
10786    );
10787    assert_eq!(
10788        unsafe { &(*(::std::ptr::null::<rte_ipv6_hdr>())).proto as *const _ as usize },
10789        6usize,
10790        concat!(
10791            "Offset of field: ",
10792            stringify!(rte_ipv6_hdr),
10793            "::",
10794            stringify!(proto)
10795        )
10796    );
10797    assert_eq!(
10798        unsafe { &(*(::std::ptr::null::<rte_ipv6_hdr>())).hop_limits as *const _ as usize },
10799        7usize,
10800        concat!(
10801            "Offset of field: ",
10802            stringify!(rte_ipv6_hdr),
10803            "::",
10804            stringify!(hop_limits)
10805        )
10806    );
10807    assert_eq!(
10808        unsafe { &(*(::std::ptr::null::<rte_ipv6_hdr>())).src_addr as *const _ as usize },
10809        8usize,
10810        concat!(
10811            "Offset of field: ",
10812            stringify!(rte_ipv6_hdr),
10813            "::",
10814            stringify!(src_addr)
10815        )
10816    );
10817    assert_eq!(
10818        unsafe { &(*(::std::ptr::null::<rte_ipv6_hdr>())).dst_addr as *const _ as usize },
10819        24usize,
10820        concat!(
10821            "Offset of field: ",
10822            stringify!(rte_ipv6_hdr),
10823            "::",
10824            stringify!(dst_addr)
10825        )
10826    );
10827}
10828#[repr(C, packed)]
10829#[derive(Debug, Default, Copy, Clone, PartialEq)]
10830pub struct rte_sctp_hdr {
10831    pub src_port: rte_be16_t,
10832    pub dst_port: rte_be16_t,
10833    pub tag: rte_be32_t,
10834    pub cksum: rte_be32_t,
10835}
10836#[test]
10837fn bindgen_test_layout_rte_sctp_hdr() {
10838    assert_eq!(
10839        ::std::mem::size_of::<rte_sctp_hdr>(),
10840        12usize,
10841        concat!("Size of: ", stringify!(rte_sctp_hdr))
10842    );
10843    assert_eq!(
10844        ::std::mem::align_of::<rte_sctp_hdr>(),
10845        1usize,
10846        concat!("Alignment of ", stringify!(rte_sctp_hdr))
10847    );
10848    assert_eq!(
10849        unsafe { &(*(::std::ptr::null::<rte_sctp_hdr>())).src_port as *const _ as usize },
10850        0usize,
10851        concat!(
10852            "Offset of field: ",
10853            stringify!(rte_sctp_hdr),
10854            "::",
10855            stringify!(src_port)
10856        )
10857    );
10858    assert_eq!(
10859        unsafe { &(*(::std::ptr::null::<rte_sctp_hdr>())).dst_port as *const _ as usize },
10860        2usize,
10861        concat!(
10862            "Offset of field: ",
10863            stringify!(rte_sctp_hdr),
10864            "::",
10865            stringify!(dst_port)
10866        )
10867    );
10868    assert_eq!(
10869        unsafe { &(*(::std::ptr::null::<rte_sctp_hdr>())).tag as *const _ as usize },
10870        4usize,
10871        concat!(
10872            "Offset of field: ",
10873            stringify!(rte_sctp_hdr),
10874            "::",
10875            stringify!(tag)
10876        )
10877    );
10878    assert_eq!(
10879        unsafe { &(*(::std::ptr::null::<rte_sctp_hdr>())).cksum as *const _ as usize },
10880        8usize,
10881        concat!(
10882            "Offset of field: ",
10883            stringify!(rte_sctp_hdr),
10884            "::",
10885            stringify!(cksum)
10886        )
10887    );
10888}
10889#[repr(C, packed)]
10890#[derive(Debug, Default, Copy, Clone, PartialEq)]
10891pub struct rte_tcp_hdr {
10892    pub src_port: rte_be16_t,
10893    pub dst_port: rte_be16_t,
10894    pub sent_seq: rte_be32_t,
10895    pub recv_ack: rte_be32_t,
10896    pub data_off: u8,
10897    pub tcp_flags: u8,
10898    pub rx_win: rte_be16_t,
10899    pub cksum: rte_be16_t,
10900    pub tcp_urp: rte_be16_t,
10901}
10902#[test]
10903fn bindgen_test_layout_rte_tcp_hdr() {
10904    assert_eq!(
10905        ::std::mem::size_of::<rte_tcp_hdr>(),
10906        20usize,
10907        concat!("Size of: ", stringify!(rte_tcp_hdr))
10908    );
10909    assert_eq!(
10910        ::std::mem::align_of::<rte_tcp_hdr>(),
10911        1usize,
10912        concat!("Alignment of ", stringify!(rte_tcp_hdr))
10913    );
10914    assert_eq!(
10915        unsafe { &(*(::std::ptr::null::<rte_tcp_hdr>())).src_port as *const _ as usize },
10916        0usize,
10917        concat!(
10918            "Offset of field: ",
10919            stringify!(rte_tcp_hdr),
10920            "::",
10921            stringify!(src_port)
10922        )
10923    );
10924    assert_eq!(
10925        unsafe { &(*(::std::ptr::null::<rte_tcp_hdr>())).dst_port as *const _ as usize },
10926        2usize,
10927        concat!(
10928            "Offset of field: ",
10929            stringify!(rte_tcp_hdr),
10930            "::",
10931            stringify!(dst_port)
10932        )
10933    );
10934    assert_eq!(
10935        unsafe { &(*(::std::ptr::null::<rte_tcp_hdr>())).sent_seq as *const _ as usize },
10936        4usize,
10937        concat!(
10938            "Offset of field: ",
10939            stringify!(rte_tcp_hdr),
10940            "::",
10941            stringify!(sent_seq)
10942        )
10943    );
10944    assert_eq!(
10945        unsafe { &(*(::std::ptr::null::<rte_tcp_hdr>())).recv_ack as *const _ as usize },
10946        8usize,
10947        concat!(
10948            "Offset of field: ",
10949            stringify!(rte_tcp_hdr),
10950            "::",
10951            stringify!(recv_ack)
10952        )
10953    );
10954    assert_eq!(
10955        unsafe { &(*(::std::ptr::null::<rte_tcp_hdr>())).data_off as *const _ as usize },
10956        12usize,
10957        concat!(
10958            "Offset of field: ",
10959            stringify!(rte_tcp_hdr),
10960            "::",
10961            stringify!(data_off)
10962        )
10963    );
10964    assert_eq!(
10965        unsafe { &(*(::std::ptr::null::<rte_tcp_hdr>())).tcp_flags as *const _ as usize },
10966        13usize,
10967        concat!(
10968            "Offset of field: ",
10969            stringify!(rte_tcp_hdr),
10970            "::",
10971            stringify!(tcp_flags)
10972        )
10973    );
10974    assert_eq!(
10975        unsafe { &(*(::std::ptr::null::<rte_tcp_hdr>())).rx_win as *const _ as usize },
10976        14usize,
10977        concat!(
10978            "Offset of field: ",
10979            stringify!(rte_tcp_hdr),
10980            "::",
10981            stringify!(rx_win)
10982        )
10983    );
10984    assert_eq!(
10985        unsafe { &(*(::std::ptr::null::<rte_tcp_hdr>())).cksum as *const _ as usize },
10986        16usize,
10987        concat!(
10988            "Offset of field: ",
10989            stringify!(rte_tcp_hdr),
10990            "::",
10991            stringify!(cksum)
10992        )
10993    );
10994    assert_eq!(
10995        unsafe { &(*(::std::ptr::null::<rte_tcp_hdr>())).tcp_urp as *const _ as usize },
10996        18usize,
10997        concat!(
10998            "Offset of field: ",
10999            stringify!(rte_tcp_hdr),
11000            "::",
11001            stringify!(tcp_urp)
11002        )
11003    );
11004}
11005#[repr(C, packed)]
11006#[derive(Debug, Default, Copy, Clone, PartialEq)]
11007pub struct rte_udp_hdr {
11008    pub src_port: rte_be16_t,
11009    pub dst_port: rte_be16_t,
11010    pub dgram_len: rte_be16_t,
11011    pub dgram_cksum: rte_be16_t,
11012}
11013#[test]
11014fn bindgen_test_layout_rte_udp_hdr() {
11015    assert_eq!(
11016        ::std::mem::size_of::<rte_udp_hdr>(),
11017        8usize,
11018        concat!("Size of: ", stringify!(rte_udp_hdr))
11019    );
11020    assert_eq!(
11021        ::std::mem::align_of::<rte_udp_hdr>(),
11022        1usize,
11023        concat!("Alignment of ", stringify!(rte_udp_hdr))
11024    );
11025    assert_eq!(
11026        unsafe { &(*(::std::ptr::null::<rte_udp_hdr>())).src_port as *const _ as usize },
11027        0usize,
11028        concat!(
11029            "Offset of field: ",
11030            stringify!(rte_udp_hdr),
11031            "::",
11032            stringify!(src_port)
11033        )
11034    );
11035    assert_eq!(
11036        unsafe { &(*(::std::ptr::null::<rte_udp_hdr>())).dst_port as *const _ as usize },
11037        2usize,
11038        concat!(
11039            "Offset of field: ",
11040            stringify!(rte_udp_hdr),
11041            "::",
11042            stringify!(dst_port)
11043        )
11044    );
11045    assert_eq!(
11046        unsafe { &(*(::std::ptr::null::<rte_udp_hdr>())).dgram_len as *const _ as usize },
11047        4usize,
11048        concat!(
11049            "Offset of field: ",
11050            stringify!(rte_udp_hdr),
11051            "::",
11052            stringify!(dgram_len)
11053        )
11054    );
11055    assert_eq!(
11056        unsafe { &(*(::std::ptr::null::<rte_udp_hdr>())).dgram_cksum as *const _ as usize },
11057        6usize,
11058        concat!(
11059            "Offset of field: ",
11060            stringify!(rte_udp_hdr),
11061            "::",
11062            stringify!(dgram_cksum)
11063        )
11064    );
11065}
11066#[repr(C, packed)]
11067#[derive(Debug, Default, Copy, Clone, PartialEq)]
11068pub struct rte_esp_hdr {
11069    pub spi: rte_be32_t,
11070    pub seq: rte_be32_t,
11071}
11072#[test]
11073fn bindgen_test_layout_rte_esp_hdr() {
11074    assert_eq!(
11075        ::std::mem::size_of::<rte_esp_hdr>(),
11076        8usize,
11077        concat!("Size of: ", stringify!(rte_esp_hdr))
11078    );
11079    assert_eq!(
11080        ::std::mem::align_of::<rte_esp_hdr>(),
11081        1usize,
11082        concat!("Alignment of ", stringify!(rte_esp_hdr))
11083    );
11084    assert_eq!(
11085        unsafe { &(*(::std::ptr::null::<rte_esp_hdr>())).spi as *const _ as usize },
11086        0usize,
11087        concat!(
11088            "Offset of field: ",
11089            stringify!(rte_esp_hdr),
11090            "::",
11091            stringify!(spi)
11092        )
11093    );
11094    assert_eq!(
11095        unsafe { &(*(::std::ptr::null::<rte_esp_hdr>())).seq as *const _ as usize },
11096        4usize,
11097        concat!(
11098            "Offset of field: ",
11099            stringify!(rte_esp_hdr),
11100            "::",
11101            stringify!(seq)
11102        )
11103    );
11104}
11105#[repr(C, packed)]
11106#[derive(Debug, Default, Copy, Clone, PartialEq)]
11107pub struct rte_esp_tail {
11108    pub pad_len: u8,
11109    pub next_proto: u8,
11110}
11111#[test]
11112fn bindgen_test_layout_rte_esp_tail() {
11113    assert_eq!(
11114        ::std::mem::size_of::<rte_esp_tail>(),
11115        2usize,
11116        concat!("Size of: ", stringify!(rte_esp_tail))
11117    );
11118    assert_eq!(
11119        ::std::mem::align_of::<rte_esp_tail>(),
11120        1usize,
11121        concat!("Alignment of ", stringify!(rte_esp_tail))
11122    );
11123    assert_eq!(
11124        unsafe { &(*(::std::ptr::null::<rte_esp_tail>())).pad_len as *const _ as usize },
11125        0usize,
11126        concat!(
11127            "Offset of field: ",
11128            stringify!(rte_esp_tail),
11129            "::",
11130            stringify!(pad_len)
11131        )
11132    );
11133    assert_eq!(
11134        unsafe { &(*(::std::ptr::null::<rte_esp_tail>())).next_proto as *const _ as usize },
11135        1usize,
11136        concat!(
11137            "Offset of field: ",
11138            stringify!(rte_esp_tail),
11139            "::",
11140            stringify!(next_proto)
11141        )
11142    );
11143}
11144#[repr(C)]
11145#[repr(align(4))]
11146#[derive(Debug, Default, Copy, Clone, PartialEq)]
11147pub struct rte_higig2_frc {
11148    pub _bitfield_align_1: [u8; 0],
11149    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
11150}
11151#[test]
11152fn bindgen_test_layout_rte_higig2_frc() {
11153    assert_eq!(
11154        ::std::mem::size_of::<rte_higig2_frc>(),
11155        8usize,
11156        concat!("Size of: ", stringify!(rte_higig2_frc))
11157    );
11158    assert_eq!(
11159        ::std::mem::align_of::<rte_higig2_frc>(),
11160        4usize,
11161        concat!("Alignment of ", stringify!(rte_higig2_frc))
11162    );
11163}
11164impl rte_higig2_frc {
11165    #[inline]
11166    pub fn ksop(&self) -> u32 {
11167        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
11168    }
11169    #[inline]
11170    pub fn set_ksop(&mut self, val: u32) {
11171        unsafe {
11172            let val: u32 = ::std::mem::transmute(val);
11173            self._bitfield_1.set(0usize, 8u8, val as u64)
11174        }
11175    }
11176    #[inline]
11177    pub fn tc(&self) -> u32 {
11178        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u32) }
11179    }
11180    #[inline]
11181    pub fn set_tc(&mut self, val: u32) {
11182        unsafe {
11183            let val: u32 = ::std::mem::transmute(val);
11184            self._bitfield_1.set(8usize, 4u8, val as u64)
11185        }
11186    }
11187    #[inline]
11188    pub fn mcst(&self) -> u32 {
11189        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
11190    }
11191    #[inline]
11192    pub fn set_mcst(&mut self, val: u32) {
11193        unsafe {
11194            let val: u32 = ::std::mem::transmute(val);
11195            self._bitfield_1.set(12usize, 1u8, val as u64)
11196        }
11197    }
11198    #[inline]
11199    pub fn resv(&self) -> u32 {
11200        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u32) }
11201    }
11202    #[inline]
11203    pub fn set_resv(&mut self, val: u32) {
11204        unsafe {
11205            let val: u32 = ::std::mem::transmute(val);
11206            self._bitfield_1.set(13usize, 3u8, val as u64)
11207        }
11208    }
11209    #[inline]
11210    pub fn dst_modid(&self) -> u32 {
11211        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 8u8) as u32) }
11212    }
11213    #[inline]
11214    pub fn set_dst_modid(&mut self, val: u32) {
11215        unsafe {
11216            let val: u32 = ::std::mem::transmute(val);
11217            self._bitfield_1.set(16usize, 8u8, val as u64)
11218        }
11219    }
11220    #[inline]
11221    pub fn dst_pid(&self) -> u32 {
11222        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
11223    }
11224    #[inline]
11225    pub fn set_dst_pid(&mut self, val: u32) {
11226        unsafe {
11227            let val: u32 = ::std::mem::transmute(val);
11228            self._bitfield_1.set(24usize, 8u8, val as u64)
11229        }
11230    }
11231    #[inline]
11232    pub fn src_modid(&self) -> u32 {
11233        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 8u8) as u32) }
11234    }
11235    #[inline]
11236    pub fn set_src_modid(&mut self, val: u32) {
11237        unsafe {
11238            let val: u32 = ::std::mem::transmute(val);
11239            self._bitfield_1.set(32usize, 8u8, val as u64)
11240        }
11241    }
11242    #[inline]
11243    pub fn src_pid(&self) -> u32 {
11244        unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 8u8) as u32) }
11245    }
11246    #[inline]
11247    pub fn set_src_pid(&mut self, val: u32) {
11248        unsafe {
11249            let val: u32 = ::std::mem::transmute(val);
11250            self._bitfield_1.set(40usize, 8u8, val as u64)
11251        }
11252    }
11253    #[inline]
11254    pub fn lbid(&self) -> u32 {
11255        unsafe { ::std::mem::transmute(self._bitfield_1.get(48usize, 8u8) as u32) }
11256    }
11257    #[inline]
11258    pub fn set_lbid(&mut self, val: u32) {
11259        unsafe {
11260            let val: u32 = ::std::mem::transmute(val);
11261            self._bitfield_1.set(48usize, 8u8, val as u64)
11262        }
11263    }
11264    #[inline]
11265    pub fn ppd_type(&self) -> u32 {
11266        unsafe { ::std::mem::transmute(self._bitfield_1.get(56usize, 3u8) as u32) }
11267    }
11268    #[inline]
11269    pub fn set_ppd_type(&mut self, val: u32) {
11270        unsafe {
11271            let val: u32 = ::std::mem::transmute(val);
11272            self._bitfield_1.set(56usize, 3u8, val as u64)
11273        }
11274    }
11275    #[inline]
11276    pub fn resv1(&self) -> u32 {
11277        unsafe { ::std::mem::transmute(self._bitfield_1.get(59usize, 3u8) as u32) }
11278    }
11279    #[inline]
11280    pub fn set_resv1(&mut self, val: u32) {
11281        unsafe {
11282            let val: u32 = ::std::mem::transmute(val);
11283            self._bitfield_1.set(59usize, 3u8, val as u64)
11284        }
11285    }
11286    #[inline]
11287    pub fn dp(&self) -> u32 {
11288        unsafe { ::std::mem::transmute(self._bitfield_1.get(62usize, 2u8) as u32) }
11289    }
11290    #[inline]
11291    pub fn set_dp(&mut self, val: u32) {
11292        unsafe {
11293            let val: u32 = ::std::mem::transmute(val);
11294            self._bitfield_1.set(62usize, 2u8, val as u64)
11295        }
11296    }
11297    #[inline]
11298    pub fn new_bitfield_1(
11299        ksop: u32,
11300        tc: u32,
11301        mcst: u32,
11302        resv: u32,
11303        dst_modid: u32,
11304        dst_pid: u32,
11305        src_modid: u32,
11306        src_pid: u32,
11307        lbid: u32,
11308        ppd_type: u32,
11309        resv1: u32,
11310        dp: u32,
11311    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
11312        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
11313        __bindgen_bitfield_unit.set(0usize, 8u8, {
11314            let ksop: u32 = unsafe { ::std::mem::transmute(ksop) };
11315            ksop as u64
11316        });
11317        __bindgen_bitfield_unit.set(8usize, 4u8, {
11318            let tc: u32 = unsafe { ::std::mem::transmute(tc) };
11319            tc as u64
11320        });
11321        __bindgen_bitfield_unit.set(12usize, 1u8, {
11322            let mcst: u32 = unsafe { ::std::mem::transmute(mcst) };
11323            mcst as u64
11324        });
11325        __bindgen_bitfield_unit.set(13usize, 3u8, {
11326            let resv: u32 = unsafe { ::std::mem::transmute(resv) };
11327            resv as u64
11328        });
11329        __bindgen_bitfield_unit.set(16usize, 8u8, {
11330            let dst_modid: u32 = unsafe { ::std::mem::transmute(dst_modid) };
11331            dst_modid as u64
11332        });
11333        __bindgen_bitfield_unit.set(24usize, 8u8, {
11334            let dst_pid: u32 = unsafe { ::std::mem::transmute(dst_pid) };
11335            dst_pid as u64
11336        });
11337        __bindgen_bitfield_unit.set(32usize, 8u8, {
11338            let src_modid: u32 = unsafe { ::std::mem::transmute(src_modid) };
11339            src_modid as u64
11340        });
11341        __bindgen_bitfield_unit.set(40usize, 8u8, {
11342            let src_pid: u32 = unsafe { ::std::mem::transmute(src_pid) };
11343            src_pid as u64
11344        });
11345        __bindgen_bitfield_unit.set(48usize, 8u8, {
11346            let lbid: u32 = unsafe { ::std::mem::transmute(lbid) };
11347            lbid as u64
11348        });
11349        __bindgen_bitfield_unit.set(56usize, 3u8, {
11350            let ppd_type: u32 = unsafe { ::std::mem::transmute(ppd_type) };
11351            ppd_type as u64
11352        });
11353        __bindgen_bitfield_unit.set(59usize, 3u8, {
11354            let resv1: u32 = unsafe { ::std::mem::transmute(resv1) };
11355            resv1 as u64
11356        });
11357        __bindgen_bitfield_unit.set(62usize, 2u8, {
11358            let dp: u32 = unsafe { ::std::mem::transmute(dp) };
11359            dp as u64
11360        });
11361        __bindgen_bitfield_unit
11362    }
11363}
11364#[repr(C)]
11365#[repr(align(4))]
11366#[derive(Debug, Default, Copy, Clone, PartialEq)]
11367pub struct rte_higig2_ppt_type0 {
11368    pub _bitfield_align_1: [u8; 0],
11369    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
11370}
11371#[test]
11372fn bindgen_test_layout_rte_higig2_ppt_type0() {
11373    assert_eq!(
11374        ::std::mem::size_of::<rte_higig2_ppt_type0>(),
11375        8usize,
11376        concat!("Size of: ", stringify!(rte_higig2_ppt_type0))
11377    );
11378    assert_eq!(
11379        ::std::mem::align_of::<rte_higig2_ppt_type0>(),
11380        4usize,
11381        concat!("Alignment of ", stringify!(rte_higig2_ppt_type0))
11382    );
11383}
11384impl rte_higig2_ppt_type0 {
11385    #[inline]
11386    pub fn mirror(&self) -> u32 {
11387        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11388    }
11389    #[inline]
11390    pub fn set_mirror(&mut self, val: u32) {
11391        unsafe {
11392            let val: u32 = ::std::mem::transmute(val);
11393            self._bitfield_1.set(0usize, 1u8, val as u64)
11394        }
11395    }
11396    #[inline]
11397    pub fn mirror_done(&self) -> u32 {
11398        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
11399    }
11400    #[inline]
11401    pub fn set_mirror_done(&mut self, val: u32) {
11402        unsafe {
11403            let val: u32 = ::std::mem::transmute(val);
11404            self._bitfield_1.set(1usize, 1u8, val as u64)
11405        }
11406    }
11407    #[inline]
11408    pub fn mirror_only(&self) -> u32 {
11409        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
11410    }
11411    #[inline]
11412    pub fn set_mirror_only(&mut self, val: u32) {
11413        unsafe {
11414            let val: u32 = ::std::mem::transmute(val);
11415            self._bitfield_1.set(2usize, 1u8, val as u64)
11416        }
11417    }
11418    #[inline]
11419    pub fn ingress_tagged(&self) -> u32 {
11420        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
11421    }
11422    #[inline]
11423    pub fn set_ingress_tagged(&mut self, val: u32) {
11424        unsafe {
11425            let val: u32 = ::std::mem::transmute(val);
11426            self._bitfield_1.set(3usize, 1u8, val as u64)
11427        }
11428    }
11429    #[inline]
11430    pub fn dst_tgid(&self) -> u32 {
11431        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 3u8) as u32) }
11432    }
11433    #[inline]
11434    pub fn set_dst_tgid(&mut self, val: u32) {
11435        unsafe {
11436            let val: u32 = ::std::mem::transmute(val);
11437            self._bitfield_1.set(4usize, 3u8, val as u64)
11438        }
11439    }
11440    #[inline]
11441    pub fn dst_t(&self) -> u32 {
11442        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
11443    }
11444    #[inline]
11445    pub fn set_dst_t(&mut self, val: u32) {
11446        unsafe {
11447            let val: u32 = ::std::mem::transmute(val);
11448            self._bitfield_1.set(7usize, 1u8, val as u64)
11449        }
11450    }
11451    #[inline]
11452    pub fn vc_label2(&self) -> u32 {
11453        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u32) }
11454    }
11455    #[inline]
11456    pub fn set_vc_label2(&mut self, val: u32) {
11457        unsafe {
11458            let val: u32 = ::std::mem::transmute(val);
11459            self._bitfield_1.set(8usize, 4u8, val as u64)
11460        }
11461    }
11462    #[inline]
11463    pub fn label_present(&self) -> u32 {
11464        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
11465    }
11466    #[inline]
11467    pub fn set_label_present(&mut self, val: u32) {
11468        unsafe {
11469            let val: u32 = ::std::mem::transmute(val);
11470            self._bitfield_1.set(12usize, 1u8, val as u64)
11471        }
11472    }
11473    #[inline]
11474    pub fn l3(&self) -> u32 {
11475        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
11476    }
11477    #[inline]
11478    pub fn set_l3(&mut self, val: u32) {
11479        unsafe {
11480            let val: u32 = ::std::mem::transmute(val);
11481            self._bitfield_1.set(13usize, 1u8, val as u64)
11482        }
11483    }
11484    #[inline]
11485    pub fn res(&self) -> u32 {
11486        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u32) }
11487    }
11488    #[inline]
11489    pub fn set_res(&mut self, val: u32) {
11490        unsafe {
11491            let val: u32 = ::std::mem::transmute(val);
11492            self._bitfield_1.set(14usize, 2u8, val as u64)
11493        }
11494    }
11495    #[inline]
11496    pub fn vc_label1(&self) -> u32 {
11497        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 8u8) as u32) }
11498    }
11499    #[inline]
11500    pub fn set_vc_label1(&mut self, val: u32) {
11501        unsafe {
11502            let val: u32 = ::std::mem::transmute(val);
11503            self._bitfield_1.set(16usize, 8u8, val as u64)
11504        }
11505    }
11506    #[inline]
11507    pub fn vc_label0(&self) -> u32 {
11508        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
11509    }
11510    #[inline]
11511    pub fn set_vc_label0(&mut self, val: u32) {
11512        unsafe {
11513            let val: u32 = ::std::mem::transmute(val);
11514            self._bitfield_1.set(24usize, 8u8, val as u64)
11515        }
11516    }
11517    #[inline]
11518    pub fn vid_high(&self) -> u32 {
11519        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 8u8) as u32) }
11520    }
11521    #[inline]
11522    pub fn set_vid_high(&mut self, val: u32) {
11523        unsafe {
11524            let val: u32 = ::std::mem::transmute(val);
11525            self._bitfield_1.set(32usize, 8u8, val as u64)
11526        }
11527    }
11528    #[inline]
11529    pub fn vid_low(&self) -> u32 {
11530        unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 8u8) as u32) }
11531    }
11532    #[inline]
11533    pub fn set_vid_low(&mut self, val: u32) {
11534        unsafe {
11535            let val: u32 = ::std::mem::transmute(val);
11536            self._bitfield_1.set(40usize, 8u8, val as u64)
11537        }
11538    }
11539    #[inline]
11540    pub fn opc(&self) -> u32 {
11541        unsafe { ::std::mem::transmute(self._bitfield_1.get(48usize, 3u8) as u32) }
11542    }
11543    #[inline]
11544    pub fn set_opc(&mut self, val: u32) {
11545        unsafe {
11546            let val: u32 = ::std::mem::transmute(val);
11547            self._bitfield_1.set(48usize, 3u8, val as u64)
11548        }
11549    }
11550    #[inline]
11551    pub fn res1(&self) -> u32 {
11552        unsafe { ::std::mem::transmute(self._bitfield_1.get(51usize, 2u8) as u32) }
11553    }
11554    #[inline]
11555    pub fn set_res1(&mut self, val: u32) {
11556        unsafe {
11557            let val: u32 = ::std::mem::transmute(val);
11558            self._bitfield_1.set(51usize, 2u8, val as u64)
11559        }
11560    }
11561    #[inline]
11562    pub fn srce_t(&self) -> u32 {
11563        unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u32) }
11564    }
11565    #[inline]
11566    pub fn set_srce_t(&mut self, val: u32) {
11567        unsafe {
11568            let val: u32 = ::std::mem::transmute(val);
11569            self._bitfield_1.set(53usize, 1u8, val as u64)
11570        }
11571    }
11572    #[inline]
11573    pub fn pf(&self) -> u32 {
11574        unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 2u8) as u32) }
11575    }
11576    #[inline]
11577    pub fn set_pf(&mut self, val: u32) {
11578        unsafe {
11579            let val: u32 = ::std::mem::transmute(val);
11580            self._bitfield_1.set(54usize, 2u8, val as u64)
11581        }
11582    }
11583    #[inline]
11584    pub fn res2(&self) -> u32 {
11585        unsafe { ::std::mem::transmute(self._bitfield_1.get(56usize, 5u8) as u32) }
11586    }
11587    #[inline]
11588    pub fn set_res2(&mut self, val: u32) {
11589        unsafe {
11590            let val: u32 = ::std::mem::transmute(val);
11591            self._bitfield_1.set(56usize, 5u8, val as u64)
11592        }
11593    }
11594    #[inline]
11595    pub fn hdr_ext_length(&self) -> u32 {
11596        unsafe { ::std::mem::transmute(self._bitfield_1.get(61usize, 3u8) as u32) }
11597    }
11598    #[inline]
11599    pub fn set_hdr_ext_length(&mut self, val: u32) {
11600        unsafe {
11601            let val: u32 = ::std::mem::transmute(val);
11602            self._bitfield_1.set(61usize, 3u8, val as u64)
11603        }
11604    }
11605    #[inline]
11606    pub fn new_bitfield_1(
11607        mirror: u32,
11608        mirror_done: u32,
11609        mirror_only: u32,
11610        ingress_tagged: u32,
11611        dst_tgid: u32,
11612        dst_t: u32,
11613        vc_label2: u32,
11614        label_present: u32,
11615        l3: u32,
11616        res: u32,
11617        vc_label1: u32,
11618        vc_label0: u32,
11619        vid_high: u32,
11620        vid_low: u32,
11621        opc: u32,
11622        res1: u32,
11623        srce_t: u32,
11624        pf: u32,
11625        res2: u32,
11626        hdr_ext_length: u32,
11627    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
11628        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
11629        __bindgen_bitfield_unit.set(0usize, 1u8, {
11630            let mirror: u32 = unsafe { ::std::mem::transmute(mirror) };
11631            mirror as u64
11632        });
11633        __bindgen_bitfield_unit.set(1usize, 1u8, {
11634            let mirror_done: u32 = unsafe { ::std::mem::transmute(mirror_done) };
11635            mirror_done as u64
11636        });
11637        __bindgen_bitfield_unit.set(2usize, 1u8, {
11638            let mirror_only: u32 = unsafe { ::std::mem::transmute(mirror_only) };
11639            mirror_only as u64
11640        });
11641        __bindgen_bitfield_unit.set(3usize, 1u8, {
11642            let ingress_tagged: u32 = unsafe { ::std::mem::transmute(ingress_tagged) };
11643            ingress_tagged as u64
11644        });
11645        __bindgen_bitfield_unit.set(4usize, 3u8, {
11646            let dst_tgid: u32 = unsafe { ::std::mem::transmute(dst_tgid) };
11647            dst_tgid as u64
11648        });
11649        __bindgen_bitfield_unit.set(7usize, 1u8, {
11650            let dst_t: u32 = unsafe { ::std::mem::transmute(dst_t) };
11651            dst_t as u64
11652        });
11653        __bindgen_bitfield_unit.set(8usize, 4u8, {
11654            let vc_label2: u32 = unsafe { ::std::mem::transmute(vc_label2) };
11655            vc_label2 as u64
11656        });
11657        __bindgen_bitfield_unit.set(12usize, 1u8, {
11658            let label_present: u32 = unsafe { ::std::mem::transmute(label_present) };
11659            label_present as u64
11660        });
11661        __bindgen_bitfield_unit.set(13usize, 1u8, {
11662            let l3: u32 = unsafe { ::std::mem::transmute(l3) };
11663            l3 as u64
11664        });
11665        __bindgen_bitfield_unit.set(14usize, 2u8, {
11666            let res: u32 = unsafe { ::std::mem::transmute(res) };
11667            res as u64
11668        });
11669        __bindgen_bitfield_unit.set(16usize, 8u8, {
11670            let vc_label1: u32 = unsafe { ::std::mem::transmute(vc_label1) };
11671            vc_label1 as u64
11672        });
11673        __bindgen_bitfield_unit.set(24usize, 8u8, {
11674            let vc_label0: u32 = unsafe { ::std::mem::transmute(vc_label0) };
11675            vc_label0 as u64
11676        });
11677        __bindgen_bitfield_unit.set(32usize, 8u8, {
11678            let vid_high: u32 = unsafe { ::std::mem::transmute(vid_high) };
11679            vid_high as u64
11680        });
11681        __bindgen_bitfield_unit.set(40usize, 8u8, {
11682            let vid_low: u32 = unsafe { ::std::mem::transmute(vid_low) };
11683            vid_low as u64
11684        });
11685        __bindgen_bitfield_unit.set(48usize, 3u8, {
11686            let opc: u32 = unsafe { ::std::mem::transmute(opc) };
11687            opc as u64
11688        });
11689        __bindgen_bitfield_unit.set(51usize, 2u8, {
11690            let res1: u32 = unsafe { ::std::mem::transmute(res1) };
11691            res1 as u64
11692        });
11693        __bindgen_bitfield_unit.set(53usize, 1u8, {
11694            let srce_t: u32 = unsafe { ::std::mem::transmute(srce_t) };
11695            srce_t as u64
11696        });
11697        __bindgen_bitfield_unit.set(54usize, 2u8, {
11698            let pf: u32 = unsafe { ::std::mem::transmute(pf) };
11699            pf as u64
11700        });
11701        __bindgen_bitfield_unit.set(56usize, 5u8, {
11702            let res2: u32 = unsafe { ::std::mem::transmute(res2) };
11703            res2 as u64
11704        });
11705        __bindgen_bitfield_unit.set(61usize, 3u8, {
11706            let hdr_ext_length: u32 = unsafe { ::std::mem::transmute(hdr_ext_length) };
11707            hdr_ext_length as u64
11708        });
11709        __bindgen_bitfield_unit
11710    }
11711}
11712#[repr(C)]
11713#[derive(Debug, Default, Copy, Clone, PartialEq)]
11714pub struct rte_higig2_ppt_type1 {
11715    pub classification: u16,
11716    pub resv: u16,
11717    pub vid: u16,
11718    pub _bitfield_align_1: [u8; 0],
11719    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
11720}
11721#[test]
11722fn bindgen_test_layout_rte_higig2_ppt_type1() {
11723    assert_eq!(
11724        ::std::mem::size_of::<rte_higig2_ppt_type1>(),
11725        8usize,
11726        concat!("Size of: ", stringify!(rte_higig2_ppt_type1))
11727    );
11728    assert_eq!(
11729        ::std::mem::align_of::<rte_higig2_ppt_type1>(),
11730        2usize,
11731        concat!("Alignment of ", stringify!(rte_higig2_ppt_type1))
11732    );
11733    assert_eq!(
11734        unsafe {
11735            &(*(::std::ptr::null::<rte_higig2_ppt_type1>())).classification as *const _ as usize
11736        },
11737        0usize,
11738        concat!(
11739            "Offset of field: ",
11740            stringify!(rte_higig2_ppt_type1),
11741            "::",
11742            stringify!(classification)
11743        )
11744    );
11745    assert_eq!(
11746        unsafe { &(*(::std::ptr::null::<rte_higig2_ppt_type1>())).resv as *const _ as usize },
11747        2usize,
11748        concat!(
11749            "Offset of field: ",
11750            stringify!(rte_higig2_ppt_type1),
11751            "::",
11752            stringify!(resv)
11753        )
11754    );
11755    assert_eq!(
11756        unsafe { &(*(::std::ptr::null::<rte_higig2_ppt_type1>())).vid as *const _ as usize },
11757        4usize,
11758        concat!(
11759            "Offset of field: ",
11760            stringify!(rte_higig2_ppt_type1),
11761            "::",
11762            stringify!(vid)
11763        )
11764    );
11765}
11766impl rte_higig2_ppt_type1 {
11767    #[inline]
11768    pub fn opcode(&self) -> u16 {
11769        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u16) }
11770    }
11771    #[inline]
11772    pub fn set_opcode(&mut self, val: u16) {
11773        unsafe {
11774            let val: u16 = ::std::mem::transmute(val);
11775            self._bitfield_1.set(0usize, 3u8, val as u64)
11776        }
11777    }
11778    #[inline]
11779    pub fn resv1(&self) -> u16 {
11780        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 2u8) as u16) }
11781    }
11782    #[inline]
11783    pub fn set_resv1(&mut self, val: u16) {
11784        unsafe {
11785            let val: u16 = ::std::mem::transmute(val);
11786            self._bitfield_1.set(3usize, 2u8, val as u64)
11787        }
11788    }
11789    #[inline]
11790    pub fn src_t(&self) -> u16 {
11791        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) }
11792    }
11793    #[inline]
11794    pub fn set_src_t(&mut self, val: u16) {
11795        unsafe {
11796            let val: u16 = ::std::mem::transmute(val);
11797            self._bitfield_1.set(5usize, 1u8, val as u64)
11798        }
11799    }
11800    #[inline]
11801    pub fn pfm(&self) -> u16 {
11802        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u16) }
11803    }
11804    #[inline]
11805    pub fn set_pfm(&mut self, val: u16) {
11806        unsafe {
11807            let val: u16 = ::std::mem::transmute(val);
11808            self._bitfield_1.set(6usize, 2u8, val as u64)
11809        }
11810    }
11811    #[inline]
11812    pub fn resv2(&self) -> u16 {
11813        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 5u8) as u16) }
11814    }
11815    #[inline]
11816    pub fn set_resv2(&mut self, val: u16) {
11817        unsafe {
11818            let val: u16 = ::std::mem::transmute(val);
11819            self._bitfield_1.set(8usize, 5u8, val as u64)
11820        }
11821    }
11822    #[inline]
11823    pub fn hdr_ext_len(&self) -> u16 {
11824        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u16) }
11825    }
11826    #[inline]
11827    pub fn set_hdr_ext_len(&mut self, val: u16) {
11828        unsafe {
11829            let val: u16 = ::std::mem::transmute(val);
11830            self._bitfield_1.set(13usize, 3u8, val as u64)
11831        }
11832    }
11833    #[inline]
11834    pub fn new_bitfield_1(
11835        opcode: u16,
11836        resv1: u16,
11837        src_t: u16,
11838        pfm: u16,
11839        resv2: u16,
11840        hdr_ext_len: u16,
11841    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
11842        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
11843        __bindgen_bitfield_unit.set(0usize, 3u8, {
11844            let opcode: u16 = unsafe { ::std::mem::transmute(opcode) };
11845            opcode as u64
11846        });
11847        __bindgen_bitfield_unit.set(3usize, 2u8, {
11848            let resv1: u16 = unsafe { ::std::mem::transmute(resv1) };
11849            resv1 as u64
11850        });
11851        __bindgen_bitfield_unit.set(5usize, 1u8, {
11852            let src_t: u16 = unsafe { ::std::mem::transmute(src_t) };
11853            src_t as u64
11854        });
11855        __bindgen_bitfield_unit.set(6usize, 2u8, {
11856            let pfm: u16 = unsafe { ::std::mem::transmute(pfm) };
11857            pfm as u64
11858        });
11859        __bindgen_bitfield_unit.set(8usize, 5u8, {
11860            let resv2: u16 = unsafe { ::std::mem::transmute(resv2) };
11861            resv2 as u64
11862        });
11863        __bindgen_bitfield_unit.set(13usize, 3u8, {
11864            let hdr_ext_len: u16 = unsafe { ::std::mem::transmute(hdr_ext_len) };
11865            hdr_ext_len as u64
11866        });
11867        __bindgen_bitfield_unit
11868    }
11869}
11870#[repr(C)]
11871#[derive(Copy, Clone)]
11872pub struct rte_higig2_hdr {
11873    pub fcr: rte_higig2_frc,
11874    pub __bindgen_anon_1: rte_higig2_hdr__bindgen_ty_1,
11875}
11876#[repr(C)]
11877#[derive(Copy, Clone)]
11878pub union rte_higig2_hdr__bindgen_ty_1 {
11879    pub ppt0: rte_higig2_ppt_type0,
11880    pub ppt1: rte_higig2_ppt_type1,
11881    _bindgen_union_align: [u32; 2usize],
11882}
11883#[test]
11884fn bindgen_test_layout_rte_higig2_hdr__bindgen_ty_1() {
11885    assert_eq!(
11886        ::std::mem::size_of::<rte_higig2_hdr__bindgen_ty_1>(),
11887        8usize,
11888        concat!("Size of: ", stringify!(rte_higig2_hdr__bindgen_ty_1))
11889    );
11890    assert_eq!(
11891        ::std::mem::align_of::<rte_higig2_hdr__bindgen_ty_1>(),
11892        4usize,
11893        concat!("Alignment of ", stringify!(rte_higig2_hdr__bindgen_ty_1))
11894    );
11895    assert_eq!(
11896        unsafe {
11897            &(*(::std::ptr::null::<rte_higig2_hdr__bindgen_ty_1>())).ppt0 as *const _ as usize
11898        },
11899        0usize,
11900        concat!(
11901            "Offset of field: ",
11902            stringify!(rte_higig2_hdr__bindgen_ty_1),
11903            "::",
11904            stringify!(ppt0)
11905        )
11906    );
11907    assert_eq!(
11908        unsafe {
11909            &(*(::std::ptr::null::<rte_higig2_hdr__bindgen_ty_1>())).ppt1 as *const _ as usize
11910        },
11911        0usize,
11912        concat!(
11913            "Offset of field: ",
11914            stringify!(rte_higig2_hdr__bindgen_ty_1),
11915            "::",
11916            stringify!(ppt1)
11917        )
11918    );
11919}
11920impl Default for rte_higig2_hdr__bindgen_ty_1 {
11921    fn default() -> Self {
11922        unsafe { ::std::mem::zeroed() }
11923    }
11924}
11925#[test]
11926fn bindgen_test_layout_rte_higig2_hdr() {
11927    assert_eq!(
11928        ::std::mem::size_of::<rte_higig2_hdr>(),
11929        16usize,
11930        concat!("Size of: ", stringify!(rte_higig2_hdr))
11931    );
11932    assert_eq!(
11933        ::std::mem::align_of::<rte_higig2_hdr>(),
11934        4usize,
11935        concat!("Alignment of ", stringify!(rte_higig2_hdr))
11936    );
11937    assert_eq!(
11938        unsafe { &(*(::std::ptr::null::<rte_higig2_hdr>())).fcr as *const _ as usize },
11939        0usize,
11940        concat!(
11941            "Offset of field: ",
11942            stringify!(rte_higig2_hdr),
11943            "::",
11944            stringify!(fcr)
11945        )
11946    );
11947}
11948impl Default for rte_higig2_hdr {
11949    fn default() -> Self {
11950        unsafe { ::std::mem::zeroed() }
11951    }
11952}
11953#[repr(C)]
11954#[derive(Copy, Clone)]
11955pub struct rte_mbuf_dynfield {
11956    pub name: [::std::os::raw::c_char; 64usize],
11957    pub size: size_t,
11958    pub align: size_t,
11959    pub flags: ::std::os::raw::c_uint,
11960}
11961#[test]
11962fn bindgen_test_layout_rte_mbuf_dynfield() {
11963    assert_eq!(
11964        ::std::mem::size_of::<rte_mbuf_dynfield>(),
11965        88usize,
11966        concat!("Size of: ", stringify!(rte_mbuf_dynfield))
11967    );
11968    assert_eq!(
11969        ::std::mem::align_of::<rte_mbuf_dynfield>(),
11970        8usize,
11971        concat!("Alignment of ", stringify!(rte_mbuf_dynfield))
11972    );
11973    assert_eq!(
11974        unsafe { &(*(::std::ptr::null::<rte_mbuf_dynfield>())).name as *const _ as usize },
11975        0usize,
11976        concat!(
11977            "Offset of field: ",
11978            stringify!(rte_mbuf_dynfield),
11979            "::",
11980            stringify!(name)
11981        )
11982    );
11983    assert_eq!(
11984        unsafe { &(*(::std::ptr::null::<rte_mbuf_dynfield>())).size as *const _ as usize },
11985        64usize,
11986        concat!(
11987            "Offset of field: ",
11988            stringify!(rte_mbuf_dynfield),
11989            "::",
11990            stringify!(size)
11991        )
11992    );
11993    assert_eq!(
11994        unsafe { &(*(::std::ptr::null::<rte_mbuf_dynfield>())).align as *const _ as usize },
11995        72usize,
11996        concat!(
11997            "Offset of field: ",
11998            stringify!(rte_mbuf_dynfield),
11999            "::",
12000            stringify!(align)
12001        )
12002    );
12003    assert_eq!(
12004        unsafe { &(*(::std::ptr::null::<rte_mbuf_dynfield>())).flags as *const _ as usize },
12005        80usize,
12006        concat!(
12007            "Offset of field: ",
12008            stringify!(rte_mbuf_dynfield),
12009            "::",
12010            stringify!(flags)
12011        )
12012    );
12013}
12014impl Default for rte_mbuf_dynfield {
12015    fn default() -> Self {
12016        unsafe { ::std::mem::zeroed() }
12017    }
12018}
12019#[repr(C)]
12020#[derive(Copy, Clone)]
12021pub struct rte_mbuf_dynflag {
12022    pub name: [::std::os::raw::c_char; 64usize],
12023    pub flags: ::std::os::raw::c_uint,
12024}
12025#[test]
12026fn bindgen_test_layout_rte_mbuf_dynflag() {
12027    assert_eq!(
12028        ::std::mem::size_of::<rte_mbuf_dynflag>(),
12029        68usize,
12030        concat!("Size of: ", stringify!(rte_mbuf_dynflag))
12031    );
12032    assert_eq!(
12033        ::std::mem::align_of::<rte_mbuf_dynflag>(),
12034        4usize,
12035        concat!("Alignment of ", stringify!(rte_mbuf_dynflag))
12036    );
12037    assert_eq!(
12038        unsafe { &(*(::std::ptr::null::<rte_mbuf_dynflag>())).name as *const _ as usize },
12039        0usize,
12040        concat!(
12041            "Offset of field: ",
12042            stringify!(rte_mbuf_dynflag),
12043            "::",
12044            stringify!(name)
12045        )
12046    );
12047    assert_eq!(
12048        unsafe { &(*(::std::ptr::null::<rte_mbuf_dynflag>())).flags as *const _ as usize },
12049        64usize,
12050        concat!(
12051            "Offset of field: ",
12052            stringify!(rte_mbuf_dynflag),
12053            "::",
12054            stringify!(flags)
12055        )
12056    );
12057}
12058impl Default for rte_mbuf_dynflag {
12059    fn default() -> Self {
12060        unsafe { ::std::mem::zeroed() }
12061    }
12062}
12063extern "C" {
12064    pub fn rte_mbuf_dynfield_register(params: *const rte_mbuf_dynfield) -> ::std::os::raw::c_int;
12065}
12066extern "C" {
12067    pub fn rte_mbuf_dynfield_register_offset(
12068        params: *const rte_mbuf_dynfield,
12069        offset: size_t,
12070    ) -> ::std::os::raw::c_int;
12071}
12072extern "C" {
12073    pub fn rte_mbuf_dynfield_lookup(
12074        name: *const ::std::os::raw::c_char,
12075        params: *mut rte_mbuf_dynfield,
12076    ) -> ::std::os::raw::c_int;
12077}
12078extern "C" {
12079    pub fn rte_mbuf_dynflag_register(params: *const rte_mbuf_dynflag) -> ::std::os::raw::c_int;
12080}
12081extern "C" {
12082    pub fn rte_mbuf_dynflag_register_bitnum(
12083        params: *const rte_mbuf_dynflag,
12084        bitnum: ::std::os::raw::c_uint,
12085    ) -> ::std::os::raw::c_int;
12086}
12087extern "C" {
12088    pub fn rte_mbuf_dynflag_lookup(
12089        name: *const ::std::os::raw::c_char,
12090        params: *mut rte_mbuf_dynflag,
12091    ) -> ::std::os::raw::c_int;
12092}
12093extern "C" {
12094    pub fn rte_mbuf_dyn_dump(out: *mut FILE);
12095}
12096#[repr(C)]
12097#[derive(Debug, Default, Copy, Clone, PartialEq)]
12098pub struct rte_flow_attr {
12099    pub group: u32,
12100    pub priority: u32,
12101    pub _bitfield_align_1: [u32; 0],
12102    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
12103}
12104#[test]
12105fn bindgen_test_layout_rte_flow_attr() {
12106    assert_eq!(
12107        ::std::mem::size_of::<rte_flow_attr>(),
12108        12usize,
12109        concat!("Size of: ", stringify!(rte_flow_attr))
12110    );
12111    assert_eq!(
12112        ::std::mem::align_of::<rte_flow_attr>(),
12113        4usize,
12114        concat!("Alignment of ", stringify!(rte_flow_attr))
12115    );
12116    assert_eq!(
12117        unsafe { &(*(::std::ptr::null::<rte_flow_attr>())).group as *const _ as usize },
12118        0usize,
12119        concat!(
12120            "Offset of field: ",
12121            stringify!(rte_flow_attr),
12122            "::",
12123            stringify!(group)
12124        )
12125    );
12126    assert_eq!(
12127        unsafe { &(*(::std::ptr::null::<rte_flow_attr>())).priority as *const _ as usize },
12128        4usize,
12129        concat!(
12130            "Offset of field: ",
12131            stringify!(rte_flow_attr),
12132            "::",
12133            stringify!(priority)
12134        )
12135    );
12136}
12137impl rte_flow_attr {
12138    #[inline]
12139    pub fn ingress(&self) -> u32 {
12140        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
12141    }
12142    #[inline]
12143    pub fn set_ingress(&mut self, val: u32) {
12144        unsafe {
12145            let val: u32 = ::std::mem::transmute(val);
12146            self._bitfield_1.set(0usize, 1u8, val as u64)
12147        }
12148    }
12149    #[inline]
12150    pub fn egress(&self) -> u32 {
12151        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
12152    }
12153    #[inline]
12154    pub fn set_egress(&mut self, val: u32) {
12155        unsafe {
12156            let val: u32 = ::std::mem::transmute(val);
12157            self._bitfield_1.set(1usize, 1u8, val as u64)
12158        }
12159    }
12160    #[inline]
12161    pub fn transfer(&self) -> u32 {
12162        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
12163    }
12164    #[inline]
12165    pub fn set_transfer(&mut self, val: u32) {
12166        unsafe {
12167            let val: u32 = ::std::mem::transmute(val);
12168            self._bitfield_1.set(2usize, 1u8, val as u64)
12169        }
12170    }
12171    #[inline]
12172    pub fn reserved(&self) -> u32 {
12173        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
12174    }
12175    #[inline]
12176    pub fn set_reserved(&mut self, val: u32) {
12177        unsafe {
12178            let val: u32 = ::std::mem::transmute(val);
12179            self._bitfield_1.set(3usize, 29u8, val as u64)
12180        }
12181    }
12182    #[inline]
12183    pub fn new_bitfield_1(
12184        ingress: u32,
12185        egress: u32,
12186        transfer: u32,
12187        reserved: u32,
12188    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
12189        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
12190        __bindgen_bitfield_unit.set(0usize, 1u8, {
12191            let ingress: u32 = unsafe { ::std::mem::transmute(ingress) };
12192            ingress as u64
12193        });
12194        __bindgen_bitfield_unit.set(1usize, 1u8, {
12195            let egress: u32 = unsafe { ::std::mem::transmute(egress) };
12196            egress as u64
12197        });
12198        __bindgen_bitfield_unit.set(2usize, 1u8, {
12199            let transfer: u32 = unsafe { ::std::mem::transmute(transfer) };
12200            transfer as u64
12201        });
12202        __bindgen_bitfield_unit.set(3usize, 29u8, {
12203            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
12204            reserved as u64
12205        });
12206        __bindgen_bitfield_unit
12207    }
12208}
12209pub mod rte_flow_item_type {
12210    pub type Type = ::std::os::raw::c_uint;
12211    pub const RTE_FLOW_ITEM_TYPE_END: Type = 0;
12212    pub const RTE_FLOW_ITEM_TYPE_VOID: Type = 1;
12213    pub const RTE_FLOW_ITEM_TYPE_INVERT: Type = 2;
12214    pub const RTE_FLOW_ITEM_TYPE_ANY: Type = 3;
12215    pub const RTE_FLOW_ITEM_TYPE_PF: Type = 4;
12216    pub const RTE_FLOW_ITEM_TYPE_VF: Type = 5;
12217    pub const RTE_FLOW_ITEM_TYPE_PHY_PORT: Type = 6;
12218    pub const RTE_FLOW_ITEM_TYPE_PORT_ID: Type = 7;
12219    pub const RTE_FLOW_ITEM_TYPE_RAW: Type = 8;
12220    pub const RTE_FLOW_ITEM_TYPE_ETH: Type = 9;
12221    pub const RTE_FLOW_ITEM_TYPE_VLAN: Type = 10;
12222    pub const RTE_FLOW_ITEM_TYPE_IPV4: Type = 11;
12223    pub const RTE_FLOW_ITEM_TYPE_IPV6: Type = 12;
12224    pub const RTE_FLOW_ITEM_TYPE_ICMP: Type = 13;
12225    pub const RTE_FLOW_ITEM_TYPE_UDP: Type = 14;
12226    pub const RTE_FLOW_ITEM_TYPE_TCP: Type = 15;
12227    pub const RTE_FLOW_ITEM_TYPE_SCTP: Type = 16;
12228    pub const RTE_FLOW_ITEM_TYPE_VXLAN: Type = 17;
12229    pub const RTE_FLOW_ITEM_TYPE_E_TAG: Type = 18;
12230    pub const RTE_FLOW_ITEM_TYPE_NVGRE: Type = 19;
12231    pub const RTE_FLOW_ITEM_TYPE_MPLS: Type = 20;
12232    pub const RTE_FLOW_ITEM_TYPE_GRE: Type = 21;
12233    pub const RTE_FLOW_ITEM_TYPE_FUZZY: Type = 22;
12234    pub const RTE_FLOW_ITEM_TYPE_GTP: Type = 23;
12235    pub const RTE_FLOW_ITEM_TYPE_GTPC: Type = 24;
12236    pub const RTE_FLOW_ITEM_TYPE_GTPU: Type = 25;
12237    pub const RTE_FLOW_ITEM_TYPE_ESP: Type = 26;
12238    pub const RTE_FLOW_ITEM_TYPE_GENEVE: Type = 27;
12239    pub const RTE_FLOW_ITEM_TYPE_VXLAN_GPE: Type = 28;
12240    pub const RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4: Type = 29;
12241    pub const RTE_FLOW_ITEM_TYPE_IPV6_EXT: Type = 30;
12242    pub const RTE_FLOW_ITEM_TYPE_ICMP6: Type = 31;
12243    pub const RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS: Type = 32;
12244    pub const RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA: Type = 33;
12245    pub const RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT: Type = 34;
12246    pub const RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH: Type = 35;
12247    pub const RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH: Type = 36;
12248    pub const RTE_FLOW_ITEM_TYPE_MARK: Type = 37;
12249    pub const RTE_FLOW_ITEM_TYPE_META: Type = 38;
12250    pub const RTE_FLOW_ITEM_TYPE_GRE_KEY: Type = 39;
12251    pub const RTE_FLOW_ITEM_TYPE_GTP_PSC: Type = 40;
12252    pub const RTE_FLOW_ITEM_TYPE_PPPOES: Type = 41;
12253    pub const RTE_FLOW_ITEM_TYPE_PPPOED: Type = 42;
12254    pub const RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID: Type = 43;
12255    pub const RTE_FLOW_ITEM_TYPE_NSH: Type = 44;
12256    pub const RTE_FLOW_ITEM_TYPE_IGMP: Type = 45;
12257    pub const RTE_FLOW_ITEM_TYPE_AH: Type = 46;
12258    pub const RTE_FLOW_ITEM_TYPE_HIGIG2: Type = 47;
12259    pub const RTE_FLOW_ITEM_TYPE_TAG: Type = 48;
12260}
12261#[repr(C)]
12262#[derive(Copy, Clone)]
12263pub struct rte_flow_item_higig2_hdr {
12264    pub hdr: rte_higig2_hdr,
12265}
12266#[test]
12267fn bindgen_test_layout_rte_flow_item_higig2_hdr() {
12268    assert_eq!(
12269        ::std::mem::size_of::<rte_flow_item_higig2_hdr>(),
12270        16usize,
12271        concat!("Size of: ", stringify!(rte_flow_item_higig2_hdr))
12272    );
12273    assert_eq!(
12274        ::std::mem::align_of::<rte_flow_item_higig2_hdr>(),
12275        4usize,
12276        concat!("Alignment of ", stringify!(rte_flow_item_higig2_hdr))
12277    );
12278    assert_eq!(
12279        unsafe { &(*(::std::ptr::null::<rte_flow_item_higig2_hdr>())).hdr as *const _ as usize },
12280        0usize,
12281        concat!(
12282            "Offset of field: ",
12283            stringify!(rte_flow_item_higig2_hdr),
12284            "::",
12285            stringify!(hdr)
12286        )
12287    );
12288}
12289impl Default for rte_flow_item_higig2_hdr {
12290    fn default() -> Self {
12291        unsafe { ::std::mem::zeroed() }
12292    }
12293}
12294extern "C" {
12295    pub static rte_flow_item_higig2_hdr_mask: rte_flow_item_higig2_hdr;
12296}
12297#[repr(C)]
12298#[derive(Debug, Default, Copy, Clone, PartialEq)]
12299pub struct rte_flow_item_any {
12300    pub num: u32,
12301}
12302#[test]
12303fn bindgen_test_layout_rte_flow_item_any() {
12304    assert_eq!(
12305        ::std::mem::size_of::<rte_flow_item_any>(),
12306        4usize,
12307        concat!("Size of: ", stringify!(rte_flow_item_any))
12308    );
12309    assert_eq!(
12310        ::std::mem::align_of::<rte_flow_item_any>(),
12311        4usize,
12312        concat!("Alignment of ", stringify!(rte_flow_item_any))
12313    );
12314    assert_eq!(
12315        unsafe { &(*(::std::ptr::null::<rte_flow_item_any>())).num as *const _ as usize },
12316        0usize,
12317        concat!(
12318            "Offset of field: ",
12319            stringify!(rte_flow_item_any),
12320            "::",
12321            stringify!(num)
12322        )
12323    );
12324}
12325extern "C" {
12326    pub static rte_flow_item_any_mask: rte_flow_item_any;
12327}
12328#[repr(C)]
12329#[derive(Debug, Default, Copy, Clone, PartialEq)]
12330pub struct rte_flow_item_vf {
12331    pub id: u32,
12332}
12333#[test]
12334fn bindgen_test_layout_rte_flow_item_vf() {
12335    assert_eq!(
12336        ::std::mem::size_of::<rte_flow_item_vf>(),
12337        4usize,
12338        concat!("Size of: ", stringify!(rte_flow_item_vf))
12339    );
12340    assert_eq!(
12341        ::std::mem::align_of::<rte_flow_item_vf>(),
12342        4usize,
12343        concat!("Alignment of ", stringify!(rte_flow_item_vf))
12344    );
12345    assert_eq!(
12346        unsafe { &(*(::std::ptr::null::<rte_flow_item_vf>())).id as *const _ as usize },
12347        0usize,
12348        concat!(
12349            "Offset of field: ",
12350            stringify!(rte_flow_item_vf),
12351            "::",
12352            stringify!(id)
12353        )
12354    );
12355}
12356extern "C" {
12357    pub static rte_flow_item_vf_mask: rte_flow_item_vf;
12358}
12359#[repr(C)]
12360#[derive(Debug, Default, Copy, Clone, PartialEq)]
12361pub struct rte_flow_item_phy_port {
12362    pub index: u32,
12363}
12364#[test]
12365fn bindgen_test_layout_rte_flow_item_phy_port() {
12366    assert_eq!(
12367        ::std::mem::size_of::<rte_flow_item_phy_port>(),
12368        4usize,
12369        concat!("Size of: ", stringify!(rte_flow_item_phy_port))
12370    );
12371    assert_eq!(
12372        ::std::mem::align_of::<rte_flow_item_phy_port>(),
12373        4usize,
12374        concat!("Alignment of ", stringify!(rte_flow_item_phy_port))
12375    );
12376    assert_eq!(
12377        unsafe { &(*(::std::ptr::null::<rte_flow_item_phy_port>())).index as *const _ as usize },
12378        0usize,
12379        concat!(
12380            "Offset of field: ",
12381            stringify!(rte_flow_item_phy_port),
12382            "::",
12383            stringify!(index)
12384        )
12385    );
12386}
12387extern "C" {
12388    pub static rte_flow_item_phy_port_mask: rte_flow_item_phy_port;
12389}
12390#[repr(C)]
12391#[derive(Debug, Default, Copy, Clone, PartialEq)]
12392pub struct rte_flow_item_port_id {
12393    pub id: u32,
12394}
12395#[test]
12396fn bindgen_test_layout_rte_flow_item_port_id() {
12397    assert_eq!(
12398        ::std::mem::size_of::<rte_flow_item_port_id>(),
12399        4usize,
12400        concat!("Size of: ", stringify!(rte_flow_item_port_id))
12401    );
12402    assert_eq!(
12403        ::std::mem::align_of::<rte_flow_item_port_id>(),
12404        4usize,
12405        concat!("Alignment of ", stringify!(rte_flow_item_port_id))
12406    );
12407    assert_eq!(
12408        unsafe { &(*(::std::ptr::null::<rte_flow_item_port_id>())).id as *const _ as usize },
12409        0usize,
12410        concat!(
12411            "Offset of field: ",
12412            stringify!(rte_flow_item_port_id),
12413            "::",
12414            stringify!(id)
12415        )
12416    );
12417}
12418extern "C" {
12419    pub static rte_flow_item_port_id_mask: rte_flow_item_port_id;
12420}
12421#[repr(C)]
12422#[derive(Debug, Copy, Clone, PartialEq)]
12423pub struct rte_flow_item_raw {
12424    pub _bitfield_align_1: [u32; 0],
12425    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
12426    pub offset: i32,
12427    pub limit: u16,
12428    pub length: u16,
12429    pub pattern: *const u8,
12430}
12431#[test]
12432fn bindgen_test_layout_rte_flow_item_raw() {
12433    assert_eq!(
12434        ::std::mem::size_of::<rte_flow_item_raw>(),
12435        24usize,
12436        concat!("Size of: ", stringify!(rte_flow_item_raw))
12437    );
12438    assert_eq!(
12439        ::std::mem::align_of::<rte_flow_item_raw>(),
12440        8usize,
12441        concat!("Alignment of ", stringify!(rte_flow_item_raw))
12442    );
12443    assert_eq!(
12444        unsafe { &(*(::std::ptr::null::<rte_flow_item_raw>())).offset as *const _ as usize },
12445        4usize,
12446        concat!(
12447            "Offset of field: ",
12448            stringify!(rte_flow_item_raw),
12449            "::",
12450            stringify!(offset)
12451        )
12452    );
12453    assert_eq!(
12454        unsafe { &(*(::std::ptr::null::<rte_flow_item_raw>())).limit as *const _ as usize },
12455        8usize,
12456        concat!(
12457            "Offset of field: ",
12458            stringify!(rte_flow_item_raw),
12459            "::",
12460            stringify!(limit)
12461        )
12462    );
12463    assert_eq!(
12464        unsafe { &(*(::std::ptr::null::<rte_flow_item_raw>())).length as *const _ as usize },
12465        10usize,
12466        concat!(
12467            "Offset of field: ",
12468            stringify!(rte_flow_item_raw),
12469            "::",
12470            stringify!(length)
12471        )
12472    );
12473    assert_eq!(
12474        unsafe { &(*(::std::ptr::null::<rte_flow_item_raw>())).pattern as *const _ as usize },
12475        16usize,
12476        concat!(
12477            "Offset of field: ",
12478            stringify!(rte_flow_item_raw),
12479            "::",
12480            stringify!(pattern)
12481        )
12482    );
12483}
12484impl Default for rte_flow_item_raw {
12485    fn default() -> Self {
12486        unsafe { ::std::mem::zeroed() }
12487    }
12488}
12489impl rte_flow_item_raw {
12490    #[inline]
12491    pub fn relative(&self) -> u32 {
12492        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
12493    }
12494    #[inline]
12495    pub fn set_relative(&mut self, val: u32) {
12496        unsafe {
12497            let val: u32 = ::std::mem::transmute(val);
12498            self._bitfield_1.set(0usize, 1u8, val as u64)
12499        }
12500    }
12501    #[inline]
12502    pub fn search(&self) -> u32 {
12503        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
12504    }
12505    #[inline]
12506    pub fn set_search(&mut self, val: u32) {
12507        unsafe {
12508            let val: u32 = ::std::mem::transmute(val);
12509            self._bitfield_1.set(1usize, 1u8, val as u64)
12510        }
12511    }
12512    #[inline]
12513    pub fn reserved(&self) -> u32 {
12514        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
12515    }
12516    #[inline]
12517    pub fn set_reserved(&mut self, val: u32) {
12518        unsafe {
12519            let val: u32 = ::std::mem::transmute(val);
12520            self._bitfield_1.set(2usize, 30u8, val as u64)
12521        }
12522    }
12523    #[inline]
12524    pub fn new_bitfield_1(
12525        relative: u32,
12526        search: u32,
12527        reserved: u32,
12528    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
12529        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
12530        __bindgen_bitfield_unit.set(0usize, 1u8, {
12531            let relative: u32 = unsafe { ::std::mem::transmute(relative) };
12532            relative as u64
12533        });
12534        __bindgen_bitfield_unit.set(1usize, 1u8, {
12535            let search: u32 = unsafe { ::std::mem::transmute(search) };
12536            search as u64
12537        });
12538        __bindgen_bitfield_unit.set(2usize, 30u8, {
12539            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
12540            reserved as u64
12541        });
12542        __bindgen_bitfield_unit
12543    }
12544}
12545extern "C" {
12546    pub static rte_flow_item_raw_mask: rte_flow_item_raw;
12547}
12548#[repr(C)]
12549#[derive(Debug, Default, Copy, Clone, PartialEq)]
12550pub struct rte_flow_item_eth {
12551    pub dst: rte_ether_addr,
12552    pub src: rte_ether_addr,
12553    pub type_: rte_be16_t,
12554}
12555#[test]
12556fn bindgen_test_layout_rte_flow_item_eth() {
12557    assert_eq!(
12558        ::std::mem::size_of::<rte_flow_item_eth>(),
12559        14usize,
12560        concat!("Size of: ", stringify!(rte_flow_item_eth))
12561    );
12562    assert_eq!(
12563        ::std::mem::align_of::<rte_flow_item_eth>(),
12564        2usize,
12565        concat!("Alignment of ", stringify!(rte_flow_item_eth))
12566    );
12567    assert_eq!(
12568        unsafe { &(*(::std::ptr::null::<rte_flow_item_eth>())).dst as *const _ as usize },
12569        0usize,
12570        concat!(
12571            "Offset of field: ",
12572            stringify!(rte_flow_item_eth),
12573            "::",
12574            stringify!(dst)
12575        )
12576    );
12577    assert_eq!(
12578        unsafe { &(*(::std::ptr::null::<rte_flow_item_eth>())).src as *const _ as usize },
12579        6usize,
12580        concat!(
12581            "Offset of field: ",
12582            stringify!(rte_flow_item_eth),
12583            "::",
12584            stringify!(src)
12585        )
12586    );
12587    assert_eq!(
12588        unsafe { &(*(::std::ptr::null::<rte_flow_item_eth>())).type_ as *const _ as usize },
12589        12usize,
12590        concat!(
12591            "Offset of field: ",
12592            stringify!(rte_flow_item_eth),
12593            "::",
12594            stringify!(type_)
12595        )
12596    );
12597}
12598extern "C" {
12599    pub static rte_flow_item_eth_mask: rte_flow_item_eth;
12600}
12601#[repr(C)]
12602#[derive(Debug, Default, Copy, Clone, PartialEq)]
12603pub struct rte_flow_item_vlan {
12604    pub tci: rte_be16_t,
12605    pub inner_type: rte_be16_t,
12606}
12607#[test]
12608fn bindgen_test_layout_rte_flow_item_vlan() {
12609    assert_eq!(
12610        ::std::mem::size_of::<rte_flow_item_vlan>(),
12611        4usize,
12612        concat!("Size of: ", stringify!(rte_flow_item_vlan))
12613    );
12614    assert_eq!(
12615        ::std::mem::align_of::<rte_flow_item_vlan>(),
12616        2usize,
12617        concat!("Alignment of ", stringify!(rte_flow_item_vlan))
12618    );
12619    assert_eq!(
12620        unsafe { &(*(::std::ptr::null::<rte_flow_item_vlan>())).tci as *const _ as usize },
12621        0usize,
12622        concat!(
12623            "Offset of field: ",
12624            stringify!(rte_flow_item_vlan),
12625            "::",
12626            stringify!(tci)
12627        )
12628    );
12629    assert_eq!(
12630        unsafe { &(*(::std::ptr::null::<rte_flow_item_vlan>())).inner_type as *const _ as usize },
12631        2usize,
12632        concat!(
12633            "Offset of field: ",
12634            stringify!(rte_flow_item_vlan),
12635            "::",
12636            stringify!(inner_type)
12637        )
12638    );
12639}
12640extern "C" {
12641    pub static rte_flow_item_vlan_mask: rte_flow_item_vlan;
12642}
12643#[repr(C)]
12644#[derive(Debug, Default, Copy, Clone, PartialEq)]
12645pub struct rte_flow_item_ipv4 {
12646    pub hdr: rte_ipv4_hdr,
12647}
12648#[test]
12649fn bindgen_test_layout_rte_flow_item_ipv4() {
12650    assert_eq!(
12651        ::std::mem::size_of::<rte_flow_item_ipv4>(),
12652        20usize,
12653        concat!("Size of: ", stringify!(rte_flow_item_ipv4))
12654    );
12655    assert_eq!(
12656        ::std::mem::align_of::<rte_flow_item_ipv4>(),
12657        1usize,
12658        concat!("Alignment of ", stringify!(rte_flow_item_ipv4))
12659    );
12660    assert_eq!(
12661        unsafe { &(*(::std::ptr::null::<rte_flow_item_ipv4>())).hdr as *const _ as usize },
12662        0usize,
12663        concat!(
12664            "Offset of field: ",
12665            stringify!(rte_flow_item_ipv4),
12666            "::",
12667            stringify!(hdr)
12668        )
12669    );
12670}
12671extern "C" {
12672    pub static rte_flow_item_ipv4_mask: rte_flow_item_ipv4;
12673}
12674#[repr(C)]
12675#[derive(Debug, Default, Copy, Clone, PartialEq)]
12676pub struct rte_flow_item_ipv6 {
12677    pub hdr: rte_ipv6_hdr,
12678}
12679#[test]
12680fn bindgen_test_layout_rte_flow_item_ipv6() {
12681    assert_eq!(
12682        ::std::mem::size_of::<rte_flow_item_ipv6>(),
12683        40usize,
12684        concat!("Size of: ", stringify!(rte_flow_item_ipv6))
12685    );
12686    assert_eq!(
12687        ::std::mem::align_of::<rte_flow_item_ipv6>(),
12688        1usize,
12689        concat!("Alignment of ", stringify!(rte_flow_item_ipv6))
12690    );
12691    assert_eq!(
12692        unsafe { &(*(::std::ptr::null::<rte_flow_item_ipv6>())).hdr as *const _ as usize },
12693        0usize,
12694        concat!(
12695            "Offset of field: ",
12696            stringify!(rte_flow_item_ipv6),
12697            "::",
12698            stringify!(hdr)
12699        )
12700    );
12701}
12702extern "C" {
12703    pub static rte_flow_item_ipv6_mask: rte_flow_item_ipv6;
12704}
12705#[repr(C)]
12706#[derive(Debug, Default, Copy, Clone, PartialEq)]
12707pub struct rte_flow_item_icmp {
12708    pub hdr: rte_icmp_hdr,
12709}
12710#[test]
12711fn bindgen_test_layout_rte_flow_item_icmp() {
12712    assert_eq!(
12713        ::std::mem::size_of::<rte_flow_item_icmp>(),
12714        8usize,
12715        concat!("Size of: ", stringify!(rte_flow_item_icmp))
12716    );
12717    assert_eq!(
12718        ::std::mem::align_of::<rte_flow_item_icmp>(),
12719        1usize,
12720        concat!("Alignment of ", stringify!(rte_flow_item_icmp))
12721    );
12722    assert_eq!(
12723        unsafe { &(*(::std::ptr::null::<rte_flow_item_icmp>())).hdr as *const _ as usize },
12724        0usize,
12725        concat!(
12726            "Offset of field: ",
12727            stringify!(rte_flow_item_icmp),
12728            "::",
12729            stringify!(hdr)
12730        )
12731    );
12732}
12733extern "C" {
12734    pub static rte_flow_item_icmp_mask: rte_flow_item_icmp;
12735}
12736#[repr(C)]
12737#[derive(Debug, Default, Copy, Clone, PartialEq)]
12738pub struct rte_flow_item_udp {
12739    pub hdr: rte_udp_hdr,
12740}
12741#[test]
12742fn bindgen_test_layout_rte_flow_item_udp() {
12743    assert_eq!(
12744        ::std::mem::size_of::<rte_flow_item_udp>(),
12745        8usize,
12746        concat!("Size of: ", stringify!(rte_flow_item_udp))
12747    );
12748    assert_eq!(
12749        ::std::mem::align_of::<rte_flow_item_udp>(),
12750        1usize,
12751        concat!("Alignment of ", stringify!(rte_flow_item_udp))
12752    );
12753    assert_eq!(
12754        unsafe { &(*(::std::ptr::null::<rte_flow_item_udp>())).hdr as *const _ as usize },
12755        0usize,
12756        concat!(
12757            "Offset of field: ",
12758            stringify!(rte_flow_item_udp),
12759            "::",
12760            stringify!(hdr)
12761        )
12762    );
12763}
12764extern "C" {
12765    pub static rte_flow_item_udp_mask: rte_flow_item_udp;
12766}
12767#[repr(C)]
12768#[derive(Debug, Default, Copy, Clone, PartialEq)]
12769pub struct rte_flow_item_tcp {
12770    pub hdr: rte_tcp_hdr,
12771}
12772#[test]
12773fn bindgen_test_layout_rte_flow_item_tcp() {
12774    assert_eq!(
12775        ::std::mem::size_of::<rte_flow_item_tcp>(),
12776        20usize,
12777        concat!("Size of: ", stringify!(rte_flow_item_tcp))
12778    );
12779    assert_eq!(
12780        ::std::mem::align_of::<rte_flow_item_tcp>(),
12781        1usize,
12782        concat!("Alignment of ", stringify!(rte_flow_item_tcp))
12783    );
12784    assert_eq!(
12785        unsafe { &(*(::std::ptr::null::<rte_flow_item_tcp>())).hdr as *const _ as usize },
12786        0usize,
12787        concat!(
12788            "Offset of field: ",
12789            stringify!(rte_flow_item_tcp),
12790            "::",
12791            stringify!(hdr)
12792        )
12793    );
12794}
12795extern "C" {
12796    pub static rte_flow_item_tcp_mask: rte_flow_item_tcp;
12797}
12798#[repr(C)]
12799#[derive(Debug, Default, Copy, Clone, PartialEq)]
12800pub struct rte_flow_item_sctp {
12801    pub hdr: rte_sctp_hdr,
12802}
12803#[test]
12804fn bindgen_test_layout_rte_flow_item_sctp() {
12805    assert_eq!(
12806        ::std::mem::size_of::<rte_flow_item_sctp>(),
12807        12usize,
12808        concat!("Size of: ", stringify!(rte_flow_item_sctp))
12809    );
12810    assert_eq!(
12811        ::std::mem::align_of::<rte_flow_item_sctp>(),
12812        1usize,
12813        concat!("Alignment of ", stringify!(rte_flow_item_sctp))
12814    );
12815    assert_eq!(
12816        unsafe { &(*(::std::ptr::null::<rte_flow_item_sctp>())).hdr as *const _ as usize },
12817        0usize,
12818        concat!(
12819            "Offset of field: ",
12820            stringify!(rte_flow_item_sctp),
12821            "::",
12822            stringify!(hdr)
12823        )
12824    );
12825}
12826extern "C" {
12827    pub static rte_flow_item_sctp_mask: rte_flow_item_sctp;
12828}
12829#[repr(C)]
12830#[derive(Debug, Default, Copy, Clone, PartialEq)]
12831pub struct rte_flow_item_vxlan {
12832    pub flags: u8,
12833    pub rsvd0: [u8; 3usize],
12834    pub vni: [u8; 3usize],
12835    pub rsvd1: u8,
12836}
12837#[test]
12838fn bindgen_test_layout_rte_flow_item_vxlan() {
12839    assert_eq!(
12840        ::std::mem::size_of::<rte_flow_item_vxlan>(),
12841        8usize,
12842        concat!("Size of: ", stringify!(rte_flow_item_vxlan))
12843    );
12844    assert_eq!(
12845        ::std::mem::align_of::<rte_flow_item_vxlan>(),
12846        1usize,
12847        concat!("Alignment of ", stringify!(rte_flow_item_vxlan))
12848    );
12849    assert_eq!(
12850        unsafe { &(*(::std::ptr::null::<rte_flow_item_vxlan>())).flags as *const _ as usize },
12851        0usize,
12852        concat!(
12853            "Offset of field: ",
12854            stringify!(rte_flow_item_vxlan),
12855            "::",
12856            stringify!(flags)
12857        )
12858    );
12859    assert_eq!(
12860        unsafe { &(*(::std::ptr::null::<rte_flow_item_vxlan>())).rsvd0 as *const _ as usize },
12861        1usize,
12862        concat!(
12863            "Offset of field: ",
12864            stringify!(rte_flow_item_vxlan),
12865            "::",
12866            stringify!(rsvd0)
12867        )
12868    );
12869    assert_eq!(
12870        unsafe { &(*(::std::ptr::null::<rte_flow_item_vxlan>())).vni as *const _ as usize },
12871        4usize,
12872        concat!(
12873            "Offset of field: ",
12874            stringify!(rte_flow_item_vxlan),
12875            "::",
12876            stringify!(vni)
12877        )
12878    );
12879    assert_eq!(
12880        unsafe { &(*(::std::ptr::null::<rte_flow_item_vxlan>())).rsvd1 as *const _ as usize },
12881        7usize,
12882        concat!(
12883            "Offset of field: ",
12884            stringify!(rte_flow_item_vxlan),
12885            "::",
12886            stringify!(rsvd1)
12887        )
12888    );
12889}
12890extern "C" {
12891    pub static rte_flow_item_vxlan_mask: rte_flow_item_vxlan;
12892}
12893#[repr(C)]
12894#[derive(Debug, Default, Copy, Clone, PartialEq)]
12895pub struct rte_flow_item_e_tag {
12896    pub epcp_edei_in_ecid_b: rte_be16_t,
12897    pub rsvd_grp_ecid_b: rte_be16_t,
12898    pub in_ecid_e: u8,
12899    pub ecid_e: u8,
12900    pub inner_type: rte_be16_t,
12901}
12902#[test]
12903fn bindgen_test_layout_rte_flow_item_e_tag() {
12904    assert_eq!(
12905        ::std::mem::size_of::<rte_flow_item_e_tag>(),
12906        8usize,
12907        concat!("Size of: ", stringify!(rte_flow_item_e_tag))
12908    );
12909    assert_eq!(
12910        ::std::mem::align_of::<rte_flow_item_e_tag>(),
12911        2usize,
12912        concat!("Alignment of ", stringify!(rte_flow_item_e_tag))
12913    );
12914    assert_eq!(
12915        unsafe {
12916            &(*(::std::ptr::null::<rte_flow_item_e_tag>())).epcp_edei_in_ecid_b as *const _ as usize
12917        },
12918        0usize,
12919        concat!(
12920            "Offset of field: ",
12921            stringify!(rte_flow_item_e_tag),
12922            "::",
12923            stringify!(epcp_edei_in_ecid_b)
12924        )
12925    );
12926    assert_eq!(
12927        unsafe {
12928            &(*(::std::ptr::null::<rte_flow_item_e_tag>())).rsvd_grp_ecid_b as *const _ as usize
12929        },
12930        2usize,
12931        concat!(
12932            "Offset of field: ",
12933            stringify!(rte_flow_item_e_tag),
12934            "::",
12935            stringify!(rsvd_grp_ecid_b)
12936        )
12937    );
12938    assert_eq!(
12939        unsafe { &(*(::std::ptr::null::<rte_flow_item_e_tag>())).in_ecid_e as *const _ as usize },
12940        4usize,
12941        concat!(
12942            "Offset of field: ",
12943            stringify!(rte_flow_item_e_tag),
12944            "::",
12945            stringify!(in_ecid_e)
12946        )
12947    );
12948    assert_eq!(
12949        unsafe { &(*(::std::ptr::null::<rte_flow_item_e_tag>())).ecid_e as *const _ as usize },
12950        5usize,
12951        concat!(
12952            "Offset of field: ",
12953            stringify!(rte_flow_item_e_tag),
12954            "::",
12955            stringify!(ecid_e)
12956        )
12957    );
12958    assert_eq!(
12959        unsafe { &(*(::std::ptr::null::<rte_flow_item_e_tag>())).inner_type as *const _ as usize },
12960        6usize,
12961        concat!(
12962            "Offset of field: ",
12963            stringify!(rte_flow_item_e_tag),
12964            "::",
12965            stringify!(inner_type)
12966        )
12967    );
12968}
12969extern "C" {
12970    pub static rte_flow_item_e_tag_mask: rte_flow_item_e_tag;
12971}
12972#[repr(C)]
12973#[derive(Debug, Default, Copy, Clone, PartialEq)]
12974pub struct rte_flow_item_nvgre {
12975    pub c_k_s_rsvd0_ver: rte_be16_t,
12976    pub protocol: rte_be16_t,
12977    pub tni: [u8; 3usize],
12978    pub flow_id: u8,
12979}
12980#[test]
12981fn bindgen_test_layout_rte_flow_item_nvgre() {
12982    assert_eq!(
12983        ::std::mem::size_of::<rte_flow_item_nvgre>(),
12984        8usize,
12985        concat!("Size of: ", stringify!(rte_flow_item_nvgre))
12986    );
12987    assert_eq!(
12988        ::std::mem::align_of::<rte_flow_item_nvgre>(),
12989        2usize,
12990        concat!("Alignment of ", stringify!(rte_flow_item_nvgre))
12991    );
12992    assert_eq!(
12993        unsafe {
12994            &(*(::std::ptr::null::<rte_flow_item_nvgre>())).c_k_s_rsvd0_ver as *const _ as usize
12995        },
12996        0usize,
12997        concat!(
12998            "Offset of field: ",
12999            stringify!(rte_flow_item_nvgre),
13000            "::",
13001            stringify!(c_k_s_rsvd0_ver)
13002        )
13003    );
13004    assert_eq!(
13005        unsafe { &(*(::std::ptr::null::<rte_flow_item_nvgre>())).protocol as *const _ as usize },
13006        2usize,
13007        concat!(
13008            "Offset of field: ",
13009            stringify!(rte_flow_item_nvgre),
13010            "::",
13011            stringify!(protocol)
13012        )
13013    );
13014    assert_eq!(
13015        unsafe { &(*(::std::ptr::null::<rte_flow_item_nvgre>())).tni as *const _ as usize },
13016        4usize,
13017        concat!(
13018            "Offset of field: ",
13019            stringify!(rte_flow_item_nvgre),
13020            "::",
13021            stringify!(tni)
13022        )
13023    );
13024    assert_eq!(
13025        unsafe { &(*(::std::ptr::null::<rte_flow_item_nvgre>())).flow_id as *const _ as usize },
13026        7usize,
13027        concat!(
13028            "Offset of field: ",
13029            stringify!(rte_flow_item_nvgre),
13030            "::",
13031            stringify!(flow_id)
13032        )
13033    );
13034}
13035extern "C" {
13036    pub static rte_flow_item_nvgre_mask: rte_flow_item_nvgre;
13037}
13038#[repr(C)]
13039#[derive(Debug, Default, Copy, Clone, PartialEq)]
13040pub struct rte_flow_item_mpls {
13041    pub label_tc_s: [u8; 3usize],
13042    pub ttl: u8,
13043}
13044#[test]
13045fn bindgen_test_layout_rte_flow_item_mpls() {
13046    assert_eq!(
13047        ::std::mem::size_of::<rte_flow_item_mpls>(),
13048        4usize,
13049        concat!("Size of: ", stringify!(rte_flow_item_mpls))
13050    );
13051    assert_eq!(
13052        ::std::mem::align_of::<rte_flow_item_mpls>(),
13053        1usize,
13054        concat!("Alignment of ", stringify!(rte_flow_item_mpls))
13055    );
13056    assert_eq!(
13057        unsafe { &(*(::std::ptr::null::<rte_flow_item_mpls>())).label_tc_s as *const _ as usize },
13058        0usize,
13059        concat!(
13060            "Offset of field: ",
13061            stringify!(rte_flow_item_mpls),
13062            "::",
13063            stringify!(label_tc_s)
13064        )
13065    );
13066    assert_eq!(
13067        unsafe { &(*(::std::ptr::null::<rte_flow_item_mpls>())).ttl as *const _ as usize },
13068        3usize,
13069        concat!(
13070            "Offset of field: ",
13071            stringify!(rte_flow_item_mpls),
13072            "::",
13073            stringify!(ttl)
13074        )
13075    );
13076}
13077extern "C" {
13078    pub static rte_flow_item_mpls_mask: rte_flow_item_mpls;
13079}
13080#[repr(C)]
13081#[derive(Debug, Default, Copy, Clone, PartialEq)]
13082pub struct rte_flow_item_gre {
13083    pub c_rsvd0_ver: rte_be16_t,
13084    pub protocol: rte_be16_t,
13085}
13086#[test]
13087fn bindgen_test_layout_rte_flow_item_gre() {
13088    assert_eq!(
13089        ::std::mem::size_of::<rte_flow_item_gre>(),
13090        4usize,
13091        concat!("Size of: ", stringify!(rte_flow_item_gre))
13092    );
13093    assert_eq!(
13094        ::std::mem::align_of::<rte_flow_item_gre>(),
13095        2usize,
13096        concat!("Alignment of ", stringify!(rte_flow_item_gre))
13097    );
13098    assert_eq!(
13099        unsafe { &(*(::std::ptr::null::<rte_flow_item_gre>())).c_rsvd0_ver as *const _ as usize },
13100        0usize,
13101        concat!(
13102            "Offset of field: ",
13103            stringify!(rte_flow_item_gre),
13104            "::",
13105            stringify!(c_rsvd0_ver)
13106        )
13107    );
13108    assert_eq!(
13109        unsafe { &(*(::std::ptr::null::<rte_flow_item_gre>())).protocol as *const _ as usize },
13110        2usize,
13111        concat!(
13112            "Offset of field: ",
13113            stringify!(rte_flow_item_gre),
13114            "::",
13115            stringify!(protocol)
13116        )
13117    );
13118}
13119extern "C" {
13120    pub static rte_flow_item_gre_mask: rte_flow_item_gre;
13121}
13122#[repr(C)]
13123#[derive(Debug, Default, Copy, Clone, PartialEq)]
13124pub struct rte_flow_item_fuzzy {
13125    pub thresh: u32,
13126}
13127#[test]
13128fn bindgen_test_layout_rte_flow_item_fuzzy() {
13129    assert_eq!(
13130        ::std::mem::size_of::<rte_flow_item_fuzzy>(),
13131        4usize,
13132        concat!("Size of: ", stringify!(rte_flow_item_fuzzy))
13133    );
13134    assert_eq!(
13135        ::std::mem::align_of::<rte_flow_item_fuzzy>(),
13136        4usize,
13137        concat!("Alignment of ", stringify!(rte_flow_item_fuzzy))
13138    );
13139    assert_eq!(
13140        unsafe { &(*(::std::ptr::null::<rte_flow_item_fuzzy>())).thresh as *const _ as usize },
13141        0usize,
13142        concat!(
13143            "Offset of field: ",
13144            stringify!(rte_flow_item_fuzzy),
13145            "::",
13146            stringify!(thresh)
13147        )
13148    );
13149}
13150extern "C" {
13151    pub static rte_flow_item_fuzzy_mask: rte_flow_item_fuzzy;
13152}
13153#[repr(C)]
13154#[derive(Debug, Default, Copy, Clone, PartialEq)]
13155pub struct rte_flow_item_gtp {
13156    pub v_pt_rsv_flags: u8,
13157    pub msg_type: u8,
13158    pub msg_len: rte_be16_t,
13159    pub teid: rte_be32_t,
13160}
13161#[test]
13162fn bindgen_test_layout_rte_flow_item_gtp() {
13163    assert_eq!(
13164        ::std::mem::size_of::<rte_flow_item_gtp>(),
13165        8usize,
13166        concat!("Size of: ", stringify!(rte_flow_item_gtp))
13167    );
13168    assert_eq!(
13169        ::std::mem::align_of::<rte_flow_item_gtp>(),
13170        4usize,
13171        concat!("Alignment of ", stringify!(rte_flow_item_gtp))
13172    );
13173    assert_eq!(
13174        unsafe {
13175            &(*(::std::ptr::null::<rte_flow_item_gtp>())).v_pt_rsv_flags as *const _ as usize
13176        },
13177        0usize,
13178        concat!(
13179            "Offset of field: ",
13180            stringify!(rte_flow_item_gtp),
13181            "::",
13182            stringify!(v_pt_rsv_flags)
13183        )
13184    );
13185    assert_eq!(
13186        unsafe { &(*(::std::ptr::null::<rte_flow_item_gtp>())).msg_type as *const _ as usize },
13187        1usize,
13188        concat!(
13189            "Offset of field: ",
13190            stringify!(rte_flow_item_gtp),
13191            "::",
13192            stringify!(msg_type)
13193        )
13194    );
13195    assert_eq!(
13196        unsafe { &(*(::std::ptr::null::<rte_flow_item_gtp>())).msg_len as *const _ as usize },
13197        2usize,
13198        concat!(
13199            "Offset of field: ",
13200            stringify!(rte_flow_item_gtp),
13201            "::",
13202            stringify!(msg_len)
13203        )
13204    );
13205    assert_eq!(
13206        unsafe { &(*(::std::ptr::null::<rte_flow_item_gtp>())).teid as *const _ as usize },
13207        4usize,
13208        concat!(
13209            "Offset of field: ",
13210            stringify!(rte_flow_item_gtp),
13211            "::",
13212            stringify!(teid)
13213        )
13214    );
13215}
13216extern "C" {
13217    pub static rte_flow_item_gtp_mask: rte_flow_item_gtp;
13218}
13219#[repr(C)]
13220#[derive(Debug, Default, Copy, Clone, PartialEq)]
13221pub struct rte_flow_item_esp {
13222    pub hdr: rte_esp_hdr,
13223}
13224#[test]
13225fn bindgen_test_layout_rte_flow_item_esp() {
13226    assert_eq!(
13227        ::std::mem::size_of::<rte_flow_item_esp>(),
13228        8usize,
13229        concat!("Size of: ", stringify!(rte_flow_item_esp))
13230    );
13231    assert_eq!(
13232        ::std::mem::align_of::<rte_flow_item_esp>(),
13233        1usize,
13234        concat!("Alignment of ", stringify!(rte_flow_item_esp))
13235    );
13236    assert_eq!(
13237        unsafe { &(*(::std::ptr::null::<rte_flow_item_esp>())).hdr as *const _ as usize },
13238        0usize,
13239        concat!(
13240            "Offset of field: ",
13241            stringify!(rte_flow_item_esp),
13242            "::",
13243            stringify!(hdr)
13244        )
13245    );
13246}
13247extern "C" {
13248    pub static rte_flow_item_esp_mask: rte_flow_item_esp;
13249}
13250#[repr(C)]
13251#[derive(Debug, Default, Copy, Clone, PartialEq)]
13252pub struct rte_flow_item_geneve {
13253    pub ver_opt_len_o_c_rsvd0: rte_be16_t,
13254    pub protocol: rte_be16_t,
13255    pub vni: [u8; 3usize],
13256    pub rsvd1: u8,
13257}
13258#[test]
13259fn bindgen_test_layout_rte_flow_item_geneve() {
13260    assert_eq!(
13261        ::std::mem::size_of::<rte_flow_item_geneve>(),
13262        8usize,
13263        concat!("Size of: ", stringify!(rte_flow_item_geneve))
13264    );
13265    assert_eq!(
13266        ::std::mem::align_of::<rte_flow_item_geneve>(),
13267        2usize,
13268        concat!("Alignment of ", stringify!(rte_flow_item_geneve))
13269    );
13270    assert_eq!(
13271        unsafe {
13272            &(*(::std::ptr::null::<rte_flow_item_geneve>())).ver_opt_len_o_c_rsvd0 as *const _
13273                as usize
13274        },
13275        0usize,
13276        concat!(
13277            "Offset of field: ",
13278            stringify!(rte_flow_item_geneve),
13279            "::",
13280            stringify!(ver_opt_len_o_c_rsvd0)
13281        )
13282    );
13283    assert_eq!(
13284        unsafe { &(*(::std::ptr::null::<rte_flow_item_geneve>())).protocol as *const _ as usize },
13285        2usize,
13286        concat!(
13287            "Offset of field: ",
13288            stringify!(rte_flow_item_geneve),
13289            "::",
13290            stringify!(protocol)
13291        )
13292    );
13293    assert_eq!(
13294        unsafe { &(*(::std::ptr::null::<rte_flow_item_geneve>())).vni as *const _ as usize },
13295        4usize,
13296        concat!(
13297            "Offset of field: ",
13298            stringify!(rte_flow_item_geneve),
13299            "::",
13300            stringify!(vni)
13301        )
13302    );
13303    assert_eq!(
13304        unsafe { &(*(::std::ptr::null::<rte_flow_item_geneve>())).rsvd1 as *const _ as usize },
13305        7usize,
13306        concat!(
13307            "Offset of field: ",
13308            stringify!(rte_flow_item_geneve),
13309            "::",
13310            stringify!(rsvd1)
13311        )
13312    );
13313}
13314extern "C" {
13315    pub static rte_flow_item_geneve_mask: rte_flow_item_geneve;
13316}
13317#[repr(C)]
13318#[derive(Debug, Default, Copy, Clone, PartialEq)]
13319pub struct rte_flow_item_vxlan_gpe {
13320    pub flags: u8,
13321    pub rsvd0: [u8; 2usize],
13322    pub protocol: u8,
13323    pub vni: [u8; 3usize],
13324    pub rsvd1: u8,
13325}
13326#[test]
13327fn bindgen_test_layout_rte_flow_item_vxlan_gpe() {
13328    assert_eq!(
13329        ::std::mem::size_of::<rte_flow_item_vxlan_gpe>(),
13330        8usize,
13331        concat!("Size of: ", stringify!(rte_flow_item_vxlan_gpe))
13332    );
13333    assert_eq!(
13334        ::std::mem::align_of::<rte_flow_item_vxlan_gpe>(),
13335        1usize,
13336        concat!("Alignment of ", stringify!(rte_flow_item_vxlan_gpe))
13337    );
13338    assert_eq!(
13339        unsafe { &(*(::std::ptr::null::<rte_flow_item_vxlan_gpe>())).flags as *const _ as usize },
13340        0usize,
13341        concat!(
13342            "Offset of field: ",
13343            stringify!(rte_flow_item_vxlan_gpe),
13344            "::",
13345            stringify!(flags)
13346        )
13347    );
13348    assert_eq!(
13349        unsafe { &(*(::std::ptr::null::<rte_flow_item_vxlan_gpe>())).rsvd0 as *const _ as usize },
13350        1usize,
13351        concat!(
13352            "Offset of field: ",
13353            stringify!(rte_flow_item_vxlan_gpe),
13354            "::",
13355            stringify!(rsvd0)
13356        )
13357    );
13358    assert_eq!(
13359        unsafe {
13360            &(*(::std::ptr::null::<rte_flow_item_vxlan_gpe>())).protocol as *const _ as usize
13361        },
13362        3usize,
13363        concat!(
13364            "Offset of field: ",
13365            stringify!(rte_flow_item_vxlan_gpe),
13366            "::",
13367            stringify!(protocol)
13368        )
13369    );
13370    assert_eq!(
13371        unsafe { &(*(::std::ptr::null::<rte_flow_item_vxlan_gpe>())).vni as *const _ as usize },
13372        4usize,
13373        concat!(
13374            "Offset of field: ",
13375            stringify!(rte_flow_item_vxlan_gpe),
13376            "::",
13377            stringify!(vni)
13378        )
13379    );
13380    assert_eq!(
13381        unsafe { &(*(::std::ptr::null::<rte_flow_item_vxlan_gpe>())).rsvd1 as *const _ as usize },
13382        7usize,
13383        concat!(
13384            "Offset of field: ",
13385            stringify!(rte_flow_item_vxlan_gpe),
13386            "::",
13387            stringify!(rsvd1)
13388        )
13389    );
13390}
13391extern "C" {
13392    pub static rte_flow_item_vxlan_gpe_mask: rte_flow_item_vxlan_gpe;
13393}
13394#[repr(C)]
13395#[derive(Debug, Default, Copy, Clone, PartialEq)]
13396pub struct rte_flow_item_arp_eth_ipv4 {
13397    pub hrd: rte_be16_t,
13398    pub pro: rte_be16_t,
13399    pub hln: u8,
13400    pub pln: u8,
13401    pub op: rte_be16_t,
13402    pub sha: rte_ether_addr,
13403    pub spa: rte_be32_t,
13404    pub tha: rte_ether_addr,
13405    pub tpa: rte_be32_t,
13406}
13407#[test]
13408fn bindgen_test_layout_rte_flow_item_arp_eth_ipv4() {
13409    assert_eq!(
13410        ::std::mem::size_of::<rte_flow_item_arp_eth_ipv4>(),
13411        32usize,
13412        concat!("Size of: ", stringify!(rte_flow_item_arp_eth_ipv4))
13413    );
13414    assert_eq!(
13415        ::std::mem::align_of::<rte_flow_item_arp_eth_ipv4>(),
13416        4usize,
13417        concat!("Alignment of ", stringify!(rte_flow_item_arp_eth_ipv4))
13418    );
13419    assert_eq!(
13420        unsafe { &(*(::std::ptr::null::<rte_flow_item_arp_eth_ipv4>())).hrd as *const _ as usize },
13421        0usize,
13422        concat!(
13423            "Offset of field: ",
13424            stringify!(rte_flow_item_arp_eth_ipv4),
13425            "::",
13426            stringify!(hrd)
13427        )
13428    );
13429    assert_eq!(
13430        unsafe { &(*(::std::ptr::null::<rte_flow_item_arp_eth_ipv4>())).pro as *const _ as usize },
13431        2usize,
13432        concat!(
13433            "Offset of field: ",
13434            stringify!(rte_flow_item_arp_eth_ipv4),
13435            "::",
13436            stringify!(pro)
13437        )
13438    );
13439    assert_eq!(
13440        unsafe { &(*(::std::ptr::null::<rte_flow_item_arp_eth_ipv4>())).hln as *const _ as usize },
13441        4usize,
13442        concat!(
13443            "Offset of field: ",
13444            stringify!(rte_flow_item_arp_eth_ipv4),
13445            "::",
13446            stringify!(hln)
13447        )
13448    );
13449    assert_eq!(
13450        unsafe { &(*(::std::ptr::null::<rte_flow_item_arp_eth_ipv4>())).pln as *const _ as usize },
13451        5usize,
13452        concat!(
13453            "Offset of field: ",
13454            stringify!(rte_flow_item_arp_eth_ipv4),
13455            "::",
13456            stringify!(pln)
13457        )
13458    );
13459    assert_eq!(
13460        unsafe { &(*(::std::ptr::null::<rte_flow_item_arp_eth_ipv4>())).op as *const _ as usize },
13461        6usize,
13462        concat!(
13463            "Offset of field: ",
13464            stringify!(rte_flow_item_arp_eth_ipv4),
13465            "::",
13466            stringify!(op)
13467        )
13468    );
13469    assert_eq!(
13470        unsafe { &(*(::std::ptr::null::<rte_flow_item_arp_eth_ipv4>())).sha as *const _ as usize },
13471        8usize,
13472        concat!(
13473            "Offset of field: ",
13474            stringify!(rte_flow_item_arp_eth_ipv4),
13475            "::",
13476            stringify!(sha)
13477        )
13478    );
13479    assert_eq!(
13480        unsafe { &(*(::std::ptr::null::<rte_flow_item_arp_eth_ipv4>())).spa as *const _ as usize },
13481        16usize,
13482        concat!(
13483            "Offset of field: ",
13484            stringify!(rte_flow_item_arp_eth_ipv4),
13485            "::",
13486            stringify!(spa)
13487        )
13488    );
13489    assert_eq!(
13490        unsafe { &(*(::std::ptr::null::<rte_flow_item_arp_eth_ipv4>())).tha as *const _ as usize },
13491        20usize,
13492        concat!(
13493            "Offset of field: ",
13494            stringify!(rte_flow_item_arp_eth_ipv4),
13495            "::",
13496            stringify!(tha)
13497        )
13498    );
13499    assert_eq!(
13500        unsafe { &(*(::std::ptr::null::<rte_flow_item_arp_eth_ipv4>())).tpa as *const _ as usize },
13501        28usize,
13502        concat!(
13503            "Offset of field: ",
13504            stringify!(rte_flow_item_arp_eth_ipv4),
13505            "::",
13506            stringify!(tpa)
13507        )
13508    );
13509}
13510extern "C" {
13511    pub static rte_flow_item_arp_eth_ipv4_mask: rte_flow_item_arp_eth_ipv4;
13512}
13513#[repr(C)]
13514#[derive(Debug, Default, Copy, Clone, PartialEq)]
13515pub struct rte_flow_item_ipv6_ext {
13516    pub next_hdr: u8,
13517}
13518#[test]
13519fn bindgen_test_layout_rte_flow_item_ipv6_ext() {
13520    assert_eq!(
13521        ::std::mem::size_of::<rte_flow_item_ipv6_ext>(),
13522        1usize,
13523        concat!("Size of: ", stringify!(rte_flow_item_ipv6_ext))
13524    );
13525    assert_eq!(
13526        ::std::mem::align_of::<rte_flow_item_ipv6_ext>(),
13527        1usize,
13528        concat!("Alignment of ", stringify!(rte_flow_item_ipv6_ext))
13529    );
13530    assert_eq!(
13531        unsafe { &(*(::std::ptr::null::<rte_flow_item_ipv6_ext>())).next_hdr as *const _ as usize },
13532        0usize,
13533        concat!(
13534            "Offset of field: ",
13535            stringify!(rte_flow_item_ipv6_ext),
13536            "::",
13537            stringify!(next_hdr)
13538        )
13539    );
13540}
13541extern "C" {
13542    pub static rte_flow_item_ipv6_ext_mask: rte_flow_item_ipv6_ext;
13543}
13544#[repr(C)]
13545#[derive(Debug, Default, Copy, Clone, PartialEq)]
13546pub struct rte_flow_item_icmp6 {
13547    pub type_: u8,
13548    pub code: u8,
13549    pub checksum: u16,
13550}
13551#[test]
13552fn bindgen_test_layout_rte_flow_item_icmp6() {
13553    assert_eq!(
13554        ::std::mem::size_of::<rte_flow_item_icmp6>(),
13555        4usize,
13556        concat!("Size of: ", stringify!(rte_flow_item_icmp6))
13557    );
13558    assert_eq!(
13559        ::std::mem::align_of::<rte_flow_item_icmp6>(),
13560        2usize,
13561        concat!("Alignment of ", stringify!(rte_flow_item_icmp6))
13562    );
13563    assert_eq!(
13564        unsafe { &(*(::std::ptr::null::<rte_flow_item_icmp6>())).type_ as *const _ as usize },
13565        0usize,
13566        concat!(
13567            "Offset of field: ",
13568            stringify!(rte_flow_item_icmp6),
13569            "::",
13570            stringify!(type_)
13571        )
13572    );
13573    assert_eq!(
13574        unsafe { &(*(::std::ptr::null::<rte_flow_item_icmp6>())).code as *const _ as usize },
13575        1usize,
13576        concat!(
13577            "Offset of field: ",
13578            stringify!(rte_flow_item_icmp6),
13579            "::",
13580            stringify!(code)
13581        )
13582    );
13583    assert_eq!(
13584        unsafe { &(*(::std::ptr::null::<rte_flow_item_icmp6>())).checksum as *const _ as usize },
13585        2usize,
13586        concat!(
13587            "Offset of field: ",
13588            stringify!(rte_flow_item_icmp6),
13589            "::",
13590            stringify!(checksum)
13591        )
13592    );
13593}
13594extern "C" {
13595    pub static rte_flow_item_icmp6_mask: rte_flow_item_icmp6;
13596}
13597#[repr(C)]
13598#[derive(Debug, Default, Copy, Clone, PartialEq)]
13599pub struct rte_flow_item_icmp6_nd_ns {
13600    pub type_: u8,
13601    pub code: u8,
13602    pub checksum: rte_be16_t,
13603    pub reserved: rte_be32_t,
13604    pub target_addr: [u8; 16usize],
13605}
13606#[test]
13607fn bindgen_test_layout_rte_flow_item_icmp6_nd_ns() {
13608    assert_eq!(
13609        ::std::mem::size_of::<rte_flow_item_icmp6_nd_ns>(),
13610        24usize,
13611        concat!("Size of: ", stringify!(rte_flow_item_icmp6_nd_ns))
13612    );
13613    assert_eq!(
13614        ::std::mem::align_of::<rte_flow_item_icmp6_nd_ns>(),
13615        4usize,
13616        concat!("Alignment of ", stringify!(rte_flow_item_icmp6_nd_ns))
13617    );
13618    assert_eq!(
13619        unsafe { &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_ns>())).type_ as *const _ as usize },
13620        0usize,
13621        concat!(
13622            "Offset of field: ",
13623            stringify!(rte_flow_item_icmp6_nd_ns),
13624            "::",
13625            stringify!(type_)
13626        )
13627    );
13628    assert_eq!(
13629        unsafe { &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_ns>())).code as *const _ as usize },
13630        1usize,
13631        concat!(
13632            "Offset of field: ",
13633            stringify!(rte_flow_item_icmp6_nd_ns),
13634            "::",
13635            stringify!(code)
13636        )
13637    );
13638    assert_eq!(
13639        unsafe {
13640            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_ns>())).checksum as *const _ as usize
13641        },
13642        2usize,
13643        concat!(
13644            "Offset of field: ",
13645            stringify!(rte_flow_item_icmp6_nd_ns),
13646            "::",
13647            stringify!(checksum)
13648        )
13649    );
13650    assert_eq!(
13651        unsafe {
13652            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_ns>())).reserved as *const _ as usize
13653        },
13654        4usize,
13655        concat!(
13656            "Offset of field: ",
13657            stringify!(rte_flow_item_icmp6_nd_ns),
13658            "::",
13659            stringify!(reserved)
13660        )
13661    );
13662    assert_eq!(
13663        unsafe {
13664            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_ns>())).target_addr as *const _ as usize
13665        },
13666        8usize,
13667        concat!(
13668            "Offset of field: ",
13669            stringify!(rte_flow_item_icmp6_nd_ns),
13670            "::",
13671            stringify!(target_addr)
13672        )
13673    );
13674}
13675extern "C" {
13676    pub static rte_flow_item_icmp6_nd_ns_mask: rte_flow_item_icmp6_nd_ns;
13677}
13678#[repr(C)]
13679#[derive(Debug, Default, Copy, Clone, PartialEq)]
13680pub struct rte_flow_item_icmp6_nd_na {
13681    pub type_: u8,
13682    pub code: u8,
13683    pub checksum: rte_be16_t,
13684    pub rso_reserved: rte_be32_t,
13685    pub target_addr: [u8; 16usize],
13686}
13687#[test]
13688fn bindgen_test_layout_rte_flow_item_icmp6_nd_na() {
13689    assert_eq!(
13690        ::std::mem::size_of::<rte_flow_item_icmp6_nd_na>(),
13691        24usize,
13692        concat!("Size of: ", stringify!(rte_flow_item_icmp6_nd_na))
13693    );
13694    assert_eq!(
13695        ::std::mem::align_of::<rte_flow_item_icmp6_nd_na>(),
13696        4usize,
13697        concat!("Alignment of ", stringify!(rte_flow_item_icmp6_nd_na))
13698    );
13699    assert_eq!(
13700        unsafe { &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_na>())).type_ as *const _ as usize },
13701        0usize,
13702        concat!(
13703            "Offset of field: ",
13704            stringify!(rte_flow_item_icmp6_nd_na),
13705            "::",
13706            stringify!(type_)
13707        )
13708    );
13709    assert_eq!(
13710        unsafe { &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_na>())).code as *const _ as usize },
13711        1usize,
13712        concat!(
13713            "Offset of field: ",
13714            stringify!(rte_flow_item_icmp6_nd_na),
13715            "::",
13716            stringify!(code)
13717        )
13718    );
13719    assert_eq!(
13720        unsafe {
13721            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_na>())).checksum as *const _ as usize
13722        },
13723        2usize,
13724        concat!(
13725            "Offset of field: ",
13726            stringify!(rte_flow_item_icmp6_nd_na),
13727            "::",
13728            stringify!(checksum)
13729        )
13730    );
13731    assert_eq!(
13732        unsafe {
13733            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_na>())).rso_reserved as *const _ as usize
13734        },
13735        4usize,
13736        concat!(
13737            "Offset of field: ",
13738            stringify!(rte_flow_item_icmp6_nd_na),
13739            "::",
13740            stringify!(rso_reserved)
13741        )
13742    );
13743    assert_eq!(
13744        unsafe {
13745            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_na>())).target_addr as *const _ as usize
13746        },
13747        8usize,
13748        concat!(
13749            "Offset of field: ",
13750            stringify!(rte_flow_item_icmp6_nd_na),
13751            "::",
13752            stringify!(target_addr)
13753        )
13754    );
13755}
13756extern "C" {
13757    pub static rte_flow_item_icmp6_nd_na_mask: rte_flow_item_icmp6_nd_na;
13758}
13759#[repr(C)]
13760#[derive(Debug, Default, Copy, Clone, PartialEq)]
13761pub struct rte_flow_item_icmp6_nd_opt {
13762    pub type_: u8,
13763    pub length: u8,
13764}
13765#[test]
13766fn bindgen_test_layout_rte_flow_item_icmp6_nd_opt() {
13767    assert_eq!(
13768        ::std::mem::size_of::<rte_flow_item_icmp6_nd_opt>(),
13769        2usize,
13770        concat!("Size of: ", stringify!(rte_flow_item_icmp6_nd_opt))
13771    );
13772    assert_eq!(
13773        ::std::mem::align_of::<rte_flow_item_icmp6_nd_opt>(),
13774        1usize,
13775        concat!("Alignment of ", stringify!(rte_flow_item_icmp6_nd_opt))
13776    );
13777    assert_eq!(
13778        unsafe {
13779            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_opt>())).type_ as *const _ as usize
13780        },
13781        0usize,
13782        concat!(
13783            "Offset of field: ",
13784            stringify!(rte_flow_item_icmp6_nd_opt),
13785            "::",
13786            stringify!(type_)
13787        )
13788    );
13789    assert_eq!(
13790        unsafe {
13791            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_opt>())).length as *const _ as usize
13792        },
13793        1usize,
13794        concat!(
13795            "Offset of field: ",
13796            stringify!(rte_flow_item_icmp6_nd_opt),
13797            "::",
13798            stringify!(length)
13799        )
13800    );
13801}
13802extern "C" {
13803    pub static rte_flow_item_icmp6_nd_opt_mask: rte_flow_item_icmp6_nd_opt;
13804}
13805#[repr(C)]
13806#[derive(Debug, Default, Copy, Clone, PartialEq)]
13807pub struct rte_flow_item_icmp6_nd_opt_sla_eth {
13808    pub type_: u8,
13809    pub length: u8,
13810    pub sla: rte_ether_addr,
13811}
13812#[test]
13813fn bindgen_test_layout_rte_flow_item_icmp6_nd_opt_sla_eth() {
13814    assert_eq!(
13815        ::std::mem::size_of::<rte_flow_item_icmp6_nd_opt_sla_eth>(),
13816        8usize,
13817        concat!("Size of: ", stringify!(rte_flow_item_icmp6_nd_opt_sla_eth))
13818    );
13819    assert_eq!(
13820        ::std::mem::align_of::<rte_flow_item_icmp6_nd_opt_sla_eth>(),
13821        2usize,
13822        concat!(
13823            "Alignment of ",
13824            stringify!(rte_flow_item_icmp6_nd_opt_sla_eth)
13825        )
13826    );
13827    assert_eq!(
13828        unsafe {
13829            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_opt_sla_eth>())).type_ as *const _
13830                as usize
13831        },
13832        0usize,
13833        concat!(
13834            "Offset of field: ",
13835            stringify!(rte_flow_item_icmp6_nd_opt_sla_eth),
13836            "::",
13837            stringify!(type_)
13838        )
13839    );
13840    assert_eq!(
13841        unsafe {
13842            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_opt_sla_eth>())).length as *const _
13843                as usize
13844        },
13845        1usize,
13846        concat!(
13847            "Offset of field: ",
13848            stringify!(rte_flow_item_icmp6_nd_opt_sla_eth),
13849            "::",
13850            stringify!(length)
13851        )
13852    );
13853    assert_eq!(
13854        unsafe {
13855            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_opt_sla_eth>())).sla as *const _ as usize
13856        },
13857        2usize,
13858        concat!(
13859            "Offset of field: ",
13860            stringify!(rte_flow_item_icmp6_nd_opt_sla_eth),
13861            "::",
13862            stringify!(sla)
13863        )
13864    );
13865}
13866extern "C" {
13867    pub static rte_flow_item_icmp6_nd_opt_sla_eth_mask: rte_flow_item_icmp6_nd_opt_sla_eth;
13868}
13869#[repr(C)]
13870#[derive(Debug, Default, Copy, Clone, PartialEq)]
13871pub struct rte_flow_item_icmp6_nd_opt_tla_eth {
13872    pub type_: u8,
13873    pub length: u8,
13874    pub tla: rte_ether_addr,
13875}
13876#[test]
13877fn bindgen_test_layout_rte_flow_item_icmp6_nd_opt_tla_eth() {
13878    assert_eq!(
13879        ::std::mem::size_of::<rte_flow_item_icmp6_nd_opt_tla_eth>(),
13880        8usize,
13881        concat!("Size of: ", stringify!(rte_flow_item_icmp6_nd_opt_tla_eth))
13882    );
13883    assert_eq!(
13884        ::std::mem::align_of::<rte_flow_item_icmp6_nd_opt_tla_eth>(),
13885        2usize,
13886        concat!(
13887            "Alignment of ",
13888            stringify!(rte_flow_item_icmp6_nd_opt_tla_eth)
13889        )
13890    );
13891    assert_eq!(
13892        unsafe {
13893            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_opt_tla_eth>())).type_ as *const _
13894                as usize
13895        },
13896        0usize,
13897        concat!(
13898            "Offset of field: ",
13899            stringify!(rte_flow_item_icmp6_nd_opt_tla_eth),
13900            "::",
13901            stringify!(type_)
13902        )
13903    );
13904    assert_eq!(
13905        unsafe {
13906            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_opt_tla_eth>())).length as *const _
13907                as usize
13908        },
13909        1usize,
13910        concat!(
13911            "Offset of field: ",
13912            stringify!(rte_flow_item_icmp6_nd_opt_tla_eth),
13913            "::",
13914            stringify!(length)
13915        )
13916    );
13917    assert_eq!(
13918        unsafe {
13919            &(*(::std::ptr::null::<rte_flow_item_icmp6_nd_opt_tla_eth>())).tla as *const _ as usize
13920        },
13921        2usize,
13922        concat!(
13923            "Offset of field: ",
13924            stringify!(rte_flow_item_icmp6_nd_opt_tla_eth),
13925            "::",
13926            stringify!(tla)
13927        )
13928    );
13929}
13930extern "C" {
13931    pub static rte_flow_item_icmp6_nd_opt_tla_eth_mask: rte_flow_item_icmp6_nd_opt_tla_eth;
13932}
13933#[repr(C)]
13934#[derive(Debug, Default, Copy, Clone, PartialEq)]
13935pub struct rte_flow_item_meta {
13936    pub data: u32,
13937}
13938#[test]
13939fn bindgen_test_layout_rte_flow_item_meta() {
13940    assert_eq!(
13941        ::std::mem::size_of::<rte_flow_item_meta>(),
13942        4usize,
13943        concat!("Size of: ", stringify!(rte_flow_item_meta))
13944    );
13945    assert_eq!(
13946        ::std::mem::align_of::<rte_flow_item_meta>(),
13947        4usize,
13948        concat!("Alignment of ", stringify!(rte_flow_item_meta))
13949    );
13950    assert_eq!(
13951        unsafe { &(*(::std::ptr::null::<rte_flow_item_meta>())).data as *const _ as usize },
13952        0usize,
13953        concat!(
13954            "Offset of field: ",
13955            stringify!(rte_flow_item_meta),
13956            "::",
13957            stringify!(data)
13958        )
13959    );
13960}
13961extern "C" {
13962    pub static rte_flow_item_meta_mask: rte_flow_item_meta;
13963}
13964#[repr(C)]
13965#[derive(Debug, Default, Copy, Clone, PartialEq)]
13966pub struct rte_flow_item_gtp_psc {
13967    pub pdu_type: u8,
13968    pub qfi: u8,
13969}
13970#[test]
13971fn bindgen_test_layout_rte_flow_item_gtp_psc() {
13972    assert_eq!(
13973        ::std::mem::size_of::<rte_flow_item_gtp_psc>(),
13974        2usize,
13975        concat!("Size of: ", stringify!(rte_flow_item_gtp_psc))
13976    );
13977    assert_eq!(
13978        ::std::mem::align_of::<rte_flow_item_gtp_psc>(),
13979        1usize,
13980        concat!("Alignment of ", stringify!(rte_flow_item_gtp_psc))
13981    );
13982    assert_eq!(
13983        unsafe { &(*(::std::ptr::null::<rte_flow_item_gtp_psc>())).pdu_type as *const _ as usize },
13984        0usize,
13985        concat!(
13986            "Offset of field: ",
13987            stringify!(rte_flow_item_gtp_psc),
13988            "::",
13989            stringify!(pdu_type)
13990        )
13991    );
13992    assert_eq!(
13993        unsafe { &(*(::std::ptr::null::<rte_flow_item_gtp_psc>())).qfi as *const _ as usize },
13994        1usize,
13995        concat!(
13996            "Offset of field: ",
13997            stringify!(rte_flow_item_gtp_psc),
13998            "::",
13999            stringify!(qfi)
14000        )
14001    );
14002}
14003extern "C" {
14004    pub static rte_flow_item_gtp_psc_mask: rte_flow_item_gtp_psc;
14005}
14006#[repr(C)]
14007#[derive(Debug, Default, Copy, Clone, PartialEq)]
14008pub struct rte_flow_item_pppoe {
14009    pub version_type: u8,
14010    pub code: u8,
14011    pub session_id: rte_be16_t,
14012    pub length: rte_be16_t,
14013}
14014#[test]
14015fn bindgen_test_layout_rte_flow_item_pppoe() {
14016    assert_eq!(
14017        ::std::mem::size_of::<rte_flow_item_pppoe>(),
14018        6usize,
14019        concat!("Size of: ", stringify!(rte_flow_item_pppoe))
14020    );
14021    assert_eq!(
14022        ::std::mem::align_of::<rte_flow_item_pppoe>(),
14023        2usize,
14024        concat!("Alignment of ", stringify!(rte_flow_item_pppoe))
14025    );
14026    assert_eq!(
14027        unsafe {
14028            &(*(::std::ptr::null::<rte_flow_item_pppoe>())).version_type as *const _ as usize
14029        },
14030        0usize,
14031        concat!(
14032            "Offset of field: ",
14033            stringify!(rte_flow_item_pppoe),
14034            "::",
14035            stringify!(version_type)
14036        )
14037    );
14038    assert_eq!(
14039        unsafe { &(*(::std::ptr::null::<rte_flow_item_pppoe>())).code as *const _ as usize },
14040        1usize,
14041        concat!(
14042            "Offset of field: ",
14043            stringify!(rte_flow_item_pppoe),
14044            "::",
14045            stringify!(code)
14046        )
14047    );
14048    assert_eq!(
14049        unsafe { &(*(::std::ptr::null::<rte_flow_item_pppoe>())).session_id as *const _ as usize },
14050        2usize,
14051        concat!(
14052            "Offset of field: ",
14053            stringify!(rte_flow_item_pppoe),
14054            "::",
14055            stringify!(session_id)
14056        )
14057    );
14058    assert_eq!(
14059        unsafe { &(*(::std::ptr::null::<rte_flow_item_pppoe>())).length as *const _ as usize },
14060        4usize,
14061        concat!(
14062            "Offset of field: ",
14063            stringify!(rte_flow_item_pppoe),
14064            "::",
14065            stringify!(length)
14066        )
14067    );
14068}
14069#[repr(C)]
14070#[derive(Debug, Default, Copy, Clone, PartialEq)]
14071pub struct rte_flow_item_pppoe_proto_id {
14072    pub proto_id: rte_be16_t,
14073}
14074#[test]
14075fn bindgen_test_layout_rte_flow_item_pppoe_proto_id() {
14076    assert_eq!(
14077        ::std::mem::size_of::<rte_flow_item_pppoe_proto_id>(),
14078        2usize,
14079        concat!("Size of: ", stringify!(rte_flow_item_pppoe_proto_id))
14080    );
14081    assert_eq!(
14082        ::std::mem::align_of::<rte_flow_item_pppoe_proto_id>(),
14083        2usize,
14084        concat!("Alignment of ", stringify!(rte_flow_item_pppoe_proto_id))
14085    );
14086    assert_eq!(
14087        unsafe {
14088            &(*(::std::ptr::null::<rte_flow_item_pppoe_proto_id>())).proto_id as *const _ as usize
14089        },
14090        0usize,
14091        concat!(
14092            "Offset of field: ",
14093            stringify!(rte_flow_item_pppoe_proto_id),
14094            "::",
14095            stringify!(proto_id)
14096        )
14097    );
14098}
14099extern "C" {
14100    pub static rte_flow_item_pppoe_proto_id_mask: rte_flow_item_pppoe_proto_id;
14101}
14102#[repr(C)]
14103#[derive(Debug, Default, Copy, Clone, PartialEq)]
14104pub struct rte_flow_item_tag {
14105    pub data: u32,
14106    pub index: u8,
14107}
14108#[test]
14109fn bindgen_test_layout_rte_flow_item_tag() {
14110    assert_eq!(
14111        ::std::mem::size_of::<rte_flow_item_tag>(),
14112        8usize,
14113        concat!("Size of: ", stringify!(rte_flow_item_tag))
14114    );
14115    assert_eq!(
14116        ::std::mem::align_of::<rte_flow_item_tag>(),
14117        4usize,
14118        concat!("Alignment of ", stringify!(rte_flow_item_tag))
14119    );
14120    assert_eq!(
14121        unsafe { &(*(::std::ptr::null::<rte_flow_item_tag>())).data as *const _ as usize },
14122        0usize,
14123        concat!(
14124            "Offset of field: ",
14125            stringify!(rte_flow_item_tag),
14126            "::",
14127            stringify!(data)
14128        )
14129    );
14130    assert_eq!(
14131        unsafe { &(*(::std::ptr::null::<rte_flow_item_tag>())).index as *const _ as usize },
14132        4usize,
14133        concat!(
14134            "Offset of field: ",
14135            stringify!(rte_flow_item_tag),
14136            "::",
14137            stringify!(index)
14138        )
14139    );
14140}
14141extern "C" {
14142    pub static rte_flow_item_tag_mask: rte_flow_item_tag;
14143}
14144#[repr(C)]
14145#[derive(Debug, Default, Copy, Clone, PartialEq)]
14146pub struct rte_flow_item_mark {
14147    pub id: u32,
14148}
14149#[test]
14150fn bindgen_test_layout_rte_flow_item_mark() {
14151    assert_eq!(
14152        ::std::mem::size_of::<rte_flow_item_mark>(),
14153        4usize,
14154        concat!("Size of: ", stringify!(rte_flow_item_mark))
14155    );
14156    assert_eq!(
14157        ::std::mem::align_of::<rte_flow_item_mark>(),
14158        4usize,
14159        concat!("Alignment of ", stringify!(rte_flow_item_mark))
14160    );
14161    assert_eq!(
14162        unsafe { &(*(::std::ptr::null::<rte_flow_item_mark>())).id as *const _ as usize },
14163        0usize,
14164        concat!(
14165            "Offset of field: ",
14166            stringify!(rte_flow_item_mark),
14167            "::",
14168            stringify!(id)
14169        )
14170    );
14171}
14172extern "C" {
14173    pub static rte_flow_item_mark_mask: rte_flow_item_mark;
14174}
14175#[repr(C)]
14176#[repr(align(4))]
14177#[derive(Debug, Default, Copy, Clone, PartialEq)]
14178pub struct rte_flow_item_nsh {
14179    pub _bitfield_align_1: [u32; 0],
14180    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
14181}
14182#[test]
14183fn bindgen_test_layout_rte_flow_item_nsh() {
14184    assert_eq!(
14185        ::std::mem::size_of::<rte_flow_item_nsh>(),
14186        8usize,
14187        concat!("Size of: ", stringify!(rte_flow_item_nsh))
14188    );
14189    assert_eq!(
14190        ::std::mem::align_of::<rte_flow_item_nsh>(),
14191        4usize,
14192        concat!("Alignment of ", stringify!(rte_flow_item_nsh))
14193    );
14194}
14195impl rte_flow_item_nsh {
14196    #[inline]
14197    pub fn version(&self) -> u32 {
14198        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) }
14199    }
14200    #[inline]
14201    pub fn set_version(&mut self, val: u32) {
14202        unsafe {
14203            let val: u32 = ::std::mem::transmute(val);
14204            self._bitfield_1.set(0usize, 2u8, val as u64)
14205        }
14206    }
14207    #[inline]
14208    pub fn oam_pkt(&self) -> u32 {
14209        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
14210    }
14211    #[inline]
14212    pub fn set_oam_pkt(&mut self, val: u32) {
14213        unsafe {
14214            let val: u32 = ::std::mem::transmute(val);
14215            self._bitfield_1.set(2usize, 1u8, val as u64)
14216        }
14217    }
14218    #[inline]
14219    pub fn reserved(&self) -> u32 {
14220        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
14221    }
14222    #[inline]
14223    pub fn set_reserved(&mut self, val: u32) {
14224        unsafe {
14225            let val: u32 = ::std::mem::transmute(val);
14226            self._bitfield_1.set(3usize, 1u8, val as u64)
14227        }
14228    }
14229    #[inline]
14230    pub fn ttl(&self) -> u32 {
14231        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 6u8) as u32) }
14232    }
14233    #[inline]
14234    pub fn set_ttl(&mut self, val: u32) {
14235        unsafe {
14236            let val: u32 = ::std::mem::transmute(val);
14237            self._bitfield_1.set(4usize, 6u8, val as u64)
14238        }
14239    }
14240    #[inline]
14241    pub fn length(&self) -> u32 {
14242        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 6u8) as u32) }
14243    }
14244    #[inline]
14245    pub fn set_length(&mut self, val: u32) {
14246        unsafe {
14247            let val: u32 = ::std::mem::transmute(val);
14248            self._bitfield_1.set(10usize, 6u8, val as u64)
14249        }
14250    }
14251    #[inline]
14252    pub fn reserved1(&self) -> u32 {
14253        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u32) }
14254    }
14255    #[inline]
14256    pub fn set_reserved1(&mut self, val: u32) {
14257        unsafe {
14258            let val: u32 = ::std::mem::transmute(val);
14259            self._bitfield_1.set(16usize, 4u8, val as u64)
14260        }
14261    }
14262    #[inline]
14263    pub fn mdtype(&self) -> u32 {
14264        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u32) }
14265    }
14266    #[inline]
14267    pub fn set_mdtype(&mut self, val: u32) {
14268        unsafe {
14269            let val: u32 = ::std::mem::transmute(val);
14270            self._bitfield_1.set(20usize, 4u8, val as u64)
14271        }
14272    }
14273    #[inline]
14274    pub fn next_proto(&self) -> u32 {
14275        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
14276    }
14277    #[inline]
14278    pub fn set_next_proto(&mut self, val: u32) {
14279        unsafe {
14280            let val: u32 = ::std::mem::transmute(val);
14281            self._bitfield_1.set(24usize, 8u8, val as u64)
14282        }
14283    }
14284    #[inline]
14285    pub fn spi(&self) -> u32 {
14286        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 24u8) as u32) }
14287    }
14288    #[inline]
14289    pub fn set_spi(&mut self, val: u32) {
14290        unsafe {
14291            let val: u32 = ::std::mem::transmute(val);
14292            self._bitfield_1.set(32usize, 24u8, val as u64)
14293        }
14294    }
14295    #[inline]
14296    pub fn sindex(&self) -> u32 {
14297        unsafe { ::std::mem::transmute(self._bitfield_1.get(56usize, 8u8) as u32) }
14298    }
14299    #[inline]
14300    pub fn set_sindex(&mut self, val: u32) {
14301        unsafe {
14302            let val: u32 = ::std::mem::transmute(val);
14303            self._bitfield_1.set(56usize, 8u8, val as u64)
14304        }
14305    }
14306    #[inline]
14307    pub fn new_bitfield_1(
14308        version: u32,
14309        oam_pkt: u32,
14310        reserved: u32,
14311        ttl: u32,
14312        length: u32,
14313        reserved1: u32,
14314        mdtype: u32,
14315        next_proto: u32,
14316        spi: u32,
14317        sindex: u32,
14318    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
14319        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
14320        __bindgen_bitfield_unit.set(0usize, 2u8, {
14321            let version: u32 = unsafe { ::std::mem::transmute(version) };
14322            version as u64
14323        });
14324        __bindgen_bitfield_unit.set(2usize, 1u8, {
14325            let oam_pkt: u32 = unsafe { ::std::mem::transmute(oam_pkt) };
14326            oam_pkt as u64
14327        });
14328        __bindgen_bitfield_unit.set(3usize, 1u8, {
14329            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
14330            reserved as u64
14331        });
14332        __bindgen_bitfield_unit.set(4usize, 6u8, {
14333            let ttl: u32 = unsafe { ::std::mem::transmute(ttl) };
14334            ttl as u64
14335        });
14336        __bindgen_bitfield_unit.set(10usize, 6u8, {
14337            let length: u32 = unsafe { ::std::mem::transmute(length) };
14338            length as u64
14339        });
14340        __bindgen_bitfield_unit.set(16usize, 4u8, {
14341            let reserved1: u32 = unsafe { ::std::mem::transmute(reserved1) };
14342            reserved1 as u64
14343        });
14344        __bindgen_bitfield_unit.set(20usize, 4u8, {
14345            let mdtype: u32 = unsafe { ::std::mem::transmute(mdtype) };
14346            mdtype as u64
14347        });
14348        __bindgen_bitfield_unit.set(24usize, 8u8, {
14349            let next_proto: u32 = unsafe { ::std::mem::transmute(next_proto) };
14350            next_proto as u64
14351        });
14352        __bindgen_bitfield_unit.set(32usize, 24u8, {
14353            let spi: u32 = unsafe { ::std::mem::transmute(spi) };
14354            spi as u64
14355        });
14356        __bindgen_bitfield_unit.set(56usize, 8u8, {
14357            let sindex: u32 = unsafe { ::std::mem::transmute(sindex) };
14358            sindex as u64
14359        });
14360        __bindgen_bitfield_unit
14361    }
14362}
14363extern "C" {
14364    pub static rte_flow_item_nsh_mask: rte_flow_item_nsh;
14365}
14366#[repr(C)]
14367#[derive(Debug, Default, Copy, Clone, PartialEq)]
14368pub struct rte_flow_item_igmp {
14369    pub _bitfield_align_1: [u16; 0],
14370    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
14371    pub group_addr: u32,
14372}
14373#[test]
14374fn bindgen_test_layout_rte_flow_item_igmp() {
14375    assert_eq!(
14376        ::std::mem::size_of::<rte_flow_item_igmp>(),
14377        8usize,
14378        concat!("Size of: ", stringify!(rte_flow_item_igmp))
14379    );
14380    assert_eq!(
14381        ::std::mem::align_of::<rte_flow_item_igmp>(),
14382        4usize,
14383        concat!("Alignment of ", stringify!(rte_flow_item_igmp))
14384    );
14385    assert_eq!(
14386        unsafe { &(*(::std::ptr::null::<rte_flow_item_igmp>())).group_addr as *const _ as usize },
14387        4usize,
14388        concat!(
14389            "Offset of field: ",
14390            stringify!(rte_flow_item_igmp),
14391            "::",
14392            stringify!(group_addr)
14393        )
14394    );
14395}
14396impl rte_flow_item_igmp {
14397    #[inline]
14398    pub fn type_(&self) -> u32 {
14399        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
14400    }
14401    #[inline]
14402    pub fn set_type(&mut self, val: u32) {
14403        unsafe {
14404            let val: u32 = ::std::mem::transmute(val);
14405            self._bitfield_1.set(0usize, 8u8, val as u64)
14406        }
14407    }
14408    #[inline]
14409    pub fn max_resp_time(&self) -> u32 {
14410        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
14411    }
14412    #[inline]
14413    pub fn set_max_resp_time(&mut self, val: u32) {
14414        unsafe {
14415            let val: u32 = ::std::mem::transmute(val);
14416            self._bitfield_1.set(8usize, 8u8, val as u64)
14417        }
14418    }
14419    #[inline]
14420    pub fn checksum(&self) -> u32 {
14421        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
14422    }
14423    #[inline]
14424    pub fn set_checksum(&mut self, val: u32) {
14425        unsafe {
14426            let val: u32 = ::std::mem::transmute(val);
14427            self._bitfield_1.set(16usize, 16u8, val as u64)
14428        }
14429    }
14430    #[inline]
14431    pub fn new_bitfield_1(
14432        type_: u32,
14433        max_resp_time: u32,
14434        checksum: u32,
14435    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
14436        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
14437        __bindgen_bitfield_unit.set(0usize, 8u8, {
14438            let type_: u32 = unsafe { ::std::mem::transmute(type_) };
14439            type_ as u64
14440        });
14441        __bindgen_bitfield_unit.set(8usize, 8u8, {
14442            let max_resp_time: u32 = unsafe { ::std::mem::transmute(max_resp_time) };
14443            max_resp_time as u64
14444        });
14445        __bindgen_bitfield_unit.set(16usize, 16u8, {
14446            let checksum: u32 = unsafe { ::std::mem::transmute(checksum) };
14447            checksum as u64
14448        });
14449        __bindgen_bitfield_unit
14450    }
14451}
14452extern "C" {
14453    pub static rte_flow_item_igmp_mask: rte_flow_item_igmp;
14454}
14455#[repr(C)]
14456#[derive(Debug, Default, Copy, Clone, PartialEq)]
14457pub struct rte_flow_item_ah {
14458    pub _bitfield_align_1: [u16; 0],
14459    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
14460    pub spi: u32,
14461    pub seq_num: u32,
14462}
14463#[test]
14464fn bindgen_test_layout_rte_flow_item_ah() {
14465    assert_eq!(
14466        ::std::mem::size_of::<rte_flow_item_ah>(),
14467        12usize,
14468        concat!("Size of: ", stringify!(rte_flow_item_ah))
14469    );
14470    assert_eq!(
14471        ::std::mem::align_of::<rte_flow_item_ah>(),
14472        4usize,
14473        concat!("Alignment of ", stringify!(rte_flow_item_ah))
14474    );
14475    assert_eq!(
14476        unsafe { &(*(::std::ptr::null::<rte_flow_item_ah>())).spi as *const _ as usize },
14477        4usize,
14478        concat!(
14479            "Offset of field: ",
14480            stringify!(rte_flow_item_ah),
14481            "::",
14482            stringify!(spi)
14483        )
14484    );
14485    assert_eq!(
14486        unsafe { &(*(::std::ptr::null::<rte_flow_item_ah>())).seq_num as *const _ as usize },
14487        8usize,
14488        concat!(
14489            "Offset of field: ",
14490            stringify!(rte_flow_item_ah),
14491            "::",
14492            stringify!(seq_num)
14493        )
14494    );
14495}
14496impl rte_flow_item_ah {
14497    #[inline]
14498    pub fn next_hdr(&self) -> u32 {
14499        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
14500    }
14501    #[inline]
14502    pub fn set_next_hdr(&mut self, val: u32) {
14503        unsafe {
14504            let val: u32 = ::std::mem::transmute(val);
14505            self._bitfield_1.set(0usize, 8u8, val as u64)
14506        }
14507    }
14508    #[inline]
14509    pub fn payload_len(&self) -> u32 {
14510        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
14511    }
14512    #[inline]
14513    pub fn set_payload_len(&mut self, val: u32) {
14514        unsafe {
14515            let val: u32 = ::std::mem::transmute(val);
14516            self._bitfield_1.set(8usize, 8u8, val as u64)
14517        }
14518    }
14519    #[inline]
14520    pub fn reserved(&self) -> u32 {
14521        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
14522    }
14523    #[inline]
14524    pub fn set_reserved(&mut self, val: u32) {
14525        unsafe {
14526            let val: u32 = ::std::mem::transmute(val);
14527            self._bitfield_1.set(16usize, 16u8, val as u64)
14528        }
14529    }
14530    #[inline]
14531    pub fn new_bitfield_1(
14532        next_hdr: u32,
14533        payload_len: u32,
14534        reserved: u32,
14535    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
14536        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
14537        __bindgen_bitfield_unit.set(0usize, 8u8, {
14538            let next_hdr: u32 = unsafe { ::std::mem::transmute(next_hdr) };
14539            next_hdr as u64
14540        });
14541        __bindgen_bitfield_unit.set(8usize, 8u8, {
14542            let payload_len: u32 = unsafe { ::std::mem::transmute(payload_len) };
14543            payload_len as u64
14544        });
14545        __bindgen_bitfield_unit.set(16usize, 16u8, {
14546            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
14547            reserved as u64
14548        });
14549        __bindgen_bitfield_unit
14550    }
14551}
14552extern "C" {
14553    pub static rte_flow_item_ah_mask: rte_flow_item_ah;
14554}
14555#[repr(C)]
14556#[derive(Debug, Copy, Clone, PartialEq)]
14557pub struct rte_flow_item {
14558    pub type_: rte_flow_item_type::Type,
14559    pub spec: *const ::std::os::raw::c_void,
14560    pub last: *const ::std::os::raw::c_void,
14561    pub mask: *const ::std::os::raw::c_void,
14562}
14563#[test]
14564fn bindgen_test_layout_rte_flow_item() {
14565    assert_eq!(
14566        ::std::mem::size_of::<rte_flow_item>(),
14567        32usize,
14568        concat!("Size of: ", stringify!(rte_flow_item))
14569    );
14570    assert_eq!(
14571        ::std::mem::align_of::<rte_flow_item>(),
14572        8usize,
14573        concat!("Alignment of ", stringify!(rte_flow_item))
14574    );
14575    assert_eq!(
14576        unsafe { &(*(::std::ptr::null::<rte_flow_item>())).type_ as *const _ as usize },
14577        0usize,
14578        concat!(
14579            "Offset of field: ",
14580            stringify!(rte_flow_item),
14581            "::",
14582            stringify!(type_)
14583        )
14584    );
14585    assert_eq!(
14586        unsafe { &(*(::std::ptr::null::<rte_flow_item>())).spec as *const _ as usize },
14587        8usize,
14588        concat!(
14589            "Offset of field: ",
14590            stringify!(rte_flow_item),
14591            "::",
14592            stringify!(spec)
14593        )
14594    );
14595    assert_eq!(
14596        unsafe { &(*(::std::ptr::null::<rte_flow_item>())).last as *const _ as usize },
14597        16usize,
14598        concat!(
14599            "Offset of field: ",
14600            stringify!(rte_flow_item),
14601            "::",
14602            stringify!(last)
14603        )
14604    );
14605    assert_eq!(
14606        unsafe { &(*(::std::ptr::null::<rte_flow_item>())).mask as *const _ as usize },
14607        24usize,
14608        concat!(
14609            "Offset of field: ",
14610            stringify!(rte_flow_item),
14611            "::",
14612            stringify!(mask)
14613        )
14614    );
14615}
14616impl Default for rte_flow_item {
14617    fn default() -> Self {
14618        unsafe { ::std::mem::zeroed() }
14619    }
14620}
14621pub mod rte_flow_action_type {
14622    pub type Type = ::std::os::raw::c_uint;
14623    pub const RTE_FLOW_ACTION_TYPE_END: Type = 0;
14624    pub const RTE_FLOW_ACTION_TYPE_VOID: Type = 1;
14625    pub const RTE_FLOW_ACTION_TYPE_PASSTHRU: Type = 2;
14626    pub const RTE_FLOW_ACTION_TYPE_JUMP: Type = 3;
14627    pub const RTE_FLOW_ACTION_TYPE_MARK: Type = 4;
14628    pub const RTE_FLOW_ACTION_TYPE_FLAG: Type = 5;
14629    pub const RTE_FLOW_ACTION_TYPE_QUEUE: Type = 6;
14630    pub const RTE_FLOW_ACTION_TYPE_DROP: Type = 7;
14631    pub const RTE_FLOW_ACTION_TYPE_COUNT: Type = 8;
14632    pub const RTE_FLOW_ACTION_TYPE_RSS: Type = 9;
14633    pub const RTE_FLOW_ACTION_TYPE_PF: Type = 10;
14634    pub const RTE_FLOW_ACTION_TYPE_VF: Type = 11;
14635    pub const RTE_FLOW_ACTION_TYPE_PHY_PORT: Type = 12;
14636    pub const RTE_FLOW_ACTION_TYPE_PORT_ID: Type = 13;
14637    pub const RTE_FLOW_ACTION_TYPE_METER: Type = 14;
14638    pub const RTE_FLOW_ACTION_TYPE_SECURITY: Type = 15;
14639    pub const RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL: Type = 16;
14640    pub const RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL: Type = 17;
14641    pub const RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL: Type = 18;
14642    pub const RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL: Type = 19;
14643    pub const RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT: Type = 20;
14644    pub const RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN: Type = 21;
14645    pub const RTE_FLOW_ACTION_TYPE_OF_POP_VLAN: Type = 22;
14646    pub const RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN: Type = 23;
14647    pub const RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID: Type = 24;
14648    pub const RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP: Type = 25;
14649    pub const RTE_FLOW_ACTION_TYPE_OF_POP_MPLS: Type = 26;
14650    pub const RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS: Type = 27;
14651    pub const RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP: Type = 28;
14652    pub const RTE_FLOW_ACTION_TYPE_VXLAN_DECAP: Type = 29;
14653    pub const RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP: Type = 30;
14654    pub const RTE_FLOW_ACTION_TYPE_NVGRE_DECAP: Type = 31;
14655    pub const RTE_FLOW_ACTION_TYPE_RAW_ENCAP: Type = 32;
14656    pub const RTE_FLOW_ACTION_TYPE_RAW_DECAP: Type = 33;
14657    pub const RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC: Type = 34;
14658    pub const RTE_FLOW_ACTION_TYPE_SET_IPV4_DST: Type = 35;
14659    pub const RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC: Type = 36;
14660    pub const RTE_FLOW_ACTION_TYPE_SET_IPV6_DST: Type = 37;
14661    pub const RTE_FLOW_ACTION_TYPE_SET_TP_SRC: Type = 38;
14662    pub const RTE_FLOW_ACTION_TYPE_SET_TP_DST: Type = 39;
14663    pub const RTE_FLOW_ACTION_TYPE_MAC_SWAP: Type = 40;
14664    pub const RTE_FLOW_ACTION_TYPE_DEC_TTL: Type = 41;
14665    pub const RTE_FLOW_ACTION_TYPE_SET_TTL: Type = 42;
14666    pub const RTE_FLOW_ACTION_TYPE_SET_MAC_SRC: Type = 43;
14667    pub const RTE_FLOW_ACTION_TYPE_SET_MAC_DST: Type = 44;
14668    pub const RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ: Type = 45;
14669    pub const RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ: Type = 46;
14670    pub const RTE_FLOW_ACTION_TYPE_INC_TCP_ACK: Type = 47;
14671    pub const RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK: Type = 48;
14672    pub const RTE_FLOW_ACTION_TYPE_SET_TAG: Type = 49;
14673    pub const RTE_FLOW_ACTION_TYPE_SET_META: Type = 50;
14674}
14675#[repr(C)]
14676#[derive(Debug, Default, Copy, Clone, PartialEq)]
14677pub struct rte_flow_action_mark {
14678    pub id: u32,
14679}
14680#[test]
14681fn bindgen_test_layout_rte_flow_action_mark() {
14682    assert_eq!(
14683        ::std::mem::size_of::<rte_flow_action_mark>(),
14684        4usize,
14685        concat!("Size of: ", stringify!(rte_flow_action_mark))
14686    );
14687    assert_eq!(
14688        ::std::mem::align_of::<rte_flow_action_mark>(),
14689        4usize,
14690        concat!("Alignment of ", stringify!(rte_flow_action_mark))
14691    );
14692    assert_eq!(
14693        unsafe { &(*(::std::ptr::null::<rte_flow_action_mark>())).id as *const _ as usize },
14694        0usize,
14695        concat!(
14696            "Offset of field: ",
14697            stringify!(rte_flow_action_mark),
14698            "::",
14699            stringify!(id)
14700        )
14701    );
14702}
14703#[repr(C)]
14704#[derive(Debug, Default, Copy, Clone, PartialEq)]
14705pub struct rte_flow_action_jump {
14706    pub group: u32,
14707}
14708#[test]
14709fn bindgen_test_layout_rte_flow_action_jump() {
14710    assert_eq!(
14711        ::std::mem::size_of::<rte_flow_action_jump>(),
14712        4usize,
14713        concat!("Size of: ", stringify!(rte_flow_action_jump))
14714    );
14715    assert_eq!(
14716        ::std::mem::align_of::<rte_flow_action_jump>(),
14717        4usize,
14718        concat!("Alignment of ", stringify!(rte_flow_action_jump))
14719    );
14720    assert_eq!(
14721        unsafe { &(*(::std::ptr::null::<rte_flow_action_jump>())).group as *const _ as usize },
14722        0usize,
14723        concat!(
14724            "Offset of field: ",
14725            stringify!(rte_flow_action_jump),
14726            "::",
14727            stringify!(group)
14728        )
14729    );
14730}
14731#[repr(C)]
14732#[derive(Debug, Default, Copy, Clone, PartialEq)]
14733pub struct rte_flow_action_queue {
14734    pub index: u16,
14735}
14736#[test]
14737fn bindgen_test_layout_rte_flow_action_queue() {
14738    assert_eq!(
14739        ::std::mem::size_of::<rte_flow_action_queue>(),
14740        2usize,
14741        concat!("Size of: ", stringify!(rte_flow_action_queue))
14742    );
14743    assert_eq!(
14744        ::std::mem::align_of::<rte_flow_action_queue>(),
14745        2usize,
14746        concat!("Alignment of ", stringify!(rte_flow_action_queue))
14747    );
14748    assert_eq!(
14749        unsafe { &(*(::std::ptr::null::<rte_flow_action_queue>())).index as *const _ as usize },
14750        0usize,
14751        concat!(
14752            "Offset of field: ",
14753            stringify!(rte_flow_action_queue),
14754            "::",
14755            stringify!(index)
14756        )
14757    );
14758}
14759#[repr(C)]
14760#[derive(Debug, Default, Copy, Clone, PartialEq)]
14761pub struct rte_flow_action_count {
14762    pub _bitfield_align_1: [u32; 0],
14763    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
14764    pub id: u32,
14765}
14766#[test]
14767fn bindgen_test_layout_rte_flow_action_count() {
14768    assert_eq!(
14769        ::std::mem::size_of::<rte_flow_action_count>(),
14770        8usize,
14771        concat!("Size of: ", stringify!(rte_flow_action_count))
14772    );
14773    assert_eq!(
14774        ::std::mem::align_of::<rte_flow_action_count>(),
14775        4usize,
14776        concat!("Alignment of ", stringify!(rte_flow_action_count))
14777    );
14778    assert_eq!(
14779        unsafe { &(*(::std::ptr::null::<rte_flow_action_count>())).id as *const _ as usize },
14780        4usize,
14781        concat!(
14782            "Offset of field: ",
14783            stringify!(rte_flow_action_count),
14784            "::",
14785            stringify!(id)
14786        )
14787    );
14788}
14789impl rte_flow_action_count {
14790    #[inline]
14791    pub fn shared(&self) -> u32 {
14792        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
14793    }
14794    #[inline]
14795    pub fn set_shared(&mut self, val: u32) {
14796        unsafe {
14797            let val: u32 = ::std::mem::transmute(val);
14798            self._bitfield_1.set(0usize, 1u8, val as u64)
14799        }
14800    }
14801    #[inline]
14802    pub fn reserved(&self) -> u32 {
14803        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
14804    }
14805    #[inline]
14806    pub fn set_reserved(&mut self, val: u32) {
14807        unsafe {
14808            let val: u32 = ::std::mem::transmute(val);
14809            self._bitfield_1.set(1usize, 31u8, val as u64)
14810        }
14811    }
14812    #[inline]
14813    pub fn new_bitfield_1(shared: u32, reserved: u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
14814        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
14815        __bindgen_bitfield_unit.set(0usize, 1u8, {
14816            let shared: u32 = unsafe { ::std::mem::transmute(shared) };
14817            shared as u64
14818        });
14819        __bindgen_bitfield_unit.set(1usize, 31u8, {
14820            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
14821            reserved as u64
14822        });
14823        __bindgen_bitfield_unit
14824    }
14825}
14826#[repr(C)]
14827#[derive(Debug, Default, Copy, Clone, PartialEq)]
14828pub struct rte_flow_query_count {
14829    pub _bitfield_align_1: [u32; 0],
14830    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
14831    pub hits: u64,
14832    pub bytes: u64,
14833}
14834#[test]
14835fn bindgen_test_layout_rte_flow_query_count() {
14836    assert_eq!(
14837        ::std::mem::size_of::<rte_flow_query_count>(),
14838        24usize,
14839        concat!("Size of: ", stringify!(rte_flow_query_count))
14840    );
14841    assert_eq!(
14842        ::std::mem::align_of::<rte_flow_query_count>(),
14843        8usize,
14844        concat!("Alignment of ", stringify!(rte_flow_query_count))
14845    );
14846    assert_eq!(
14847        unsafe { &(*(::std::ptr::null::<rte_flow_query_count>())).hits as *const _ as usize },
14848        8usize,
14849        concat!(
14850            "Offset of field: ",
14851            stringify!(rte_flow_query_count),
14852            "::",
14853            stringify!(hits)
14854        )
14855    );
14856    assert_eq!(
14857        unsafe { &(*(::std::ptr::null::<rte_flow_query_count>())).bytes as *const _ as usize },
14858        16usize,
14859        concat!(
14860            "Offset of field: ",
14861            stringify!(rte_flow_query_count),
14862            "::",
14863            stringify!(bytes)
14864        )
14865    );
14866}
14867impl rte_flow_query_count {
14868    #[inline]
14869    pub fn reset(&self) -> u32 {
14870        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
14871    }
14872    #[inline]
14873    pub fn set_reset(&mut self, val: u32) {
14874        unsafe {
14875            let val: u32 = ::std::mem::transmute(val);
14876            self._bitfield_1.set(0usize, 1u8, val as u64)
14877        }
14878    }
14879    #[inline]
14880    pub fn hits_set(&self) -> u32 {
14881        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
14882    }
14883    #[inline]
14884    pub fn set_hits_set(&mut self, val: u32) {
14885        unsafe {
14886            let val: u32 = ::std::mem::transmute(val);
14887            self._bitfield_1.set(1usize, 1u8, val as u64)
14888        }
14889    }
14890    #[inline]
14891    pub fn bytes_set(&self) -> u32 {
14892        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
14893    }
14894    #[inline]
14895    pub fn set_bytes_set(&mut self, val: u32) {
14896        unsafe {
14897            let val: u32 = ::std::mem::transmute(val);
14898            self._bitfield_1.set(2usize, 1u8, val as u64)
14899        }
14900    }
14901    #[inline]
14902    pub fn reserved(&self) -> u32 {
14903        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
14904    }
14905    #[inline]
14906    pub fn set_reserved(&mut self, val: u32) {
14907        unsafe {
14908            let val: u32 = ::std::mem::transmute(val);
14909            self._bitfield_1.set(3usize, 29u8, val as u64)
14910        }
14911    }
14912    #[inline]
14913    pub fn new_bitfield_1(
14914        reset: u32,
14915        hits_set: u32,
14916        bytes_set: u32,
14917        reserved: u32,
14918    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
14919        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
14920        __bindgen_bitfield_unit.set(0usize, 1u8, {
14921            let reset: u32 = unsafe { ::std::mem::transmute(reset) };
14922            reset as u64
14923        });
14924        __bindgen_bitfield_unit.set(1usize, 1u8, {
14925            let hits_set: u32 = unsafe { ::std::mem::transmute(hits_set) };
14926            hits_set as u64
14927        });
14928        __bindgen_bitfield_unit.set(2usize, 1u8, {
14929            let bytes_set: u32 = unsafe { ::std::mem::transmute(bytes_set) };
14930            bytes_set as u64
14931        });
14932        __bindgen_bitfield_unit.set(3usize, 29u8, {
14933            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
14934            reserved as u64
14935        });
14936        __bindgen_bitfield_unit
14937    }
14938}
14939pub mod rte_eth_hash_function {
14940    pub type Type = ::std::os::raw::c_uint;
14941    pub const RTE_ETH_HASH_FUNCTION_DEFAULT: Type = 0;
14942    pub const RTE_ETH_HASH_FUNCTION_TOEPLITZ: Type = 1;
14943    pub const RTE_ETH_HASH_FUNCTION_SIMPLE_XOR: Type = 2;
14944    pub const RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ: Type = 3;
14945    pub const RTE_ETH_HASH_FUNCTION_MAX: Type = 4;
14946}
14947#[repr(C)]
14948#[derive(Debug, Copy, Clone, PartialEq)]
14949pub struct rte_flow_action_rss {
14950    pub func: rte_eth_hash_function::Type,
14951    pub level: u32,
14952    pub types: u64,
14953    pub key_len: u32,
14954    pub queue_num: u32,
14955    pub key: *const u8,
14956    pub queue: *const u16,
14957}
14958#[test]
14959fn bindgen_test_layout_rte_flow_action_rss() {
14960    assert_eq!(
14961        ::std::mem::size_of::<rte_flow_action_rss>(),
14962        40usize,
14963        concat!("Size of: ", stringify!(rte_flow_action_rss))
14964    );
14965    assert_eq!(
14966        ::std::mem::align_of::<rte_flow_action_rss>(),
14967        8usize,
14968        concat!("Alignment of ", stringify!(rte_flow_action_rss))
14969    );
14970    assert_eq!(
14971        unsafe { &(*(::std::ptr::null::<rte_flow_action_rss>())).func as *const _ as usize },
14972        0usize,
14973        concat!(
14974            "Offset of field: ",
14975            stringify!(rte_flow_action_rss),
14976            "::",
14977            stringify!(func)
14978        )
14979    );
14980    assert_eq!(
14981        unsafe { &(*(::std::ptr::null::<rte_flow_action_rss>())).level as *const _ as usize },
14982        4usize,
14983        concat!(
14984            "Offset of field: ",
14985            stringify!(rte_flow_action_rss),
14986            "::",
14987            stringify!(level)
14988        )
14989    );
14990    assert_eq!(
14991        unsafe { &(*(::std::ptr::null::<rte_flow_action_rss>())).types as *const _ as usize },
14992        8usize,
14993        concat!(
14994            "Offset of field: ",
14995            stringify!(rte_flow_action_rss),
14996            "::",
14997            stringify!(types)
14998        )
14999    );
15000    assert_eq!(
15001        unsafe { &(*(::std::ptr::null::<rte_flow_action_rss>())).key_len as *const _ as usize },
15002        16usize,
15003        concat!(
15004            "Offset of field: ",
15005            stringify!(rte_flow_action_rss),
15006            "::",
15007            stringify!(key_len)
15008        )
15009    );
15010    assert_eq!(
15011        unsafe { &(*(::std::ptr::null::<rte_flow_action_rss>())).queue_num as *const _ as usize },
15012        20usize,
15013        concat!(
15014            "Offset of field: ",
15015            stringify!(rte_flow_action_rss),
15016            "::",
15017            stringify!(queue_num)
15018        )
15019    );
15020    assert_eq!(
15021        unsafe { &(*(::std::ptr::null::<rte_flow_action_rss>())).key as *const _ as usize },
15022        24usize,
15023        concat!(
15024            "Offset of field: ",
15025            stringify!(rte_flow_action_rss),
15026            "::",
15027            stringify!(key)
15028        )
15029    );
15030    assert_eq!(
15031        unsafe { &(*(::std::ptr::null::<rte_flow_action_rss>())).queue as *const _ as usize },
15032        32usize,
15033        concat!(
15034            "Offset of field: ",
15035            stringify!(rte_flow_action_rss),
15036            "::",
15037            stringify!(queue)
15038        )
15039    );
15040}
15041impl Default for rte_flow_action_rss {
15042    fn default() -> Self {
15043        unsafe { ::std::mem::zeroed() }
15044    }
15045}
15046#[repr(C)]
15047#[derive(Debug, Default, Copy, Clone, PartialEq)]
15048pub struct rte_flow_action_vf {
15049    pub _bitfield_align_1: [u32; 0],
15050    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
15051    pub id: u32,
15052}
15053#[test]
15054fn bindgen_test_layout_rte_flow_action_vf() {
15055    assert_eq!(
15056        ::std::mem::size_of::<rte_flow_action_vf>(),
15057        8usize,
15058        concat!("Size of: ", stringify!(rte_flow_action_vf))
15059    );
15060    assert_eq!(
15061        ::std::mem::align_of::<rte_flow_action_vf>(),
15062        4usize,
15063        concat!("Alignment of ", stringify!(rte_flow_action_vf))
15064    );
15065    assert_eq!(
15066        unsafe { &(*(::std::ptr::null::<rte_flow_action_vf>())).id as *const _ as usize },
15067        4usize,
15068        concat!(
15069            "Offset of field: ",
15070            stringify!(rte_flow_action_vf),
15071            "::",
15072            stringify!(id)
15073        )
15074    );
15075}
15076impl rte_flow_action_vf {
15077    #[inline]
15078    pub fn original(&self) -> u32 {
15079        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
15080    }
15081    #[inline]
15082    pub fn set_original(&mut self, val: u32) {
15083        unsafe {
15084            let val: u32 = ::std::mem::transmute(val);
15085            self._bitfield_1.set(0usize, 1u8, val as u64)
15086        }
15087    }
15088    #[inline]
15089    pub fn reserved(&self) -> u32 {
15090        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
15091    }
15092    #[inline]
15093    pub fn set_reserved(&mut self, val: u32) {
15094        unsafe {
15095            let val: u32 = ::std::mem::transmute(val);
15096            self._bitfield_1.set(1usize, 31u8, val as u64)
15097        }
15098    }
15099    #[inline]
15100    pub fn new_bitfield_1(original: u32, reserved: u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
15101        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
15102        __bindgen_bitfield_unit.set(0usize, 1u8, {
15103            let original: u32 = unsafe { ::std::mem::transmute(original) };
15104            original as u64
15105        });
15106        __bindgen_bitfield_unit.set(1usize, 31u8, {
15107            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
15108            reserved as u64
15109        });
15110        __bindgen_bitfield_unit
15111    }
15112}
15113#[repr(C)]
15114#[derive(Debug, Default, Copy, Clone, PartialEq)]
15115pub struct rte_flow_action_phy_port {
15116    pub _bitfield_align_1: [u32; 0],
15117    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
15118    pub index: u32,
15119}
15120#[test]
15121fn bindgen_test_layout_rte_flow_action_phy_port() {
15122    assert_eq!(
15123        ::std::mem::size_of::<rte_flow_action_phy_port>(),
15124        8usize,
15125        concat!("Size of: ", stringify!(rte_flow_action_phy_port))
15126    );
15127    assert_eq!(
15128        ::std::mem::align_of::<rte_flow_action_phy_port>(),
15129        4usize,
15130        concat!("Alignment of ", stringify!(rte_flow_action_phy_port))
15131    );
15132    assert_eq!(
15133        unsafe { &(*(::std::ptr::null::<rte_flow_action_phy_port>())).index as *const _ as usize },
15134        4usize,
15135        concat!(
15136            "Offset of field: ",
15137            stringify!(rte_flow_action_phy_port),
15138            "::",
15139            stringify!(index)
15140        )
15141    );
15142}
15143impl rte_flow_action_phy_port {
15144    #[inline]
15145    pub fn original(&self) -> u32 {
15146        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
15147    }
15148    #[inline]
15149    pub fn set_original(&mut self, val: u32) {
15150        unsafe {
15151            let val: u32 = ::std::mem::transmute(val);
15152            self._bitfield_1.set(0usize, 1u8, val as u64)
15153        }
15154    }
15155    #[inline]
15156    pub fn reserved(&self) -> u32 {
15157        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
15158    }
15159    #[inline]
15160    pub fn set_reserved(&mut self, val: u32) {
15161        unsafe {
15162            let val: u32 = ::std::mem::transmute(val);
15163            self._bitfield_1.set(1usize, 31u8, val as u64)
15164        }
15165    }
15166    #[inline]
15167    pub fn new_bitfield_1(original: u32, reserved: u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
15168        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
15169        __bindgen_bitfield_unit.set(0usize, 1u8, {
15170            let original: u32 = unsafe { ::std::mem::transmute(original) };
15171            original as u64
15172        });
15173        __bindgen_bitfield_unit.set(1usize, 31u8, {
15174            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
15175            reserved as u64
15176        });
15177        __bindgen_bitfield_unit
15178    }
15179}
15180#[repr(C)]
15181#[derive(Debug, Default, Copy, Clone, PartialEq)]
15182pub struct rte_flow_action_port_id {
15183    pub _bitfield_align_1: [u32; 0],
15184    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
15185    pub id: u32,
15186}
15187#[test]
15188fn bindgen_test_layout_rte_flow_action_port_id() {
15189    assert_eq!(
15190        ::std::mem::size_of::<rte_flow_action_port_id>(),
15191        8usize,
15192        concat!("Size of: ", stringify!(rte_flow_action_port_id))
15193    );
15194    assert_eq!(
15195        ::std::mem::align_of::<rte_flow_action_port_id>(),
15196        4usize,
15197        concat!("Alignment of ", stringify!(rte_flow_action_port_id))
15198    );
15199    assert_eq!(
15200        unsafe { &(*(::std::ptr::null::<rte_flow_action_port_id>())).id as *const _ as usize },
15201        4usize,
15202        concat!(
15203            "Offset of field: ",
15204            stringify!(rte_flow_action_port_id),
15205            "::",
15206            stringify!(id)
15207        )
15208    );
15209}
15210impl rte_flow_action_port_id {
15211    #[inline]
15212    pub fn original(&self) -> u32 {
15213        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
15214    }
15215    #[inline]
15216    pub fn set_original(&mut self, val: u32) {
15217        unsafe {
15218            let val: u32 = ::std::mem::transmute(val);
15219            self._bitfield_1.set(0usize, 1u8, val as u64)
15220        }
15221    }
15222    #[inline]
15223    pub fn reserved(&self) -> u32 {
15224        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
15225    }
15226    #[inline]
15227    pub fn set_reserved(&mut self, val: u32) {
15228        unsafe {
15229            let val: u32 = ::std::mem::transmute(val);
15230            self._bitfield_1.set(1usize, 31u8, val as u64)
15231        }
15232    }
15233    #[inline]
15234    pub fn new_bitfield_1(original: u32, reserved: u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
15235        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
15236        __bindgen_bitfield_unit.set(0usize, 1u8, {
15237            let original: u32 = unsafe { ::std::mem::transmute(original) };
15238            original as u64
15239        });
15240        __bindgen_bitfield_unit.set(1usize, 31u8, {
15241            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
15242            reserved as u64
15243        });
15244        __bindgen_bitfield_unit
15245    }
15246}
15247#[repr(C)]
15248#[derive(Debug, Default, Copy, Clone, PartialEq)]
15249pub struct rte_flow_action_meter {
15250    pub mtr_id: u32,
15251}
15252#[test]
15253fn bindgen_test_layout_rte_flow_action_meter() {
15254    assert_eq!(
15255        ::std::mem::size_of::<rte_flow_action_meter>(),
15256        4usize,
15257        concat!("Size of: ", stringify!(rte_flow_action_meter))
15258    );
15259    assert_eq!(
15260        ::std::mem::align_of::<rte_flow_action_meter>(),
15261        4usize,
15262        concat!("Alignment of ", stringify!(rte_flow_action_meter))
15263    );
15264    assert_eq!(
15265        unsafe { &(*(::std::ptr::null::<rte_flow_action_meter>())).mtr_id as *const _ as usize },
15266        0usize,
15267        concat!(
15268            "Offset of field: ",
15269            stringify!(rte_flow_action_meter),
15270            "::",
15271            stringify!(mtr_id)
15272        )
15273    );
15274}
15275#[repr(C)]
15276#[derive(Debug, Copy, Clone, PartialEq)]
15277pub struct rte_flow_action_security {
15278    pub security_session: *mut ::std::os::raw::c_void,
15279}
15280#[test]
15281fn bindgen_test_layout_rte_flow_action_security() {
15282    assert_eq!(
15283        ::std::mem::size_of::<rte_flow_action_security>(),
15284        8usize,
15285        concat!("Size of: ", stringify!(rte_flow_action_security))
15286    );
15287    assert_eq!(
15288        ::std::mem::align_of::<rte_flow_action_security>(),
15289        8usize,
15290        concat!("Alignment of ", stringify!(rte_flow_action_security))
15291    );
15292    assert_eq!(
15293        unsafe {
15294            &(*(::std::ptr::null::<rte_flow_action_security>())).security_session as *const _
15295                as usize
15296        },
15297        0usize,
15298        concat!(
15299            "Offset of field: ",
15300            stringify!(rte_flow_action_security),
15301            "::",
15302            stringify!(security_session)
15303        )
15304    );
15305}
15306impl Default for rte_flow_action_security {
15307    fn default() -> Self {
15308        unsafe { ::std::mem::zeroed() }
15309    }
15310}
15311#[repr(C)]
15312#[derive(Debug, Default, Copy, Clone, PartialEq)]
15313pub struct rte_flow_action_of_set_mpls_ttl {
15314    pub mpls_ttl: u8,
15315}
15316#[test]
15317fn bindgen_test_layout_rte_flow_action_of_set_mpls_ttl() {
15318    assert_eq!(
15319        ::std::mem::size_of::<rte_flow_action_of_set_mpls_ttl>(),
15320        1usize,
15321        concat!("Size of: ", stringify!(rte_flow_action_of_set_mpls_ttl))
15322    );
15323    assert_eq!(
15324        ::std::mem::align_of::<rte_flow_action_of_set_mpls_ttl>(),
15325        1usize,
15326        concat!("Alignment of ", stringify!(rte_flow_action_of_set_mpls_ttl))
15327    );
15328    assert_eq!(
15329        unsafe {
15330            &(*(::std::ptr::null::<rte_flow_action_of_set_mpls_ttl>())).mpls_ttl as *const _
15331                as usize
15332        },
15333        0usize,
15334        concat!(
15335            "Offset of field: ",
15336            stringify!(rte_flow_action_of_set_mpls_ttl),
15337            "::",
15338            stringify!(mpls_ttl)
15339        )
15340    );
15341}
15342#[repr(C)]
15343#[derive(Debug, Default, Copy, Clone, PartialEq)]
15344pub struct rte_flow_action_of_set_nw_ttl {
15345    pub nw_ttl: u8,
15346}
15347#[test]
15348fn bindgen_test_layout_rte_flow_action_of_set_nw_ttl() {
15349    assert_eq!(
15350        ::std::mem::size_of::<rte_flow_action_of_set_nw_ttl>(),
15351        1usize,
15352        concat!("Size of: ", stringify!(rte_flow_action_of_set_nw_ttl))
15353    );
15354    assert_eq!(
15355        ::std::mem::align_of::<rte_flow_action_of_set_nw_ttl>(),
15356        1usize,
15357        concat!("Alignment of ", stringify!(rte_flow_action_of_set_nw_ttl))
15358    );
15359    assert_eq!(
15360        unsafe {
15361            &(*(::std::ptr::null::<rte_flow_action_of_set_nw_ttl>())).nw_ttl as *const _ as usize
15362        },
15363        0usize,
15364        concat!(
15365            "Offset of field: ",
15366            stringify!(rte_flow_action_of_set_nw_ttl),
15367            "::",
15368            stringify!(nw_ttl)
15369        )
15370    );
15371}
15372#[repr(C)]
15373#[derive(Debug, Default, Copy, Clone, PartialEq)]
15374pub struct rte_flow_action_of_push_vlan {
15375    pub ethertype: rte_be16_t,
15376}
15377#[test]
15378fn bindgen_test_layout_rte_flow_action_of_push_vlan() {
15379    assert_eq!(
15380        ::std::mem::size_of::<rte_flow_action_of_push_vlan>(),
15381        2usize,
15382        concat!("Size of: ", stringify!(rte_flow_action_of_push_vlan))
15383    );
15384    assert_eq!(
15385        ::std::mem::align_of::<rte_flow_action_of_push_vlan>(),
15386        2usize,
15387        concat!("Alignment of ", stringify!(rte_flow_action_of_push_vlan))
15388    );
15389    assert_eq!(
15390        unsafe {
15391            &(*(::std::ptr::null::<rte_flow_action_of_push_vlan>())).ethertype as *const _ as usize
15392        },
15393        0usize,
15394        concat!(
15395            "Offset of field: ",
15396            stringify!(rte_flow_action_of_push_vlan),
15397            "::",
15398            stringify!(ethertype)
15399        )
15400    );
15401}
15402#[repr(C)]
15403#[derive(Debug, Default, Copy, Clone, PartialEq)]
15404pub struct rte_flow_action_of_set_vlan_vid {
15405    pub vlan_vid: rte_be16_t,
15406}
15407#[test]
15408fn bindgen_test_layout_rte_flow_action_of_set_vlan_vid() {
15409    assert_eq!(
15410        ::std::mem::size_of::<rte_flow_action_of_set_vlan_vid>(),
15411        2usize,
15412        concat!("Size of: ", stringify!(rte_flow_action_of_set_vlan_vid))
15413    );
15414    assert_eq!(
15415        ::std::mem::align_of::<rte_flow_action_of_set_vlan_vid>(),
15416        2usize,
15417        concat!("Alignment of ", stringify!(rte_flow_action_of_set_vlan_vid))
15418    );
15419    assert_eq!(
15420        unsafe {
15421            &(*(::std::ptr::null::<rte_flow_action_of_set_vlan_vid>())).vlan_vid as *const _
15422                as usize
15423        },
15424        0usize,
15425        concat!(
15426            "Offset of field: ",
15427            stringify!(rte_flow_action_of_set_vlan_vid),
15428            "::",
15429            stringify!(vlan_vid)
15430        )
15431    );
15432}
15433#[repr(C)]
15434#[derive(Debug, Default, Copy, Clone, PartialEq)]
15435pub struct rte_flow_action_of_set_vlan_pcp {
15436    pub vlan_pcp: u8,
15437}
15438#[test]
15439fn bindgen_test_layout_rte_flow_action_of_set_vlan_pcp() {
15440    assert_eq!(
15441        ::std::mem::size_of::<rte_flow_action_of_set_vlan_pcp>(),
15442        1usize,
15443        concat!("Size of: ", stringify!(rte_flow_action_of_set_vlan_pcp))
15444    );
15445    assert_eq!(
15446        ::std::mem::align_of::<rte_flow_action_of_set_vlan_pcp>(),
15447        1usize,
15448        concat!("Alignment of ", stringify!(rte_flow_action_of_set_vlan_pcp))
15449    );
15450    assert_eq!(
15451        unsafe {
15452            &(*(::std::ptr::null::<rte_flow_action_of_set_vlan_pcp>())).vlan_pcp as *const _
15453                as usize
15454        },
15455        0usize,
15456        concat!(
15457            "Offset of field: ",
15458            stringify!(rte_flow_action_of_set_vlan_pcp),
15459            "::",
15460            stringify!(vlan_pcp)
15461        )
15462    );
15463}
15464#[repr(C)]
15465#[derive(Debug, Default, Copy, Clone, PartialEq)]
15466pub struct rte_flow_action_of_pop_mpls {
15467    pub ethertype: rte_be16_t,
15468}
15469#[test]
15470fn bindgen_test_layout_rte_flow_action_of_pop_mpls() {
15471    assert_eq!(
15472        ::std::mem::size_of::<rte_flow_action_of_pop_mpls>(),
15473        2usize,
15474        concat!("Size of: ", stringify!(rte_flow_action_of_pop_mpls))
15475    );
15476    assert_eq!(
15477        ::std::mem::align_of::<rte_flow_action_of_pop_mpls>(),
15478        2usize,
15479        concat!("Alignment of ", stringify!(rte_flow_action_of_pop_mpls))
15480    );
15481    assert_eq!(
15482        unsafe {
15483            &(*(::std::ptr::null::<rte_flow_action_of_pop_mpls>())).ethertype as *const _ as usize
15484        },
15485        0usize,
15486        concat!(
15487            "Offset of field: ",
15488            stringify!(rte_flow_action_of_pop_mpls),
15489            "::",
15490            stringify!(ethertype)
15491        )
15492    );
15493}
15494#[repr(C)]
15495#[derive(Debug, Default, Copy, Clone, PartialEq)]
15496pub struct rte_flow_action_of_push_mpls {
15497    pub ethertype: rte_be16_t,
15498}
15499#[test]
15500fn bindgen_test_layout_rte_flow_action_of_push_mpls() {
15501    assert_eq!(
15502        ::std::mem::size_of::<rte_flow_action_of_push_mpls>(),
15503        2usize,
15504        concat!("Size of: ", stringify!(rte_flow_action_of_push_mpls))
15505    );
15506    assert_eq!(
15507        ::std::mem::align_of::<rte_flow_action_of_push_mpls>(),
15508        2usize,
15509        concat!("Alignment of ", stringify!(rte_flow_action_of_push_mpls))
15510    );
15511    assert_eq!(
15512        unsafe {
15513            &(*(::std::ptr::null::<rte_flow_action_of_push_mpls>())).ethertype as *const _ as usize
15514        },
15515        0usize,
15516        concat!(
15517            "Offset of field: ",
15518            stringify!(rte_flow_action_of_push_mpls),
15519            "::",
15520            stringify!(ethertype)
15521        )
15522    );
15523}
15524#[repr(C)]
15525#[derive(Debug, Copy, Clone, PartialEq)]
15526pub struct rte_flow_action_vxlan_encap {
15527    pub definition: *mut rte_flow_item,
15528}
15529#[test]
15530fn bindgen_test_layout_rte_flow_action_vxlan_encap() {
15531    assert_eq!(
15532        ::std::mem::size_of::<rte_flow_action_vxlan_encap>(),
15533        8usize,
15534        concat!("Size of: ", stringify!(rte_flow_action_vxlan_encap))
15535    );
15536    assert_eq!(
15537        ::std::mem::align_of::<rte_flow_action_vxlan_encap>(),
15538        8usize,
15539        concat!("Alignment of ", stringify!(rte_flow_action_vxlan_encap))
15540    );
15541    assert_eq!(
15542        unsafe {
15543            &(*(::std::ptr::null::<rte_flow_action_vxlan_encap>())).definition as *const _ as usize
15544        },
15545        0usize,
15546        concat!(
15547            "Offset of field: ",
15548            stringify!(rte_flow_action_vxlan_encap),
15549            "::",
15550            stringify!(definition)
15551        )
15552    );
15553}
15554impl Default for rte_flow_action_vxlan_encap {
15555    fn default() -> Self {
15556        unsafe { ::std::mem::zeroed() }
15557    }
15558}
15559#[repr(C)]
15560#[derive(Debug, Copy, Clone, PartialEq)]
15561pub struct rte_flow_action_nvgre_encap {
15562    pub definition: *mut rte_flow_item,
15563}
15564#[test]
15565fn bindgen_test_layout_rte_flow_action_nvgre_encap() {
15566    assert_eq!(
15567        ::std::mem::size_of::<rte_flow_action_nvgre_encap>(),
15568        8usize,
15569        concat!("Size of: ", stringify!(rte_flow_action_nvgre_encap))
15570    );
15571    assert_eq!(
15572        ::std::mem::align_of::<rte_flow_action_nvgre_encap>(),
15573        8usize,
15574        concat!("Alignment of ", stringify!(rte_flow_action_nvgre_encap))
15575    );
15576    assert_eq!(
15577        unsafe {
15578            &(*(::std::ptr::null::<rte_flow_action_nvgre_encap>())).definition as *const _ as usize
15579        },
15580        0usize,
15581        concat!(
15582            "Offset of field: ",
15583            stringify!(rte_flow_action_nvgre_encap),
15584            "::",
15585            stringify!(definition)
15586        )
15587    );
15588}
15589impl Default for rte_flow_action_nvgre_encap {
15590    fn default() -> Self {
15591        unsafe { ::std::mem::zeroed() }
15592    }
15593}
15594#[repr(C)]
15595#[derive(Debug, Copy, Clone, PartialEq)]
15596pub struct rte_flow_action_raw_encap {
15597    pub data: *mut u8,
15598    pub preserve: *mut u8,
15599    pub size: size_t,
15600}
15601#[test]
15602fn bindgen_test_layout_rte_flow_action_raw_encap() {
15603    assert_eq!(
15604        ::std::mem::size_of::<rte_flow_action_raw_encap>(),
15605        24usize,
15606        concat!("Size of: ", stringify!(rte_flow_action_raw_encap))
15607    );
15608    assert_eq!(
15609        ::std::mem::align_of::<rte_flow_action_raw_encap>(),
15610        8usize,
15611        concat!("Alignment of ", stringify!(rte_flow_action_raw_encap))
15612    );
15613    assert_eq!(
15614        unsafe { &(*(::std::ptr::null::<rte_flow_action_raw_encap>())).data as *const _ as usize },
15615        0usize,
15616        concat!(
15617            "Offset of field: ",
15618            stringify!(rte_flow_action_raw_encap),
15619            "::",
15620            stringify!(data)
15621        )
15622    );
15623    assert_eq!(
15624        unsafe {
15625            &(*(::std::ptr::null::<rte_flow_action_raw_encap>())).preserve as *const _ as usize
15626        },
15627        8usize,
15628        concat!(
15629            "Offset of field: ",
15630            stringify!(rte_flow_action_raw_encap),
15631            "::",
15632            stringify!(preserve)
15633        )
15634    );
15635    assert_eq!(
15636        unsafe { &(*(::std::ptr::null::<rte_flow_action_raw_encap>())).size as *const _ as usize },
15637        16usize,
15638        concat!(
15639            "Offset of field: ",
15640            stringify!(rte_flow_action_raw_encap),
15641            "::",
15642            stringify!(size)
15643        )
15644    );
15645}
15646impl Default for rte_flow_action_raw_encap {
15647    fn default() -> Self {
15648        unsafe { ::std::mem::zeroed() }
15649    }
15650}
15651#[repr(C)]
15652#[derive(Debug, Copy, Clone, PartialEq)]
15653pub struct rte_flow_action_raw_decap {
15654    pub data: *mut u8,
15655    pub size: size_t,
15656}
15657#[test]
15658fn bindgen_test_layout_rte_flow_action_raw_decap() {
15659    assert_eq!(
15660        ::std::mem::size_of::<rte_flow_action_raw_decap>(),
15661        16usize,
15662        concat!("Size of: ", stringify!(rte_flow_action_raw_decap))
15663    );
15664    assert_eq!(
15665        ::std::mem::align_of::<rte_flow_action_raw_decap>(),
15666        8usize,
15667        concat!("Alignment of ", stringify!(rte_flow_action_raw_decap))
15668    );
15669    assert_eq!(
15670        unsafe { &(*(::std::ptr::null::<rte_flow_action_raw_decap>())).data as *const _ as usize },
15671        0usize,
15672        concat!(
15673            "Offset of field: ",
15674            stringify!(rte_flow_action_raw_decap),
15675            "::",
15676            stringify!(data)
15677        )
15678    );
15679    assert_eq!(
15680        unsafe { &(*(::std::ptr::null::<rte_flow_action_raw_decap>())).size as *const _ as usize },
15681        8usize,
15682        concat!(
15683            "Offset of field: ",
15684            stringify!(rte_flow_action_raw_decap),
15685            "::",
15686            stringify!(size)
15687        )
15688    );
15689}
15690impl Default for rte_flow_action_raw_decap {
15691    fn default() -> Self {
15692        unsafe { ::std::mem::zeroed() }
15693    }
15694}
15695#[repr(C)]
15696#[derive(Debug, Default, Copy, Clone, PartialEq)]
15697pub struct rte_flow_action_set_ipv4 {
15698    pub ipv4_addr: rte_be32_t,
15699}
15700#[test]
15701fn bindgen_test_layout_rte_flow_action_set_ipv4() {
15702    assert_eq!(
15703        ::std::mem::size_of::<rte_flow_action_set_ipv4>(),
15704        4usize,
15705        concat!("Size of: ", stringify!(rte_flow_action_set_ipv4))
15706    );
15707    assert_eq!(
15708        ::std::mem::align_of::<rte_flow_action_set_ipv4>(),
15709        4usize,
15710        concat!("Alignment of ", stringify!(rte_flow_action_set_ipv4))
15711    );
15712    assert_eq!(
15713        unsafe {
15714            &(*(::std::ptr::null::<rte_flow_action_set_ipv4>())).ipv4_addr as *const _ as usize
15715        },
15716        0usize,
15717        concat!(
15718            "Offset of field: ",
15719            stringify!(rte_flow_action_set_ipv4),
15720            "::",
15721            stringify!(ipv4_addr)
15722        )
15723    );
15724}
15725#[repr(C)]
15726#[derive(Debug, Default, Copy, Clone, PartialEq)]
15727pub struct rte_flow_action_set_ipv6 {
15728    pub ipv6_addr: [u8; 16usize],
15729}
15730#[test]
15731fn bindgen_test_layout_rte_flow_action_set_ipv6() {
15732    assert_eq!(
15733        ::std::mem::size_of::<rte_flow_action_set_ipv6>(),
15734        16usize,
15735        concat!("Size of: ", stringify!(rte_flow_action_set_ipv6))
15736    );
15737    assert_eq!(
15738        ::std::mem::align_of::<rte_flow_action_set_ipv6>(),
15739        1usize,
15740        concat!("Alignment of ", stringify!(rte_flow_action_set_ipv6))
15741    );
15742    assert_eq!(
15743        unsafe {
15744            &(*(::std::ptr::null::<rte_flow_action_set_ipv6>())).ipv6_addr as *const _ as usize
15745        },
15746        0usize,
15747        concat!(
15748            "Offset of field: ",
15749            stringify!(rte_flow_action_set_ipv6),
15750            "::",
15751            stringify!(ipv6_addr)
15752        )
15753    );
15754}
15755#[repr(C)]
15756#[derive(Debug, Default, Copy, Clone, PartialEq)]
15757pub struct rte_flow_action_set_tp {
15758    pub port: rte_be16_t,
15759}
15760#[test]
15761fn bindgen_test_layout_rte_flow_action_set_tp() {
15762    assert_eq!(
15763        ::std::mem::size_of::<rte_flow_action_set_tp>(),
15764        2usize,
15765        concat!("Size of: ", stringify!(rte_flow_action_set_tp))
15766    );
15767    assert_eq!(
15768        ::std::mem::align_of::<rte_flow_action_set_tp>(),
15769        2usize,
15770        concat!("Alignment of ", stringify!(rte_flow_action_set_tp))
15771    );
15772    assert_eq!(
15773        unsafe { &(*(::std::ptr::null::<rte_flow_action_set_tp>())).port as *const _ as usize },
15774        0usize,
15775        concat!(
15776            "Offset of field: ",
15777            stringify!(rte_flow_action_set_tp),
15778            "::",
15779            stringify!(port)
15780        )
15781    );
15782}
15783#[repr(C)]
15784#[derive(Debug, Default, Copy, Clone, PartialEq)]
15785pub struct rte_flow_action_set_ttl {
15786    pub ttl_value: u8,
15787}
15788#[test]
15789fn bindgen_test_layout_rte_flow_action_set_ttl() {
15790    assert_eq!(
15791        ::std::mem::size_of::<rte_flow_action_set_ttl>(),
15792        1usize,
15793        concat!("Size of: ", stringify!(rte_flow_action_set_ttl))
15794    );
15795    assert_eq!(
15796        ::std::mem::align_of::<rte_flow_action_set_ttl>(),
15797        1usize,
15798        concat!("Alignment of ", stringify!(rte_flow_action_set_ttl))
15799    );
15800    assert_eq!(
15801        unsafe {
15802            &(*(::std::ptr::null::<rte_flow_action_set_ttl>())).ttl_value as *const _ as usize
15803        },
15804        0usize,
15805        concat!(
15806            "Offset of field: ",
15807            stringify!(rte_flow_action_set_ttl),
15808            "::",
15809            stringify!(ttl_value)
15810        )
15811    );
15812}
15813#[repr(C)]
15814#[derive(Debug, Default, Copy, Clone, PartialEq)]
15815pub struct rte_flow_action_set_mac {
15816    pub mac_addr: [u8; 6usize],
15817}
15818#[test]
15819fn bindgen_test_layout_rte_flow_action_set_mac() {
15820    assert_eq!(
15821        ::std::mem::size_of::<rte_flow_action_set_mac>(),
15822        6usize,
15823        concat!("Size of: ", stringify!(rte_flow_action_set_mac))
15824    );
15825    assert_eq!(
15826        ::std::mem::align_of::<rte_flow_action_set_mac>(),
15827        1usize,
15828        concat!("Alignment of ", stringify!(rte_flow_action_set_mac))
15829    );
15830    assert_eq!(
15831        unsafe {
15832            &(*(::std::ptr::null::<rte_flow_action_set_mac>())).mac_addr as *const _ as usize
15833        },
15834        0usize,
15835        concat!(
15836            "Offset of field: ",
15837            stringify!(rte_flow_action_set_mac),
15838            "::",
15839            stringify!(mac_addr)
15840        )
15841    );
15842}
15843#[repr(C)]
15844#[derive(Debug, Default, Copy, Clone, PartialEq)]
15845pub struct rte_flow_action_set_tag {
15846    pub data: u32,
15847    pub mask: u32,
15848    pub index: u8,
15849}
15850#[test]
15851fn bindgen_test_layout_rte_flow_action_set_tag() {
15852    assert_eq!(
15853        ::std::mem::size_of::<rte_flow_action_set_tag>(),
15854        12usize,
15855        concat!("Size of: ", stringify!(rte_flow_action_set_tag))
15856    );
15857    assert_eq!(
15858        ::std::mem::align_of::<rte_flow_action_set_tag>(),
15859        4usize,
15860        concat!("Alignment of ", stringify!(rte_flow_action_set_tag))
15861    );
15862    assert_eq!(
15863        unsafe { &(*(::std::ptr::null::<rte_flow_action_set_tag>())).data as *const _ as usize },
15864        0usize,
15865        concat!(
15866            "Offset of field: ",
15867            stringify!(rte_flow_action_set_tag),
15868            "::",
15869            stringify!(data)
15870        )
15871    );
15872    assert_eq!(
15873        unsafe { &(*(::std::ptr::null::<rte_flow_action_set_tag>())).mask as *const _ as usize },
15874        4usize,
15875        concat!(
15876            "Offset of field: ",
15877            stringify!(rte_flow_action_set_tag),
15878            "::",
15879            stringify!(mask)
15880        )
15881    );
15882    assert_eq!(
15883        unsafe { &(*(::std::ptr::null::<rte_flow_action_set_tag>())).index as *const _ as usize },
15884        8usize,
15885        concat!(
15886            "Offset of field: ",
15887            stringify!(rte_flow_action_set_tag),
15888            "::",
15889            stringify!(index)
15890        )
15891    );
15892}
15893#[repr(C)]
15894#[derive(Debug, Default, Copy, Clone, PartialEq)]
15895pub struct rte_flow_action_set_meta {
15896    pub data: u32,
15897    pub mask: u32,
15898}
15899#[test]
15900fn bindgen_test_layout_rte_flow_action_set_meta() {
15901    assert_eq!(
15902        ::std::mem::size_of::<rte_flow_action_set_meta>(),
15903        8usize,
15904        concat!("Size of: ", stringify!(rte_flow_action_set_meta))
15905    );
15906    assert_eq!(
15907        ::std::mem::align_of::<rte_flow_action_set_meta>(),
15908        4usize,
15909        concat!("Alignment of ", stringify!(rte_flow_action_set_meta))
15910    );
15911    assert_eq!(
15912        unsafe { &(*(::std::ptr::null::<rte_flow_action_set_meta>())).data as *const _ as usize },
15913        0usize,
15914        concat!(
15915            "Offset of field: ",
15916            stringify!(rte_flow_action_set_meta),
15917            "::",
15918            stringify!(data)
15919        )
15920    );
15921    assert_eq!(
15922        unsafe { &(*(::std::ptr::null::<rte_flow_action_set_meta>())).mask as *const _ as usize },
15923        4usize,
15924        concat!(
15925            "Offset of field: ",
15926            stringify!(rte_flow_action_set_meta),
15927            "::",
15928            stringify!(mask)
15929        )
15930    );
15931}
15932extern "C" {
15933    pub static mut rte_flow_dynf_metadata_offs: i32;
15934}
15935extern "C" {
15936    pub static mut rte_flow_dynf_metadata_mask: u64;
15937}
15938#[repr(C)]
15939#[derive(Debug, Copy, Clone, PartialEq)]
15940pub struct rte_flow_action {
15941    pub type_: rte_flow_action_type::Type,
15942    pub conf: *const ::std::os::raw::c_void,
15943}
15944#[test]
15945fn bindgen_test_layout_rte_flow_action() {
15946    assert_eq!(
15947        ::std::mem::size_of::<rte_flow_action>(),
15948        16usize,
15949        concat!("Size of: ", stringify!(rte_flow_action))
15950    );
15951    assert_eq!(
15952        ::std::mem::align_of::<rte_flow_action>(),
15953        8usize,
15954        concat!("Alignment of ", stringify!(rte_flow_action))
15955    );
15956    assert_eq!(
15957        unsafe { &(*(::std::ptr::null::<rte_flow_action>())).type_ as *const _ as usize },
15958        0usize,
15959        concat!(
15960            "Offset of field: ",
15961            stringify!(rte_flow_action),
15962            "::",
15963            stringify!(type_)
15964        )
15965    );
15966    assert_eq!(
15967        unsafe { &(*(::std::ptr::null::<rte_flow_action>())).conf as *const _ as usize },
15968        8usize,
15969        concat!(
15970            "Offset of field: ",
15971            stringify!(rte_flow_action),
15972            "::",
15973            stringify!(conf)
15974        )
15975    );
15976}
15977impl Default for rte_flow_action {
15978    fn default() -> Self {
15979        unsafe { ::std::mem::zeroed() }
15980    }
15981}
15982#[repr(C)]
15983#[derive(Debug, Copy, Clone)]
15984pub struct rte_flow {
15985    _unused: [u8; 0],
15986}
15987pub mod rte_flow_error_type {
15988    pub type Type = ::std::os::raw::c_uint;
15989    pub const RTE_FLOW_ERROR_TYPE_NONE: Type = 0;
15990    pub const RTE_FLOW_ERROR_TYPE_UNSPECIFIED: Type = 1;
15991    pub const RTE_FLOW_ERROR_TYPE_HANDLE: Type = 2;
15992    pub const RTE_FLOW_ERROR_TYPE_ATTR_GROUP: Type = 3;
15993    pub const RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY: Type = 4;
15994    pub const RTE_FLOW_ERROR_TYPE_ATTR_INGRESS: Type = 5;
15995    pub const RTE_FLOW_ERROR_TYPE_ATTR_EGRESS: Type = 6;
15996    pub const RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER: Type = 7;
15997    pub const RTE_FLOW_ERROR_TYPE_ATTR: Type = 8;
15998    pub const RTE_FLOW_ERROR_TYPE_ITEM_NUM: Type = 9;
15999    pub const RTE_FLOW_ERROR_TYPE_ITEM_SPEC: Type = 10;
16000    pub const RTE_FLOW_ERROR_TYPE_ITEM_LAST: Type = 11;
16001    pub const RTE_FLOW_ERROR_TYPE_ITEM_MASK: Type = 12;
16002    pub const RTE_FLOW_ERROR_TYPE_ITEM: Type = 13;
16003    pub const RTE_FLOW_ERROR_TYPE_ACTION_NUM: Type = 14;
16004    pub const RTE_FLOW_ERROR_TYPE_ACTION_CONF: Type = 15;
16005    pub const RTE_FLOW_ERROR_TYPE_ACTION: Type = 16;
16006}
16007#[repr(C)]
16008#[derive(Debug, Copy, Clone, PartialEq)]
16009pub struct rte_flow_error {
16010    pub type_: rte_flow_error_type::Type,
16011    pub cause: *const ::std::os::raw::c_void,
16012    pub message: *const ::std::os::raw::c_char,
16013}
16014#[test]
16015fn bindgen_test_layout_rte_flow_error() {
16016    assert_eq!(
16017        ::std::mem::size_of::<rte_flow_error>(),
16018        24usize,
16019        concat!("Size of: ", stringify!(rte_flow_error))
16020    );
16021    assert_eq!(
16022        ::std::mem::align_of::<rte_flow_error>(),
16023        8usize,
16024        concat!("Alignment of ", stringify!(rte_flow_error))
16025    );
16026    assert_eq!(
16027        unsafe { &(*(::std::ptr::null::<rte_flow_error>())).type_ as *const _ as usize },
16028        0usize,
16029        concat!(
16030            "Offset of field: ",
16031            stringify!(rte_flow_error),
16032            "::",
16033            stringify!(type_)
16034        )
16035    );
16036    assert_eq!(
16037        unsafe { &(*(::std::ptr::null::<rte_flow_error>())).cause as *const _ as usize },
16038        8usize,
16039        concat!(
16040            "Offset of field: ",
16041            stringify!(rte_flow_error),
16042            "::",
16043            stringify!(cause)
16044        )
16045    );
16046    assert_eq!(
16047        unsafe { &(*(::std::ptr::null::<rte_flow_error>())).message as *const _ as usize },
16048        16usize,
16049        concat!(
16050            "Offset of field: ",
16051            stringify!(rte_flow_error),
16052            "::",
16053            stringify!(message)
16054        )
16055    );
16056}
16057impl Default for rte_flow_error {
16058    fn default() -> Self {
16059        unsafe { ::std::mem::zeroed() }
16060    }
16061}
16062#[repr(C)]
16063#[derive(Copy, Clone)]
16064pub struct rte_flow_conv_rule {
16065    pub __bindgen_anon_1: rte_flow_conv_rule__bindgen_ty_1,
16066    pub __bindgen_anon_2: rte_flow_conv_rule__bindgen_ty_2,
16067    pub __bindgen_anon_3: rte_flow_conv_rule__bindgen_ty_3,
16068}
16069#[repr(C)]
16070#[derive(Copy, Clone)]
16071pub union rte_flow_conv_rule__bindgen_ty_1 {
16072    pub attr_ro: *const rte_flow_attr,
16073    pub attr: *mut rte_flow_attr,
16074    _bindgen_union_align: u64,
16075}
16076#[test]
16077fn bindgen_test_layout_rte_flow_conv_rule__bindgen_ty_1() {
16078    assert_eq!(
16079        ::std::mem::size_of::<rte_flow_conv_rule__bindgen_ty_1>(),
16080        8usize,
16081        concat!("Size of: ", stringify!(rte_flow_conv_rule__bindgen_ty_1))
16082    );
16083    assert_eq!(
16084        ::std::mem::align_of::<rte_flow_conv_rule__bindgen_ty_1>(),
16085        8usize,
16086        concat!(
16087            "Alignment of ",
16088            stringify!(rte_flow_conv_rule__bindgen_ty_1)
16089        )
16090    );
16091    assert_eq!(
16092        unsafe {
16093            &(*(::std::ptr::null::<rte_flow_conv_rule__bindgen_ty_1>())).attr_ro as *const _
16094                as usize
16095        },
16096        0usize,
16097        concat!(
16098            "Offset of field: ",
16099            stringify!(rte_flow_conv_rule__bindgen_ty_1),
16100            "::",
16101            stringify!(attr_ro)
16102        )
16103    );
16104    assert_eq!(
16105        unsafe {
16106            &(*(::std::ptr::null::<rte_flow_conv_rule__bindgen_ty_1>())).attr as *const _ as usize
16107        },
16108        0usize,
16109        concat!(
16110            "Offset of field: ",
16111            stringify!(rte_flow_conv_rule__bindgen_ty_1),
16112            "::",
16113            stringify!(attr)
16114        )
16115    );
16116}
16117impl Default for rte_flow_conv_rule__bindgen_ty_1 {
16118    fn default() -> Self {
16119        unsafe { ::std::mem::zeroed() }
16120    }
16121}
16122#[repr(C)]
16123#[derive(Copy, Clone)]
16124pub union rte_flow_conv_rule__bindgen_ty_2 {
16125    pub pattern_ro: *const rte_flow_item,
16126    pub pattern: *mut rte_flow_item,
16127    _bindgen_union_align: u64,
16128}
16129#[test]
16130fn bindgen_test_layout_rte_flow_conv_rule__bindgen_ty_2() {
16131    assert_eq!(
16132        ::std::mem::size_of::<rte_flow_conv_rule__bindgen_ty_2>(),
16133        8usize,
16134        concat!("Size of: ", stringify!(rte_flow_conv_rule__bindgen_ty_2))
16135    );
16136    assert_eq!(
16137        ::std::mem::align_of::<rte_flow_conv_rule__bindgen_ty_2>(),
16138        8usize,
16139        concat!(
16140            "Alignment of ",
16141            stringify!(rte_flow_conv_rule__bindgen_ty_2)
16142        )
16143    );
16144    assert_eq!(
16145        unsafe {
16146            &(*(::std::ptr::null::<rte_flow_conv_rule__bindgen_ty_2>())).pattern_ro as *const _
16147                as usize
16148        },
16149        0usize,
16150        concat!(
16151            "Offset of field: ",
16152            stringify!(rte_flow_conv_rule__bindgen_ty_2),
16153            "::",
16154            stringify!(pattern_ro)
16155        )
16156    );
16157    assert_eq!(
16158        unsafe {
16159            &(*(::std::ptr::null::<rte_flow_conv_rule__bindgen_ty_2>())).pattern as *const _
16160                as usize
16161        },
16162        0usize,
16163        concat!(
16164            "Offset of field: ",
16165            stringify!(rte_flow_conv_rule__bindgen_ty_2),
16166            "::",
16167            stringify!(pattern)
16168        )
16169    );
16170}
16171impl Default for rte_flow_conv_rule__bindgen_ty_2 {
16172    fn default() -> Self {
16173        unsafe { ::std::mem::zeroed() }
16174    }
16175}
16176#[repr(C)]
16177#[derive(Copy, Clone)]
16178pub union rte_flow_conv_rule__bindgen_ty_3 {
16179    pub actions_ro: *const rte_flow_action,
16180    pub actions: *mut rte_flow_action,
16181    _bindgen_union_align: u64,
16182}
16183#[test]
16184fn bindgen_test_layout_rte_flow_conv_rule__bindgen_ty_3() {
16185    assert_eq!(
16186        ::std::mem::size_of::<rte_flow_conv_rule__bindgen_ty_3>(),
16187        8usize,
16188        concat!("Size of: ", stringify!(rte_flow_conv_rule__bindgen_ty_3))
16189    );
16190    assert_eq!(
16191        ::std::mem::align_of::<rte_flow_conv_rule__bindgen_ty_3>(),
16192        8usize,
16193        concat!(
16194            "Alignment of ",
16195            stringify!(rte_flow_conv_rule__bindgen_ty_3)
16196        )
16197    );
16198    assert_eq!(
16199        unsafe {
16200            &(*(::std::ptr::null::<rte_flow_conv_rule__bindgen_ty_3>())).actions_ro as *const _
16201                as usize
16202        },
16203        0usize,
16204        concat!(
16205            "Offset of field: ",
16206            stringify!(rte_flow_conv_rule__bindgen_ty_3),
16207            "::",
16208            stringify!(actions_ro)
16209        )
16210    );
16211    assert_eq!(
16212        unsafe {
16213            &(*(::std::ptr::null::<rte_flow_conv_rule__bindgen_ty_3>())).actions as *const _
16214                as usize
16215        },
16216        0usize,
16217        concat!(
16218            "Offset of field: ",
16219            stringify!(rte_flow_conv_rule__bindgen_ty_3),
16220            "::",
16221            stringify!(actions)
16222        )
16223    );
16224}
16225impl Default for rte_flow_conv_rule__bindgen_ty_3 {
16226    fn default() -> Self {
16227        unsafe { ::std::mem::zeroed() }
16228    }
16229}
16230#[test]
16231fn bindgen_test_layout_rte_flow_conv_rule() {
16232    assert_eq!(
16233        ::std::mem::size_of::<rte_flow_conv_rule>(),
16234        24usize,
16235        concat!("Size of: ", stringify!(rte_flow_conv_rule))
16236    );
16237    assert_eq!(
16238        ::std::mem::align_of::<rte_flow_conv_rule>(),
16239        8usize,
16240        concat!("Alignment of ", stringify!(rte_flow_conv_rule))
16241    );
16242}
16243impl Default for rte_flow_conv_rule {
16244    fn default() -> Self {
16245        unsafe { ::std::mem::zeroed() }
16246    }
16247}
16248pub mod rte_flow_conv_op {
16249    pub type Type = ::std::os::raw::c_uint;
16250    pub const RTE_FLOW_CONV_OP_NONE: Type = 0;
16251    pub const RTE_FLOW_CONV_OP_ATTR: Type = 1;
16252    pub const RTE_FLOW_CONV_OP_ITEM: Type = 2;
16253    pub const RTE_FLOW_CONV_OP_ACTION: Type = 3;
16254    pub const RTE_FLOW_CONV_OP_PATTERN: Type = 4;
16255    pub const RTE_FLOW_CONV_OP_ACTIONS: Type = 5;
16256    pub const RTE_FLOW_CONV_OP_RULE: Type = 6;
16257    pub const RTE_FLOW_CONV_OP_ITEM_NAME: Type = 7;
16258    pub const RTE_FLOW_CONV_OP_ACTION_NAME: Type = 8;
16259    pub const RTE_FLOW_CONV_OP_ITEM_NAME_PTR: Type = 9;
16260    pub const RTE_FLOW_CONV_OP_ACTION_NAME_PTR: Type = 10;
16261}
16262extern "C" {
16263    pub fn rte_flow_dynf_metadata_register() -> ::std::os::raw::c_int;
16264}
16265extern "C" {
16266    pub fn rte_flow_validate(
16267        port_id: u16,
16268        attr: *const rte_flow_attr,
16269        pattern: *const rte_flow_item,
16270        actions: *const rte_flow_action,
16271        error: *mut rte_flow_error,
16272    ) -> ::std::os::raw::c_int;
16273}
16274extern "C" {
16275    pub fn rte_flow_create(
16276        port_id: u16,
16277        attr: *const rte_flow_attr,
16278        pattern: *const rte_flow_item,
16279        actions: *const rte_flow_action,
16280        error: *mut rte_flow_error,
16281    ) -> *mut rte_flow;
16282}
16283extern "C" {
16284    pub fn rte_flow_destroy(
16285        port_id: u16,
16286        flow: *mut rte_flow,
16287        error: *mut rte_flow_error,
16288    ) -> ::std::os::raw::c_int;
16289}
16290extern "C" {
16291    pub fn rte_flow_flush(port_id: u16, error: *mut rte_flow_error) -> ::std::os::raw::c_int;
16292}
16293extern "C" {
16294    pub fn rte_flow_query(
16295        port_id: u16,
16296        flow: *mut rte_flow,
16297        action: *const rte_flow_action,
16298        data: *mut ::std::os::raw::c_void,
16299        error: *mut rte_flow_error,
16300    ) -> ::std::os::raw::c_int;
16301}
16302extern "C" {
16303    pub fn rte_flow_isolate(
16304        port_id: u16,
16305        set: ::std::os::raw::c_int,
16306        error: *mut rte_flow_error,
16307    ) -> ::std::os::raw::c_int;
16308}
16309extern "C" {
16310    pub fn rte_flow_error_set(
16311        error: *mut rte_flow_error,
16312        code: ::std::os::raw::c_int,
16313        type_: rte_flow_error_type::Type,
16314        cause: *const ::std::os::raw::c_void,
16315        message: *const ::std::os::raw::c_char,
16316    ) -> ::std::os::raw::c_int;
16317}
16318#[repr(C)]
16319#[derive(Debug)]
16320pub struct rte_flow_desc {
16321    pub size: size_t,
16322    pub attr: rte_flow_attr,
16323    pub items: *mut rte_flow_item,
16324    pub actions: *mut rte_flow_action,
16325    pub data: __IncompleteArrayField<u8>,
16326}
16327#[test]
16328fn bindgen_test_layout_rte_flow_desc() {
16329    assert_eq!(
16330        ::std::mem::size_of::<rte_flow_desc>(),
16331        40usize,
16332        concat!("Size of: ", stringify!(rte_flow_desc))
16333    );
16334    assert_eq!(
16335        ::std::mem::align_of::<rte_flow_desc>(),
16336        8usize,
16337        concat!("Alignment of ", stringify!(rte_flow_desc))
16338    );
16339}
16340impl Default for rte_flow_desc {
16341    fn default() -> Self {
16342        unsafe { ::std::mem::zeroed() }
16343    }
16344}
16345extern "C" {
16346    pub fn rte_flow_copy(
16347        fd: *mut rte_flow_desc,
16348        len: size_t,
16349        attr: *const rte_flow_attr,
16350        items: *const rte_flow_item,
16351        actions: *const rte_flow_action,
16352    ) -> size_t;
16353}
16354extern "C" {
16355    pub fn rte_flow_conv(
16356        op: rte_flow_conv_op::Type,
16357        dst: *mut ::std::os::raw::c_void,
16358        size: size_t,
16359        src: *const ::std::os::raw::c_void,
16360        error: *mut rte_flow_error,
16361    ) -> ::std::os::raw::c_int;
16362}
16363pub mod rte_filter_type {
16364    pub type Type = ::std::os::raw::c_uint;
16365    pub const RTE_ETH_FILTER_NONE: Type = 0;
16366    pub const RTE_ETH_FILTER_MACVLAN: Type = 1;
16367    pub const RTE_ETH_FILTER_ETHERTYPE: Type = 2;
16368    pub const RTE_ETH_FILTER_FLEXIBLE: Type = 3;
16369    pub const RTE_ETH_FILTER_SYN: Type = 4;
16370    pub const RTE_ETH_FILTER_NTUPLE: Type = 5;
16371    pub const RTE_ETH_FILTER_TUNNEL: Type = 6;
16372    pub const RTE_ETH_FILTER_FDIR: Type = 7;
16373    pub const RTE_ETH_FILTER_HASH: Type = 8;
16374    pub const RTE_ETH_FILTER_L2_TUNNEL: Type = 9;
16375    pub const RTE_ETH_FILTER_GENERIC: Type = 10;
16376    pub const RTE_ETH_FILTER_MAX: Type = 11;
16377}
16378pub mod rte_filter_op {
16379    pub type Type = ::std::os::raw::c_uint;
16380    pub const RTE_ETH_FILTER_NOP: Type = 0;
16381    pub const RTE_ETH_FILTER_ADD: Type = 1;
16382    pub const RTE_ETH_FILTER_UPDATE: Type = 2;
16383    pub const RTE_ETH_FILTER_DELETE: Type = 3;
16384    pub const RTE_ETH_FILTER_FLUSH: Type = 4;
16385    pub const RTE_ETH_FILTER_GET: Type = 5;
16386    pub const RTE_ETH_FILTER_SET: Type = 6;
16387    pub const RTE_ETH_FILTER_INFO: Type = 7;
16388    pub const RTE_ETH_FILTER_STATS: Type = 8;
16389    pub const RTE_ETH_FILTER_OP_MAX: Type = 9;
16390}
16391pub mod rte_mac_filter_type {
16392    pub type Type = ::std::os::raw::c_uint;
16393    pub const RTE_MAC_PERFECT_MATCH: Type = 1;
16394    pub const RTE_MACVLAN_PERFECT_MATCH: Type = 2;
16395    pub const RTE_MAC_HASH_MATCH: Type = 3;
16396    pub const RTE_MACVLAN_HASH_MATCH: Type = 4;
16397}
16398#[repr(C)]
16399#[derive(Debug, Copy, Clone, PartialEq)]
16400pub struct rte_eth_mac_filter {
16401    pub is_vf: u8,
16402    pub dst_id: u16,
16403    pub filter_type: rte_mac_filter_type::Type,
16404    pub mac_addr: rte_ether_addr,
16405}
16406#[test]
16407fn bindgen_test_layout_rte_eth_mac_filter() {
16408    assert_eq!(
16409        ::std::mem::size_of::<rte_eth_mac_filter>(),
16410        16usize,
16411        concat!("Size of: ", stringify!(rte_eth_mac_filter))
16412    );
16413    assert_eq!(
16414        ::std::mem::align_of::<rte_eth_mac_filter>(),
16415        4usize,
16416        concat!("Alignment of ", stringify!(rte_eth_mac_filter))
16417    );
16418    assert_eq!(
16419        unsafe { &(*(::std::ptr::null::<rte_eth_mac_filter>())).is_vf as *const _ as usize },
16420        0usize,
16421        concat!(
16422            "Offset of field: ",
16423            stringify!(rte_eth_mac_filter),
16424            "::",
16425            stringify!(is_vf)
16426        )
16427    );
16428    assert_eq!(
16429        unsafe { &(*(::std::ptr::null::<rte_eth_mac_filter>())).dst_id as *const _ as usize },
16430        2usize,
16431        concat!(
16432            "Offset of field: ",
16433            stringify!(rte_eth_mac_filter),
16434            "::",
16435            stringify!(dst_id)
16436        )
16437    );
16438    assert_eq!(
16439        unsafe { &(*(::std::ptr::null::<rte_eth_mac_filter>())).filter_type as *const _ as usize },
16440        4usize,
16441        concat!(
16442            "Offset of field: ",
16443            stringify!(rte_eth_mac_filter),
16444            "::",
16445            stringify!(filter_type)
16446        )
16447    );
16448    assert_eq!(
16449        unsafe { &(*(::std::ptr::null::<rte_eth_mac_filter>())).mac_addr as *const _ as usize },
16450        8usize,
16451        concat!(
16452            "Offset of field: ",
16453            stringify!(rte_eth_mac_filter),
16454            "::",
16455            stringify!(mac_addr)
16456        )
16457    );
16458}
16459impl Default for rte_eth_mac_filter {
16460    fn default() -> Self {
16461        unsafe { ::std::mem::zeroed() }
16462    }
16463}
16464#[repr(C)]
16465#[derive(Debug, Default, Copy, Clone, PartialEq)]
16466pub struct rte_eth_ethertype_filter {
16467    pub mac_addr: rte_ether_addr,
16468    pub ether_type: u16,
16469    pub flags: u16,
16470    pub queue: u16,
16471}
16472#[test]
16473fn bindgen_test_layout_rte_eth_ethertype_filter() {
16474    assert_eq!(
16475        ::std::mem::size_of::<rte_eth_ethertype_filter>(),
16476        12usize,
16477        concat!("Size of: ", stringify!(rte_eth_ethertype_filter))
16478    );
16479    assert_eq!(
16480        ::std::mem::align_of::<rte_eth_ethertype_filter>(),
16481        2usize,
16482        concat!("Alignment of ", stringify!(rte_eth_ethertype_filter))
16483    );
16484    assert_eq!(
16485        unsafe {
16486            &(*(::std::ptr::null::<rte_eth_ethertype_filter>())).mac_addr as *const _ as usize
16487        },
16488        0usize,
16489        concat!(
16490            "Offset of field: ",
16491            stringify!(rte_eth_ethertype_filter),
16492            "::",
16493            stringify!(mac_addr)
16494        )
16495    );
16496    assert_eq!(
16497        unsafe {
16498            &(*(::std::ptr::null::<rte_eth_ethertype_filter>())).ether_type as *const _ as usize
16499        },
16500        6usize,
16501        concat!(
16502            "Offset of field: ",
16503            stringify!(rte_eth_ethertype_filter),
16504            "::",
16505            stringify!(ether_type)
16506        )
16507    );
16508    assert_eq!(
16509        unsafe { &(*(::std::ptr::null::<rte_eth_ethertype_filter>())).flags as *const _ as usize },
16510        8usize,
16511        concat!(
16512            "Offset of field: ",
16513            stringify!(rte_eth_ethertype_filter),
16514            "::",
16515            stringify!(flags)
16516        )
16517    );
16518    assert_eq!(
16519        unsafe { &(*(::std::ptr::null::<rte_eth_ethertype_filter>())).queue as *const _ as usize },
16520        10usize,
16521        concat!(
16522            "Offset of field: ",
16523            stringify!(rte_eth_ethertype_filter),
16524            "::",
16525            stringify!(queue)
16526        )
16527    );
16528}
16529#[repr(C)]
16530#[derive(Copy, Clone)]
16531pub struct rte_eth_flex_filter {
16532    pub len: u16,
16533    pub bytes: [u8; 128usize],
16534    pub mask: [u8; 16usize],
16535    pub priority: u8,
16536    pub queue: u16,
16537}
16538#[test]
16539fn bindgen_test_layout_rte_eth_flex_filter() {
16540    assert_eq!(
16541        ::std::mem::size_of::<rte_eth_flex_filter>(),
16542        150usize,
16543        concat!("Size of: ", stringify!(rte_eth_flex_filter))
16544    );
16545    assert_eq!(
16546        ::std::mem::align_of::<rte_eth_flex_filter>(),
16547        2usize,
16548        concat!("Alignment of ", stringify!(rte_eth_flex_filter))
16549    );
16550    assert_eq!(
16551        unsafe { &(*(::std::ptr::null::<rte_eth_flex_filter>())).len as *const _ as usize },
16552        0usize,
16553        concat!(
16554            "Offset of field: ",
16555            stringify!(rte_eth_flex_filter),
16556            "::",
16557            stringify!(len)
16558        )
16559    );
16560    assert_eq!(
16561        unsafe { &(*(::std::ptr::null::<rte_eth_flex_filter>())).bytes as *const _ as usize },
16562        2usize,
16563        concat!(
16564            "Offset of field: ",
16565            stringify!(rte_eth_flex_filter),
16566            "::",
16567            stringify!(bytes)
16568        )
16569    );
16570    assert_eq!(
16571        unsafe { &(*(::std::ptr::null::<rte_eth_flex_filter>())).mask as *const _ as usize },
16572        130usize,
16573        concat!(
16574            "Offset of field: ",
16575            stringify!(rte_eth_flex_filter),
16576            "::",
16577            stringify!(mask)
16578        )
16579    );
16580    assert_eq!(
16581        unsafe { &(*(::std::ptr::null::<rte_eth_flex_filter>())).priority as *const _ as usize },
16582        146usize,
16583        concat!(
16584            "Offset of field: ",
16585            stringify!(rte_eth_flex_filter),
16586            "::",
16587            stringify!(priority)
16588        )
16589    );
16590    assert_eq!(
16591        unsafe { &(*(::std::ptr::null::<rte_eth_flex_filter>())).queue as *const _ as usize },
16592        148usize,
16593        concat!(
16594            "Offset of field: ",
16595            stringify!(rte_eth_flex_filter),
16596            "::",
16597            stringify!(queue)
16598        )
16599    );
16600}
16601impl Default for rte_eth_flex_filter {
16602    fn default() -> Self {
16603        unsafe { ::std::mem::zeroed() }
16604    }
16605}
16606#[repr(C)]
16607#[derive(Debug, Default, Copy, Clone, PartialEq)]
16608pub struct rte_eth_syn_filter {
16609    pub hig_pri: u8,
16610    pub queue: u16,
16611}
16612#[test]
16613fn bindgen_test_layout_rte_eth_syn_filter() {
16614    assert_eq!(
16615        ::std::mem::size_of::<rte_eth_syn_filter>(),
16616        4usize,
16617        concat!("Size of: ", stringify!(rte_eth_syn_filter))
16618    );
16619    assert_eq!(
16620        ::std::mem::align_of::<rte_eth_syn_filter>(),
16621        2usize,
16622        concat!("Alignment of ", stringify!(rte_eth_syn_filter))
16623    );
16624    assert_eq!(
16625        unsafe { &(*(::std::ptr::null::<rte_eth_syn_filter>())).hig_pri as *const _ as usize },
16626        0usize,
16627        concat!(
16628            "Offset of field: ",
16629            stringify!(rte_eth_syn_filter),
16630            "::",
16631            stringify!(hig_pri)
16632        )
16633    );
16634    assert_eq!(
16635        unsafe { &(*(::std::ptr::null::<rte_eth_syn_filter>())).queue as *const _ as usize },
16636        2usize,
16637        concat!(
16638            "Offset of field: ",
16639            stringify!(rte_eth_syn_filter),
16640            "::",
16641            stringify!(queue)
16642        )
16643    );
16644}
16645#[repr(C)]
16646#[derive(Debug, Default, Copy, Clone, PartialEq)]
16647pub struct rte_eth_ntuple_filter {
16648    pub flags: u16,
16649    pub dst_ip: u32,
16650    pub dst_ip_mask: u32,
16651    pub src_ip: u32,
16652    pub src_ip_mask: u32,
16653    pub dst_port: u16,
16654    pub dst_port_mask: u16,
16655    pub src_port: u16,
16656    pub src_port_mask: u16,
16657    pub proto: u8,
16658    pub proto_mask: u8,
16659    pub tcp_flags: u8,
16660    pub priority: u16,
16661    pub queue: u16,
16662}
16663#[test]
16664fn bindgen_test_layout_rte_eth_ntuple_filter() {
16665    assert_eq!(
16666        ::std::mem::size_of::<rte_eth_ntuple_filter>(),
16667        36usize,
16668        concat!("Size of: ", stringify!(rte_eth_ntuple_filter))
16669    );
16670    assert_eq!(
16671        ::std::mem::align_of::<rte_eth_ntuple_filter>(),
16672        4usize,
16673        concat!("Alignment of ", stringify!(rte_eth_ntuple_filter))
16674    );
16675    assert_eq!(
16676        unsafe { &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).flags as *const _ as usize },
16677        0usize,
16678        concat!(
16679            "Offset of field: ",
16680            stringify!(rte_eth_ntuple_filter),
16681            "::",
16682            stringify!(flags)
16683        )
16684    );
16685    assert_eq!(
16686        unsafe { &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).dst_ip as *const _ as usize },
16687        4usize,
16688        concat!(
16689            "Offset of field: ",
16690            stringify!(rte_eth_ntuple_filter),
16691            "::",
16692            stringify!(dst_ip)
16693        )
16694    );
16695    assert_eq!(
16696        unsafe {
16697            &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).dst_ip_mask as *const _ as usize
16698        },
16699        8usize,
16700        concat!(
16701            "Offset of field: ",
16702            stringify!(rte_eth_ntuple_filter),
16703            "::",
16704            stringify!(dst_ip_mask)
16705        )
16706    );
16707    assert_eq!(
16708        unsafe { &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).src_ip as *const _ as usize },
16709        12usize,
16710        concat!(
16711            "Offset of field: ",
16712            stringify!(rte_eth_ntuple_filter),
16713            "::",
16714            stringify!(src_ip)
16715        )
16716    );
16717    assert_eq!(
16718        unsafe {
16719            &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).src_ip_mask as *const _ as usize
16720        },
16721        16usize,
16722        concat!(
16723            "Offset of field: ",
16724            stringify!(rte_eth_ntuple_filter),
16725            "::",
16726            stringify!(src_ip_mask)
16727        )
16728    );
16729    assert_eq!(
16730        unsafe { &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).dst_port as *const _ as usize },
16731        20usize,
16732        concat!(
16733            "Offset of field: ",
16734            stringify!(rte_eth_ntuple_filter),
16735            "::",
16736            stringify!(dst_port)
16737        )
16738    );
16739    assert_eq!(
16740        unsafe {
16741            &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).dst_port_mask as *const _ as usize
16742        },
16743        22usize,
16744        concat!(
16745            "Offset of field: ",
16746            stringify!(rte_eth_ntuple_filter),
16747            "::",
16748            stringify!(dst_port_mask)
16749        )
16750    );
16751    assert_eq!(
16752        unsafe { &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).src_port as *const _ as usize },
16753        24usize,
16754        concat!(
16755            "Offset of field: ",
16756            stringify!(rte_eth_ntuple_filter),
16757            "::",
16758            stringify!(src_port)
16759        )
16760    );
16761    assert_eq!(
16762        unsafe {
16763            &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).src_port_mask as *const _ as usize
16764        },
16765        26usize,
16766        concat!(
16767            "Offset of field: ",
16768            stringify!(rte_eth_ntuple_filter),
16769            "::",
16770            stringify!(src_port_mask)
16771        )
16772    );
16773    assert_eq!(
16774        unsafe { &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).proto as *const _ as usize },
16775        28usize,
16776        concat!(
16777            "Offset of field: ",
16778            stringify!(rte_eth_ntuple_filter),
16779            "::",
16780            stringify!(proto)
16781        )
16782    );
16783    assert_eq!(
16784        unsafe {
16785            &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).proto_mask as *const _ as usize
16786        },
16787        29usize,
16788        concat!(
16789            "Offset of field: ",
16790            stringify!(rte_eth_ntuple_filter),
16791            "::",
16792            stringify!(proto_mask)
16793        )
16794    );
16795    assert_eq!(
16796        unsafe { &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).tcp_flags as *const _ as usize },
16797        30usize,
16798        concat!(
16799            "Offset of field: ",
16800            stringify!(rte_eth_ntuple_filter),
16801            "::",
16802            stringify!(tcp_flags)
16803        )
16804    );
16805    assert_eq!(
16806        unsafe { &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).priority as *const _ as usize },
16807        32usize,
16808        concat!(
16809            "Offset of field: ",
16810            stringify!(rte_eth_ntuple_filter),
16811            "::",
16812            stringify!(priority)
16813        )
16814    );
16815    assert_eq!(
16816        unsafe { &(*(::std::ptr::null::<rte_eth_ntuple_filter>())).queue as *const _ as usize },
16817        34usize,
16818        concat!(
16819            "Offset of field: ",
16820            stringify!(rte_eth_ntuple_filter),
16821            "::",
16822            stringify!(queue)
16823        )
16824    );
16825}
16826pub mod rte_tunnel_iptype {
16827    pub type Type = ::std::os::raw::c_uint;
16828    pub const RTE_TUNNEL_IPTYPE_IPV4: Type = 0;
16829    pub const RTE_TUNNEL_IPTYPE_IPV6: Type = 1;
16830}
16831#[repr(C)]
16832#[derive(Copy, Clone)]
16833pub struct rte_eth_tunnel_filter_conf {
16834    pub outer_mac: rte_ether_addr,
16835    pub inner_mac: rte_ether_addr,
16836    pub inner_vlan: u16,
16837    pub ip_type: rte_tunnel_iptype::Type,
16838    pub ip_addr: rte_eth_tunnel_filter_conf__bindgen_ty_1,
16839    pub filter_type: u16,
16840    pub tunnel_type: rte_eth_tunnel_type::Type,
16841    pub tenant_id: u32,
16842    pub queue_id: u16,
16843}
16844#[repr(C)]
16845#[derive(Copy, Clone)]
16846pub union rte_eth_tunnel_filter_conf__bindgen_ty_1 {
16847    pub ipv4_addr: u32,
16848    pub ipv6_addr: [u32; 4usize],
16849    _bindgen_union_align: [u32; 4usize],
16850}
16851#[test]
16852fn bindgen_test_layout_rte_eth_tunnel_filter_conf__bindgen_ty_1() {
16853    assert_eq!(
16854        ::std::mem::size_of::<rte_eth_tunnel_filter_conf__bindgen_ty_1>(),
16855        16usize,
16856        concat!(
16857            "Size of: ",
16858            stringify!(rte_eth_tunnel_filter_conf__bindgen_ty_1)
16859        )
16860    );
16861    assert_eq!(
16862        ::std::mem::align_of::<rte_eth_tunnel_filter_conf__bindgen_ty_1>(),
16863        4usize,
16864        concat!(
16865            "Alignment of ",
16866            stringify!(rte_eth_tunnel_filter_conf__bindgen_ty_1)
16867        )
16868    );
16869    assert_eq!(
16870        unsafe {
16871            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf__bindgen_ty_1>())).ipv4_addr
16872                as *const _ as usize
16873        },
16874        0usize,
16875        concat!(
16876            "Offset of field: ",
16877            stringify!(rte_eth_tunnel_filter_conf__bindgen_ty_1),
16878            "::",
16879            stringify!(ipv4_addr)
16880        )
16881    );
16882    assert_eq!(
16883        unsafe {
16884            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf__bindgen_ty_1>())).ipv6_addr
16885                as *const _ as usize
16886        },
16887        0usize,
16888        concat!(
16889            "Offset of field: ",
16890            stringify!(rte_eth_tunnel_filter_conf__bindgen_ty_1),
16891            "::",
16892            stringify!(ipv6_addr)
16893        )
16894    );
16895}
16896impl Default for rte_eth_tunnel_filter_conf__bindgen_ty_1 {
16897    fn default() -> Self {
16898        unsafe { ::std::mem::zeroed() }
16899    }
16900}
16901#[test]
16902fn bindgen_test_layout_rte_eth_tunnel_filter_conf() {
16903    assert_eq!(
16904        ::std::mem::size_of::<rte_eth_tunnel_filter_conf>(),
16905        52usize,
16906        concat!("Size of: ", stringify!(rte_eth_tunnel_filter_conf))
16907    );
16908    assert_eq!(
16909        ::std::mem::align_of::<rte_eth_tunnel_filter_conf>(),
16910        4usize,
16911        concat!("Alignment of ", stringify!(rte_eth_tunnel_filter_conf))
16912    );
16913    assert_eq!(
16914        unsafe {
16915            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf>())).outer_mac as *const _ as usize
16916        },
16917        0usize,
16918        concat!(
16919            "Offset of field: ",
16920            stringify!(rte_eth_tunnel_filter_conf),
16921            "::",
16922            stringify!(outer_mac)
16923        )
16924    );
16925    assert_eq!(
16926        unsafe {
16927            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf>())).inner_mac as *const _ as usize
16928        },
16929        6usize,
16930        concat!(
16931            "Offset of field: ",
16932            stringify!(rte_eth_tunnel_filter_conf),
16933            "::",
16934            stringify!(inner_mac)
16935        )
16936    );
16937    assert_eq!(
16938        unsafe {
16939            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf>())).inner_vlan as *const _ as usize
16940        },
16941        12usize,
16942        concat!(
16943            "Offset of field: ",
16944            stringify!(rte_eth_tunnel_filter_conf),
16945            "::",
16946            stringify!(inner_vlan)
16947        )
16948    );
16949    assert_eq!(
16950        unsafe {
16951            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf>())).ip_type as *const _ as usize
16952        },
16953        16usize,
16954        concat!(
16955            "Offset of field: ",
16956            stringify!(rte_eth_tunnel_filter_conf),
16957            "::",
16958            stringify!(ip_type)
16959        )
16960    );
16961    assert_eq!(
16962        unsafe {
16963            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf>())).ip_addr as *const _ as usize
16964        },
16965        20usize,
16966        concat!(
16967            "Offset of field: ",
16968            stringify!(rte_eth_tunnel_filter_conf),
16969            "::",
16970            stringify!(ip_addr)
16971        )
16972    );
16973    assert_eq!(
16974        unsafe {
16975            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf>())).filter_type as *const _ as usize
16976        },
16977        36usize,
16978        concat!(
16979            "Offset of field: ",
16980            stringify!(rte_eth_tunnel_filter_conf),
16981            "::",
16982            stringify!(filter_type)
16983        )
16984    );
16985    assert_eq!(
16986        unsafe {
16987            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf>())).tunnel_type as *const _ as usize
16988        },
16989        40usize,
16990        concat!(
16991            "Offset of field: ",
16992            stringify!(rte_eth_tunnel_filter_conf),
16993            "::",
16994            stringify!(tunnel_type)
16995        )
16996    );
16997    assert_eq!(
16998        unsafe {
16999            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf>())).tenant_id as *const _ as usize
17000        },
17001        44usize,
17002        concat!(
17003            "Offset of field: ",
17004            stringify!(rte_eth_tunnel_filter_conf),
17005            "::",
17006            stringify!(tenant_id)
17007        )
17008    );
17009    assert_eq!(
17010        unsafe {
17011            &(*(::std::ptr::null::<rte_eth_tunnel_filter_conf>())).queue_id as *const _ as usize
17012        },
17013        48usize,
17014        concat!(
17015            "Offset of field: ",
17016            stringify!(rte_eth_tunnel_filter_conf),
17017            "::",
17018            stringify!(queue_id)
17019        )
17020    );
17021}
17022impl Default for rte_eth_tunnel_filter_conf {
17023    fn default() -> Self {
17024        unsafe { ::std::mem::zeroed() }
17025    }
17026}
17027pub mod rte_eth_global_cfg_type {
17028    pub type Type = ::std::os::raw::c_uint;
17029    pub const RTE_ETH_GLOBAL_CFG_TYPE_UNKNOWN: Type = 0;
17030    pub const RTE_ETH_GLOBAL_CFG_TYPE_GRE_KEY_LEN: Type = 1;
17031    pub const RTE_ETH_GLOBAL_CFG_TYPE_MAX: Type = 2;
17032}
17033#[repr(C)]
17034#[derive(Copy, Clone)]
17035pub struct rte_eth_global_cfg {
17036    pub cfg_type: rte_eth_global_cfg_type::Type,
17037    pub cfg: rte_eth_global_cfg__bindgen_ty_1,
17038}
17039#[repr(C)]
17040#[derive(Copy, Clone)]
17041pub union rte_eth_global_cfg__bindgen_ty_1 {
17042    pub gre_key_len: u8,
17043    pub reserved: u64,
17044    _bindgen_union_align: u64,
17045}
17046#[test]
17047fn bindgen_test_layout_rte_eth_global_cfg__bindgen_ty_1() {
17048    assert_eq!(
17049        ::std::mem::size_of::<rte_eth_global_cfg__bindgen_ty_1>(),
17050        8usize,
17051        concat!("Size of: ", stringify!(rte_eth_global_cfg__bindgen_ty_1))
17052    );
17053    assert_eq!(
17054        ::std::mem::align_of::<rte_eth_global_cfg__bindgen_ty_1>(),
17055        8usize,
17056        concat!(
17057            "Alignment of ",
17058            stringify!(rte_eth_global_cfg__bindgen_ty_1)
17059        )
17060    );
17061    assert_eq!(
17062        unsafe {
17063            &(*(::std::ptr::null::<rte_eth_global_cfg__bindgen_ty_1>())).gre_key_len as *const _
17064                as usize
17065        },
17066        0usize,
17067        concat!(
17068            "Offset of field: ",
17069            stringify!(rte_eth_global_cfg__bindgen_ty_1),
17070            "::",
17071            stringify!(gre_key_len)
17072        )
17073    );
17074    assert_eq!(
17075        unsafe {
17076            &(*(::std::ptr::null::<rte_eth_global_cfg__bindgen_ty_1>())).reserved as *const _
17077                as usize
17078        },
17079        0usize,
17080        concat!(
17081            "Offset of field: ",
17082            stringify!(rte_eth_global_cfg__bindgen_ty_1),
17083            "::",
17084            stringify!(reserved)
17085        )
17086    );
17087}
17088impl Default for rte_eth_global_cfg__bindgen_ty_1 {
17089    fn default() -> Self {
17090        unsafe { ::std::mem::zeroed() }
17091    }
17092}
17093#[test]
17094fn bindgen_test_layout_rte_eth_global_cfg() {
17095    assert_eq!(
17096        ::std::mem::size_of::<rte_eth_global_cfg>(),
17097        16usize,
17098        concat!("Size of: ", stringify!(rte_eth_global_cfg))
17099    );
17100    assert_eq!(
17101        ::std::mem::align_of::<rte_eth_global_cfg>(),
17102        8usize,
17103        concat!("Alignment of ", stringify!(rte_eth_global_cfg))
17104    );
17105    assert_eq!(
17106        unsafe { &(*(::std::ptr::null::<rte_eth_global_cfg>())).cfg_type as *const _ as usize },
17107        0usize,
17108        concat!(
17109            "Offset of field: ",
17110            stringify!(rte_eth_global_cfg),
17111            "::",
17112            stringify!(cfg_type)
17113        )
17114    );
17115    assert_eq!(
17116        unsafe { &(*(::std::ptr::null::<rte_eth_global_cfg>())).cfg as *const _ as usize },
17117        8usize,
17118        concat!(
17119            "Offset of field: ",
17120            stringify!(rte_eth_global_cfg),
17121            "::",
17122            stringify!(cfg)
17123        )
17124    );
17125}
17126impl Default for rte_eth_global_cfg {
17127    fn default() -> Self {
17128        unsafe { ::std::mem::zeroed() }
17129    }
17130}
17131pub mod rte_eth_input_set_field {
17132    pub type Type = ::std::os::raw::c_uint;
17133    pub const RTE_ETH_INPUT_SET_UNKNOWN: Type = 0;
17134    pub const RTE_ETH_INPUT_SET_L2_SRC_MAC: Type = 1;
17135    pub const RTE_ETH_INPUT_SET_L2_DST_MAC: Type = 2;
17136    pub const RTE_ETH_INPUT_SET_L2_OUTER_VLAN: Type = 3;
17137    pub const RTE_ETH_INPUT_SET_L2_INNER_VLAN: Type = 4;
17138    pub const RTE_ETH_INPUT_SET_L2_ETHERTYPE: Type = 5;
17139    pub const RTE_ETH_INPUT_SET_L3_SRC_IP4: Type = 129;
17140    pub const RTE_ETH_INPUT_SET_L3_DST_IP4: Type = 130;
17141    pub const RTE_ETH_INPUT_SET_L3_SRC_IP6: Type = 131;
17142    pub const RTE_ETH_INPUT_SET_L3_DST_IP6: Type = 132;
17143    pub const RTE_ETH_INPUT_SET_L3_IP4_TOS: Type = 133;
17144    pub const RTE_ETH_INPUT_SET_L3_IP4_PROTO: Type = 134;
17145    pub const RTE_ETH_INPUT_SET_L3_IP6_TC: Type = 135;
17146    pub const RTE_ETH_INPUT_SET_L3_IP6_NEXT_HEADER: Type = 136;
17147    pub const RTE_ETH_INPUT_SET_L3_IP4_TTL: Type = 137;
17148    pub const RTE_ETH_INPUT_SET_L3_IP6_HOP_LIMITS: Type = 138;
17149    pub const RTE_ETH_INPUT_SET_L4_UDP_SRC_PORT: Type = 257;
17150    pub const RTE_ETH_INPUT_SET_L4_UDP_DST_PORT: Type = 258;
17151    pub const RTE_ETH_INPUT_SET_L4_TCP_SRC_PORT: Type = 259;
17152    pub const RTE_ETH_INPUT_SET_L4_TCP_DST_PORT: Type = 260;
17153    pub const RTE_ETH_INPUT_SET_L4_SCTP_SRC_PORT: Type = 261;
17154    pub const RTE_ETH_INPUT_SET_L4_SCTP_DST_PORT: Type = 262;
17155    pub const RTE_ETH_INPUT_SET_L4_SCTP_VERIFICATION_TAG: Type = 263;
17156    pub const RTE_ETH_INPUT_SET_TUNNEL_L2_INNER_DST_MAC: Type = 385;
17157    pub const RTE_ETH_INPUT_SET_TUNNEL_L2_INNER_SRC_MAC: Type = 386;
17158    pub const RTE_ETH_INPUT_SET_TUNNEL_L2_INNER_VLAN: Type = 387;
17159    pub const RTE_ETH_INPUT_SET_TUNNEL_L4_UDP_KEY: Type = 388;
17160    pub const RTE_ETH_INPUT_SET_TUNNEL_GRE_KEY: Type = 389;
17161    pub const RTE_ETH_INPUT_SET_FLEX_PAYLOAD_1ST_WORD: Type = 641;
17162    pub const RTE_ETH_INPUT_SET_FLEX_PAYLOAD_2ND_WORD: Type = 642;
17163    pub const RTE_ETH_INPUT_SET_FLEX_PAYLOAD_3RD_WORD: Type = 643;
17164    pub const RTE_ETH_INPUT_SET_FLEX_PAYLOAD_4TH_WORD: Type = 644;
17165    pub const RTE_ETH_INPUT_SET_FLEX_PAYLOAD_5TH_WORD: Type = 645;
17166    pub const RTE_ETH_INPUT_SET_FLEX_PAYLOAD_6TH_WORD: Type = 646;
17167    pub const RTE_ETH_INPUT_SET_FLEX_PAYLOAD_7TH_WORD: Type = 647;
17168    pub const RTE_ETH_INPUT_SET_FLEX_PAYLOAD_8TH_WORD: Type = 648;
17169    pub const RTE_ETH_INPUT_SET_DEFAULT: Type = 65533;
17170    pub const RTE_ETH_INPUT_SET_NONE: Type = 65534;
17171    pub const RTE_ETH_INPUT_SET_MAX: Type = 65535;
17172}
17173pub mod rte_filter_input_set_op {
17174    pub type Type = ::std::os::raw::c_uint;
17175    pub const RTE_ETH_INPUT_SET_OP_UNKNOWN: Type = 0;
17176    pub const RTE_ETH_INPUT_SET_SELECT: Type = 1;
17177    pub const RTE_ETH_INPUT_SET_ADD: Type = 2;
17178    pub const RTE_ETH_INPUT_SET_OP_MAX: Type = 3;
17179}
17180#[repr(C)]
17181#[derive(Copy, Clone)]
17182pub struct rte_eth_input_set_conf {
17183    pub flow_type: u16,
17184    pub inset_size: u16,
17185    pub field: [rte_eth_input_set_field::Type; 128usize],
17186    pub op: rte_filter_input_set_op::Type,
17187}
17188#[test]
17189fn bindgen_test_layout_rte_eth_input_set_conf() {
17190    assert_eq!(
17191        ::std::mem::size_of::<rte_eth_input_set_conf>(),
17192        520usize,
17193        concat!("Size of: ", stringify!(rte_eth_input_set_conf))
17194    );
17195    assert_eq!(
17196        ::std::mem::align_of::<rte_eth_input_set_conf>(),
17197        4usize,
17198        concat!("Alignment of ", stringify!(rte_eth_input_set_conf))
17199    );
17200    assert_eq!(
17201        unsafe {
17202            &(*(::std::ptr::null::<rte_eth_input_set_conf>())).flow_type as *const _ as usize
17203        },
17204        0usize,
17205        concat!(
17206            "Offset of field: ",
17207            stringify!(rte_eth_input_set_conf),
17208            "::",
17209            stringify!(flow_type)
17210        )
17211    );
17212    assert_eq!(
17213        unsafe {
17214            &(*(::std::ptr::null::<rte_eth_input_set_conf>())).inset_size as *const _ as usize
17215        },
17216        2usize,
17217        concat!(
17218            "Offset of field: ",
17219            stringify!(rte_eth_input_set_conf),
17220            "::",
17221            stringify!(inset_size)
17222        )
17223    );
17224    assert_eq!(
17225        unsafe { &(*(::std::ptr::null::<rte_eth_input_set_conf>())).field as *const _ as usize },
17226        4usize,
17227        concat!(
17228            "Offset of field: ",
17229            stringify!(rte_eth_input_set_conf),
17230            "::",
17231            stringify!(field)
17232        )
17233    );
17234    assert_eq!(
17235        unsafe { &(*(::std::ptr::null::<rte_eth_input_set_conf>())).op as *const _ as usize },
17236        516usize,
17237        concat!(
17238            "Offset of field: ",
17239            stringify!(rte_eth_input_set_conf),
17240            "::",
17241            stringify!(op)
17242        )
17243    );
17244}
17245impl Default for rte_eth_input_set_conf {
17246    fn default() -> Self {
17247        unsafe { ::std::mem::zeroed() }
17248    }
17249}
17250#[repr(C)]
17251#[derive(Debug, Default, Copy, Clone, PartialEq)]
17252pub struct rte_eth_l2_flow {
17253    pub ether_type: u16,
17254}
17255#[test]
17256fn bindgen_test_layout_rte_eth_l2_flow() {
17257    assert_eq!(
17258        ::std::mem::size_of::<rte_eth_l2_flow>(),
17259        2usize,
17260        concat!("Size of: ", stringify!(rte_eth_l2_flow))
17261    );
17262    assert_eq!(
17263        ::std::mem::align_of::<rte_eth_l2_flow>(),
17264        2usize,
17265        concat!("Alignment of ", stringify!(rte_eth_l2_flow))
17266    );
17267    assert_eq!(
17268        unsafe { &(*(::std::ptr::null::<rte_eth_l2_flow>())).ether_type as *const _ as usize },
17269        0usize,
17270        concat!(
17271            "Offset of field: ",
17272            stringify!(rte_eth_l2_flow),
17273            "::",
17274            stringify!(ether_type)
17275        )
17276    );
17277}
17278#[repr(C)]
17279#[derive(Debug, Default, Copy, Clone, PartialEq)]
17280pub struct rte_eth_ipv4_flow {
17281    pub src_ip: u32,
17282    pub dst_ip: u32,
17283    pub tos: u8,
17284    pub ttl: u8,
17285    pub proto: u8,
17286}
17287#[test]
17288fn bindgen_test_layout_rte_eth_ipv4_flow() {
17289    assert_eq!(
17290        ::std::mem::size_of::<rte_eth_ipv4_flow>(),
17291        12usize,
17292        concat!("Size of: ", stringify!(rte_eth_ipv4_flow))
17293    );
17294    assert_eq!(
17295        ::std::mem::align_of::<rte_eth_ipv4_flow>(),
17296        4usize,
17297        concat!("Alignment of ", stringify!(rte_eth_ipv4_flow))
17298    );
17299    assert_eq!(
17300        unsafe { &(*(::std::ptr::null::<rte_eth_ipv4_flow>())).src_ip as *const _ as usize },
17301        0usize,
17302        concat!(
17303            "Offset of field: ",
17304            stringify!(rte_eth_ipv4_flow),
17305            "::",
17306            stringify!(src_ip)
17307        )
17308    );
17309    assert_eq!(
17310        unsafe { &(*(::std::ptr::null::<rte_eth_ipv4_flow>())).dst_ip as *const _ as usize },
17311        4usize,
17312        concat!(
17313            "Offset of field: ",
17314            stringify!(rte_eth_ipv4_flow),
17315            "::",
17316            stringify!(dst_ip)
17317        )
17318    );
17319    assert_eq!(
17320        unsafe { &(*(::std::ptr::null::<rte_eth_ipv4_flow>())).tos as *const _ as usize },
17321        8usize,
17322        concat!(
17323            "Offset of field: ",
17324            stringify!(rte_eth_ipv4_flow),
17325            "::",
17326            stringify!(tos)
17327        )
17328    );
17329    assert_eq!(
17330        unsafe { &(*(::std::ptr::null::<rte_eth_ipv4_flow>())).ttl as *const _ as usize },
17331        9usize,
17332        concat!(
17333            "Offset of field: ",
17334            stringify!(rte_eth_ipv4_flow),
17335            "::",
17336            stringify!(ttl)
17337        )
17338    );
17339    assert_eq!(
17340        unsafe { &(*(::std::ptr::null::<rte_eth_ipv4_flow>())).proto as *const _ as usize },
17341        10usize,
17342        concat!(
17343            "Offset of field: ",
17344            stringify!(rte_eth_ipv4_flow),
17345            "::",
17346            stringify!(proto)
17347        )
17348    );
17349}
17350#[repr(C)]
17351#[derive(Debug, Default, Copy, Clone, PartialEq)]
17352pub struct rte_eth_udpv4_flow {
17353    pub ip: rte_eth_ipv4_flow,
17354    pub src_port: u16,
17355    pub dst_port: u16,
17356}
17357#[test]
17358fn bindgen_test_layout_rte_eth_udpv4_flow() {
17359    assert_eq!(
17360        ::std::mem::size_of::<rte_eth_udpv4_flow>(),
17361        16usize,
17362        concat!("Size of: ", stringify!(rte_eth_udpv4_flow))
17363    );
17364    assert_eq!(
17365        ::std::mem::align_of::<rte_eth_udpv4_flow>(),
17366        4usize,
17367        concat!("Alignment of ", stringify!(rte_eth_udpv4_flow))
17368    );
17369    assert_eq!(
17370        unsafe { &(*(::std::ptr::null::<rte_eth_udpv4_flow>())).ip as *const _ as usize },
17371        0usize,
17372        concat!(
17373            "Offset of field: ",
17374            stringify!(rte_eth_udpv4_flow),
17375            "::",
17376            stringify!(ip)
17377        )
17378    );
17379    assert_eq!(
17380        unsafe { &(*(::std::ptr::null::<rte_eth_udpv4_flow>())).src_port as *const _ as usize },
17381        12usize,
17382        concat!(
17383            "Offset of field: ",
17384            stringify!(rte_eth_udpv4_flow),
17385            "::",
17386            stringify!(src_port)
17387        )
17388    );
17389    assert_eq!(
17390        unsafe { &(*(::std::ptr::null::<rte_eth_udpv4_flow>())).dst_port as *const _ as usize },
17391        14usize,
17392        concat!(
17393            "Offset of field: ",
17394            stringify!(rte_eth_udpv4_flow),
17395            "::",
17396            stringify!(dst_port)
17397        )
17398    );
17399}
17400#[repr(C)]
17401#[derive(Debug, Default, Copy, Clone, PartialEq)]
17402pub struct rte_eth_tcpv4_flow {
17403    pub ip: rte_eth_ipv4_flow,
17404    pub src_port: u16,
17405    pub dst_port: u16,
17406}
17407#[test]
17408fn bindgen_test_layout_rte_eth_tcpv4_flow() {
17409    assert_eq!(
17410        ::std::mem::size_of::<rte_eth_tcpv4_flow>(),
17411        16usize,
17412        concat!("Size of: ", stringify!(rte_eth_tcpv4_flow))
17413    );
17414    assert_eq!(
17415        ::std::mem::align_of::<rte_eth_tcpv4_flow>(),
17416        4usize,
17417        concat!("Alignment of ", stringify!(rte_eth_tcpv4_flow))
17418    );
17419    assert_eq!(
17420        unsafe { &(*(::std::ptr::null::<rte_eth_tcpv4_flow>())).ip as *const _ as usize },
17421        0usize,
17422        concat!(
17423            "Offset of field: ",
17424            stringify!(rte_eth_tcpv4_flow),
17425            "::",
17426            stringify!(ip)
17427        )
17428    );
17429    assert_eq!(
17430        unsafe { &(*(::std::ptr::null::<rte_eth_tcpv4_flow>())).src_port as *const _ as usize },
17431        12usize,
17432        concat!(
17433            "Offset of field: ",
17434            stringify!(rte_eth_tcpv4_flow),
17435            "::",
17436            stringify!(src_port)
17437        )
17438    );
17439    assert_eq!(
17440        unsafe { &(*(::std::ptr::null::<rte_eth_tcpv4_flow>())).dst_port as *const _ as usize },
17441        14usize,
17442        concat!(
17443            "Offset of field: ",
17444            stringify!(rte_eth_tcpv4_flow),
17445            "::",
17446            stringify!(dst_port)
17447        )
17448    );
17449}
17450#[repr(C)]
17451#[derive(Debug, Default, Copy, Clone, PartialEq)]
17452pub struct rte_eth_sctpv4_flow {
17453    pub ip: rte_eth_ipv4_flow,
17454    pub src_port: u16,
17455    pub dst_port: u16,
17456    pub verify_tag: u32,
17457}
17458#[test]
17459fn bindgen_test_layout_rte_eth_sctpv4_flow() {
17460    assert_eq!(
17461        ::std::mem::size_of::<rte_eth_sctpv4_flow>(),
17462        20usize,
17463        concat!("Size of: ", stringify!(rte_eth_sctpv4_flow))
17464    );
17465    assert_eq!(
17466        ::std::mem::align_of::<rte_eth_sctpv4_flow>(),
17467        4usize,
17468        concat!("Alignment of ", stringify!(rte_eth_sctpv4_flow))
17469    );
17470    assert_eq!(
17471        unsafe { &(*(::std::ptr::null::<rte_eth_sctpv4_flow>())).ip as *const _ as usize },
17472        0usize,
17473        concat!(
17474            "Offset of field: ",
17475            stringify!(rte_eth_sctpv4_flow),
17476            "::",
17477            stringify!(ip)
17478        )
17479    );
17480    assert_eq!(
17481        unsafe { &(*(::std::ptr::null::<rte_eth_sctpv4_flow>())).src_port as *const _ as usize },
17482        12usize,
17483        concat!(
17484            "Offset of field: ",
17485            stringify!(rte_eth_sctpv4_flow),
17486            "::",
17487            stringify!(src_port)
17488        )
17489    );
17490    assert_eq!(
17491        unsafe { &(*(::std::ptr::null::<rte_eth_sctpv4_flow>())).dst_port as *const _ as usize },
17492        14usize,
17493        concat!(
17494            "Offset of field: ",
17495            stringify!(rte_eth_sctpv4_flow),
17496            "::",
17497            stringify!(dst_port)
17498        )
17499    );
17500    assert_eq!(
17501        unsafe { &(*(::std::ptr::null::<rte_eth_sctpv4_flow>())).verify_tag as *const _ as usize },
17502        16usize,
17503        concat!(
17504            "Offset of field: ",
17505            stringify!(rte_eth_sctpv4_flow),
17506            "::",
17507            stringify!(verify_tag)
17508        )
17509    );
17510}
17511#[repr(C)]
17512#[derive(Debug, Default, Copy, Clone, PartialEq)]
17513pub struct rte_eth_ipv6_flow {
17514    pub src_ip: [u32; 4usize],
17515    pub dst_ip: [u32; 4usize],
17516    pub tc: u8,
17517    pub proto: u8,
17518    pub hop_limits: u8,
17519}
17520#[test]
17521fn bindgen_test_layout_rte_eth_ipv6_flow() {
17522    assert_eq!(
17523        ::std::mem::size_of::<rte_eth_ipv6_flow>(),
17524        36usize,
17525        concat!("Size of: ", stringify!(rte_eth_ipv6_flow))
17526    );
17527    assert_eq!(
17528        ::std::mem::align_of::<rte_eth_ipv6_flow>(),
17529        4usize,
17530        concat!("Alignment of ", stringify!(rte_eth_ipv6_flow))
17531    );
17532    assert_eq!(
17533        unsafe { &(*(::std::ptr::null::<rte_eth_ipv6_flow>())).src_ip as *const _ as usize },
17534        0usize,
17535        concat!(
17536            "Offset of field: ",
17537            stringify!(rte_eth_ipv6_flow),
17538            "::",
17539            stringify!(src_ip)
17540        )
17541    );
17542    assert_eq!(
17543        unsafe { &(*(::std::ptr::null::<rte_eth_ipv6_flow>())).dst_ip as *const _ as usize },
17544        16usize,
17545        concat!(
17546            "Offset of field: ",
17547            stringify!(rte_eth_ipv6_flow),
17548            "::",
17549            stringify!(dst_ip)
17550        )
17551    );
17552    assert_eq!(
17553        unsafe { &(*(::std::ptr::null::<rte_eth_ipv6_flow>())).tc as *const _ as usize },
17554        32usize,
17555        concat!(
17556            "Offset of field: ",
17557            stringify!(rte_eth_ipv6_flow),
17558            "::",
17559            stringify!(tc)
17560        )
17561    );
17562    assert_eq!(
17563        unsafe { &(*(::std::ptr::null::<rte_eth_ipv6_flow>())).proto as *const _ as usize },
17564        33usize,
17565        concat!(
17566            "Offset of field: ",
17567            stringify!(rte_eth_ipv6_flow),
17568            "::",
17569            stringify!(proto)
17570        )
17571    );
17572    assert_eq!(
17573        unsafe { &(*(::std::ptr::null::<rte_eth_ipv6_flow>())).hop_limits as *const _ as usize },
17574        34usize,
17575        concat!(
17576            "Offset of field: ",
17577            stringify!(rte_eth_ipv6_flow),
17578            "::",
17579            stringify!(hop_limits)
17580        )
17581    );
17582}
17583#[repr(C)]
17584#[derive(Debug, Default, Copy, Clone, PartialEq)]
17585pub struct rte_eth_udpv6_flow {
17586    pub ip: rte_eth_ipv6_flow,
17587    pub src_port: u16,
17588    pub dst_port: u16,
17589}
17590#[test]
17591fn bindgen_test_layout_rte_eth_udpv6_flow() {
17592    assert_eq!(
17593        ::std::mem::size_of::<rte_eth_udpv6_flow>(),
17594        40usize,
17595        concat!("Size of: ", stringify!(rte_eth_udpv6_flow))
17596    );
17597    assert_eq!(
17598        ::std::mem::align_of::<rte_eth_udpv6_flow>(),
17599        4usize,
17600        concat!("Alignment of ", stringify!(rte_eth_udpv6_flow))
17601    );
17602    assert_eq!(
17603        unsafe { &(*(::std::ptr::null::<rte_eth_udpv6_flow>())).ip as *const _ as usize },
17604        0usize,
17605        concat!(
17606            "Offset of field: ",
17607            stringify!(rte_eth_udpv6_flow),
17608            "::",
17609            stringify!(ip)
17610        )
17611    );
17612    assert_eq!(
17613        unsafe { &(*(::std::ptr::null::<rte_eth_udpv6_flow>())).src_port as *const _ as usize },
17614        36usize,
17615        concat!(
17616            "Offset of field: ",
17617            stringify!(rte_eth_udpv6_flow),
17618            "::",
17619            stringify!(src_port)
17620        )
17621    );
17622    assert_eq!(
17623        unsafe { &(*(::std::ptr::null::<rte_eth_udpv6_flow>())).dst_port as *const _ as usize },
17624        38usize,
17625        concat!(
17626            "Offset of field: ",
17627            stringify!(rte_eth_udpv6_flow),
17628            "::",
17629            stringify!(dst_port)
17630        )
17631    );
17632}
17633#[repr(C)]
17634#[derive(Debug, Default, Copy, Clone, PartialEq)]
17635pub struct rte_eth_tcpv6_flow {
17636    pub ip: rte_eth_ipv6_flow,
17637    pub src_port: u16,
17638    pub dst_port: u16,
17639}
17640#[test]
17641fn bindgen_test_layout_rte_eth_tcpv6_flow() {
17642    assert_eq!(
17643        ::std::mem::size_of::<rte_eth_tcpv6_flow>(),
17644        40usize,
17645        concat!("Size of: ", stringify!(rte_eth_tcpv6_flow))
17646    );
17647    assert_eq!(
17648        ::std::mem::align_of::<rte_eth_tcpv6_flow>(),
17649        4usize,
17650        concat!("Alignment of ", stringify!(rte_eth_tcpv6_flow))
17651    );
17652    assert_eq!(
17653        unsafe { &(*(::std::ptr::null::<rte_eth_tcpv6_flow>())).ip as *const _ as usize },
17654        0usize,
17655        concat!(
17656            "Offset of field: ",
17657            stringify!(rte_eth_tcpv6_flow),
17658            "::",
17659            stringify!(ip)
17660        )
17661    );
17662    assert_eq!(
17663        unsafe { &(*(::std::ptr::null::<rte_eth_tcpv6_flow>())).src_port as *const _ as usize },
17664        36usize,
17665        concat!(
17666            "Offset of field: ",
17667            stringify!(rte_eth_tcpv6_flow),
17668            "::",
17669            stringify!(src_port)
17670        )
17671    );
17672    assert_eq!(
17673        unsafe { &(*(::std::ptr::null::<rte_eth_tcpv6_flow>())).dst_port as *const _ as usize },
17674        38usize,
17675        concat!(
17676            "Offset of field: ",
17677            stringify!(rte_eth_tcpv6_flow),
17678            "::",
17679            stringify!(dst_port)
17680        )
17681    );
17682}
17683#[repr(C)]
17684#[derive(Debug, Default, Copy, Clone, PartialEq)]
17685pub struct rte_eth_sctpv6_flow {
17686    pub ip: rte_eth_ipv6_flow,
17687    pub src_port: u16,
17688    pub dst_port: u16,
17689    pub verify_tag: u32,
17690}
17691#[test]
17692fn bindgen_test_layout_rte_eth_sctpv6_flow() {
17693    assert_eq!(
17694        ::std::mem::size_of::<rte_eth_sctpv6_flow>(),
17695        44usize,
17696        concat!("Size of: ", stringify!(rte_eth_sctpv6_flow))
17697    );
17698    assert_eq!(
17699        ::std::mem::align_of::<rte_eth_sctpv6_flow>(),
17700        4usize,
17701        concat!("Alignment of ", stringify!(rte_eth_sctpv6_flow))
17702    );
17703    assert_eq!(
17704        unsafe { &(*(::std::ptr::null::<rte_eth_sctpv6_flow>())).ip as *const _ as usize },
17705        0usize,
17706        concat!(
17707            "Offset of field: ",
17708            stringify!(rte_eth_sctpv6_flow),
17709            "::",
17710            stringify!(ip)
17711        )
17712    );
17713    assert_eq!(
17714        unsafe { &(*(::std::ptr::null::<rte_eth_sctpv6_flow>())).src_port as *const _ as usize },
17715        36usize,
17716        concat!(
17717            "Offset of field: ",
17718            stringify!(rte_eth_sctpv6_flow),
17719            "::",
17720            stringify!(src_port)
17721        )
17722    );
17723    assert_eq!(
17724        unsafe { &(*(::std::ptr::null::<rte_eth_sctpv6_flow>())).dst_port as *const _ as usize },
17725        38usize,
17726        concat!(
17727            "Offset of field: ",
17728            stringify!(rte_eth_sctpv6_flow),
17729            "::",
17730            stringify!(dst_port)
17731        )
17732    );
17733    assert_eq!(
17734        unsafe { &(*(::std::ptr::null::<rte_eth_sctpv6_flow>())).verify_tag as *const _ as usize },
17735        40usize,
17736        concat!(
17737            "Offset of field: ",
17738            stringify!(rte_eth_sctpv6_flow),
17739            "::",
17740            stringify!(verify_tag)
17741        )
17742    );
17743}
17744#[repr(C)]
17745#[derive(Debug, Default, Copy, Clone, PartialEq)]
17746pub struct rte_eth_mac_vlan_flow {
17747    pub mac_addr: rte_ether_addr,
17748}
17749#[test]
17750fn bindgen_test_layout_rte_eth_mac_vlan_flow() {
17751    assert_eq!(
17752        ::std::mem::size_of::<rte_eth_mac_vlan_flow>(),
17753        6usize,
17754        concat!("Size of: ", stringify!(rte_eth_mac_vlan_flow))
17755    );
17756    assert_eq!(
17757        ::std::mem::align_of::<rte_eth_mac_vlan_flow>(),
17758        2usize,
17759        concat!("Alignment of ", stringify!(rte_eth_mac_vlan_flow))
17760    );
17761    assert_eq!(
17762        unsafe { &(*(::std::ptr::null::<rte_eth_mac_vlan_flow>())).mac_addr as *const _ as usize },
17763        0usize,
17764        concat!(
17765            "Offset of field: ",
17766            stringify!(rte_eth_mac_vlan_flow),
17767            "::",
17768            stringify!(mac_addr)
17769        )
17770    );
17771}
17772pub mod rte_eth_fdir_tunnel_type {
17773    pub type Type = ::std::os::raw::c_uint;
17774    pub const RTE_FDIR_TUNNEL_TYPE_UNKNOWN: Type = 0;
17775    pub const RTE_FDIR_TUNNEL_TYPE_NVGRE: Type = 1;
17776    pub const RTE_FDIR_TUNNEL_TYPE_VXLAN: Type = 2;
17777}
17778#[repr(C)]
17779#[derive(Debug, Copy, Clone, PartialEq)]
17780pub struct rte_eth_tunnel_flow {
17781    pub tunnel_type: rte_eth_fdir_tunnel_type::Type,
17782    pub tunnel_id: u32,
17783    pub mac_addr: rte_ether_addr,
17784}
17785#[test]
17786fn bindgen_test_layout_rte_eth_tunnel_flow() {
17787    assert_eq!(
17788        ::std::mem::size_of::<rte_eth_tunnel_flow>(),
17789        16usize,
17790        concat!("Size of: ", stringify!(rte_eth_tunnel_flow))
17791    );
17792    assert_eq!(
17793        ::std::mem::align_of::<rte_eth_tunnel_flow>(),
17794        4usize,
17795        concat!("Alignment of ", stringify!(rte_eth_tunnel_flow))
17796    );
17797    assert_eq!(
17798        unsafe { &(*(::std::ptr::null::<rte_eth_tunnel_flow>())).tunnel_type as *const _ as usize },
17799        0usize,
17800        concat!(
17801            "Offset of field: ",
17802            stringify!(rte_eth_tunnel_flow),
17803            "::",
17804            stringify!(tunnel_type)
17805        )
17806    );
17807    assert_eq!(
17808        unsafe { &(*(::std::ptr::null::<rte_eth_tunnel_flow>())).tunnel_id as *const _ as usize },
17809        4usize,
17810        concat!(
17811            "Offset of field: ",
17812            stringify!(rte_eth_tunnel_flow),
17813            "::",
17814            stringify!(tunnel_id)
17815        )
17816    );
17817    assert_eq!(
17818        unsafe { &(*(::std::ptr::null::<rte_eth_tunnel_flow>())).mac_addr as *const _ as usize },
17819        8usize,
17820        concat!(
17821            "Offset of field: ",
17822            stringify!(rte_eth_tunnel_flow),
17823            "::",
17824            stringify!(mac_addr)
17825        )
17826    );
17827}
17828impl Default for rte_eth_tunnel_flow {
17829    fn default() -> Self {
17830        unsafe { ::std::mem::zeroed() }
17831    }
17832}
17833#[repr(C)]
17834#[derive(Copy, Clone)]
17835pub union rte_eth_fdir_flow {
17836    pub l2_flow: rte_eth_l2_flow,
17837    pub udp4_flow: rte_eth_udpv4_flow,
17838    pub tcp4_flow: rte_eth_tcpv4_flow,
17839    pub sctp4_flow: rte_eth_sctpv4_flow,
17840    pub ip4_flow: rte_eth_ipv4_flow,
17841    pub udp6_flow: rte_eth_udpv6_flow,
17842    pub tcp6_flow: rte_eth_tcpv6_flow,
17843    pub sctp6_flow: rte_eth_sctpv6_flow,
17844    pub ipv6_flow: rte_eth_ipv6_flow,
17845    pub mac_vlan_flow: rte_eth_mac_vlan_flow,
17846    pub tunnel_flow: rte_eth_tunnel_flow,
17847    _bindgen_union_align: [u32; 11usize],
17848}
17849#[test]
17850fn bindgen_test_layout_rte_eth_fdir_flow() {
17851    assert_eq!(
17852        ::std::mem::size_of::<rte_eth_fdir_flow>(),
17853        44usize,
17854        concat!("Size of: ", stringify!(rte_eth_fdir_flow))
17855    );
17856    assert_eq!(
17857        ::std::mem::align_of::<rte_eth_fdir_flow>(),
17858        4usize,
17859        concat!("Alignment of ", stringify!(rte_eth_fdir_flow))
17860    );
17861    assert_eq!(
17862        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).l2_flow as *const _ as usize },
17863        0usize,
17864        concat!(
17865            "Offset of field: ",
17866            stringify!(rte_eth_fdir_flow),
17867            "::",
17868            stringify!(l2_flow)
17869        )
17870    );
17871    assert_eq!(
17872        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).udp4_flow as *const _ as usize },
17873        0usize,
17874        concat!(
17875            "Offset of field: ",
17876            stringify!(rte_eth_fdir_flow),
17877            "::",
17878            stringify!(udp4_flow)
17879        )
17880    );
17881    assert_eq!(
17882        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).tcp4_flow as *const _ as usize },
17883        0usize,
17884        concat!(
17885            "Offset of field: ",
17886            stringify!(rte_eth_fdir_flow),
17887            "::",
17888            stringify!(tcp4_flow)
17889        )
17890    );
17891    assert_eq!(
17892        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).sctp4_flow as *const _ as usize },
17893        0usize,
17894        concat!(
17895            "Offset of field: ",
17896            stringify!(rte_eth_fdir_flow),
17897            "::",
17898            stringify!(sctp4_flow)
17899        )
17900    );
17901    assert_eq!(
17902        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).ip4_flow as *const _ as usize },
17903        0usize,
17904        concat!(
17905            "Offset of field: ",
17906            stringify!(rte_eth_fdir_flow),
17907            "::",
17908            stringify!(ip4_flow)
17909        )
17910    );
17911    assert_eq!(
17912        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).udp6_flow as *const _ as usize },
17913        0usize,
17914        concat!(
17915            "Offset of field: ",
17916            stringify!(rte_eth_fdir_flow),
17917            "::",
17918            stringify!(udp6_flow)
17919        )
17920    );
17921    assert_eq!(
17922        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).tcp6_flow as *const _ as usize },
17923        0usize,
17924        concat!(
17925            "Offset of field: ",
17926            stringify!(rte_eth_fdir_flow),
17927            "::",
17928            stringify!(tcp6_flow)
17929        )
17930    );
17931    assert_eq!(
17932        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).sctp6_flow as *const _ as usize },
17933        0usize,
17934        concat!(
17935            "Offset of field: ",
17936            stringify!(rte_eth_fdir_flow),
17937            "::",
17938            stringify!(sctp6_flow)
17939        )
17940    );
17941    assert_eq!(
17942        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).ipv6_flow as *const _ as usize },
17943        0usize,
17944        concat!(
17945            "Offset of field: ",
17946            stringify!(rte_eth_fdir_flow),
17947            "::",
17948            stringify!(ipv6_flow)
17949        )
17950    );
17951    assert_eq!(
17952        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).mac_vlan_flow as *const _ as usize },
17953        0usize,
17954        concat!(
17955            "Offset of field: ",
17956            stringify!(rte_eth_fdir_flow),
17957            "::",
17958            stringify!(mac_vlan_flow)
17959        )
17960    );
17961    assert_eq!(
17962        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow>())).tunnel_flow as *const _ as usize },
17963        0usize,
17964        concat!(
17965            "Offset of field: ",
17966            stringify!(rte_eth_fdir_flow),
17967            "::",
17968            stringify!(tunnel_flow)
17969        )
17970    );
17971}
17972impl Default for rte_eth_fdir_flow {
17973    fn default() -> Self {
17974        unsafe { ::std::mem::zeroed() }
17975    }
17976}
17977#[repr(C)]
17978#[derive(Debug, Default, Copy, Clone, PartialEq)]
17979pub struct rte_eth_fdir_flow_ext {
17980    pub vlan_tci: u16,
17981    pub flexbytes: [u8; 16usize],
17982    pub is_vf: u8,
17983    pub dst_id: u16,
17984}
17985#[test]
17986fn bindgen_test_layout_rte_eth_fdir_flow_ext() {
17987    assert_eq!(
17988        ::std::mem::size_of::<rte_eth_fdir_flow_ext>(),
17989        22usize,
17990        concat!("Size of: ", stringify!(rte_eth_fdir_flow_ext))
17991    );
17992    assert_eq!(
17993        ::std::mem::align_of::<rte_eth_fdir_flow_ext>(),
17994        2usize,
17995        concat!("Alignment of ", stringify!(rte_eth_fdir_flow_ext))
17996    );
17997    assert_eq!(
17998        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow_ext>())).vlan_tci as *const _ as usize },
17999        0usize,
18000        concat!(
18001            "Offset of field: ",
18002            stringify!(rte_eth_fdir_flow_ext),
18003            "::",
18004            stringify!(vlan_tci)
18005        )
18006    );
18007    assert_eq!(
18008        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow_ext>())).flexbytes as *const _ as usize },
18009        2usize,
18010        concat!(
18011            "Offset of field: ",
18012            stringify!(rte_eth_fdir_flow_ext),
18013            "::",
18014            stringify!(flexbytes)
18015        )
18016    );
18017    assert_eq!(
18018        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow_ext>())).is_vf as *const _ as usize },
18019        18usize,
18020        concat!(
18021            "Offset of field: ",
18022            stringify!(rte_eth_fdir_flow_ext),
18023            "::",
18024            stringify!(is_vf)
18025        )
18026    );
18027    assert_eq!(
18028        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flow_ext>())).dst_id as *const _ as usize },
18029        20usize,
18030        concat!(
18031            "Offset of field: ",
18032            stringify!(rte_eth_fdir_flow_ext),
18033            "::",
18034            stringify!(dst_id)
18035        )
18036    );
18037}
18038#[repr(C)]
18039#[derive(Copy, Clone)]
18040pub struct rte_eth_fdir_input {
18041    pub flow_type: u16,
18042    pub flow: rte_eth_fdir_flow,
18043    pub flow_ext: rte_eth_fdir_flow_ext,
18044}
18045#[test]
18046fn bindgen_test_layout_rte_eth_fdir_input() {
18047    assert_eq!(
18048        ::std::mem::size_of::<rte_eth_fdir_input>(),
18049        72usize,
18050        concat!("Size of: ", stringify!(rte_eth_fdir_input))
18051    );
18052    assert_eq!(
18053        ::std::mem::align_of::<rte_eth_fdir_input>(),
18054        4usize,
18055        concat!("Alignment of ", stringify!(rte_eth_fdir_input))
18056    );
18057    assert_eq!(
18058        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_input>())).flow_type as *const _ as usize },
18059        0usize,
18060        concat!(
18061            "Offset of field: ",
18062            stringify!(rte_eth_fdir_input),
18063            "::",
18064            stringify!(flow_type)
18065        )
18066    );
18067    assert_eq!(
18068        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_input>())).flow as *const _ as usize },
18069        4usize,
18070        concat!(
18071            "Offset of field: ",
18072            stringify!(rte_eth_fdir_input),
18073            "::",
18074            stringify!(flow)
18075        )
18076    );
18077    assert_eq!(
18078        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_input>())).flow_ext as *const _ as usize },
18079        48usize,
18080        concat!(
18081            "Offset of field: ",
18082            stringify!(rte_eth_fdir_input),
18083            "::",
18084            stringify!(flow_ext)
18085        )
18086    );
18087}
18088impl Default for rte_eth_fdir_input {
18089    fn default() -> Self {
18090        unsafe { ::std::mem::zeroed() }
18091    }
18092}
18093pub mod rte_eth_fdir_behavior {
18094    pub type Type = ::std::os::raw::c_uint;
18095    pub const RTE_ETH_FDIR_ACCEPT: Type = 0;
18096    pub const RTE_ETH_FDIR_REJECT: Type = 1;
18097    pub const RTE_ETH_FDIR_PASSTHRU: Type = 2;
18098}
18099pub mod rte_eth_fdir_status {
18100    pub type Type = ::std::os::raw::c_uint;
18101    pub const RTE_ETH_FDIR_NO_REPORT_STATUS: Type = 0;
18102    pub const RTE_ETH_FDIR_REPORT_ID: Type = 1;
18103    pub const RTE_ETH_FDIR_REPORT_ID_FLEX_4: Type = 2;
18104    pub const RTE_ETH_FDIR_REPORT_FLEX_8: Type = 3;
18105}
18106#[repr(C)]
18107#[derive(Debug, Copy, Clone, PartialEq)]
18108pub struct rte_eth_fdir_action {
18109    pub rx_queue: u16,
18110    pub behavior: rte_eth_fdir_behavior::Type,
18111    pub report_status: rte_eth_fdir_status::Type,
18112    pub flex_off: u8,
18113}
18114#[test]
18115fn bindgen_test_layout_rte_eth_fdir_action() {
18116    assert_eq!(
18117        ::std::mem::size_of::<rte_eth_fdir_action>(),
18118        16usize,
18119        concat!("Size of: ", stringify!(rte_eth_fdir_action))
18120    );
18121    assert_eq!(
18122        ::std::mem::align_of::<rte_eth_fdir_action>(),
18123        4usize,
18124        concat!("Alignment of ", stringify!(rte_eth_fdir_action))
18125    );
18126    assert_eq!(
18127        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_action>())).rx_queue as *const _ as usize },
18128        0usize,
18129        concat!(
18130            "Offset of field: ",
18131            stringify!(rte_eth_fdir_action),
18132            "::",
18133            stringify!(rx_queue)
18134        )
18135    );
18136    assert_eq!(
18137        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_action>())).behavior as *const _ as usize },
18138        4usize,
18139        concat!(
18140            "Offset of field: ",
18141            stringify!(rte_eth_fdir_action),
18142            "::",
18143            stringify!(behavior)
18144        )
18145    );
18146    assert_eq!(
18147        unsafe {
18148            &(*(::std::ptr::null::<rte_eth_fdir_action>())).report_status as *const _ as usize
18149        },
18150        8usize,
18151        concat!(
18152            "Offset of field: ",
18153            stringify!(rte_eth_fdir_action),
18154            "::",
18155            stringify!(report_status)
18156        )
18157    );
18158    assert_eq!(
18159        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_action>())).flex_off as *const _ as usize },
18160        12usize,
18161        concat!(
18162            "Offset of field: ",
18163            stringify!(rte_eth_fdir_action),
18164            "::",
18165            stringify!(flex_off)
18166        )
18167    );
18168}
18169impl Default for rte_eth_fdir_action {
18170    fn default() -> Self {
18171        unsafe { ::std::mem::zeroed() }
18172    }
18173}
18174#[repr(C)]
18175#[derive(Copy, Clone)]
18176pub struct rte_eth_fdir_filter {
18177    pub soft_id: u32,
18178    pub input: rte_eth_fdir_input,
18179    pub action: rte_eth_fdir_action,
18180}
18181#[test]
18182fn bindgen_test_layout_rte_eth_fdir_filter() {
18183    assert_eq!(
18184        ::std::mem::size_of::<rte_eth_fdir_filter>(),
18185        92usize,
18186        concat!("Size of: ", stringify!(rte_eth_fdir_filter))
18187    );
18188    assert_eq!(
18189        ::std::mem::align_of::<rte_eth_fdir_filter>(),
18190        4usize,
18191        concat!("Alignment of ", stringify!(rte_eth_fdir_filter))
18192    );
18193    assert_eq!(
18194        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_filter>())).soft_id as *const _ as usize },
18195        0usize,
18196        concat!(
18197            "Offset of field: ",
18198            stringify!(rte_eth_fdir_filter),
18199            "::",
18200            stringify!(soft_id)
18201        )
18202    );
18203    assert_eq!(
18204        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_filter>())).input as *const _ as usize },
18205        4usize,
18206        concat!(
18207            "Offset of field: ",
18208            stringify!(rte_eth_fdir_filter),
18209            "::",
18210            stringify!(input)
18211        )
18212    );
18213    assert_eq!(
18214        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_filter>())).action as *const _ as usize },
18215        76usize,
18216        concat!(
18217            "Offset of field: ",
18218            stringify!(rte_eth_fdir_filter),
18219            "::",
18220            stringify!(action)
18221        )
18222    );
18223}
18224impl Default for rte_eth_fdir_filter {
18225    fn default() -> Self {
18226        unsafe { ::std::mem::zeroed() }
18227    }
18228}
18229#[repr(C)]
18230#[derive(Debug, Default, Copy, Clone, PartialEq)]
18231pub struct rte_eth_fdir_masks {
18232    pub vlan_tci_mask: u16,
18233    pub ipv4_mask: rte_eth_ipv4_flow,
18234    pub ipv6_mask: rte_eth_ipv6_flow,
18235    pub src_port_mask: u16,
18236    pub dst_port_mask: u16,
18237    pub mac_addr_byte_mask: u8,
18238    pub tunnel_id_mask: u32,
18239    pub tunnel_type_mask: u8,
18240}
18241#[test]
18242fn bindgen_test_layout_rte_eth_fdir_masks() {
18243    assert_eq!(
18244        ::std::mem::size_of::<rte_eth_fdir_masks>(),
18245        68usize,
18246        concat!("Size of: ", stringify!(rte_eth_fdir_masks))
18247    );
18248    assert_eq!(
18249        ::std::mem::align_of::<rte_eth_fdir_masks>(),
18250        4usize,
18251        concat!("Alignment of ", stringify!(rte_eth_fdir_masks))
18252    );
18253    assert_eq!(
18254        unsafe {
18255            &(*(::std::ptr::null::<rte_eth_fdir_masks>())).vlan_tci_mask as *const _ as usize
18256        },
18257        0usize,
18258        concat!(
18259            "Offset of field: ",
18260            stringify!(rte_eth_fdir_masks),
18261            "::",
18262            stringify!(vlan_tci_mask)
18263        )
18264    );
18265    assert_eq!(
18266        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_masks>())).ipv4_mask as *const _ as usize },
18267        4usize,
18268        concat!(
18269            "Offset of field: ",
18270            stringify!(rte_eth_fdir_masks),
18271            "::",
18272            stringify!(ipv4_mask)
18273        )
18274    );
18275    assert_eq!(
18276        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_masks>())).ipv6_mask as *const _ as usize },
18277        16usize,
18278        concat!(
18279            "Offset of field: ",
18280            stringify!(rte_eth_fdir_masks),
18281            "::",
18282            stringify!(ipv6_mask)
18283        )
18284    );
18285    assert_eq!(
18286        unsafe {
18287            &(*(::std::ptr::null::<rte_eth_fdir_masks>())).src_port_mask as *const _ as usize
18288        },
18289        52usize,
18290        concat!(
18291            "Offset of field: ",
18292            stringify!(rte_eth_fdir_masks),
18293            "::",
18294            stringify!(src_port_mask)
18295        )
18296    );
18297    assert_eq!(
18298        unsafe {
18299            &(*(::std::ptr::null::<rte_eth_fdir_masks>())).dst_port_mask as *const _ as usize
18300        },
18301        54usize,
18302        concat!(
18303            "Offset of field: ",
18304            stringify!(rte_eth_fdir_masks),
18305            "::",
18306            stringify!(dst_port_mask)
18307        )
18308    );
18309    assert_eq!(
18310        unsafe {
18311            &(*(::std::ptr::null::<rte_eth_fdir_masks>())).mac_addr_byte_mask as *const _ as usize
18312        },
18313        56usize,
18314        concat!(
18315            "Offset of field: ",
18316            stringify!(rte_eth_fdir_masks),
18317            "::",
18318            stringify!(mac_addr_byte_mask)
18319        )
18320    );
18321    assert_eq!(
18322        unsafe {
18323            &(*(::std::ptr::null::<rte_eth_fdir_masks>())).tunnel_id_mask as *const _ as usize
18324        },
18325        60usize,
18326        concat!(
18327            "Offset of field: ",
18328            stringify!(rte_eth_fdir_masks),
18329            "::",
18330            stringify!(tunnel_id_mask)
18331        )
18332    );
18333    assert_eq!(
18334        unsafe {
18335            &(*(::std::ptr::null::<rte_eth_fdir_masks>())).tunnel_type_mask as *const _ as usize
18336        },
18337        64usize,
18338        concat!(
18339            "Offset of field: ",
18340            stringify!(rte_eth_fdir_masks),
18341            "::",
18342            stringify!(tunnel_type_mask)
18343        )
18344    );
18345}
18346pub mod rte_eth_payload_type {
18347    pub type Type = ::std::os::raw::c_uint;
18348    pub const RTE_ETH_PAYLOAD_UNKNOWN: Type = 0;
18349    pub const RTE_ETH_RAW_PAYLOAD: Type = 1;
18350    pub const RTE_ETH_L2_PAYLOAD: Type = 2;
18351    pub const RTE_ETH_L3_PAYLOAD: Type = 3;
18352    pub const RTE_ETH_L4_PAYLOAD: Type = 4;
18353    pub const RTE_ETH_PAYLOAD_MAX: Type = 8;
18354}
18355#[repr(C)]
18356#[derive(Debug, Copy, Clone, PartialEq)]
18357pub struct rte_eth_flex_payload_cfg {
18358    pub type_: rte_eth_payload_type::Type,
18359    pub src_offset: [u16; 16usize],
18360}
18361#[test]
18362fn bindgen_test_layout_rte_eth_flex_payload_cfg() {
18363    assert_eq!(
18364        ::std::mem::size_of::<rte_eth_flex_payload_cfg>(),
18365        36usize,
18366        concat!("Size of: ", stringify!(rte_eth_flex_payload_cfg))
18367    );
18368    assert_eq!(
18369        ::std::mem::align_of::<rte_eth_flex_payload_cfg>(),
18370        4usize,
18371        concat!("Alignment of ", stringify!(rte_eth_flex_payload_cfg))
18372    );
18373    assert_eq!(
18374        unsafe { &(*(::std::ptr::null::<rte_eth_flex_payload_cfg>())).type_ as *const _ as usize },
18375        0usize,
18376        concat!(
18377            "Offset of field: ",
18378            stringify!(rte_eth_flex_payload_cfg),
18379            "::",
18380            stringify!(type_)
18381        )
18382    );
18383    assert_eq!(
18384        unsafe {
18385            &(*(::std::ptr::null::<rte_eth_flex_payload_cfg>())).src_offset as *const _ as usize
18386        },
18387        4usize,
18388        concat!(
18389            "Offset of field: ",
18390            stringify!(rte_eth_flex_payload_cfg),
18391            "::",
18392            stringify!(src_offset)
18393        )
18394    );
18395}
18396impl Default for rte_eth_flex_payload_cfg {
18397    fn default() -> Self {
18398        unsafe { ::std::mem::zeroed() }
18399    }
18400}
18401#[repr(C)]
18402#[derive(Debug, Default, Copy, Clone, PartialEq)]
18403pub struct rte_eth_fdir_flex_mask {
18404    pub flow_type: u16,
18405    pub mask: [u8; 16usize],
18406}
18407#[test]
18408fn bindgen_test_layout_rte_eth_fdir_flex_mask() {
18409    assert_eq!(
18410        ::std::mem::size_of::<rte_eth_fdir_flex_mask>(),
18411        18usize,
18412        concat!("Size of: ", stringify!(rte_eth_fdir_flex_mask))
18413    );
18414    assert_eq!(
18415        ::std::mem::align_of::<rte_eth_fdir_flex_mask>(),
18416        2usize,
18417        concat!("Alignment of ", stringify!(rte_eth_fdir_flex_mask))
18418    );
18419    assert_eq!(
18420        unsafe {
18421            &(*(::std::ptr::null::<rte_eth_fdir_flex_mask>())).flow_type as *const _ as usize
18422        },
18423        0usize,
18424        concat!(
18425            "Offset of field: ",
18426            stringify!(rte_eth_fdir_flex_mask),
18427            "::",
18428            stringify!(flow_type)
18429        )
18430    );
18431    assert_eq!(
18432        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flex_mask>())).mask as *const _ as usize },
18433        2usize,
18434        concat!(
18435            "Offset of field: ",
18436            stringify!(rte_eth_fdir_flex_mask),
18437            "::",
18438            stringify!(mask)
18439        )
18440    );
18441}
18442#[repr(C)]
18443#[derive(Debug, Copy, Clone, PartialEq)]
18444pub struct rte_eth_fdir_flex_conf {
18445    pub nb_payloads: u16,
18446    pub nb_flexmasks: u16,
18447    pub flex_set: [rte_eth_flex_payload_cfg; 8usize],
18448    pub flex_mask: [rte_eth_fdir_flex_mask; 24usize],
18449}
18450#[test]
18451fn bindgen_test_layout_rte_eth_fdir_flex_conf() {
18452    assert_eq!(
18453        ::std::mem::size_of::<rte_eth_fdir_flex_conf>(),
18454        724usize,
18455        concat!("Size of: ", stringify!(rte_eth_fdir_flex_conf))
18456    );
18457    assert_eq!(
18458        ::std::mem::align_of::<rte_eth_fdir_flex_conf>(),
18459        4usize,
18460        concat!("Alignment of ", stringify!(rte_eth_fdir_flex_conf))
18461    );
18462    assert_eq!(
18463        unsafe {
18464            &(*(::std::ptr::null::<rte_eth_fdir_flex_conf>())).nb_payloads as *const _ as usize
18465        },
18466        0usize,
18467        concat!(
18468            "Offset of field: ",
18469            stringify!(rte_eth_fdir_flex_conf),
18470            "::",
18471            stringify!(nb_payloads)
18472        )
18473    );
18474    assert_eq!(
18475        unsafe {
18476            &(*(::std::ptr::null::<rte_eth_fdir_flex_conf>())).nb_flexmasks as *const _ as usize
18477        },
18478        2usize,
18479        concat!(
18480            "Offset of field: ",
18481            stringify!(rte_eth_fdir_flex_conf),
18482            "::",
18483            stringify!(nb_flexmasks)
18484        )
18485    );
18486    assert_eq!(
18487        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_flex_conf>())).flex_set as *const _ as usize },
18488        4usize,
18489        concat!(
18490            "Offset of field: ",
18491            stringify!(rte_eth_fdir_flex_conf),
18492            "::",
18493            stringify!(flex_set)
18494        )
18495    );
18496    assert_eq!(
18497        unsafe {
18498            &(*(::std::ptr::null::<rte_eth_fdir_flex_conf>())).flex_mask as *const _ as usize
18499        },
18500        292usize,
18501        concat!(
18502            "Offset of field: ",
18503            stringify!(rte_eth_fdir_flex_conf),
18504            "::",
18505            stringify!(flex_mask)
18506        )
18507    );
18508}
18509impl Default for rte_eth_fdir_flex_conf {
18510    fn default() -> Self {
18511        unsafe { ::std::mem::zeroed() }
18512    }
18513}
18514pub mod rte_fdir_mode {
18515    pub type Type = ::std::os::raw::c_uint;
18516    pub const RTE_FDIR_MODE_NONE: Type = 0;
18517    pub const RTE_FDIR_MODE_SIGNATURE: Type = 1;
18518    pub const RTE_FDIR_MODE_PERFECT: Type = 2;
18519    pub const RTE_FDIR_MODE_PERFECT_MAC_VLAN: Type = 3;
18520    pub const RTE_FDIR_MODE_PERFECT_TUNNEL: Type = 4;
18521}
18522#[repr(C)]
18523#[derive(Debug, Copy, Clone, PartialEq)]
18524pub struct rte_eth_fdir_info {
18525    pub mode: rte_fdir_mode::Type,
18526    pub mask: rte_eth_fdir_masks,
18527    pub flex_conf: rte_eth_fdir_flex_conf,
18528    pub guarant_spc: u32,
18529    pub best_spc: u32,
18530    pub flow_types_mask: [u64; 1usize],
18531    pub max_flexpayload: u32,
18532    pub flex_payload_unit: u32,
18533    pub max_flex_payload_segment_num: u32,
18534    pub flex_payload_limit: u16,
18535    pub flex_bitmask_unit: u32,
18536    pub max_flex_bitmask_num: u32,
18537}
18538#[test]
18539fn bindgen_test_layout_rte_eth_fdir_info() {
18540    assert_eq!(
18541        ::std::mem::size_of::<rte_eth_fdir_info>(),
18542        840usize,
18543        concat!("Size of: ", stringify!(rte_eth_fdir_info))
18544    );
18545    assert_eq!(
18546        ::std::mem::align_of::<rte_eth_fdir_info>(),
18547        8usize,
18548        concat!("Alignment of ", stringify!(rte_eth_fdir_info))
18549    );
18550    assert_eq!(
18551        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_info>())).mode as *const _ as usize },
18552        0usize,
18553        concat!(
18554            "Offset of field: ",
18555            stringify!(rte_eth_fdir_info),
18556            "::",
18557            stringify!(mode)
18558        )
18559    );
18560    assert_eq!(
18561        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_info>())).mask as *const _ as usize },
18562        4usize,
18563        concat!(
18564            "Offset of field: ",
18565            stringify!(rte_eth_fdir_info),
18566            "::",
18567            stringify!(mask)
18568        )
18569    );
18570    assert_eq!(
18571        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_info>())).flex_conf as *const _ as usize },
18572        72usize,
18573        concat!(
18574            "Offset of field: ",
18575            stringify!(rte_eth_fdir_info),
18576            "::",
18577            stringify!(flex_conf)
18578        )
18579    );
18580    assert_eq!(
18581        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_info>())).guarant_spc as *const _ as usize },
18582        796usize,
18583        concat!(
18584            "Offset of field: ",
18585            stringify!(rte_eth_fdir_info),
18586            "::",
18587            stringify!(guarant_spc)
18588        )
18589    );
18590    assert_eq!(
18591        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_info>())).best_spc as *const _ as usize },
18592        800usize,
18593        concat!(
18594            "Offset of field: ",
18595            stringify!(rte_eth_fdir_info),
18596            "::",
18597            stringify!(best_spc)
18598        )
18599    );
18600    assert_eq!(
18601        unsafe {
18602            &(*(::std::ptr::null::<rte_eth_fdir_info>())).flow_types_mask as *const _ as usize
18603        },
18604        808usize,
18605        concat!(
18606            "Offset of field: ",
18607            stringify!(rte_eth_fdir_info),
18608            "::",
18609            stringify!(flow_types_mask)
18610        )
18611    );
18612    assert_eq!(
18613        unsafe {
18614            &(*(::std::ptr::null::<rte_eth_fdir_info>())).max_flexpayload as *const _ as usize
18615        },
18616        816usize,
18617        concat!(
18618            "Offset of field: ",
18619            stringify!(rte_eth_fdir_info),
18620            "::",
18621            stringify!(max_flexpayload)
18622        )
18623    );
18624    assert_eq!(
18625        unsafe {
18626            &(*(::std::ptr::null::<rte_eth_fdir_info>())).flex_payload_unit as *const _ as usize
18627        },
18628        820usize,
18629        concat!(
18630            "Offset of field: ",
18631            stringify!(rte_eth_fdir_info),
18632            "::",
18633            stringify!(flex_payload_unit)
18634        )
18635    );
18636    assert_eq!(
18637        unsafe {
18638            &(*(::std::ptr::null::<rte_eth_fdir_info>())).max_flex_payload_segment_num as *const _
18639                as usize
18640        },
18641        824usize,
18642        concat!(
18643            "Offset of field: ",
18644            stringify!(rte_eth_fdir_info),
18645            "::",
18646            stringify!(max_flex_payload_segment_num)
18647        )
18648    );
18649    assert_eq!(
18650        unsafe {
18651            &(*(::std::ptr::null::<rte_eth_fdir_info>())).flex_payload_limit as *const _ as usize
18652        },
18653        828usize,
18654        concat!(
18655            "Offset of field: ",
18656            stringify!(rte_eth_fdir_info),
18657            "::",
18658            stringify!(flex_payload_limit)
18659        )
18660    );
18661    assert_eq!(
18662        unsafe {
18663            &(*(::std::ptr::null::<rte_eth_fdir_info>())).flex_bitmask_unit as *const _ as usize
18664        },
18665        832usize,
18666        concat!(
18667            "Offset of field: ",
18668            stringify!(rte_eth_fdir_info),
18669            "::",
18670            stringify!(flex_bitmask_unit)
18671        )
18672    );
18673    assert_eq!(
18674        unsafe {
18675            &(*(::std::ptr::null::<rte_eth_fdir_info>())).max_flex_bitmask_num as *const _ as usize
18676        },
18677        836usize,
18678        concat!(
18679            "Offset of field: ",
18680            stringify!(rte_eth_fdir_info),
18681            "::",
18682            stringify!(max_flex_bitmask_num)
18683        )
18684    );
18685}
18686impl Default for rte_eth_fdir_info {
18687    fn default() -> Self {
18688        unsafe { ::std::mem::zeroed() }
18689    }
18690}
18691#[repr(C)]
18692#[derive(Debug, Default, Copy, Clone, PartialEq)]
18693pub struct rte_eth_fdir_stats {
18694    pub collision: u32,
18695    pub free: u32,
18696    pub maxhash: u32,
18697    pub maxlen: u32,
18698    pub add: u64,
18699    pub remove: u64,
18700    pub f_add: u64,
18701    pub f_remove: u64,
18702    pub guarant_cnt: u32,
18703    pub best_cnt: u32,
18704}
18705#[test]
18706fn bindgen_test_layout_rte_eth_fdir_stats() {
18707    assert_eq!(
18708        ::std::mem::size_of::<rte_eth_fdir_stats>(),
18709        56usize,
18710        concat!("Size of: ", stringify!(rte_eth_fdir_stats))
18711    );
18712    assert_eq!(
18713        ::std::mem::align_of::<rte_eth_fdir_stats>(),
18714        8usize,
18715        concat!("Alignment of ", stringify!(rte_eth_fdir_stats))
18716    );
18717    assert_eq!(
18718        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).collision as *const _ as usize },
18719        0usize,
18720        concat!(
18721            "Offset of field: ",
18722            stringify!(rte_eth_fdir_stats),
18723            "::",
18724            stringify!(collision)
18725        )
18726    );
18727    assert_eq!(
18728        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).free as *const _ as usize },
18729        4usize,
18730        concat!(
18731            "Offset of field: ",
18732            stringify!(rte_eth_fdir_stats),
18733            "::",
18734            stringify!(free)
18735        )
18736    );
18737    assert_eq!(
18738        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).maxhash as *const _ as usize },
18739        8usize,
18740        concat!(
18741            "Offset of field: ",
18742            stringify!(rte_eth_fdir_stats),
18743            "::",
18744            stringify!(maxhash)
18745        )
18746    );
18747    assert_eq!(
18748        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).maxlen as *const _ as usize },
18749        12usize,
18750        concat!(
18751            "Offset of field: ",
18752            stringify!(rte_eth_fdir_stats),
18753            "::",
18754            stringify!(maxlen)
18755        )
18756    );
18757    assert_eq!(
18758        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).add as *const _ as usize },
18759        16usize,
18760        concat!(
18761            "Offset of field: ",
18762            stringify!(rte_eth_fdir_stats),
18763            "::",
18764            stringify!(add)
18765        )
18766    );
18767    assert_eq!(
18768        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).remove as *const _ as usize },
18769        24usize,
18770        concat!(
18771            "Offset of field: ",
18772            stringify!(rte_eth_fdir_stats),
18773            "::",
18774            stringify!(remove)
18775        )
18776    );
18777    assert_eq!(
18778        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).f_add as *const _ as usize },
18779        32usize,
18780        concat!(
18781            "Offset of field: ",
18782            stringify!(rte_eth_fdir_stats),
18783            "::",
18784            stringify!(f_add)
18785        )
18786    );
18787    assert_eq!(
18788        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).f_remove as *const _ as usize },
18789        40usize,
18790        concat!(
18791            "Offset of field: ",
18792            stringify!(rte_eth_fdir_stats),
18793            "::",
18794            stringify!(f_remove)
18795        )
18796    );
18797    assert_eq!(
18798        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).guarant_cnt as *const _ as usize },
18799        48usize,
18800        concat!(
18801            "Offset of field: ",
18802            stringify!(rte_eth_fdir_stats),
18803            "::",
18804            stringify!(guarant_cnt)
18805        )
18806    );
18807    assert_eq!(
18808        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_stats>())).best_cnt as *const _ as usize },
18809        52usize,
18810        concat!(
18811            "Offset of field: ",
18812            stringify!(rte_eth_fdir_stats),
18813            "::",
18814            stringify!(best_cnt)
18815        )
18816    );
18817}
18818pub mod rte_eth_fdir_filter_info_type {
18819    pub type Type = ::std::os::raw::c_uint;
18820    pub const RTE_ETH_FDIR_FILTER_INFO_TYPE_UNKNOWN: Type = 0;
18821    pub const RTE_ETH_FDIR_FILTER_INPUT_SET_SELECT: Type = 1;
18822    pub const RTE_ETH_FDIR_FILTER_INFO_TYPE_MAX: Type = 2;
18823}
18824#[repr(C)]
18825#[derive(Copy, Clone)]
18826pub struct rte_eth_fdir_filter_info {
18827    pub info_type: rte_eth_fdir_filter_info_type::Type,
18828    pub info: rte_eth_fdir_filter_info__bindgen_ty_1,
18829}
18830#[repr(C)]
18831#[derive(Copy, Clone)]
18832pub union rte_eth_fdir_filter_info__bindgen_ty_1 {
18833    pub input_set_conf: rte_eth_input_set_conf,
18834    _bindgen_union_align: [u32; 130usize],
18835}
18836#[test]
18837fn bindgen_test_layout_rte_eth_fdir_filter_info__bindgen_ty_1() {
18838    assert_eq!(
18839        ::std::mem::size_of::<rte_eth_fdir_filter_info__bindgen_ty_1>(),
18840        520usize,
18841        concat!(
18842            "Size of: ",
18843            stringify!(rte_eth_fdir_filter_info__bindgen_ty_1)
18844        )
18845    );
18846    assert_eq!(
18847        ::std::mem::align_of::<rte_eth_fdir_filter_info__bindgen_ty_1>(),
18848        4usize,
18849        concat!(
18850            "Alignment of ",
18851            stringify!(rte_eth_fdir_filter_info__bindgen_ty_1)
18852        )
18853    );
18854    assert_eq!(
18855        unsafe {
18856            &(*(::std::ptr::null::<rte_eth_fdir_filter_info__bindgen_ty_1>())).input_set_conf
18857                as *const _ as usize
18858        },
18859        0usize,
18860        concat!(
18861            "Offset of field: ",
18862            stringify!(rte_eth_fdir_filter_info__bindgen_ty_1),
18863            "::",
18864            stringify!(input_set_conf)
18865        )
18866    );
18867}
18868impl Default for rte_eth_fdir_filter_info__bindgen_ty_1 {
18869    fn default() -> Self {
18870        unsafe { ::std::mem::zeroed() }
18871    }
18872}
18873#[test]
18874fn bindgen_test_layout_rte_eth_fdir_filter_info() {
18875    assert_eq!(
18876        ::std::mem::size_of::<rte_eth_fdir_filter_info>(),
18877        524usize,
18878        concat!("Size of: ", stringify!(rte_eth_fdir_filter_info))
18879    );
18880    assert_eq!(
18881        ::std::mem::align_of::<rte_eth_fdir_filter_info>(),
18882        4usize,
18883        concat!("Alignment of ", stringify!(rte_eth_fdir_filter_info))
18884    );
18885    assert_eq!(
18886        unsafe {
18887            &(*(::std::ptr::null::<rte_eth_fdir_filter_info>())).info_type as *const _ as usize
18888        },
18889        0usize,
18890        concat!(
18891            "Offset of field: ",
18892            stringify!(rte_eth_fdir_filter_info),
18893            "::",
18894            stringify!(info_type)
18895        )
18896    );
18897    assert_eq!(
18898        unsafe { &(*(::std::ptr::null::<rte_eth_fdir_filter_info>())).info as *const _ as usize },
18899        4usize,
18900        concat!(
18901            "Offset of field: ",
18902            stringify!(rte_eth_fdir_filter_info),
18903            "::",
18904            stringify!(info)
18905        )
18906    );
18907}
18908impl Default for rte_eth_fdir_filter_info {
18909    fn default() -> Self {
18910        unsafe { ::std::mem::zeroed() }
18911    }
18912}
18913pub mod rte_eth_hash_filter_info_type {
18914    pub type Type = ::std::os::raw::c_uint;
18915    pub const RTE_ETH_HASH_FILTER_INFO_TYPE_UNKNOWN: Type = 0;
18916    pub const RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT: Type = 1;
18917    pub const RTE_ETH_HASH_FILTER_GLOBAL_CONFIG: Type = 2;
18918    pub const RTE_ETH_HASH_FILTER_INPUT_SET_SELECT: Type = 3;
18919    pub const RTE_ETH_HASH_FILTER_INFO_TYPE_MAX: Type = 4;
18920}
18921#[repr(C)]
18922#[derive(Debug, Copy, Clone, PartialEq)]
18923pub struct rte_eth_hash_global_conf {
18924    pub hash_func: rte_eth_hash_function::Type,
18925    pub sym_hash_enable_mask: [u64; 1usize],
18926    pub valid_bit_mask: [u64; 1usize],
18927}
18928#[test]
18929fn bindgen_test_layout_rte_eth_hash_global_conf() {
18930    assert_eq!(
18931        ::std::mem::size_of::<rte_eth_hash_global_conf>(),
18932        24usize,
18933        concat!("Size of: ", stringify!(rte_eth_hash_global_conf))
18934    );
18935    assert_eq!(
18936        ::std::mem::align_of::<rte_eth_hash_global_conf>(),
18937        8usize,
18938        concat!("Alignment of ", stringify!(rte_eth_hash_global_conf))
18939    );
18940    assert_eq!(
18941        unsafe {
18942            &(*(::std::ptr::null::<rte_eth_hash_global_conf>())).hash_func as *const _ as usize
18943        },
18944        0usize,
18945        concat!(
18946            "Offset of field: ",
18947            stringify!(rte_eth_hash_global_conf),
18948            "::",
18949            stringify!(hash_func)
18950        )
18951    );
18952    assert_eq!(
18953        unsafe {
18954            &(*(::std::ptr::null::<rte_eth_hash_global_conf>())).sym_hash_enable_mask as *const _
18955                as usize
18956        },
18957        8usize,
18958        concat!(
18959            "Offset of field: ",
18960            stringify!(rte_eth_hash_global_conf),
18961            "::",
18962            stringify!(sym_hash_enable_mask)
18963        )
18964    );
18965    assert_eq!(
18966        unsafe {
18967            &(*(::std::ptr::null::<rte_eth_hash_global_conf>())).valid_bit_mask as *const _ as usize
18968        },
18969        16usize,
18970        concat!(
18971            "Offset of field: ",
18972            stringify!(rte_eth_hash_global_conf),
18973            "::",
18974            stringify!(valid_bit_mask)
18975        )
18976    );
18977}
18978impl Default for rte_eth_hash_global_conf {
18979    fn default() -> Self {
18980        unsafe { ::std::mem::zeroed() }
18981    }
18982}
18983#[repr(C)]
18984#[derive(Copy, Clone)]
18985pub struct rte_eth_hash_filter_info {
18986    pub info_type: rte_eth_hash_filter_info_type::Type,
18987    pub info: rte_eth_hash_filter_info__bindgen_ty_1,
18988}
18989#[repr(C)]
18990#[derive(Copy, Clone)]
18991pub union rte_eth_hash_filter_info__bindgen_ty_1 {
18992    pub enable: u8,
18993    pub global_conf: rte_eth_hash_global_conf,
18994    pub input_set_conf: rte_eth_input_set_conf,
18995    _bindgen_union_align: [u64; 65usize],
18996}
18997#[test]
18998fn bindgen_test_layout_rte_eth_hash_filter_info__bindgen_ty_1() {
18999    assert_eq!(
19000        ::std::mem::size_of::<rte_eth_hash_filter_info__bindgen_ty_1>(),
19001        520usize,
19002        concat!(
19003            "Size of: ",
19004            stringify!(rte_eth_hash_filter_info__bindgen_ty_1)
19005        )
19006    );
19007    assert_eq!(
19008        ::std::mem::align_of::<rte_eth_hash_filter_info__bindgen_ty_1>(),
19009        8usize,
19010        concat!(
19011            "Alignment of ",
19012            stringify!(rte_eth_hash_filter_info__bindgen_ty_1)
19013        )
19014    );
19015    assert_eq!(
19016        unsafe {
19017            &(*(::std::ptr::null::<rte_eth_hash_filter_info__bindgen_ty_1>())).enable as *const _
19018                as usize
19019        },
19020        0usize,
19021        concat!(
19022            "Offset of field: ",
19023            stringify!(rte_eth_hash_filter_info__bindgen_ty_1),
19024            "::",
19025            stringify!(enable)
19026        )
19027    );
19028    assert_eq!(
19029        unsafe {
19030            &(*(::std::ptr::null::<rte_eth_hash_filter_info__bindgen_ty_1>())).global_conf
19031                as *const _ as usize
19032        },
19033        0usize,
19034        concat!(
19035            "Offset of field: ",
19036            stringify!(rte_eth_hash_filter_info__bindgen_ty_1),
19037            "::",
19038            stringify!(global_conf)
19039        )
19040    );
19041    assert_eq!(
19042        unsafe {
19043            &(*(::std::ptr::null::<rte_eth_hash_filter_info__bindgen_ty_1>())).input_set_conf
19044                as *const _ as usize
19045        },
19046        0usize,
19047        concat!(
19048            "Offset of field: ",
19049            stringify!(rte_eth_hash_filter_info__bindgen_ty_1),
19050            "::",
19051            stringify!(input_set_conf)
19052        )
19053    );
19054}
19055impl Default for rte_eth_hash_filter_info__bindgen_ty_1 {
19056    fn default() -> Self {
19057        unsafe { ::std::mem::zeroed() }
19058    }
19059}
19060#[test]
19061fn bindgen_test_layout_rte_eth_hash_filter_info() {
19062    assert_eq!(
19063        ::std::mem::size_of::<rte_eth_hash_filter_info>(),
19064        528usize,
19065        concat!("Size of: ", stringify!(rte_eth_hash_filter_info))
19066    );
19067    assert_eq!(
19068        ::std::mem::align_of::<rte_eth_hash_filter_info>(),
19069        8usize,
19070        concat!("Alignment of ", stringify!(rte_eth_hash_filter_info))
19071    );
19072    assert_eq!(
19073        unsafe {
19074            &(*(::std::ptr::null::<rte_eth_hash_filter_info>())).info_type as *const _ as usize
19075        },
19076        0usize,
19077        concat!(
19078            "Offset of field: ",
19079            stringify!(rte_eth_hash_filter_info),
19080            "::",
19081            stringify!(info_type)
19082        )
19083    );
19084    assert_eq!(
19085        unsafe { &(*(::std::ptr::null::<rte_eth_hash_filter_info>())).info as *const _ as usize },
19086        8usize,
19087        concat!(
19088            "Offset of field: ",
19089            stringify!(rte_eth_hash_filter_info),
19090            "::",
19091            stringify!(info)
19092        )
19093    );
19094}
19095impl Default for rte_eth_hash_filter_info {
19096    fn default() -> Self {
19097        unsafe { ::std::mem::zeroed() }
19098    }
19099}
19100#[repr(C)]
19101#[derive(Debug, Copy, Clone, PartialEq)]
19102pub struct rte_eth_l2_tunnel_conf {
19103    pub l2_tunnel_type: rte_eth_tunnel_type::Type,
19104    pub ether_type: u16,
19105    pub tunnel_id: u32,
19106    pub vf_id: u16,
19107    pub pool: u32,
19108}
19109#[test]
19110fn bindgen_test_layout_rte_eth_l2_tunnel_conf() {
19111    assert_eq!(
19112        ::std::mem::size_of::<rte_eth_l2_tunnel_conf>(),
19113        20usize,
19114        concat!("Size of: ", stringify!(rte_eth_l2_tunnel_conf))
19115    );
19116    assert_eq!(
19117        ::std::mem::align_of::<rte_eth_l2_tunnel_conf>(),
19118        4usize,
19119        concat!("Alignment of ", stringify!(rte_eth_l2_tunnel_conf))
19120    );
19121    assert_eq!(
19122        unsafe {
19123            &(*(::std::ptr::null::<rte_eth_l2_tunnel_conf>())).l2_tunnel_type as *const _ as usize
19124        },
19125        0usize,
19126        concat!(
19127            "Offset of field: ",
19128            stringify!(rte_eth_l2_tunnel_conf),
19129            "::",
19130            stringify!(l2_tunnel_type)
19131        )
19132    );
19133    assert_eq!(
19134        unsafe {
19135            &(*(::std::ptr::null::<rte_eth_l2_tunnel_conf>())).ether_type as *const _ as usize
19136        },
19137        4usize,
19138        concat!(
19139            "Offset of field: ",
19140            stringify!(rte_eth_l2_tunnel_conf),
19141            "::",
19142            stringify!(ether_type)
19143        )
19144    );
19145    assert_eq!(
19146        unsafe {
19147            &(*(::std::ptr::null::<rte_eth_l2_tunnel_conf>())).tunnel_id as *const _ as usize
19148        },
19149        8usize,
19150        concat!(
19151            "Offset of field: ",
19152            stringify!(rte_eth_l2_tunnel_conf),
19153            "::",
19154            stringify!(tunnel_id)
19155        )
19156    );
19157    assert_eq!(
19158        unsafe { &(*(::std::ptr::null::<rte_eth_l2_tunnel_conf>())).vf_id as *const _ as usize },
19159        12usize,
19160        concat!(
19161            "Offset of field: ",
19162            stringify!(rte_eth_l2_tunnel_conf),
19163            "::",
19164            stringify!(vf_id)
19165        )
19166    );
19167    assert_eq!(
19168        unsafe { &(*(::std::ptr::null::<rte_eth_l2_tunnel_conf>())).pool as *const _ as usize },
19169        16usize,
19170        concat!(
19171            "Offset of field: ",
19172            stringify!(rte_eth_l2_tunnel_conf),
19173            "::",
19174            stringify!(pool)
19175        )
19176    );
19177}
19178impl Default for rte_eth_l2_tunnel_conf {
19179    fn default() -> Self {
19180        unsafe { ::std::mem::zeroed() }
19181    }
19182}
19183pub mod rte_fdir_pballoc_type {
19184    pub type Type = ::std::os::raw::c_uint;
19185    pub const RTE_FDIR_PBALLOC_64K: Type = 0;
19186    pub const RTE_FDIR_PBALLOC_128K: Type = 1;
19187    pub const RTE_FDIR_PBALLOC_256K: Type = 2;
19188}
19189pub mod rte_fdir_status_mode {
19190    pub type Type = ::std::os::raw::c_uint;
19191    pub const RTE_FDIR_NO_REPORT_STATUS: Type = 0;
19192    pub const RTE_FDIR_REPORT_STATUS: Type = 1;
19193    pub const RTE_FDIR_REPORT_STATUS_ALWAYS: Type = 2;
19194}
19195#[repr(C)]
19196#[derive(Debug, Copy, Clone, PartialEq)]
19197pub struct rte_fdir_conf {
19198    pub mode: rte_fdir_mode::Type,
19199    pub pballoc: rte_fdir_pballoc_type::Type,
19200    pub status: rte_fdir_status_mode::Type,
19201    pub drop_queue: u8,
19202    pub mask: rte_eth_fdir_masks,
19203    pub flex_conf: rte_eth_fdir_flex_conf,
19204}
19205#[test]
19206fn bindgen_test_layout_rte_fdir_conf() {
19207    assert_eq!(
19208        ::std::mem::size_of::<rte_fdir_conf>(),
19209        808usize,
19210        concat!("Size of: ", stringify!(rte_fdir_conf))
19211    );
19212    assert_eq!(
19213        ::std::mem::align_of::<rte_fdir_conf>(),
19214        4usize,
19215        concat!("Alignment of ", stringify!(rte_fdir_conf))
19216    );
19217    assert_eq!(
19218        unsafe { &(*(::std::ptr::null::<rte_fdir_conf>())).mode as *const _ as usize },
19219        0usize,
19220        concat!(
19221            "Offset of field: ",
19222            stringify!(rte_fdir_conf),
19223            "::",
19224            stringify!(mode)
19225        )
19226    );
19227    assert_eq!(
19228        unsafe { &(*(::std::ptr::null::<rte_fdir_conf>())).pballoc as *const _ as usize },
19229        4usize,
19230        concat!(
19231            "Offset of field: ",
19232            stringify!(rte_fdir_conf),
19233            "::",
19234            stringify!(pballoc)
19235        )
19236    );
19237    assert_eq!(
19238        unsafe { &(*(::std::ptr::null::<rte_fdir_conf>())).status as *const _ as usize },
19239        8usize,
19240        concat!(
19241            "Offset of field: ",
19242            stringify!(rte_fdir_conf),
19243            "::",
19244            stringify!(status)
19245        )
19246    );
19247    assert_eq!(
19248        unsafe { &(*(::std::ptr::null::<rte_fdir_conf>())).drop_queue as *const _ as usize },
19249        12usize,
19250        concat!(
19251            "Offset of field: ",
19252            stringify!(rte_fdir_conf),
19253            "::",
19254            stringify!(drop_queue)
19255        )
19256    );
19257    assert_eq!(
19258        unsafe { &(*(::std::ptr::null::<rte_fdir_conf>())).mask as *const _ as usize },
19259        16usize,
19260        concat!(
19261            "Offset of field: ",
19262            stringify!(rte_fdir_conf),
19263            "::",
19264            stringify!(mask)
19265        )
19266    );
19267    assert_eq!(
19268        unsafe { &(*(::std::ptr::null::<rte_fdir_conf>())).flex_conf as *const _ as usize },
19269        84usize,
19270        concat!(
19271            "Offset of field: ",
19272            stringify!(rte_fdir_conf),
19273            "::",
19274            stringify!(flex_conf)
19275        )
19276    );
19277}
19278impl Default for rte_fdir_conf {
19279    fn default() -> Self {
19280        unsafe { ::std::mem::zeroed() }
19281    }
19282}
19283#[repr(C)]
19284#[derive(Debug, Default, Copy, Clone, PartialEq)]
19285pub struct rte_eth_udp_tunnel {
19286    pub udp_port: u16,
19287    pub prot_type: u8,
19288}
19289#[test]
19290fn bindgen_test_layout_rte_eth_udp_tunnel() {
19291    assert_eq!(
19292        ::std::mem::size_of::<rte_eth_udp_tunnel>(),
19293        4usize,
19294        concat!("Size of: ", stringify!(rte_eth_udp_tunnel))
19295    );
19296    assert_eq!(
19297        ::std::mem::align_of::<rte_eth_udp_tunnel>(),
19298        2usize,
19299        concat!("Alignment of ", stringify!(rte_eth_udp_tunnel))
19300    );
19301    assert_eq!(
19302        unsafe { &(*(::std::ptr::null::<rte_eth_udp_tunnel>())).udp_port as *const _ as usize },
19303        0usize,
19304        concat!(
19305            "Offset of field: ",
19306            stringify!(rte_eth_udp_tunnel),
19307            "::",
19308            stringify!(udp_port)
19309        )
19310    );
19311    assert_eq!(
19312        unsafe { &(*(::std::ptr::null::<rte_eth_udp_tunnel>())).prot_type as *const _ as usize },
19313        2usize,
19314        concat!(
19315            "Offset of field: ",
19316            stringify!(rte_eth_udp_tunnel),
19317            "::",
19318            stringify!(prot_type)
19319        )
19320    );
19321}
19322#[repr(C)]
19323#[repr(align(4))]
19324#[derive(Debug, Default, Copy, Clone, PartialEq)]
19325pub struct rte_intr_conf {
19326    pub _bitfield_align_1: [u8; 0],
19327    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
19328    pub __bindgen_padding_0: [u8; 3usize],
19329}
19330#[test]
19331fn bindgen_test_layout_rte_intr_conf() {
19332    assert_eq!(
19333        ::std::mem::size_of::<rte_intr_conf>(),
19334        4usize,
19335        concat!("Size of: ", stringify!(rte_intr_conf))
19336    );
19337    assert_eq!(
19338        ::std::mem::align_of::<rte_intr_conf>(),
19339        4usize,
19340        concat!("Alignment of ", stringify!(rte_intr_conf))
19341    );
19342}
19343impl rte_intr_conf {
19344    #[inline]
19345    pub fn lsc(&self) -> u32 {
19346        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
19347    }
19348    #[inline]
19349    pub fn set_lsc(&mut self, val: u32) {
19350        unsafe {
19351            let val: u32 = ::std::mem::transmute(val);
19352            self._bitfield_1.set(0usize, 1u8, val as u64)
19353        }
19354    }
19355    #[inline]
19356    pub fn rxq(&self) -> u32 {
19357        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
19358    }
19359    #[inline]
19360    pub fn set_rxq(&mut self, val: u32) {
19361        unsafe {
19362            let val: u32 = ::std::mem::transmute(val);
19363            self._bitfield_1.set(1usize, 1u8, val as u64)
19364        }
19365    }
19366    #[inline]
19367    pub fn rmv(&self) -> u32 {
19368        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
19369    }
19370    #[inline]
19371    pub fn set_rmv(&mut self, val: u32) {
19372        unsafe {
19373            let val: u32 = ::std::mem::transmute(val);
19374            self._bitfield_1.set(2usize, 1u8, val as u64)
19375        }
19376    }
19377    #[inline]
19378    pub fn new_bitfield_1(lsc: u32, rxq: u32, rmv: u32) -> __BindgenBitfieldUnit<[u8; 1usize]> {
19379        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
19380        __bindgen_bitfield_unit.set(0usize, 1u8, {
19381            let lsc: u32 = unsafe { ::std::mem::transmute(lsc) };
19382            lsc as u64
19383        });
19384        __bindgen_bitfield_unit.set(1usize, 1u8, {
19385            let rxq: u32 = unsafe { ::std::mem::transmute(rxq) };
19386            rxq as u64
19387        });
19388        __bindgen_bitfield_unit.set(2usize, 1u8, {
19389            let rmv: u32 = unsafe { ::std::mem::transmute(rmv) };
19390            rmv as u64
19391        });
19392        __bindgen_bitfield_unit
19393    }
19394}
19395#[repr(C)]
19396#[derive(Copy, Clone)]
19397pub struct rte_eth_conf {
19398    pub link_speeds: u32,
19399    pub rxmode: rte_eth_rxmode,
19400    pub txmode: rte_eth_txmode,
19401    pub lpbk_mode: u32,
19402    pub rx_adv_conf: rte_eth_conf__bindgen_ty_1,
19403    pub tx_adv_conf: rte_eth_conf__bindgen_ty_2,
19404    pub dcb_capability_en: u32,
19405    pub fdir_conf: rte_fdir_conf,
19406    pub intr_conf: rte_intr_conf,
19407}
19408#[repr(C)]
19409#[derive(Copy, Clone)]
19410pub struct rte_eth_conf__bindgen_ty_1 {
19411    pub rss_conf: rte_eth_rss_conf,
19412    pub vmdq_dcb_conf: rte_eth_vmdq_dcb_conf,
19413    pub dcb_rx_conf: rte_eth_dcb_rx_conf,
19414    pub vmdq_rx_conf: rte_eth_vmdq_rx_conf,
19415}
19416#[test]
19417fn bindgen_test_layout_rte_eth_conf__bindgen_ty_1() {
19418    assert_eq!(
19419        ::std::mem::size_of::<rte_eth_conf__bindgen_ty_1>(),
19420        2120usize,
19421        concat!("Size of: ", stringify!(rte_eth_conf__bindgen_ty_1))
19422    );
19423    assert_eq!(
19424        ::std::mem::align_of::<rte_eth_conf__bindgen_ty_1>(),
19425        8usize,
19426        concat!("Alignment of ", stringify!(rte_eth_conf__bindgen_ty_1))
19427    );
19428    assert_eq!(
19429        unsafe {
19430            &(*(::std::ptr::null::<rte_eth_conf__bindgen_ty_1>())).rss_conf as *const _ as usize
19431        },
19432        0usize,
19433        concat!(
19434            "Offset of field: ",
19435            stringify!(rte_eth_conf__bindgen_ty_1),
19436            "::",
19437            stringify!(rss_conf)
19438        )
19439    );
19440    assert_eq!(
19441        unsafe {
19442            &(*(::std::ptr::null::<rte_eth_conf__bindgen_ty_1>())).vmdq_dcb_conf as *const _
19443                as usize
19444        },
19445        24usize,
19446        concat!(
19447            "Offset of field: ",
19448            stringify!(rte_eth_conf__bindgen_ty_1),
19449            "::",
19450            stringify!(vmdq_dcb_conf)
19451        )
19452    );
19453    assert_eq!(
19454        unsafe {
19455            &(*(::std::ptr::null::<rte_eth_conf__bindgen_ty_1>())).dcb_rx_conf as *const _ as usize
19456        },
19457        1064usize,
19458        concat!(
19459            "Offset of field: ",
19460            stringify!(rte_eth_conf__bindgen_ty_1),
19461            "::",
19462            stringify!(dcb_rx_conf)
19463        )
19464    );
19465    assert_eq!(
19466        unsafe {
19467            &(*(::std::ptr::null::<rte_eth_conf__bindgen_ty_1>())).vmdq_rx_conf as *const _ as usize
19468        },
19469        1080usize,
19470        concat!(
19471            "Offset of field: ",
19472            stringify!(rte_eth_conf__bindgen_ty_1),
19473            "::",
19474            stringify!(vmdq_rx_conf)
19475        )
19476    );
19477}
19478impl Default for rte_eth_conf__bindgen_ty_1 {
19479    fn default() -> Self {
19480        unsafe { ::std::mem::zeroed() }
19481    }
19482}
19483#[repr(C)]
19484#[derive(Copy, Clone)]
19485pub union rte_eth_conf__bindgen_ty_2 {
19486    pub vmdq_dcb_tx_conf: rte_eth_vmdq_dcb_tx_conf,
19487    pub dcb_tx_conf: rte_eth_dcb_tx_conf,
19488    pub vmdq_tx_conf: rte_eth_vmdq_tx_conf,
19489    _bindgen_union_align: [u32; 3usize],
19490}
19491#[test]
19492fn bindgen_test_layout_rte_eth_conf__bindgen_ty_2() {
19493    assert_eq!(
19494        ::std::mem::size_of::<rte_eth_conf__bindgen_ty_2>(),
19495        12usize,
19496        concat!("Size of: ", stringify!(rte_eth_conf__bindgen_ty_2))
19497    );
19498    assert_eq!(
19499        ::std::mem::align_of::<rte_eth_conf__bindgen_ty_2>(),
19500        4usize,
19501        concat!("Alignment of ", stringify!(rte_eth_conf__bindgen_ty_2))
19502    );
19503    assert_eq!(
19504        unsafe {
19505            &(*(::std::ptr::null::<rte_eth_conf__bindgen_ty_2>())).vmdq_dcb_tx_conf as *const _
19506                as usize
19507        },
19508        0usize,
19509        concat!(
19510            "Offset of field: ",
19511            stringify!(rte_eth_conf__bindgen_ty_2),
19512            "::",
19513            stringify!(vmdq_dcb_tx_conf)
19514        )
19515    );
19516    assert_eq!(
19517        unsafe {
19518            &(*(::std::ptr::null::<rte_eth_conf__bindgen_ty_2>())).dcb_tx_conf as *const _ as usize
19519        },
19520        0usize,
19521        concat!(
19522            "Offset of field: ",
19523            stringify!(rte_eth_conf__bindgen_ty_2),
19524            "::",
19525            stringify!(dcb_tx_conf)
19526        )
19527    );
19528    assert_eq!(
19529        unsafe {
19530            &(*(::std::ptr::null::<rte_eth_conf__bindgen_ty_2>())).vmdq_tx_conf as *const _ as usize
19531        },
19532        0usize,
19533        concat!(
19534            "Offset of field: ",
19535            stringify!(rte_eth_conf__bindgen_ty_2),
19536            "::",
19537            stringify!(vmdq_tx_conf)
19538        )
19539    );
19540}
19541impl Default for rte_eth_conf__bindgen_ty_2 {
19542    fn default() -> Self {
19543        unsafe { ::std::mem::zeroed() }
19544    }
19545}
19546#[test]
19547fn bindgen_test_layout_rte_eth_conf() {
19548    assert_eq!(
19549        ::std::mem::size_of::<rte_eth_conf>(),
19550        3080usize,
19551        concat!("Size of: ", stringify!(rte_eth_conf))
19552    );
19553    assert_eq!(
19554        ::std::mem::align_of::<rte_eth_conf>(),
19555        8usize,
19556        concat!("Alignment of ", stringify!(rte_eth_conf))
19557    );
19558    assert_eq!(
19559        unsafe { &(*(::std::ptr::null::<rte_eth_conf>())).link_speeds as *const _ as usize },
19560        0usize,
19561        concat!(
19562            "Offset of field: ",
19563            stringify!(rte_eth_conf),
19564            "::",
19565            stringify!(link_speeds)
19566        )
19567    );
19568    assert_eq!(
19569        unsafe { &(*(::std::ptr::null::<rte_eth_conf>())).rxmode as *const _ as usize },
19570        8usize,
19571        concat!(
19572            "Offset of field: ",
19573            stringify!(rte_eth_conf),
19574            "::",
19575            stringify!(rxmode)
19576        )
19577    );
19578    assert_eq!(
19579        unsafe { &(*(::std::ptr::null::<rte_eth_conf>())).txmode as *const _ as usize },
19580        64usize,
19581        concat!(
19582            "Offset of field: ",
19583            stringify!(rte_eth_conf),
19584            "::",
19585            stringify!(txmode)
19586        )
19587    );
19588    assert_eq!(
19589        unsafe { &(*(::std::ptr::null::<rte_eth_conf>())).lpbk_mode as *const _ as usize },
19590        120usize,
19591        concat!(
19592            "Offset of field: ",
19593            stringify!(rte_eth_conf),
19594            "::",
19595            stringify!(lpbk_mode)
19596        )
19597    );
19598    assert_eq!(
19599        unsafe { &(*(::std::ptr::null::<rte_eth_conf>())).rx_adv_conf as *const _ as usize },
19600        128usize,
19601        concat!(
19602            "Offset of field: ",
19603            stringify!(rte_eth_conf),
19604            "::",
19605            stringify!(rx_adv_conf)
19606        )
19607    );
19608    assert_eq!(
19609        unsafe { &(*(::std::ptr::null::<rte_eth_conf>())).tx_adv_conf as *const _ as usize },
19610        2248usize,
19611        concat!(
19612            "Offset of field: ",
19613            stringify!(rte_eth_conf),
19614            "::",
19615            stringify!(tx_adv_conf)
19616        )
19617    );
19618    assert_eq!(
19619        unsafe { &(*(::std::ptr::null::<rte_eth_conf>())).dcb_capability_en as *const _ as usize },
19620        2260usize,
19621        concat!(
19622            "Offset of field: ",
19623            stringify!(rte_eth_conf),
19624            "::",
19625            stringify!(dcb_capability_en)
19626        )
19627    );
19628    assert_eq!(
19629        unsafe { &(*(::std::ptr::null::<rte_eth_conf>())).fdir_conf as *const _ as usize },
19630        2264usize,
19631        concat!(
19632            "Offset of field: ",
19633            stringify!(rte_eth_conf),
19634            "::",
19635            stringify!(fdir_conf)
19636        )
19637    );
19638    assert_eq!(
19639        unsafe { &(*(::std::ptr::null::<rte_eth_conf>())).intr_conf as *const _ as usize },
19640        3072usize,
19641        concat!(
19642            "Offset of field: ",
19643            stringify!(rte_eth_conf),
19644            "::",
19645            stringify!(intr_conf)
19646        )
19647    );
19648}
19649impl Default for rte_eth_conf {
19650    fn default() -> Self {
19651        unsafe { ::std::mem::zeroed() }
19652    }
19653}
19654#[repr(C)]
19655#[derive(Debug, Default, Copy, Clone, PartialEq)]
19656pub struct rte_eth_dev_portconf {
19657    pub burst_size: u16,
19658    pub ring_size: u16,
19659    pub nb_queues: u16,
19660}
19661#[test]
19662fn bindgen_test_layout_rte_eth_dev_portconf() {
19663    assert_eq!(
19664        ::std::mem::size_of::<rte_eth_dev_portconf>(),
19665        6usize,
19666        concat!("Size of: ", stringify!(rte_eth_dev_portconf))
19667    );
19668    assert_eq!(
19669        ::std::mem::align_of::<rte_eth_dev_portconf>(),
19670        2usize,
19671        concat!("Alignment of ", stringify!(rte_eth_dev_portconf))
19672    );
19673    assert_eq!(
19674        unsafe { &(*(::std::ptr::null::<rte_eth_dev_portconf>())).burst_size as *const _ as usize },
19675        0usize,
19676        concat!(
19677            "Offset of field: ",
19678            stringify!(rte_eth_dev_portconf),
19679            "::",
19680            stringify!(burst_size)
19681        )
19682    );
19683    assert_eq!(
19684        unsafe { &(*(::std::ptr::null::<rte_eth_dev_portconf>())).ring_size as *const _ as usize },
19685        2usize,
19686        concat!(
19687            "Offset of field: ",
19688            stringify!(rte_eth_dev_portconf),
19689            "::",
19690            stringify!(ring_size)
19691        )
19692    );
19693    assert_eq!(
19694        unsafe { &(*(::std::ptr::null::<rte_eth_dev_portconf>())).nb_queues as *const _ as usize },
19695        4usize,
19696        concat!(
19697            "Offset of field: ",
19698            stringify!(rte_eth_dev_portconf),
19699            "::",
19700            stringify!(nb_queues)
19701        )
19702    );
19703}
19704#[repr(C)]
19705#[derive(Debug, Copy, Clone, PartialEq)]
19706pub struct rte_eth_switch_info {
19707    pub name: *const ::std::os::raw::c_char,
19708    pub domain_id: u16,
19709    pub port_id: u16,
19710}
19711#[test]
19712fn bindgen_test_layout_rte_eth_switch_info() {
19713    assert_eq!(
19714        ::std::mem::size_of::<rte_eth_switch_info>(),
19715        16usize,
19716        concat!("Size of: ", stringify!(rte_eth_switch_info))
19717    );
19718    assert_eq!(
19719        ::std::mem::align_of::<rte_eth_switch_info>(),
19720        8usize,
19721        concat!("Alignment of ", stringify!(rte_eth_switch_info))
19722    );
19723    assert_eq!(
19724        unsafe { &(*(::std::ptr::null::<rte_eth_switch_info>())).name as *const _ as usize },
19725        0usize,
19726        concat!(
19727            "Offset of field: ",
19728            stringify!(rte_eth_switch_info),
19729            "::",
19730            stringify!(name)
19731        )
19732    );
19733    assert_eq!(
19734        unsafe { &(*(::std::ptr::null::<rte_eth_switch_info>())).domain_id as *const _ as usize },
19735        8usize,
19736        concat!(
19737            "Offset of field: ",
19738            stringify!(rte_eth_switch_info),
19739            "::",
19740            stringify!(domain_id)
19741        )
19742    );
19743    assert_eq!(
19744        unsafe { &(*(::std::ptr::null::<rte_eth_switch_info>())).port_id as *const _ as usize },
19745        10usize,
19746        concat!(
19747            "Offset of field: ",
19748            stringify!(rte_eth_switch_info),
19749            "::",
19750            stringify!(port_id)
19751        )
19752    );
19753}
19754impl Default for rte_eth_switch_info {
19755    fn default() -> Self {
19756        unsafe { ::std::mem::zeroed() }
19757    }
19758}
19759#[repr(C)]
19760#[derive(Debug, Copy, Clone, PartialEq)]
19761pub struct rte_eth_dev_info {
19762    pub device: *mut rte_device,
19763    pub driver_name: *const ::std::os::raw::c_char,
19764    pub if_index: ::std::os::raw::c_uint,
19765    pub min_mtu: u16,
19766    pub max_mtu: u16,
19767    pub dev_flags: *const u32,
19768    pub min_rx_bufsize: u32,
19769    pub max_rx_pktlen: u32,
19770    pub max_lro_pkt_size: u32,
19771    pub max_rx_queues: u16,
19772    pub max_tx_queues: u16,
19773    pub max_mac_addrs: u32,
19774    pub max_hash_mac_addrs: u32,
19775    pub max_vfs: u16,
19776    pub max_vmdq_pools: u16,
19777    pub rx_offload_capa: u64,
19778    pub tx_offload_capa: u64,
19779    pub rx_queue_offload_capa: u64,
19780    pub tx_queue_offload_capa: u64,
19781    pub reta_size: u16,
19782    pub hash_key_size: u8,
19783    pub flow_type_rss_offloads: u64,
19784    pub default_rxconf: rte_eth_rxconf,
19785    pub default_txconf: rte_eth_txconf,
19786    pub vmdq_queue_base: u16,
19787    pub vmdq_queue_num: u16,
19788    pub vmdq_pool_base: u16,
19789    pub rx_desc_lim: rte_eth_desc_lim,
19790    pub tx_desc_lim: rte_eth_desc_lim,
19791    pub speed_capa: u32,
19792    pub nb_rx_queues: u16,
19793    pub nb_tx_queues: u16,
19794    pub default_rxportconf: rte_eth_dev_portconf,
19795    pub default_txportconf: rte_eth_dev_portconf,
19796    pub dev_capa: u64,
19797    pub switch_info: rte_eth_switch_info,
19798    pub reserved_64s: [u64; 2usize],
19799    pub reserved_ptrs: [*mut ::std::os::raw::c_void; 2usize],
19800}
19801#[test]
19802fn bindgen_test_layout_rte_eth_dev_info() {
19803    assert_eq!(
19804        ::std::mem::size_of::<rte_eth_dev_info>(),
19805        320usize,
19806        concat!("Size of: ", stringify!(rte_eth_dev_info))
19807    );
19808    assert_eq!(
19809        ::std::mem::align_of::<rte_eth_dev_info>(),
19810        8usize,
19811        concat!("Alignment of ", stringify!(rte_eth_dev_info))
19812    );
19813    assert_eq!(
19814        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).device as *const _ as usize },
19815        0usize,
19816        concat!(
19817            "Offset of field: ",
19818            stringify!(rte_eth_dev_info),
19819            "::",
19820            stringify!(device)
19821        )
19822    );
19823    assert_eq!(
19824        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).driver_name as *const _ as usize },
19825        8usize,
19826        concat!(
19827            "Offset of field: ",
19828            stringify!(rte_eth_dev_info),
19829            "::",
19830            stringify!(driver_name)
19831        )
19832    );
19833    assert_eq!(
19834        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).if_index as *const _ as usize },
19835        16usize,
19836        concat!(
19837            "Offset of field: ",
19838            stringify!(rte_eth_dev_info),
19839            "::",
19840            stringify!(if_index)
19841        )
19842    );
19843    assert_eq!(
19844        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).min_mtu as *const _ as usize },
19845        20usize,
19846        concat!(
19847            "Offset of field: ",
19848            stringify!(rte_eth_dev_info),
19849            "::",
19850            stringify!(min_mtu)
19851        )
19852    );
19853    assert_eq!(
19854        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).max_mtu as *const _ as usize },
19855        22usize,
19856        concat!(
19857            "Offset of field: ",
19858            stringify!(rte_eth_dev_info),
19859            "::",
19860            stringify!(max_mtu)
19861        )
19862    );
19863    assert_eq!(
19864        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).dev_flags as *const _ as usize },
19865        24usize,
19866        concat!(
19867            "Offset of field: ",
19868            stringify!(rte_eth_dev_info),
19869            "::",
19870            stringify!(dev_flags)
19871        )
19872    );
19873    assert_eq!(
19874        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).min_rx_bufsize as *const _ as usize },
19875        32usize,
19876        concat!(
19877            "Offset of field: ",
19878            stringify!(rte_eth_dev_info),
19879            "::",
19880            stringify!(min_rx_bufsize)
19881        )
19882    );
19883    assert_eq!(
19884        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).max_rx_pktlen as *const _ as usize },
19885        36usize,
19886        concat!(
19887            "Offset of field: ",
19888            stringify!(rte_eth_dev_info),
19889            "::",
19890            stringify!(max_rx_pktlen)
19891        )
19892    );
19893    assert_eq!(
19894        unsafe {
19895            &(*(::std::ptr::null::<rte_eth_dev_info>())).max_lro_pkt_size as *const _ as usize
19896        },
19897        40usize,
19898        concat!(
19899            "Offset of field: ",
19900            stringify!(rte_eth_dev_info),
19901            "::",
19902            stringify!(max_lro_pkt_size)
19903        )
19904    );
19905    assert_eq!(
19906        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).max_rx_queues as *const _ as usize },
19907        44usize,
19908        concat!(
19909            "Offset of field: ",
19910            stringify!(rte_eth_dev_info),
19911            "::",
19912            stringify!(max_rx_queues)
19913        )
19914    );
19915    assert_eq!(
19916        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).max_tx_queues as *const _ as usize },
19917        46usize,
19918        concat!(
19919            "Offset of field: ",
19920            stringify!(rte_eth_dev_info),
19921            "::",
19922            stringify!(max_tx_queues)
19923        )
19924    );
19925    assert_eq!(
19926        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).max_mac_addrs as *const _ as usize },
19927        48usize,
19928        concat!(
19929            "Offset of field: ",
19930            stringify!(rte_eth_dev_info),
19931            "::",
19932            stringify!(max_mac_addrs)
19933        )
19934    );
19935    assert_eq!(
19936        unsafe {
19937            &(*(::std::ptr::null::<rte_eth_dev_info>())).max_hash_mac_addrs as *const _ as usize
19938        },
19939        52usize,
19940        concat!(
19941            "Offset of field: ",
19942            stringify!(rte_eth_dev_info),
19943            "::",
19944            stringify!(max_hash_mac_addrs)
19945        )
19946    );
19947    assert_eq!(
19948        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).max_vfs as *const _ as usize },
19949        56usize,
19950        concat!(
19951            "Offset of field: ",
19952            stringify!(rte_eth_dev_info),
19953            "::",
19954            stringify!(max_vfs)
19955        )
19956    );
19957    assert_eq!(
19958        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).max_vmdq_pools as *const _ as usize },
19959        58usize,
19960        concat!(
19961            "Offset of field: ",
19962            stringify!(rte_eth_dev_info),
19963            "::",
19964            stringify!(max_vmdq_pools)
19965        )
19966    );
19967    assert_eq!(
19968        unsafe {
19969            &(*(::std::ptr::null::<rte_eth_dev_info>())).rx_offload_capa as *const _ as usize
19970        },
19971        64usize,
19972        concat!(
19973            "Offset of field: ",
19974            stringify!(rte_eth_dev_info),
19975            "::",
19976            stringify!(rx_offload_capa)
19977        )
19978    );
19979    assert_eq!(
19980        unsafe {
19981            &(*(::std::ptr::null::<rte_eth_dev_info>())).tx_offload_capa as *const _ as usize
19982        },
19983        72usize,
19984        concat!(
19985            "Offset of field: ",
19986            stringify!(rte_eth_dev_info),
19987            "::",
19988            stringify!(tx_offload_capa)
19989        )
19990    );
19991    assert_eq!(
19992        unsafe {
19993            &(*(::std::ptr::null::<rte_eth_dev_info>())).rx_queue_offload_capa as *const _ as usize
19994        },
19995        80usize,
19996        concat!(
19997            "Offset of field: ",
19998            stringify!(rte_eth_dev_info),
19999            "::",
20000            stringify!(rx_queue_offload_capa)
20001        )
20002    );
20003    assert_eq!(
20004        unsafe {
20005            &(*(::std::ptr::null::<rte_eth_dev_info>())).tx_queue_offload_capa as *const _ as usize
20006        },
20007        88usize,
20008        concat!(
20009            "Offset of field: ",
20010            stringify!(rte_eth_dev_info),
20011            "::",
20012            stringify!(tx_queue_offload_capa)
20013        )
20014    );
20015    assert_eq!(
20016        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).reta_size as *const _ as usize },
20017        96usize,
20018        concat!(
20019            "Offset of field: ",
20020            stringify!(rte_eth_dev_info),
20021            "::",
20022            stringify!(reta_size)
20023        )
20024    );
20025    assert_eq!(
20026        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).hash_key_size as *const _ as usize },
20027        98usize,
20028        concat!(
20029            "Offset of field: ",
20030            stringify!(rte_eth_dev_info),
20031            "::",
20032            stringify!(hash_key_size)
20033        )
20034    );
20035    assert_eq!(
20036        unsafe {
20037            &(*(::std::ptr::null::<rte_eth_dev_info>())).flow_type_rss_offloads as *const _ as usize
20038        },
20039        104usize,
20040        concat!(
20041            "Offset of field: ",
20042            stringify!(rte_eth_dev_info),
20043            "::",
20044            stringify!(flow_type_rss_offloads)
20045        )
20046    );
20047    assert_eq!(
20048        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).default_rxconf as *const _ as usize },
20049        112usize,
20050        concat!(
20051            "Offset of field: ",
20052            stringify!(rte_eth_dev_info),
20053            "::",
20054            stringify!(default_rxconf)
20055        )
20056    );
20057    assert_eq!(
20058        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).default_txconf as *const _ as usize },
20059        160usize,
20060        concat!(
20061            "Offset of field: ",
20062            stringify!(rte_eth_dev_info),
20063            "::",
20064            stringify!(default_txconf)
20065        )
20066    );
20067    assert_eq!(
20068        unsafe {
20069            &(*(::std::ptr::null::<rte_eth_dev_info>())).vmdq_queue_base as *const _ as usize
20070        },
20071        216usize,
20072        concat!(
20073            "Offset of field: ",
20074            stringify!(rte_eth_dev_info),
20075            "::",
20076            stringify!(vmdq_queue_base)
20077        )
20078    );
20079    assert_eq!(
20080        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).vmdq_queue_num as *const _ as usize },
20081        218usize,
20082        concat!(
20083            "Offset of field: ",
20084            stringify!(rte_eth_dev_info),
20085            "::",
20086            stringify!(vmdq_queue_num)
20087        )
20088    );
20089    assert_eq!(
20090        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).vmdq_pool_base as *const _ as usize },
20091        220usize,
20092        concat!(
20093            "Offset of field: ",
20094            stringify!(rte_eth_dev_info),
20095            "::",
20096            stringify!(vmdq_pool_base)
20097        )
20098    );
20099    assert_eq!(
20100        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).rx_desc_lim as *const _ as usize },
20101        222usize,
20102        concat!(
20103            "Offset of field: ",
20104            stringify!(rte_eth_dev_info),
20105            "::",
20106            stringify!(rx_desc_lim)
20107        )
20108    );
20109    assert_eq!(
20110        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).tx_desc_lim as *const _ as usize },
20111        232usize,
20112        concat!(
20113            "Offset of field: ",
20114            stringify!(rte_eth_dev_info),
20115            "::",
20116            stringify!(tx_desc_lim)
20117        )
20118    );
20119    assert_eq!(
20120        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).speed_capa as *const _ as usize },
20121        244usize,
20122        concat!(
20123            "Offset of field: ",
20124            stringify!(rte_eth_dev_info),
20125            "::",
20126            stringify!(speed_capa)
20127        )
20128    );
20129    assert_eq!(
20130        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).nb_rx_queues as *const _ as usize },
20131        248usize,
20132        concat!(
20133            "Offset of field: ",
20134            stringify!(rte_eth_dev_info),
20135            "::",
20136            stringify!(nb_rx_queues)
20137        )
20138    );
20139    assert_eq!(
20140        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).nb_tx_queues as *const _ as usize },
20141        250usize,
20142        concat!(
20143            "Offset of field: ",
20144            stringify!(rte_eth_dev_info),
20145            "::",
20146            stringify!(nb_tx_queues)
20147        )
20148    );
20149    assert_eq!(
20150        unsafe {
20151            &(*(::std::ptr::null::<rte_eth_dev_info>())).default_rxportconf as *const _ as usize
20152        },
20153        252usize,
20154        concat!(
20155            "Offset of field: ",
20156            stringify!(rte_eth_dev_info),
20157            "::",
20158            stringify!(default_rxportconf)
20159        )
20160    );
20161    assert_eq!(
20162        unsafe {
20163            &(*(::std::ptr::null::<rte_eth_dev_info>())).default_txportconf as *const _ as usize
20164        },
20165        258usize,
20166        concat!(
20167            "Offset of field: ",
20168            stringify!(rte_eth_dev_info),
20169            "::",
20170            stringify!(default_txportconf)
20171        )
20172    );
20173    assert_eq!(
20174        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).dev_capa as *const _ as usize },
20175        264usize,
20176        concat!(
20177            "Offset of field: ",
20178            stringify!(rte_eth_dev_info),
20179            "::",
20180            stringify!(dev_capa)
20181        )
20182    );
20183    assert_eq!(
20184        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).switch_info as *const _ as usize },
20185        272usize,
20186        concat!(
20187            "Offset of field: ",
20188            stringify!(rte_eth_dev_info),
20189            "::",
20190            stringify!(switch_info)
20191        )
20192    );
20193    assert_eq!(
20194        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).reserved_64s as *const _ as usize },
20195        288usize,
20196        concat!(
20197            "Offset of field: ",
20198            stringify!(rte_eth_dev_info),
20199            "::",
20200            stringify!(reserved_64s)
20201        )
20202    );
20203    assert_eq!(
20204        unsafe { &(*(::std::ptr::null::<rte_eth_dev_info>())).reserved_ptrs as *const _ as usize },
20205        304usize,
20206        concat!(
20207            "Offset of field: ",
20208            stringify!(rte_eth_dev_info),
20209            "::",
20210            stringify!(reserved_ptrs)
20211        )
20212    );
20213}
20214impl Default for rte_eth_dev_info {
20215    fn default() -> Self {
20216        unsafe { ::std::mem::zeroed() }
20217    }
20218}
20219#[repr(C)]
20220#[repr(align(64))]
20221#[derive(Copy, Clone)]
20222pub struct rte_eth_rxq_info {
20223    pub mp: *mut rte_mempool,
20224    pub conf: rte_eth_rxconf,
20225    pub scattered_rx: u8,
20226    pub nb_desc: u16,
20227}
20228#[test]
20229fn bindgen_test_layout_rte_eth_rxq_info() {
20230    assert_eq!(
20231        ::std::mem::size_of::<rte_eth_rxq_info>(),
20232        64usize,
20233        concat!("Size of: ", stringify!(rte_eth_rxq_info))
20234    );
20235    assert_eq!(
20236        ::std::mem::align_of::<rte_eth_rxq_info>(),
20237        64usize,
20238        concat!("Alignment of ", stringify!(rte_eth_rxq_info))
20239    );
20240    assert_eq!(
20241        unsafe { &(*(::std::ptr::null::<rte_eth_rxq_info>())).mp as *const _ as usize },
20242        0usize,
20243        concat!(
20244            "Offset of field: ",
20245            stringify!(rte_eth_rxq_info),
20246            "::",
20247            stringify!(mp)
20248        )
20249    );
20250    assert_eq!(
20251        unsafe { &(*(::std::ptr::null::<rte_eth_rxq_info>())).conf as *const _ as usize },
20252        8usize,
20253        concat!(
20254            "Offset of field: ",
20255            stringify!(rte_eth_rxq_info),
20256            "::",
20257            stringify!(conf)
20258        )
20259    );
20260    assert_eq!(
20261        unsafe { &(*(::std::ptr::null::<rte_eth_rxq_info>())).scattered_rx as *const _ as usize },
20262        56usize,
20263        concat!(
20264            "Offset of field: ",
20265            stringify!(rte_eth_rxq_info),
20266            "::",
20267            stringify!(scattered_rx)
20268        )
20269    );
20270    assert_eq!(
20271        unsafe { &(*(::std::ptr::null::<rte_eth_rxq_info>())).nb_desc as *const _ as usize },
20272        58usize,
20273        concat!(
20274            "Offset of field: ",
20275            stringify!(rte_eth_rxq_info),
20276            "::",
20277            stringify!(nb_desc)
20278        )
20279    );
20280}
20281impl Default for rte_eth_rxq_info {
20282    fn default() -> Self {
20283        unsafe { ::std::mem::zeroed() }
20284    }
20285}
20286#[repr(C)]
20287#[repr(align(64))]
20288#[derive(Copy, Clone)]
20289pub struct rte_eth_txq_info {
20290    pub conf: rte_eth_txconf,
20291    pub nb_desc: u16,
20292}
20293#[test]
20294fn bindgen_test_layout_rte_eth_txq_info() {
20295    assert_eq!(
20296        ::std::mem::size_of::<rte_eth_txq_info>(),
20297        64usize,
20298        concat!("Size of: ", stringify!(rte_eth_txq_info))
20299    );
20300    assert_eq!(
20301        ::std::mem::align_of::<rte_eth_txq_info>(),
20302        64usize,
20303        concat!("Alignment of ", stringify!(rte_eth_txq_info))
20304    );
20305    assert_eq!(
20306        unsafe { &(*(::std::ptr::null::<rte_eth_txq_info>())).conf as *const _ as usize },
20307        0usize,
20308        concat!(
20309            "Offset of field: ",
20310            stringify!(rte_eth_txq_info),
20311            "::",
20312            stringify!(conf)
20313        )
20314    );
20315    assert_eq!(
20316        unsafe { &(*(::std::ptr::null::<rte_eth_txq_info>())).nb_desc as *const _ as usize },
20317        56usize,
20318        concat!(
20319            "Offset of field: ",
20320            stringify!(rte_eth_txq_info),
20321            "::",
20322            stringify!(nb_desc)
20323        )
20324    );
20325}
20326impl Default for rte_eth_txq_info {
20327    fn default() -> Self {
20328        unsafe { ::std::mem::zeroed() }
20329    }
20330}
20331#[repr(C)]
20332#[derive(Copy, Clone)]
20333pub struct rte_eth_burst_mode {
20334    pub flags: u64,
20335    pub info: [::std::os::raw::c_char; 1024usize],
20336}
20337#[test]
20338fn bindgen_test_layout_rte_eth_burst_mode() {
20339    assert_eq!(
20340        ::std::mem::size_of::<rte_eth_burst_mode>(),
20341        1032usize,
20342        concat!("Size of: ", stringify!(rte_eth_burst_mode))
20343    );
20344    assert_eq!(
20345        ::std::mem::align_of::<rte_eth_burst_mode>(),
20346        8usize,
20347        concat!("Alignment of ", stringify!(rte_eth_burst_mode))
20348    );
20349    assert_eq!(
20350        unsafe { &(*(::std::ptr::null::<rte_eth_burst_mode>())).flags as *const _ as usize },
20351        0usize,
20352        concat!(
20353            "Offset of field: ",
20354            stringify!(rte_eth_burst_mode),
20355            "::",
20356            stringify!(flags)
20357        )
20358    );
20359    assert_eq!(
20360        unsafe { &(*(::std::ptr::null::<rte_eth_burst_mode>())).info as *const _ as usize },
20361        8usize,
20362        concat!(
20363            "Offset of field: ",
20364            stringify!(rte_eth_burst_mode),
20365            "::",
20366            stringify!(info)
20367        )
20368    );
20369}
20370impl Default for rte_eth_burst_mode {
20371    fn default() -> Self {
20372        unsafe { ::std::mem::zeroed() }
20373    }
20374}
20375#[repr(C)]
20376#[derive(Debug, Default, Copy, Clone, PartialEq)]
20377pub struct rte_eth_xstat {
20378    pub id: u64,
20379    pub value: u64,
20380}
20381#[test]
20382fn bindgen_test_layout_rte_eth_xstat() {
20383    assert_eq!(
20384        ::std::mem::size_of::<rte_eth_xstat>(),
20385        16usize,
20386        concat!("Size of: ", stringify!(rte_eth_xstat))
20387    );
20388    assert_eq!(
20389        ::std::mem::align_of::<rte_eth_xstat>(),
20390        8usize,
20391        concat!("Alignment of ", stringify!(rte_eth_xstat))
20392    );
20393    assert_eq!(
20394        unsafe { &(*(::std::ptr::null::<rte_eth_xstat>())).id as *const _ as usize },
20395        0usize,
20396        concat!(
20397            "Offset of field: ",
20398            stringify!(rte_eth_xstat),
20399            "::",
20400            stringify!(id)
20401        )
20402    );
20403    assert_eq!(
20404        unsafe { &(*(::std::ptr::null::<rte_eth_xstat>())).value as *const _ as usize },
20405        8usize,
20406        concat!(
20407            "Offset of field: ",
20408            stringify!(rte_eth_xstat),
20409            "::",
20410            stringify!(value)
20411        )
20412    );
20413}
20414#[repr(C)]
20415#[derive(Copy, Clone)]
20416pub struct rte_eth_xstat_name {
20417    pub name: [::std::os::raw::c_char; 64usize],
20418}
20419#[test]
20420fn bindgen_test_layout_rte_eth_xstat_name() {
20421    assert_eq!(
20422        ::std::mem::size_of::<rte_eth_xstat_name>(),
20423        64usize,
20424        concat!("Size of: ", stringify!(rte_eth_xstat_name))
20425    );
20426    assert_eq!(
20427        ::std::mem::align_of::<rte_eth_xstat_name>(),
20428        1usize,
20429        concat!("Alignment of ", stringify!(rte_eth_xstat_name))
20430    );
20431    assert_eq!(
20432        unsafe { &(*(::std::ptr::null::<rte_eth_xstat_name>())).name as *const _ as usize },
20433        0usize,
20434        concat!(
20435            "Offset of field: ",
20436            stringify!(rte_eth_xstat_name),
20437            "::",
20438            stringify!(name)
20439        )
20440    );
20441}
20442impl Default for rte_eth_xstat_name {
20443    fn default() -> Self {
20444        unsafe { ::std::mem::zeroed() }
20445    }
20446}
20447#[repr(C)]
20448#[derive(Copy, Clone)]
20449pub struct rte_eth_dcb_tc_queue_mapping {
20450    pub tc_rxq: [[rte_eth_dcb_tc_queue_mapping__bindgen_ty_1; 8usize]; 64usize],
20451    pub tc_txq: [[rte_eth_dcb_tc_queue_mapping__bindgen_ty_2; 8usize]; 64usize],
20452}
20453#[repr(C)]
20454#[derive(Debug, Default, Copy, Clone, PartialEq)]
20455pub struct rte_eth_dcb_tc_queue_mapping__bindgen_ty_1 {
20456    pub base: u8,
20457    pub nb_queue: u8,
20458}
20459#[test]
20460fn bindgen_test_layout_rte_eth_dcb_tc_queue_mapping__bindgen_ty_1() {
20461    assert_eq!(
20462        ::std::mem::size_of::<rte_eth_dcb_tc_queue_mapping__bindgen_ty_1>(),
20463        2usize,
20464        concat!(
20465            "Size of: ",
20466            stringify!(rte_eth_dcb_tc_queue_mapping__bindgen_ty_1)
20467        )
20468    );
20469    assert_eq!(
20470        ::std::mem::align_of::<rte_eth_dcb_tc_queue_mapping__bindgen_ty_1>(),
20471        1usize,
20472        concat!(
20473            "Alignment of ",
20474            stringify!(rte_eth_dcb_tc_queue_mapping__bindgen_ty_1)
20475        )
20476    );
20477    assert_eq!(
20478        unsafe {
20479            &(*(::std::ptr::null::<rte_eth_dcb_tc_queue_mapping__bindgen_ty_1>())).base as *const _
20480                as usize
20481        },
20482        0usize,
20483        concat!(
20484            "Offset of field: ",
20485            stringify!(rte_eth_dcb_tc_queue_mapping__bindgen_ty_1),
20486            "::",
20487            stringify!(base)
20488        )
20489    );
20490    assert_eq!(
20491        unsafe {
20492            &(*(::std::ptr::null::<rte_eth_dcb_tc_queue_mapping__bindgen_ty_1>())).nb_queue
20493                as *const _ as usize
20494        },
20495        1usize,
20496        concat!(
20497            "Offset of field: ",
20498            stringify!(rte_eth_dcb_tc_queue_mapping__bindgen_ty_1),
20499            "::",
20500            stringify!(nb_queue)
20501        )
20502    );
20503}
20504#[repr(C)]
20505#[derive(Debug, Default, Copy, Clone, PartialEq)]
20506pub struct rte_eth_dcb_tc_queue_mapping__bindgen_ty_2 {
20507    pub base: u8,
20508    pub nb_queue: u8,
20509}
20510#[test]
20511fn bindgen_test_layout_rte_eth_dcb_tc_queue_mapping__bindgen_ty_2() {
20512    assert_eq!(
20513        ::std::mem::size_of::<rte_eth_dcb_tc_queue_mapping__bindgen_ty_2>(),
20514        2usize,
20515        concat!(
20516            "Size of: ",
20517            stringify!(rte_eth_dcb_tc_queue_mapping__bindgen_ty_2)
20518        )
20519    );
20520    assert_eq!(
20521        ::std::mem::align_of::<rte_eth_dcb_tc_queue_mapping__bindgen_ty_2>(),
20522        1usize,
20523        concat!(
20524            "Alignment of ",
20525            stringify!(rte_eth_dcb_tc_queue_mapping__bindgen_ty_2)
20526        )
20527    );
20528    assert_eq!(
20529        unsafe {
20530            &(*(::std::ptr::null::<rte_eth_dcb_tc_queue_mapping__bindgen_ty_2>())).base as *const _
20531                as usize
20532        },
20533        0usize,
20534        concat!(
20535            "Offset of field: ",
20536            stringify!(rte_eth_dcb_tc_queue_mapping__bindgen_ty_2),
20537            "::",
20538            stringify!(base)
20539        )
20540    );
20541    assert_eq!(
20542        unsafe {
20543            &(*(::std::ptr::null::<rte_eth_dcb_tc_queue_mapping__bindgen_ty_2>())).nb_queue
20544                as *const _ as usize
20545        },
20546        1usize,
20547        concat!(
20548            "Offset of field: ",
20549            stringify!(rte_eth_dcb_tc_queue_mapping__bindgen_ty_2),
20550            "::",
20551            stringify!(nb_queue)
20552        )
20553    );
20554}
20555#[test]
20556fn bindgen_test_layout_rte_eth_dcb_tc_queue_mapping() {
20557    assert_eq!(
20558        ::std::mem::size_of::<rte_eth_dcb_tc_queue_mapping>(),
20559        2048usize,
20560        concat!("Size of: ", stringify!(rte_eth_dcb_tc_queue_mapping))
20561    );
20562    assert_eq!(
20563        ::std::mem::align_of::<rte_eth_dcb_tc_queue_mapping>(),
20564        1usize,
20565        concat!("Alignment of ", stringify!(rte_eth_dcb_tc_queue_mapping))
20566    );
20567    assert_eq!(
20568        unsafe {
20569            &(*(::std::ptr::null::<rte_eth_dcb_tc_queue_mapping>())).tc_rxq as *const _ as usize
20570        },
20571        0usize,
20572        concat!(
20573            "Offset of field: ",
20574            stringify!(rte_eth_dcb_tc_queue_mapping),
20575            "::",
20576            stringify!(tc_rxq)
20577        )
20578    );
20579    assert_eq!(
20580        unsafe {
20581            &(*(::std::ptr::null::<rte_eth_dcb_tc_queue_mapping>())).tc_txq as *const _ as usize
20582        },
20583        1024usize,
20584        concat!(
20585            "Offset of field: ",
20586            stringify!(rte_eth_dcb_tc_queue_mapping),
20587            "::",
20588            stringify!(tc_txq)
20589        )
20590    );
20591}
20592impl Default for rte_eth_dcb_tc_queue_mapping {
20593    fn default() -> Self {
20594        unsafe { ::std::mem::zeroed() }
20595    }
20596}
20597#[repr(C)]
20598#[derive(Copy, Clone)]
20599pub struct rte_eth_dcb_info {
20600    pub nb_tcs: u8,
20601    pub prio_tc: [u8; 8usize],
20602    pub tc_bws: [u8; 8usize],
20603    pub tc_queue: rte_eth_dcb_tc_queue_mapping,
20604}
20605#[test]
20606fn bindgen_test_layout_rte_eth_dcb_info() {
20607    assert_eq!(
20608        ::std::mem::size_of::<rte_eth_dcb_info>(),
20609        2065usize,
20610        concat!("Size of: ", stringify!(rte_eth_dcb_info))
20611    );
20612    assert_eq!(
20613        ::std::mem::align_of::<rte_eth_dcb_info>(),
20614        1usize,
20615        concat!("Alignment of ", stringify!(rte_eth_dcb_info))
20616    );
20617    assert_eq!(
20618        unsafe { &(*(::std::ptr::null::<rte_eth_dcb_info>())).nb_tcs as *const _ as usize },
20619        0usize,
20620        concat!(
20621            "Offset of field: ",
20622            stringify!(rte_eth_dcb_info),
20623            "::",
20624            stringify!(nb_tcs)
20625        )
20626    );
20627    assert_eq!(
20628        unsafe { &(*(::std::ptr::null::<rte_eth_dcb_info>())).prio_tc as *const _ as usize },
20629        1usize,
20630        concat!(
20631            "Offset of field: ",
20632            stringify!(rte_eth_dcb_info),
20633            "::",
20634            stringify!(prio_tc)
20635        )
20636    );
20637    assert_eq!(
20638        unsafe { &(*(::std::ptr::null::<rte_eth_dcb_info>())).tc_bws as *const _ as usize },
20639        9usize,
20640        concat!(
20641            "Offset of field: ",
20642            stringify!(rte_eth_dcb_info),
20643            "::",
20644            stringify!(tc_bws)
20645        )
20646    );
20647    assert_eq!(
20648        unsafe { &(*(::std::ptr::null::<rte_eth_dcb_info>())).tc_queue as *const _ as usize },
20649        17usize,
20650        concat!(
20651            "Offset of field: ",
20652            stringify!(rte_eth_dcb_info),
20653            "::",
20654            stringify!(tc_queue)
20655        )
20656    );
20657}
20658impl Default for rte_eth_dcb_info {
20659    fn default() -> Self {
20660        unsafe { ::std::mem::zeroed() }
20661    }
20662}
20663pub type rte_rx_callback_fn = ::std::option::Option<
20664    unsafe extern "C" fn(
20665        port_id: u16,
20666        queue: u16,
20667        pkts: *mut *mut rte_mbuf,
20668        nb_pkts: u16,
20669        max_pkts: u16,
20670        user_param: *mut ::std::os::raw::c_void,
20671    ) -> u16,
20672>;
20673pub type rte_tx_callback_fn = ::std::option::Option<
20674    unsafe extern "C" fn(
20675        port_id: u16,
20676        queue: u16,
20677        pkts: *mut *mut rte_mbuf,
20678        nb_pkts: u16,
20679        user_param: *mut ::std::os::raw::c_void,
20680    ) -> u16,
20681>;
20682pub mod rte_eth_dev_state {
20683    pub type Type = ::std::os::raw::c_uint;
20684    pub const RTE_ETH_DEV_UNUSED: Type = 0;
20685    pub const RTE_ETH_DEV_ATTACHED: Type = 1;
20686    pub const RTE_ETH_DEV_REMOVED: Type = 2;
20687}
20688#[repr(C)]
20689#[derive(Debug, Default, Copy, Clone, PartialEq)]
20690pub struct rte_eth_dev_sriov {
20691    pub active: u8,
20692    pub nb_q_per_pool: u8,
20693    pub def_vmdq_idx: u16,
20694    pub def_pool_q_idx: u16,
20695}
20696#[test]
20697fn bindgen_test_layout_rte_eth_dev_sriov() {
20698    assert_eq!(
20699        ::std::mem::size_of::<rte_eth_dev_sriov>(),
20700        6usize,
20701        concat!("Size of: ", stringify!(rte_eth_dev_sriov))
20702    );
20703    assert_eq!(
20704        ::std::mem::align_of::<rte_eth_dev_sriov>(),
20705        2usize,
20706        concat!("Alignment of ", stringify!(rte_eth_dev_sriov))
20707    );
20708    assert_eq!(
20709        unsafe { &(*(::std::ptr::null::<rte_eth_dev_sriov>())).active as *const _ as usize },
20710        0usize,
20711        concat!(
20712            "Offset of field: ",
20713            stringify!(rte_eth_dev_sriov),
20714            "::",
20715            stringify!(active)
20716        )
20717    );
20718    assert_eq!(
20719        unsafe { &(*(::std::ptr::null::<rte_eth_dev_sriov>())).nb_q_per_pool as *const _ as usize },
20720        1usize,
20721        concat!(
20722            "Offset of field: ",
20723            stringify!(rte_eth_dev_sriov),
20724            "::",
20725            stringify!(nb_q_per_pool)
20726        )
20727    );
20728    assert_eq!(
20729        unsafe { &(*(::std::ptr::null::<rte_eth_dev_sriov>())).def_vmdq_idx as *const _ as usize },
20730        2usize,
20731        concat!(
20732            "Offset of field: ",
20733            stringify!(rte_eth_dev_sriov),
20734            "::",
20735            stringify!(def_vmdq_idx)
20736        )
20737    );
20738    assert_eq!(
20739        unsafe {
20740            &(*(::std::ptr::null::<rte_eth_dev_sriov>())).def_pool_q_idx as *const _ as usize
20741        },
20742        4usize,
20743        concat!(
20744            "Offset of field: ",
20745            stringify!(rte_eth_dev_sriov),
20746            "::",
20747            stringify!(def_pool_q_idx)
20748        )
20749    );
20750}
20751#[repr(C)]
20752#[derive(Copy, Clone)]
20753pub struct rte_eth_dev_owner {
20754    pub id: u64,
20755    pub name: [::std::os::raw::c_char; 64usize],
20756}
20757#[test]
20758fn bindgen_test_layout_rte_eth_dev_owner() {
20759    assert_eq!(
20760        ::std::mem::size_of::<rte_eth_dev_owner>(),
20761        72usize,
20762        concat!("Size of: ", stringify!(rte_eth_dev_owner))
20763    );
20764    assert_eq!(
20765        ::std::mem::align_of::<rte_eth_dev_owner>(),
20766        8usize,
20767        concat!("Alignment of ", stringify!(rte_eth_dev_owner))
20768    );
20769    assert_eq!(
20770        unsafe { &(*(::std::ptr::null::<rte_eth_dev_owner>())).id as *const _ as usize },
20771        0usize,
20772        concat!(
20773            "Offset of field: ",
20774            stringify!(rte_eth_dev_owner),
20775            "::",
20776            stringify!(id)
20777        )
20778    );
20779    assert_eq!(
20780        unsafe { &(*(::std::ptr::null::<rte_eth_dev_owner>())).name as *const _ as usize },
20781        8usize,
20782        concat!(
20783            "Offset of field: ",
20784            stringify!(rte_eth_dev_owner),
20785            "::",
20786            stringify!(name)
20787        )
20788    );
20789}
20790impl Default for rte_eth_dev_owner {
20791    fn default() -> Self {
20792        unsafe { ::std::mem::zeroed() }
20793    }
20794}
20795extern "C" {
20796    pub fn rte_eth_find_next_owned_by(port_id: u16, owner_id: u64) -> u64;
20797}
20798extern "C" {
20799    pub fn rte_eth_find_next(port_id: u16) -> u16;
20800}
20801extern "C" {
20802    pub fn rte_eth_find_next_of(port_id_start: u16, parent: *const rte_device) -> u16;
20803}
20804extern "C" {
20805    pub fn rte_eth_find_next_sibling(port_id_start: u16, ref_port_id: u16) -> u16;
20806}
20807extern "C" {
20808    pub fn rte_eth_dev_owner_new(owner_id: *mut u64) -> ::std::os::raw::c_int;
20809}
20810extern "C" {
20811    pub fn rte_eth_dev_owner_set(
20812        port_id: u16,
20813        owner: *const rte_eth_dev_owner,
20814    ) -> ::std::os::raw::c_int;
20815}
20816extern "C" {
20817    pub fn rte_eth_dev_owner_unset(port_id: u16, owner_id: u64) -> ::std::os::raw::c_int;
20818}
20819extern "C" {
20820    pub fn rte_eth_dev_owner_delete(owner_id: u64) -> ::std::os::raw::c_int;
20821}
20822extern "C" {
20823    pub fn rte_eth_dev_owner_get(
20824        port_id: u16,
20825        owner: *mut rte_eth_dev_owner,
20826    ) -> ::std::os::raw::c_int;
20827}
20828extern "C" {
20829    pub fn rte_eth_dev_count_avail() -> u16;
20830}
20831extern "C" {
20832    pub fn rte_eth_dev_count_total() -> u16;
20833}
20834extern "C" {
20835    pub fn rte_eth_speed_bitflag(speed: u32, duplex: ::std::os::raw::c_int) -> u32;
20836}
20837extern "C" {
20838    pub fn rte_eth_dev_rx_offload_name(offload: u64) -> *const ::std::os::raw::c_char;
20839}
20840extern "C" {
20841    pub fn rte_eth_dev_tx_offload_name(offload: u64) -> *const ::std::os::raw::c_char;
20842}
20843extern "C" {
20844    pub fn rte_eth_dev_configure(
20845        port_id: u16,
20846        nb_rx_queue: u16,
20847        nb_tx_queue: u16,
20848        eth_conf: *const rte_eth_conf,
20849    ) -> ::std::os::raw::c_int;
20850}
20851extern "C" {
20852    pub fn rte_eth_dev_is_removed(port_id: u16) -> ::std::os::raw::c_int;
20853}
20854extern "C" {
20855    pub fn rte_eth_rx_queue_setup(
20856        port_id: u16,
20857        rx_queue_id: u16,
20858        nb_rx_desc: u16,
20859        socket_id: ::std::os::raw::c_uint,
20860        rx_conf: *const rte_eth_rxconf,
20861        mb_pool: *mut rte_mempool,
20862    ) -> ::std::os::raw::c_int;
20863}
20864extern "C" {
20865    pub fn rte_eth_rx_hairpin_queue_setup(
20866        port_id: u16,
20867        rx_queue_id: u16,
20868        nb_rx_desc: u16,
20869        conf: *const rte_eth_hairpin_conf,
20870    ) -> ::std::os::raw::c_int;
20871}
20872extern "C" {
20873    pub fn rte_eth_tx_queue_setup(
20874        port_id: u16,
20875        tx_queue_id: u16,
20876        nb_tx_desc: u16,
20877        socket_id: ::std::os::raw::c_uint,
20878        tx_conf: *const rte_eth_txconf,
20879    ) -> ::std::os::raw::c_int;
20880}
20881extern "C" {
20882    pub fn rte_eth_tx_hairpin_queue_setup(
20883        port_id: u16,
20884        tx_queue_id: u16,
20885        nb_tx_desc: u16,
20886        conf: *const rte_eth_hairpin_conf,
20887    ) -> ::std::os::raw::c_int;
20888}
20889extern "C" {
20890    pub fn rte_eth_dev_socket_id(port_id: u16) -> ::std::os::raw::c_int;
20891}
20892extern "C" {
20893    pub fn rte_eth_dev_is_valid_port(port_id: u16) -> ::std::os::raw::c_int;
20894}
20895extern "C" {
20896    pub fn rte_eth_dev_rx_queue_start(port_id: u16, rx_queue_id: u16) -> ::std::os::raw::c_int;
20897}
20898extern "C" {
20899    pub fn rte_eth_dev_rx_queue_stop(port_id: u16, rx_queue_id: u16) -> ::std::os::raw::c_int;
20900}
20901extern "C" {
20902    pub fn rte_eth_dev_tx_queue_start(port_id: u16, tx_queue_id: u16) -> ::std::os::raw::c_int;
20903}
20904extern "C" {
20905    pub fn rte_eth_dev_tx_queue_stop(port_id: u16, tx_queue_id: u16) -> ::std::os::raw::c_int;
20906}
20907extern "C" {
20908    pub fn rte_eth_dev_start(port_id: u16) -> ::std::os::raw::c_int;
20909}
20910extern "C" {
20911    pub fn rte_eth_dev_stop(port_id: u16);
20912}
20913extern "C" {
20914    pub fn rte_eth_dev_set_link_up(port_id: u16) -> ::std::os::raw::c_int;
20915}
20916extern "C" {
20917    pub fn rte_eth_dev_set_link_down(port_id: u16) -> ::std::os::raw::c_int;
20918}
20919extern "C" {
20920    pub fn rte_eth_dev_close(port_id: u16);
20921}
20922extern "C" {
20923    pub fn rte_eth_dev_reset(port_id: u16) -> ::std::os::raw::c_int;
20924}
20925extern "C" {
20926    pub fn rte_eth_promiscuous_enable(port_id: u16) -> ::std::os::raw::c_int;
20927}
20928extern "C" {
20929    pub fn rte_eth_promiscuous_disable(port_id: u16) -> ::std::os::raw::c_int;
20930}
20931extern "C" {
20932    pub fn rte_eth_promiscuous_get(port_id: u16) -> ::std::os::raw::c_int;
20933}
20934extern "C" {
20935    pub fn rte_eth_allmulticast_enable(port_id: u16) -> ::std::os::raw::c_int;
20936}
20937extern "C" {
20938    pub fn rte_eth_allmulticast_disable(port_id: u16) -> ::std::os::raw::c_int;
20939}
20940extern "C" {
20941    pub fn rte_eth_allmulticast_get(port_id: u16) -> ::std::os::raw::c_int;
20942}
20943extern "C" {
20944    pub fn rte_eth_link_get(port_id: u16, link: *mut rte_eth_link) -> ::std::os::raw::c_int;
20945}
20946extern "C" {
20947    pub fn rte_eth_link_get_nowait(port_id: u16, link: *mut rte_eth_link) -> ::std::os::raw::c_int;
20948}
20949extern "C" {
20950    pub fn rte_eth_stats_get(port_id: u16, stats: *mut rte_eth_stats) -> ::std::os::raw::c_int;
20951}
20952extern "C" {
20953    pub fn rte_eth_stats_reset(port_id: u16) -> ::std::os::raw::c_int;
20954}
20955extern "C" {
20956    pub fn rte_eth_xstats_get_names(
20957        port_id: u16,
20958        xstats_names: *mut rte_eth_xstat_name,
20959        size: ::std::os::raw::c_uint,
20960    ) -> ::std::os::raw::c_int;
20961}
20962extern "C" {
20963    pub fn rte_eth_xstats_get(
20964        port_id: u16,
20965        xstats: *mut rte_eth_xstat,
20966        n: ::std::os::raw::c_uint,
20967    ) -> ::std::os::raw::c_int;
20968}
20969extern "C" {
20970    pub fn rte_eth_xstats_get_names_by_id(
20971        port_id: u16,
20972        xstats_names: *mut rte_eth_xstat_name,
20973        size: ::std::os::raw::c_uint,
20974        ids: *mut u64,
20975    ) -> ::std::os::raw::c_int;
20976}
20977extern "C" {
20978    pub fn rte_eth_xstats_get_by_id(
20979        port_id: u16,
20980        ids: *const u64,
20981        values: *mut u64,
20982        size: ::std::os::raw::c_uint,
20983    ) -> ::std::os::raw::c_int;
20984}
20985extern "C" {
20986    pub fn rte_eth_xstats_get_id_by_name(
20987        port_id: u16,
20988        xstat_name: *const ::std::os::raw::c_char,
20989        id: *mut u64,
20990    ) -> ::std::os::raw::c_int;
20991}
20992extern "C" {
20993    pub fn rte_eth_xstats_reset(port_id: u16) -> ::std::os::raw::c_int;
20994}
20995extern "C" {
20996    pub fn rte_eth_dev_set_tx_queue_stats_mapping(
20997        port_id: u16,
20998        tx_queue_id: u16,
20999        stat_idx: u8,
21000    ) -> ::std::os::raw::c_int;
21001}
21002extern "C" {
21003    pub fn rte_eth_dev_set_rx_queue_stats_mapping(
21004        port_id: u16,
21005        rx_queue_id: u16,
21006        stat_idx: u8,
21007    ) -> ::std::os::raw::c_int;
21008}
21009extern "C" {
21010    pub fn rte_eth_macaddr_get(
21011        port_id: u16,
21012        mac_addr: *mut rte_ether_addr,
21013    ) -> ::std::os::raw::c_int;
21014}
21015extern "C" {
21016    pub fn rte_eth_dev_info_get(
21017        port_id: u16,
21018        dev_info: *mut rte_eth_dev_info,
21019    ) -> ::std::os::raw::c_int;
21020}
21021extern "C" {
21022    pub fn rte_eth_dev_fw_version_get(
21023        port_id: u16,
21024        fw_version: *mut ::std::os::raw::c_char,
21025        fw_size: size_t,
21026    ) -> ::std::os::raw::c_int;
21027}
21028extern "C" {
21029    pub fn rte_eth_dev_get_supported_ptypes(
21030        port_id: u16,
21031        ptype_mask: u32,
21032        ptypes: *mut u32,
21033        num: ::std::os::raw::c_int,
21034    ) -> ::std::os::raw::c_int;
21035}
21036extern "C" {
21037    pub fn rte_eth_dev_set_ptypes(
21038        port_id: u16,
21039        ptype_mask: u32,
21040        set_ptypes: *mut u32,
21041        num: ::std::os::raw::c_uint,
21042    ) -> ::std::os::raw::c_int;
21043}
21044extern "C" {
21045    pub fn rte_eth_dev_get_mtu(port_id: u16, mtu: *mut u16) -> ::std::os::raw::c_int;
21046}
21047extern "C" {
21048    pub fn rte_eth_dev_set_mtu(port_id: u16, mtu: u16) -> ::std::os::raw::c_int;
21049}
21050extern "C" {
21051    pub fn rte_eth_dev_vlan_filter(
21052        port_id: u16,
21053        vlan_id: u16,
21054        on: ::std::os::raw::c_int,
21055    ) -> ::std::os::raw::c_int;
21056}
21057extern "C" {
21058    pub fn rte_eth_dev_set_vlan_strip_on_queue(
21059        port_id: u16,
21060        rx_queue_id: u16,
21061        on: ::std::os::raw::c_int,
21062    ) -> ::std::os::raw::c_int;
21063}
21064extern "C" {
21065    pub fn rte_eth_dev_set_vlan_ether_type(
21066        port_id: u16,
21067        vlan_type: rte_vlan_type::Type,
21068        tag_type: u16,
21069    ) -> ::std::os::raw::c_int;
21070}
21071extern "C" {
21072    pub fn rte_eth_dev_set_vlan_offload(
21073        port_id: u16,
21074        offload_mask: ::std::os::raw::c_int,
21075    ) -> ::std::os::raw::c_int;
21076}
21077extern "C" {
21078    pub fn rte_eth_dev_get_vlan_offload(port_id: u16) -> ::std::os::raw::c_int;
21079}
21080extern "C" {
21081    pub fn rte_eth_dev_set_vlan_pvid(
21082        port_id: u16,
21083        pvid: u16,
21084        on: ::std::os::raw::c_int,
21085    ) -> ::std::os::raw::c_int;
21086}
21087pub type buffer_tx_error_fn = ::std::option::Option<
21088    unsafe extern "C" fn(
21089        unsent: *mut *mut rte_mbuf,
21090        count: u16,
21091        userdata: *mut ::std::os::raw::c_void,
21092    ),
21093>;
21094#[repr(C)]
21095#[derive(Debug)]
21096pub struct rte_eth_dev_tx_buffer {
21097    pub error_callback: buffer_tx_error_fn,
21098    pub error_userdata: *mut ::std::os::raw::c_void,
21099    pub size: u16,
21100    pub length: u16,
21101    pub pkts: __IncompleteArrayField<*mut rte_mbuf>,
21102}
21103#[test]
21104fn bindgen_test_layout_rte_eth_dev_tx_buffer() {
21105    assert_eq!(
21106        ::std::mem::size_of::<rte_eth_dev_tx_buffer>(),
21107        24usize,
21108        concat!("Size of: ", stringify!(rte_eth_dev_tx_buffer))
21109    );
21110    assert_eq!(
21111        ::std::mem::align_of::<rte_eth_dev_tx_buffer>(),
21112        8usize,
21113        concat!("Alignment of ", stringify!(rte_eth_dev_tx_buffer))
21114    );
21115}
21116impl Default for rte_eth_dev_tx_buffer {
21117    fn default() -> Self {
21118        unsafe { ::std::mem::zeroed() }
21119    }
21120}
21121extern "C" {
21122    pub fn rte_eth_tx_buffer_init(
21123        buffer: *mut rte_eth_dev_tx_buffer,
21124        size: u16,
21125    ) -> ::std::os::raw::c_int;
21126}
21127extern "C" {
21128    pub fn rte_eth_tx_buffer_set_err_callback(
21129        buffer: *mut rte_eth_dev_tx_buffer,
21130        callback: buffer_tx_error_fn,
21131        userdata: *mut ::std::os::raw::c_void,
21132    ) -> ::std::os::raw::c_int;
21133}
21134extern "C" {
21135    pub fn rte_eth_tx_buffer_drop_callback(
21136        pkts: *mut *mut rte_mbuf,
21137        unsent: u16,
21138        userdata: *mut ::std::os::raw::c_void,
21139    );
21140}
21141extern "C" {
21142    pub fn rte_eth_tx_buffer_count_callback(
21143        pkts: *mut *mut rte_mbuf,
21144        unsent: u16,
21145        userdata: *mut ::std::os::raw::c_void,
21146    );
21147}
21148extern "C" {
21149    pub fn rte_eth_tx_done_cleanup(
21150        port_id: u16,
21151        queue_id: u16,
21152        free_cnt: u32,
21153    ) -> ::std::os::raw::c_int;
21154}
21155pub mod rte_eth_event_ipsec_subtype {
21156    pub type Type = ::std::os::raw::c_uint;
21157    pub const RTE_ETH_EVENT_IPSEC_UNKNOWN: Type = 0;
21158    pub const RTE_ETH_EVENT_IPSEC_ESN_OVERFLOW: Type = 1;
21159    pub const RTE_ETH_EVENT_IPSEC_SA_TIME_EXPIRY: Type = 2;
21160    pub const RTE_ETH_EVENT_IPSEC_SA_BYTE_EXPIRY: Type = 3;
21161    pub const RTE_ETH_EVENT_IPSEC_MAX: Type = 4;
21162}
21163#[repr(C)]
21164#[derive(Debug, Copy, Clone, PartialEq)]
21165pub struct rte_eth_event_ipsec_desc {
21166    pub subtype: rte_eth_event_ipsec_subtype::Type,
21167    pub metadata: u64,
21168}
21169#[test]
21170fn bindgen_test_layout_rte_eth_event_ipsec_desc() {
21171    assert_eq!(
21172        ::std::mem::size_of::<rte_eth_event_ipsec_desc>(),
21173        16usize,
21174        concat!("Size of: ", stringify!(rte_eth_event_ipsec_desc))
21175    );
21176    assert_eq!(
21177        ::std::mem::align_of::<rte_eth_event_ipsec_desc>(),
21178        8usize,
21179        concat!("Alignment of ", stringify!(rte_eth_event_ipsec_desc))
21180    );
21181    assert_eq!(
21182        unsafe {
21183            &(*(::std::ptr::null::<rte_eth_event_ipsec_desc>())).subtype as *const _ as usize
21184        },
21185        0usize,
21186        concat!(
21187            "Offset of field: ",
21188            stringify!(rte_eth_event_ipsec_desc),
21189            "::",
21190            stringify!(subtype)
21191        )
21192    );
21193    assert_eq!(
21194        unsafe {
21195            &(*(::std::ptr::null::<rte_eth_event_ipsec_desc>())).metadata as *const _ as usize
21196        },
21197        8usize,
21198        concat!(
21199            "Offset of field: ",
21200            stringify!(rte_eth_event_ipsec_desc),
21201            "::",
21202            stringify!(metadata)
21203        )
21204    );
21205}
21206impl Default for rte_eth_event_ipsec_desc {
21207    fn default() -> Self {
21208        unsafe { ::std::mem::zeroed() }
21209    }
21210}
21211pub mod rte_eth_event_type {
21212    pub type Type = ::std::os::raw::c_uint;
21213    pub const RTE_ETH_EVENT_UNKNOWN: Type = 0;
21214    pub const RTE_ETH_EVENT_INTR_LSC: Type = 1;
21215    pub const RTE_ETH_EVENT_QUEUE_STATE: Type = 2;
21216    pub const RTE_ETH_EVENT_INTR_RESET: Type = 3;
21217    pub const RTE_ETH_EVENT_VF_MBOX: Type = 4;
21218    pub const RTE_ETH_EVENT_MACSEC: Type = 5;
21219    pub const RTE_ETH_EVENT_INTR_RMV: Type = 6;
21220    pub const RTE_ETH_EVENT_NEW: Type = 7;
21221    pub const RTE_ETH_EVENT_DESTROY: Type = 8;
21222    pub const RTE_ETH_EVENT_IPSEC: Type = 9;
21223    pub const RTE_ETH_EVENT_MAX: Type = 10;
21224}
21225pub type rte_eth_dev_cb_fn = ::std::option::Option<
21226    unsafe extern "C" fn(
21227        port_id: u16,
21228        event: rte_eth_event_type::Type,
21229        cb_arg: *mut ::std::os::raw::c_void,
21230        ret_param: *mut ::std::os::raw::c_void,
21231    ) -> ::std::os::raw::c_int,
21232>;
21233extern "C" {
21234    pub fn rte_eth_dev_callback_register(
21235        port_id: u16,
21236        event: rte_eth_event_type::Type,
21237        cb_fn: rte_eth_dev_cb_fn,
21238        cb_arg: *mut ::std::os::raw::c_void,
21239    ) -> ::std::os::raw::c_int;
21240}
21241extern "C" {
21242    pub fn rte_eth_dev_callback_unregister(
21243        port_id: u16,
21244        event: rte_eth_event_type::Type,
21245        cb_fn: rte_eth_dev_cb_fn,
21246        cb_arg: *mut ::std::os::raw::c_void,
21247    ) -> ::std::os::raw::c_int;
21248}
21249extern "C" {
21250    pub fn rte_eth_dev_rx_intr_enable(port_id: u16, queue_id: u16) -> ::std::os::raw::c_int;
21251}
21252extern "C" {
21253    pub fn rte_eth_dev_rx_intr_disable(port_id: u16, queue_id: u16) -> ::std::os::raw::c_int;
21254}
21255extern "C" {
21256    pub fn rte_eth_dev_rx_intr_ctl(
21257        port_id: u16,
21258        epfd: ::std::os::raw::c_int,
21259        op: ::std::os::raw::c_int,
21260        data: *mut ::std::os::raw::c_void,
21261    ) -> ::std::os::raw::c_int;
21262}
21263extern "C" {
21264    pub fn rte_eth_dev_rx_intr_ctl_q(
21265        port_id: u16,
21266        queue_id: u16,
21267        epfd: ::std::os::raw::c_int,
21268        op: ::std::os::raw::c_int,
21269        data: *mut ::std::os::raw::c_void,
21270    ) -> ::std::os::raw::c_int;
21271}
21272extern "C" {
21273    pub fn rte_eth_dev_rx_intr_ctl_q_get_fd(port_id: u16, queue_id: u16) -> ::std::os::raw::c_int;
21274}
21275extern "C" {
21276    pub fn rte_eth_led_on(port_id: u16) -> ::std::os::raw::c_int;
21277}
21278extern "C" {
21279    pub fn rte_eth_led_off(port_id: u16) -> ::std::os::raw::c_int;
21280}
21281extern "C" {
21282    pub fn rte_eth_dev_flow_ctrl_get(
21283        port_id: u16,
21284        fc_conf: *mut rte_eth_fc_conf,
21285    ) -> ::std::os::raw::c_int;
21286}
21287extern "C" {
21288    pub fn rte_eth_dev_flow_ctrl_set(
21289        port_id: u16,
21290        fc_conf: *mut rte_eth_fc_conf,
21291    ) -> ::std::os::raw::c_int;
21292}
21293extern "C" {
21294    pub fn rte_eth_dev_priority_flow_ctrl_set(
21295        port_id: u16,
21296        pfc_conf: *mut rte_eth_pfc_conf,
21297    ) -> ::std::os::raw::c_int;
21298}
21299extern "C" {
21300    pub fn rte_eth_dev_mac_addr_add(
21301        port_id: u16,
21302        mac_addr: *mut rte_ether_addr,
21303        pool: u32,
21304    ) -> ::std::os::raw::c_int;
21305}
21306extern "C" {
21307    pub fn rte_eth_dev_mac_addr_remove(
21308        port_id: u16,
21309        mac_addr: *mut rte_ether_addr,
21310    ) -> ::std::os::raw::c_int;
21311}
21312extern "C" {
21313    pub fn rte_eth_dev_default_mac_addr_set(
21314        port_id: u16,
21315        mac_addr: *mut rte_ether_addr,
21316    ) -> ::std::os::raw::c_int;
21317}
21318extern "C" {
21319    pub fn rte_eth_dev_rss_reta_update(
21320        port_id: u16,
21321        reta_conf: *mut rte_eth_rss_reta_entry64,
21322        reta_size: u16,
21323    ) -> ::std::os::raw::c_int;
21324}
21325extern "C" {
21326    pub fn rte_eth_dev_rss_reta_query(
21327        port_id: u16,
21328        reta_conf: *mut rte_eth_rss_reta_entry64,
21329        reta_size: u16,
21330    ) -> ::std::os::raw::c_int;
21331}
21332extern "C" {
21333    pub fn rte_eth_dev_uc_hash_table_set(
21334        port_id: u16,
21335        addr: *mut rte_ether_addr,
21336        on: u8,
21337    ) -> ::std::os::raw::c_int;
21338}
21339extern "C" {
21340    pub fn rte_eth_dev_uc_all_hash_table_set(port_id: u16, on: u8) -> ::std::os::raw::c_int;
21341}
21342extern "C" {
21343    pub fn rte_eth_mirror_rule_set(
21344        port_id: u16,
21345        mirror_conf: *mut rte_eth_mirror_conf,
21346        rule_id: u8,
21347        on: u8,
21348    ) -> ::std::os::raw::c_int;
21349}
21350extern "C" {
21351    pub fn rte_eth_mirror_rule_reset(port_id: u16, rule_id: u8) -> ::std::os::raw::c_int;
21352}
21353extern "C" {
21354    pub fn rte_eth_set_queue_rate_limit(
21355        port_id: u16,
21356        queue_idx: u16,
21357        tx_rate: u16,
21358    ) -> ::std::os::raw::c_int;
21359}
21360extern "C" {
21361    pub fn rte_eth_dev_rss_hash_update(
21362        port_id: u16,
21363        rss_conf: *mut rte_eth_rss_conf,
21364    ) -> ::std::os::raw::c_int;
21365}
21366extern "C" {
21367    pub fn rte_eth_dev_rss_hash_conf_get(
21368        port_id: u16,
21369        rss_conf: *mut rte_eth_rss_conf,
21370    ) -> ::std::os::raw::c_int;
21371}
21372extern "C" {
21373    pub fn rte_eth_dev_udp_tunnel_port_add(
21374        port_id: u16,
21375        tunnel_udp: *mut rte_eth_udp_tunnel,
21376    ) -> ::std::os::raw::c_int;
21377}
21378extern "C" {
21379    pub fn rte_eth_dev_udp_tunnel_port_delete(
21380        port_id: u16,
21381        tunnel_udp: *mut rte_eth_udp_tunnel,
21382    ) -> ::std::os::raw::c_int;
21383}
21384extern "C" {
21385    pub fn rte_eth_dev_filter_supported(
21386        port_id: u16,
21387        filter_type: rte_filter_type::Type,
21388    ) -> ::std::os::raw::c_int;
21389}
21390extern "C" {
21391    pub fn rte_eth_dev_filter_ctrl(
21392        port_id: u16,
21393        filter_type: rte_filter_type::Type,
21394        filter_op: rte_filter_op::Type,
21395        arg: *mut ::std::os::raw::c_void,
21396    ) -> ::std::os::raw::c_int;
21397}
21398extern "C" {
21399    pub fn rte_eth_dev_get_dcb_info(
21400        port_id: u16,
21401        dcb_info: *mut rte_eth_dcb_info,
21402    ) -> ::std::os::raw::c_int;
21403}
21404extern "C" {
21405    pub fn rte_eth_add_rx_callback(
21406        port_id: u16,
21407        queue_id: u16,
21408        fn_: rte_rx_callback_fn,
21409        user_param: *mut ::std::os::raw::c_void,
21410    ) -> *const rte_eth_rxtx_callback;
21411}
21412extern "C" {
21413    pub fn rte_eth_add_first_rx_callback(
21414        port_id: u16,
21415        queue_id: u16,
21416        fn_: rte_rx_callback_fn,
21417        user_param: *mut ::std::os::raw::c_void,
21418    ) -> *const rte_eth_rxtx_callback;
21419}
21420extern "C" {
21421    pub fn rte_eth_add_tx_callback(
21422        port_id: u16,
21423        queue_id: u16,
21424        fn_: rte_tx_callback_fn,
21425        user_param: *mut ::std::os::raw::c_void,
21426    ) -> *const rte_eth_rxtx_callback;
21427}
21428extern "C" {
21429    pub fn rte_eth_remove_rx_callback(
21430        port_id: u16,
21431        queue_id: u16,
21432        user_cb: *const rte_eth_rxtx_callback,
21433    ) -> ::std::os::raw::c_int;
21434}
21435extern "C" {
21436    pub fn rte_eth_remove_tx_callback(
21437        port_id: u16,
21438        queue_id: u16,
21439        user_cb: *const rte_eth_rxtx_callback,
21440    ) -> ::std::os::raw::c_int;
21441}
21442extern "C" {
21443    pub fn rte_eth_rx_queue_info_get(
21444        port_id: u16,
21445        queue_id: u16,
21446        qinfo: *mut rte_eth_rxq_info,
21447    ) -> ::std::os::raw::c_int;
21448}
21449extern "C" {
21450    pub fn rte_eth_tx_queue_info_get(
21451        port_id: u16,
21452        queue_id: u16,
21453        qinfo: *mut rte_eth_txq_info,
21454    ) -> ::std::os::raw::c_int;
21455}
21456extern "C" {
21457    pub fn rte_eth_rx_burst_mode_get(
21458        port_id: u16,
21459        queue_id: u16,
21460        mode: *mut rte_eth_burst_mode,
21461    ) -> ::std::os::raw::c_int;
21462}
21463extern "C" {
21464    pub fn rte_eth_tx_burst_mode_get(
21465        port_id: u16,
21466        queue_id: u16,
21467        mode: *mut rte_eth_burst_mode,
21468    ) -> ::std::os::raw::c_int;
21469}
21470extern "C" {
21471    pub fn rte_eth_dev_get_reg_info(
21472        port_id: u16,
21473        info: *mut rte_dev_reg_info,
21474    ) -> ::std::os::raw::c_int;
21475}
21476extern "C" {
21477    pub fn rte_eth_dev_get_eeprom_length(port_id: u16) -> ::std::os::raw::c_int;
21478}
21479extern "C" {
21480    pub fn rte_eth_dev_get_eeprom(
21481        port_id: u16,
21482        info: *mut rte_dev_eeprom_info,
21483    ) -> ::std::os::raw::c_int;
21484}
21485extern "C" {
21486    pub fn rte_eth_dev_set_eeprom(
21487        port_id: u16,
21488        info: *mut rte_dev_eeprom_info,
21489    ) -> ::std::os::raw::c_int;
21490}
21491extern "C" {
21492    pub fn rte_eth_dev_get_module_info(
21493        port_id: u16,
21494        modinfo: *mut rte_eth_dev_module_info,
21495    ) -> ::std::os::raw::c_int;
21496}
21497extern "C" {
21498    pub fn rte_eth_dev_get_module_eeprom(
21499        port_id: u16,
21500        info: *mut rte_dev_eeprom_info,
21501    ) -> ::std::os::raw::c_int;
21502}
21503extern "C" {
21504    pub fn rte_eth_dev_set_mc_addr_list(
21505        port_id: u16,
21506        mc_addr_set: *mut rte_ether_addr,
21507        nb_mc_addr: u32,
21508    ) -> ::std::os::raw::c_int;
21509}
21510extern "C" {
21511    pub fn rte_eth_timesync_enable(port_id: u16) -> ::std::os::raw::c_int;
21512}
21513extern "C" {
21514    pub fn rte_eth_timesync_disable(port_id: u16) -> ::std::os::raw::c_int;
21515}
21516extern "C" {
21517    pub fn rte_eth_timesync_read_rx_timestamp(
21518        port_id: u16,
21519        timestamp: *mut timespec,
21520        flags: u32,
21521    ) -> ::std::os::raw::c_int;
21522}
21523extern "C" {
21524    pub fn rte_eth_timesync_read_tx_timestamp(
21525        port_id: u16,
21526        timestamp: *mut timespec,
21527    ) -> ::std::os::raw::c_int;
21528}
21529extern "C" {
21530    pub fn rte_eth_timesync_adjust_time(port_id: u16, delta: i64) -> ::std::os::raw::c_int;
21531}
21532extern "C" {
21533    pub fn rte_eth_timesync_read_time(port_id: u16, time: *mut timespec) -> ::std::os::raw::c_int;
21534}
21535extern "C" {
21536    pub fn rte_eth_timesync_write_time(
21537        port_id: u16,
21538        time: *const timespec,
21539    ) -> ::std::os::raw::c_int;
21540}
21541extern "C" {
21542    pub fn rte_eth_read_clock(port_id: u16, clock: *mut u64) -> ::std::os::raw::c_int;
21543}
21544extern "C" {
21545    pub fn rte_eth_dev_l2_tunnel_eth_type_conf(
21546        port_id: u16,
21547        l2_tunnel: *mut rte_eth_l2_tunnel_conf,
21548    ) -> ::std::os::raw::c_int;
21549}
21550extern "C" {
21551    pub fn rte_eth_dev_l2_tunnel_offload_set(
21552        port_id: u16,
21553        l2_tunnel: *mut rte_eth_l2_tunnel_conf,
21554        mask: u32,
21555        en: u8,
21556    ) -> ::std::os::raw::c_int;
21557}
21558extern "C" {
21559    pub fn rte_eth_dev_get_port_by_name(
21560        name: *const ::std::os::raw::c_char,
21561        port_id: *mut u16,
21562    ) -> ::std::os::raw::c_int;
21563}
21564extern "C" {
21565    pub fn rte_eth_dev_get_name_by_port(
21566        port_id: u16,
21567        name: *mut ::std::os::raw::c_char,
21568    ) -> ::std::os::raw::c_int;
21569}
21570extern "C" {
21571    pub fn rte_eth_dev_adjust_nb_rx_tx_desc(
21572        port_id: u16,
21573        nb_rx_desc: *mut u16,
21574        nb_tx_desc: *mut u16,
21575    ) -> ::std::os::raw::c_int;
21576}
21577extern "C" {
21578    pub fn rte_eth_dev_pool_ops_supported(
21579        port_id: u16,
21580        pool: *const ::std::os::raw::c_char,
21581    ) -> ::std::os::raw::c_int;
21582}
21583extern "C" {
21584    pub fn rte_eth_dev_get_sec_ctx(port_id: u16) -> *mut ::std::os::raw::c_void;
21585}
21586extern "C" {
21587    pub fn rte_eth_dev_hairpin_capability_get(
21588        port_id: u16,
21589        cap: *mut rte_eth_hairpin_cap,
21590    ) -> ::std::os::raw::c_int;
21591}
21592#[repr(C)]
21593#[derive(Debug, Copy, Clone)]
21594pub struct rte_eth_dev_callback {
21595    _unused: [u8; 0],
21596}
21597#[repr(C)]
21598#[derive(Debug, Copy, Clone, PartialEq)]
21599pub struct rte_eth_dev_cb_list {
21600    pub tqh_first: *mut rte_eth_dev_callback,
21601    pub tqh_last: *mut *mut rte_eth_dev_callback,
21602}
21603#[test]
21604fn bindgen_test_layout_rte_eth_dev_cb_list() {
21605    assert_eq!(
21606        ::std::mem::size_of::<rte_eth_dev_cb_list>(),
21607        16usize,
21608        concat!("Size of: ", stringify!(rte_eth_dev_cb_list))
21609    );
21610    assert_eq!(
21611        ::std::mem::align_of::<rte_eth_dev_cb_list>(),
21612        8usize,
21613        concat!("Alignment of ", stringify!(rte_eth_dev_cb_list))
21614    );
21615    assert_eq!(
21616        unsafe { &(*(::std::ptr::null::<rte_eth_dev_cb_list>())).tqh_first as *const _ as usize },
21617        0usize,
21618        concat!(
21619            "Offset of field: ",
21620            stringify!(rte_eth_dev_cb_list),
21621            "::",
21622            stringify!(tqh_first)
21623        )
21624    );
21625    assert_eq!(
21626        unsafe { &(*(::std::ptr::null::<rte_eth_dev_cb_list>())).tqh_last as *const _ as usize },
21627        8usize,
21628        concat!(
21629            "Offset of field: ",
21630            stringify!(rte_eth_dev_cb_list),
21631            "::",
21632            stringify!(tqh_last)
21633        )
21634    );
21635}
21636impl Default for rte_eth_dev_cb_list {
21637    fn default() -> Self {
21638        unsafe { ::std::mem::zeroed() }
21639    }
21640}
21641pub type eth_dev_configure_t =
21642    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21643pub type eth_dev_start_t =
21644    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21645pub type eth_dev_stop_t = ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev)>;
21646pub type eth_dev_set_link_up_t =
21647    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21648pub type eth_dev_set_link_down_t =
21649    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21650pub type eth_dev_close_t = ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev)>;
21651pub type eth_dev_reset_t =
21652    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21653pub type eth_is_removed_t =
21654    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21655pub type eth_promiscuous_enable_t =
21656    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21657pub type eth_promiscuous_disable_t =
21658    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21659pub type eth_allmulticast_enable_t =
21660    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21661pub type eth_allmulticast_disable_t =
21662    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21663pub type eth_link_update_t = ::std::option::Option<
21664    unsafe extern "C" fn(
21665        dev: *mut rte_eth_dev,
21666        wait_to_complete: ::std::os::raw::c_int,
21667    ) -> ::std::os::raw::c_int,
21668>;
21669pub type eth_stats_get_t = ::std::option::Option<
21670    unsafe extern "C" fn(
21671        dev: *mut rte_eth_dev,
21672        igb_stats: *mut rte_eth_stats,
21673    ) -> ::std::os::raw::c_int,
21674>;
21675pub type eth_stats_reset_t =
21676    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21677pub type eth_xstats_get_t = ::std::option::Option<
21678    unsafe extern "C" fn(
21679        dev: *mut rte_eth_dev,
21680        stats: *mut rte_eth_xstat,
21681        n: ::std::os::raw::c_uint,
21682    ) -> ::std::os::raw::c_int,
21683>;
21684pub type eth_xstats_get_by_id_t = ::std::option::Option<
21685    unsafe extern "C" fn(
21686        dev: *mut rte_eth_dev,
21687        ids: *const u64,
21688        values: *mut u64,
21689        n: ::std::os::raw::c_uint,
21690    ) -> ::std::os::raw::c_int,
21691>;
21692pub type eth_xstats_reset_t =
21693    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21694pub type eth_xstats_get_names_t = ::std::option::Option<
21695    unsafe extern "C" fn(
21696        dev: *mut rte_eth_dev,
21697        xstats_names: *mut rte_eth_xstat_name,
21698        size: ::std::os::raw::c_uint,
21699    ) -> ::std::os::raw::c_int,
21700>;
21701pub type eth_xstats_get_names_by_id_t = ::std::option::Option<
21702    unsafe extern "C" fn(
21703        dev: *mut rte_eth_dev,
21704        xstats_names: *mut rte_eth_xstat_name,
21705        ids: *const u64,
21706        size: ::std::os::raw::c_uint,
21707    ) -> ::std::os::raw::c_int,
21708>;
21709pub type eth_queue_stats_mapping_set_t = ::std::option::Option<
21710    unsafe extern "C" fn(
21711        dev: *mut rte_eth_dev,
21712        queue_id: u16,
21713        stat_idx: u8,
21714        is_rx: u8,
21715    ) -> ::std::os::raw::c_int,
21716>;
21717pub type eth_dev_infos_get_t = ::std::option::Option<
21718    unsafe extern "C" fn(
21719        dev: *mut rte_eth_dev,
21720        dev_info: *mut rte_eth_dev_info,
21721    ) -> ::std::os::raw::c_int,
21722>;
21723pub type eth_dev_supported_ptypes_get_t =
21724    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> *const u32>;
21725pub type eth_dev_ptypes_set_t = ::std::option::Option<
21726    unsafe extern "C" fn(dev: *mut rte_eth_dev, ptype_mask: u32) -> ::std::os::raw::c_int,
21727>;
21728pub type eth_queue_start_t = ::std::option::Option<
21729    unsafe extern "C" fn(dev: *mut rte_eth_dev, queue_id: u16) -> ::std::os::raw::c_int,
21730>;
21731pub type eth_queue_stop_t = ::std::option::Option<
21732    unsafe extern "C" fn(dev: *mut rte_eth_dev, queue_id: u16) -> ::std::os::raw::c_int,
21733>;
21734pub type eth_rx_queue_setup_t = ::std::option::Option<
21735    unsafe extern "C" fn(
21736        dev: *mut rte_eth_dev,
21737        rx_queue_id: u16,
21738        nb_rx_desc: u16,
21739        socket_id: ::std::os::raw::c_uint,
21740        rx_conf: *const rte_eth_rxconf,
21741        mb_pool: *mut rte_mempool,
21742    ) -> ::std::os::raw::c_int,
21743>;
21744pub type eth_tx_queue_setup_t = ::std::option::Option<
21745    unsafe extern "C" fn(
21746        dev: *mut rte_eth_dev,
21747        tx_queue_id: u16,
21748        nb_tx_desc: u16,
21749        socket_id: ::std::os::raw::c_uint,
21750        tx_conf: *const rte_eth_txconf,
21751    ) -> ::std::os::raw::c_int,
21752>;
21753pub type eth_rx_enable_intr_t = ::std::option::Option<
21754    unsafe extern "C" fn(dev: *mut rte_eth_dev, rx_queue_id: u16) -> ::std::os::raw::c_int,
21755>;
21756pub type eth_rx_disable_intr_t = ::std::option::Option<
21757    unsafe extern "C" fn(dev: *mut rte_eth_dev, rx_queue_id: u16) -> ::std::os::raw::c_int,
21758>;
21759pub type eth_queue_release_t =
21760    ::std::option::Option<unsafe extern "C" fn(queue: *mut ::std::os::raw::c_void)>;
21761pub type eth_rx_queue_count_t =
21762    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev, rx_queue_id: u16) -> u32>;
21763pub type eth_rx_descriptor_done_t = ::std::option::Option<
21764    unsafe extern "C" fn(rxq: *mut ::std::os::raw::c_void, offset: u16) -> ::std::os::raw::c_int,
21765>;
21766pub type eth_rx_descriptor_status_t = ::std::option::Option<
21767    unsafe extern "C" fn(rxq: *mut ::std::os::raw::c_void, offset: u16) -> ::std::os::raw::c_int,
21768>;
21769pub type eth_tx_descriptor_status_t = ::std::option::Option<
21770    unsafe extern "C" fn(txq: *mut ::std::os::raw::c_void, offset: u16) -> ::std::os::raw::c_int,
21771>;
21772pub type eth_fw_version_get_t = ::std::option::Option<
21773    unsafe extern "C" fn(
21774        dev: *mut rte_eth_dev,
21775        fw_version: *mut ::std::os::raw::c_char,
21776        fw_size: size_t,
21777    ) -> ::std::os::raw::c_int,
21778>;
21779pub type eth_tx_done_cleanup_t = ::std::option::Option<
21780    unsafe extern "C" fn(txq: *mut ::std::os::raw::c_void, free_cnt: u32) -> ::std::os::raw::c_int,
21781>;
21782pub type eth_rxq_info_get_t = ::std::option::Option<
21783    unsafe extern "C" fn(dev: *mut rte_eth_dev, rx_queue_id: u16, qinfo: *mut rte_eth_rxq_info),
21784>;
21785pub type eth_txq_info_get_t = ::std::option::Option<
21786    unsafe extern "C" fn(dev: *mut rte_eth_dev, tx_queue_id: u16, qinfo: *mut rte_eth_txq_info),
21787>;
21788pub type eth_burst_mode_get_t = ::std::option::Option<
21789    unsafe extern "C" fn(
21790        dev: *mut rte_eth_dev,
21791        queue_id: u16,
21792        mode: *mut rte_eth_burst_mode,
21793    ) -> ::std::os::raw::c_int,
21794>;
21795pub type mtu_set_t = ::std::option::Option<
21796    unsafe extern "C" fn(dev: *mut rte_eth_dev, mtu: u16) -> ::std::os::raw::c_int,
21797>;
21798pub type vlan_filter_set_t = ::std::option::Option<
21799    unsafe extern "C" fn(
21800        dev: *mut rte_eth_dev,
21801        vlan_id: u16,
21802        on: ::std::os::raw::c_int,
21803    ) -> ::std::os::raw::c_int,
21804>;
21805pub type vlan_tpid_set_t = ::std::option::Option<
21806    unsafe extern "C" fn(
21807        dev: *mut rte_eth_dev,
21808        type_: rte_vlan_type::Type,
21809        tpid: u16,
21810    ) -> ::std::os::raw::c_int,
21811>;
21812pub type vlan_offload_set_t = ::std::option::Option<
21813    unsafe extern "C" fn(
21814        dev: *mut rte_eth_dev,
21815        mask: ::std::os::raw::c_int,
21816    ) -> ::std::os::raw::c_int,
21817>;
21818pub type vlan_pvid_set_t = ::std::option::Option<
21819    unsafe extern "C" fn(
21820        dev: *mut rte_eth_dev,
21821        vlan_id: u16,
21822        on: ::std::os::raw::c_int,
21823    ) -> ::std::os::raw::c_int,
21824>;
21825pub type vlan_strip_queue_set_t = ::std::option::Option<
21826    unsafe extern "C" fn(dev: *mut rte_eth_dev, rx_queue_id: u16, on: ::std::os::raw::c_int),
21827>;
21828pub type eth_rx_burst_t = ::std::option::Option<
21829    unsafe extern "C" fn(
21830        rxq: *mut ::std::os::raw::c_void,
21831        rx_pkts: *mut *mut rte_mbuf,
21832        nb_pkts: u16,
21833    ) -> u16,
21834>;
21835pub type eth_tx_burst_t = ::std::option::Option<
21836    unsafe extern "C" fn(
21837        txq: *mut ::std::os::raw::c_void,
21838        tx_pkts: *mut *mut rte_mbuf,
21839        nb_pkts: u16,
21840    ) -> u16,
21841>;
21842pub type eth_tx_prep_t = ::std::option::Option<
21843    unsafe extern "C" fn(
21844        txq: *mut ::std::os::raw::c_void,
21845        tx_pkts: *mut *mut rte_mbuf,
21846        nb_pkts: u16,
21847    ) -> u16,
21848>;
21849pub type flow_ctrl_get_t = ::std::option::Option<
21850    unsafe extern "C" fn(
21851        dev: *mut rte_eth_dev,
21852        fc_conf: *mut rte_eth_fc_conf,
21853    ) -> ::std::os::raw::c_int,
21854>;
21855pub type flow_ctrl_set_t = ::std::option::Option<
21856    unsafe extern "C" fn(
21857        dev: *mut rte_eth_dev,
21858        fc_conf: *mut rte_eth_fc_conf,
21859    ) -> ::std::os::raw::c_int,
21860>;
21861pub type priority_flow_ctrl_set_t = ::std::option::Option<
21862    unsafe extern "C" fn(
21863        dev: *mut rte_eth_dev,
21864        pfc_conf: *mut rte_eth_pfc_conf,
21865    ) -> ::std::os::raw::c_int,
21866>;
21867pub type reta_update_t = ::std::option::Option<
21868    unsafe extern "C" fn(
21869        dev: *mut rte_eth_dev,
21870        reta_conf: *mut rte_eth_rss_reta_entry64,
21871        reta_size: u16,
21872    ) -> ::std::os::raw::c_int,
21873>;
21874pub type reta_query_t = ::std::option::Option<
21875    unsafe extern "C" fn(
21876        dev: *mut rte_eth_dev,
21877        reta_conf: *mut rte_eth_rss_reta_entry64,
21878        reta_size: u16,
21879    ) -> ::std::os::raw::c_int,
21880>;
21881pub type rss_hash_update_t = ::std::option::Option<
21882    unsafe extern "C" fn(
21883        dev: *mut rte_eth_dev,
21884        rss_conf: *mut rte_eth_rss_conf,
21885    ) -> ::std::os::raw::c_int,
21886>;
21887pub type rss_hash_conf_get_t = ::std::option::Option<
21888    unsafe extern "C" fn(
21889        dev: *mut rte_eth_dev,
21890        rss_conf: *mut rte_eth_rss_conf,
21891    ) -> ::std::os::raw::c_int,
21892>;
21893pub type eth_dev_led_on_t =
21894    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21895pub type eth_dev_led_off_t =
21896    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21897pub type eth_mac_addr_remove_t =
21898    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev, index: u32)>;
21899pub type eth_mac_addr_add_t = ::std::option::Option<
21900    unsafe extern "C" fn(
21901        dev: *mut rte_eth_dev,
21902        mac_addr: *mut rte_ether_addr,
21903        index: u32,
21904        vmdq: u32,
21905    ) -> ::std::os::raw::c_int,
21906>;
21907pub type eth_mac_addr_set_t = ::std::option::Option<
21908    unsafe extern "C" fn(
21909        dev: *mut rte_eth_dev,
21910        mac_addr: *mut rte_ether_addr,
21911    ) -> ::std::os::raw::c_int,
21912>;
21913pub type eth_uc_hash_table_set_t = ::std::option::Option<
21914    unsafe extern "C" fn(
21915        dev: *mut rte_eth_dev,
21916        mac_addr: *mut rte_ether_addr,
21917        on: u8,
21918    ) -> ::std::os::raw::c_int,
21919>;
21920pub type eth_uc_all_hash_table_set_t = ::std::option::Option<
21921    unsafe extern "C" fn(dev: *mut rte_eth_dev, on: u8) -> ::std::os::raw::c_int,
21922>;
21923pub type eth_set_queue_rate_limit_t = ::std::option::Option<
21924    unsafe extern "C" fn(
21925        dev: *mut rte_eth_dev,
21926        queue_idx: u16,
21927        tx_rate: u16,
21928    ) -> ::std::os::raw::c_int,
21929>;
21930pub type eth_mirror_rule_set_t = ::std::option::Option<
21931    unsafe extern "C" fn(
21932        dev: *mut rte_eth_dev,
21933        mirror_conf: *mut rte_eth_mirror_conf,
21934        rule_id: u8,
21935        on: u8,
21936    ) -> ::std::os::raw::c_int,
21937>;
21938pub type eth_mirror_rule_reset_t = ::std::option::Option<
21939    unsafe extern "C" fn(dev: *mut rte_eth_dev, rule_id: u8) -> ::std::os::raw::c_int,
21940>;
21941pub type eth_udp_tunnel_port_add_t = ::std::option::Option<
21942    unsafe extern "C" fn(
21943        dev: *mut rte_eth_dev,
21944        tunnel_udp: *mut rte_eth_udp_tunnel,
21945    ) -> ::std::os::raw::c_int,
21946>;
21947pub type eth_udp_tunnel_port_del_t = ::std::option::Option<
21948    unsafe extern "C" fn(
21949        dev: *mut rte_eth_dev,
21950        tunnel_udp: *mut rte_eth_udp_tunnel,
21951    ) -> ::std::os::raw::c_int,
21952>;
21953pub type eth_set_mc_addr_list_t = ::std::option::Option<
21954    unsafe extern "C" fn(
21955        dev: *mut rte_eth_dev,
21956        mc_addr_set: *mut rte_ether_addr,
21957        nb_mc_addr: u32,
21958    ) -> ::std::os::raw::c_int,
21959>;
21960pub type eth_timesync_enable_t =
21961    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21962pub type eth_timesync_disable_t =
21963    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21964pub type eth_timesync_read_rx_timestamp_t = ::std::option::Option<
21965    unsafe extern "C" fn(
21966        dev: *mut rte_eth_dev,
21967        timestamp: *mut timespec,
21968        flags: u32,
21969    ) -> ::std::os::raw::c_int,
21970>;
21971pub type eth_timesync_read_tx_timestamp_t = ::std::option::Option<
21972    unsafe extern "C" fn(dev: *mut rte_eth_dev, timestamp: *mut timespec) -> ::std::os::raw::c_int,
21973>;
21974pub type eth_timesync_adjust_time = ::std::option::Option<
21975    unsafe extern "C" fn(dev: *mut rte_eth_dev, arg1: i64) -> ::std::os::raw::c_int,
21976>;
21977pub type eth_timesync_read_time = ::std::option::Option<
21978    unsafe extern "C" fn(dev: *mut rte_eth_dev, timestamp: *mut timespec) -> ::std::os::raw::c_int,
21979>;
21980pub type eth_timesync_write_time = ::std::option::Option<
21981    unsafe extern "C" fn(
21982        dev: *mut rte_eth_dev,
21983        timestamp: *const timespec,
21984    ) -> ::std::os::raw::c_int,
21985>;
21986pub type eth_read_clock = ::std::option::Option<
21987    unsafe extern "C" fn(dev: *mut rte_eth_dev, timestamp: *mut u64) -> ::std::os::raw::c_int,
21988>;
21989pub type eth_get_reg_t = ::std::option::Option<
21990    unsafe extern "C" fn(
21991        dev: *mut rte_eth_dev,
21992        info: *mut rte_dev_reg_info,
21993    ) -> ::std::os::raw::c_int,
21994>;
21995pub type eth_get_eeprom_length_t =
21996    ::std::option::Option<unsafe extern "C" fn(dev: *mut rte_eth_dev) -> ::std::os::raw::c_int>;
21997pub type eth_get_eeprom_t = ::std::option::Option<
21998    unsafe extern "C" fn(
21999        dev: *mut rte_eth_dev,
22000        info: *mut rte_dev_eeprom_info,
22001    ) -> ::std::os::raw::c_int,
22002>;
22003pub type eth_set_eeprom_t = ::std::option::Option<
22004    unsafe extern "C" fn(
22005        dev: *mut rte_eth_dev,
22006        info: *mut rte_dev_eeprom_info,
22007    ) -> ::std::os::raw::c_int,
22008>;
22009pub type eth_get_module_info_t = ::std::option::Option<
22010    unsafe extern "C" fn(
22011        dev: *mut rte_eth_dev,
22012        modinfo: *mut rte_eth_dev_module_info,
22013    ) -> ::std::os::raw::c_int,
22014>;
22015pub type eth_get_module_eeprom_t = ::std::option::Option<
22016    unsafe extern "C" fn(
22017        dev: *mut rte_eth_dev,
22018        info: *mut rte_dev_eeprom_info,
22019    ) -> ::std::os::raw::c_int,
22020>;
22021pub type eth_l2_tunnel_eth_type_conf_t = ::std::option::Option<
22022    unsafe extern "C" fn(
22023        dev: *mut rte_eth_dev,
22024        l2_tunnel: *mut rte_eth_l2_tunnel_conf,
22025    ) -> ::std::os::raw::c_int,
22026>;
22027pub type eth_l2_tunnel_offload_set_t = ::std::option::Option<
22028    unsafe extern "C" fn(
22029        dev: *mut rte_eth_dev,
22030        l2_tunnel: *mut rte_eth_l2_tunnel_conf,
22031        mask: u32,
22032        en: u8,
22033    ) -> ::std::os::raw::c_int,
22034>;
22035pub type eth_filter_ctrl_t = ::std::option::Option<
22036    unsafe extern "C" fn(
22037        dev: *mut rte_eth_dev,
22038        filter_type: rte_filter_type::Type,
22039        filter_op: rte_filter_op::Type,
22040        arg: *mut ::std::os::raw::c_void,
22041    ) -> ::std::os::raw::c_int,
22042>;
22043pub type eth_tm_ops_get_t = ::std::option::Option<
22044    unsafe extern "C" fn(
22045        dev: *mut rte_eth_dev,
22046        ops: *mut ::std::os::raw::c_void,
22047    ) -> ::std::os::raw::c_int,
22048>;
22049pub type eth_mtr_ops_get_t = ::std::option::Option<
22050    unsafe extern "C" fn(
22051        dev: *mut rte_eth_dev,
22052        ops: *mut ::std::os::raw::c_void,
22053    ) -> ::std::os::raw::c_int,
22054>;
22055pub type eth_get_dcb_info = ::std::option::Option<
22056    unsafe extern "C" fn(
22057        dev: *mut rte_eth_dev,
22058        dcb_info: *mut rte_eth_dcb_info,
22059    ) -> ::std::os::raw::c_int,
22060>;
22061pub type eth_pool_ops_supported_t = ::std::option::Option<
22062    unsafe extern "C" fn(
22063        dev: *mut rte_eth_dev,
22064        pool: *const ::std::os::raw::c_char,
22065    ) -> ::std::os::raw::c_int,
22066>;
22067pub type eth_hairpin_cap_get_t = ::std::option::Option<
22068    unsafe extern "C" fn(
22069        dev: *mut rte_eth_dev,
22070        cap: *mut rte_eth_hairpin_cap,
22071    ) -> ::std::os::raw::c_int,
22072>;
22073pub type eth_rx_hairpin_queue_setup_t = ::std::option::Option<
22074    unsafe extern "C" fn(
22075        dev: *mut rte_eth_dev,
22076        rx_queue_id: u16,
22077        nb_rx_desc: u16,
22078        conf: *const rte_eth_hairpin_conf,
22079    ) -> ::std::os::raw::c_int,
22080>;
22081pub type eth_tx_hairpin_queue_setup_t = ::std::option::Option<
22082    unsafe extern "C" fn(
22083        dev: *mut rte_eth_dev,
22084        tx_queue_id: u16,
22085        nb_tx_desc: u16,
22086        hairpin_conf: *const rte_eth_hairpin_conf,
22087    ) -> ::std::os::raw::c_int,
22088>;
22089#[repr(C)]
22090#[derive(Debug, Default, Copy, Clone, PartialEq)]
22091pub struct eth_dev_ops {
22092    pub dev_configure: eth_dev_configure_t,
22093    pub dev_start: eth_dev_start_t,
22094    pub dev_stop: eth_dev_stop_t,
22095    pub dev_set_link_up: eth_dev_set_link_up_t,
22096    pub dev_set_link_down: eth_dev_set_link_down_t,
22097    pub dev_close: eth_dev_close_t,
22098    pub dev_reset: eth_dev_reset_t,
22099    pub link_update: eth_link_update_t,
22100    pub is_removed: eth_is_removed_t,
22101    pub promiscuous_enable: eth_promiscuous_enable_t,
22102    pub promiscuous_disable: eth_promiscuous_disable_t,
22103    pub allmulticast_enable: eth_allmulticast_enable_t,
22104    pub allmulticast_disable: eth_allmulticast_disable_t,
22105    pub mac_addr_remove: eth_mac_addr_remove_t,
22106    pub mac_addr_add: eth_mac_addr_add_t,
22107    pub mac_addr_set: eth_mac_addr_set_t,
22108    pub set_mc_addr_list: eth_set_mc_addr_list_t,
22109    pub mtu_set: mtu_set_t,
22110    pub stats_get: eth_stats_get_t,
22111    pub stats_reset: eth_stats_reset_t,
22112    pub xstats_get: eth_xstats_get_t,
22113    pub xstats_reset: eth_xstats_reset_t,
22114    pub xstats_get_names: eth_xstats_get_names_t,
22115    pub queue_stats_mapping_set: eth_queue_stats_mapping_set_t,
22116    pub dev_infos_get: eth_dev_infos_get_t,
22117    pub rxq_info_get: eth_rxq_info_get_t,
22118    pub txq_info_get: eth_txq_info_get_t,
22119    pub rx_burst_mode_get: eth_burst_mode_get_t,
22120    pub tx_burst_mode_get: eth_burst_mode_get_t,
22121    pub fw_version_get: eth_fw_version_get_t,
22122    pub dev_supported_ptypes_get: eth_dev_supported_ptypes_get_t,
22123    pub dev_ptypes_set: eth_dev_ptypes_set_t,
22124    pub vlan_filter_set: vlan_filter_set_t,
22125    pub vlan_tpid_set: vlan_tpid_set_t,
22126    pub vlan_strip_queue_set: vlan_strip_queue_set_t,
22127    pub vlan_offload_set: vlan_offload_set_t,
22128    pub vlan_pvid_set: vlan_pvid_set_t,
22129    pub rx_queue_start: eth_queue_start_t,
22130    pub rx_queue_stop: eth_queue_stop_t,
22131    pub tx_queue_start: eth_queue_start_t,
22132    pub tx_queue_stop: eth_queue_stop_t,
22133    pub rx_queue_setup: eth_rx_queue_setup_t,
22134    pub rx_queue_release: eth_queue_release_t,
22135    pub rx_queue_count: eth_rx_queue_count_t,
22136    pub rx_descriptor_done: eth_rx_descriptor_done_t,
22137    pub rx_descriptor_status: eth_rx_descriptor_status_t,
22138    pub tx_descriptor_status: eth_tx_descriptor_status_t,
22139    pub rx_queue_intr_enable: eth_rx_enable_intr_t,
22140    pub rx_queue_intr_disable: eth_rx_disable_intr_t,
22141    pub tx_queue_setup: eth_tx_queue_setup_t,
22142    pub tx_queue_release: eth_queue_release_t,
22143    pub tx_done_cleanup: eth_tx_done_cleanup_t,
22144    pub dev_led_on: eth_dev_led_on_t,
22145    pub dev_led_off: eth_dev_led_off_t,
22146    pub flow_ctrl_get: flow_ctrl_get_t,
22147    pub flow_ctrl_set: flow_ctrl_set_t,
22148    pub priority_flow_ctrl_set: priority_flow_ctrl_set_t,
22149    pub uc_hash_table_set: eth_uc_hash_table_set_t,
22150    pub uc_all_hash_table_set: eth_uc_all_hash_table_set_t,
22151    pub mirror_rule_set: eth_mirror_rule_set_t,
22152    pub mirror_rule_reset: eth_mirror_rule_reset_t,
22153    pub udp_tunnel_port_add: eth_udp_tunnel_port_add_t,
22154    pub udp_tunnel_port_del: eth_udp_tunnel_port_del_t,
22155    pub l2_tunnel_eth_type_conf: eth_l2_tunnel_eth_type_conf_t,
22156    pub l2_tunnel_offload_set: eth_l2_tunnel_offload_set_t,
22157    pub set_queue_rate_limit: eth_set_queue_rate_limit_t,
22158    pub rss_hash_update: rss_hash_update_t,
22159    pub rss_hash_conf_get: rss_hash_conf_get_t,
22160    pub reta_update: reta_update_t,
22161    pub reta_query: reta_query_t,
22162    pub get_reg: eth_get_reg_t,
22163    pub get_eeprom_length: eth_get_eeprom_length_t,
22164    pub get_eeprom: eth_get_eeprom_t,
22165    pub set_eeprom: eth_set_eeprom_t,
22166    pub get_module_info: eth_get_module_info_t,
22167    pub get_module_eeprom: eth_get_module_eeprom_t,
22168    pub filter_ctrl: eth_filter_ctrl_t,
22169    pub get_dcb_info: eth_get_dcb_info,
22170    pub timesync_enable: eth_timesync_enable_t,
22171    pub timesync_disable: eth_timesync_disable_t,
22172    pub timesync_read_rx_timestamp: eth_timesync_read_rx_timestamp_t,
22173    pub timesync_read_tx_timestamp: eth_timesync_read_tx_timestamp_t,
22174    pub timesync_adjust_time: eth_timesync_adjust_time,
22175    pub timesync_read_time: eth_timesync_read_time,
22176    pub timesync_write_time: eth_timesync_write_time,
22177    pub read_clock: eth_read_clock,
22178    pub xstats_get_by_id: eth_xstats_get_by_id_t,
22179    pub xstats_get_names_by_id: eth_xstats_get_names_by_id_t,
22180    pub tm_ops_get: eth_tm_ops_get_t,
22181    pub mtr_ops_get: eth_mtr_ops_get_t,
22182    pub pool_ops_supported: eth_pool_ops_supported_t,
22183    pub hairpin_cap_get: eth_hairpin_cap_get_t,
22184    pub rx_hairpin_queue_setup: eth_rx_hairpin_queue_setup_t,
22185    pub tx_hairpin_queue_setup: eth_tx_hairpin_queue_setup_t,
22186}
22187#[test]
22188fn bindgen_test_layout_eth_dev_ops() {
22189    assert_eq!(
22190        ::std::mem::size_of::<eth_dev_ops>(),
22191        752usize,
22192        concat!("Size of: ", stringify!(eth_dev_ops))
22193    );
22194    assert_eq!(
22195        ::std::mem::align_of::<eth_dev_ops>(),
22196        8usize,
22197        concat!("Alignment of ", stringify!(eth_dev_ops))
22198    );
22199    assert_eq!(
22200        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_configure as *const _ as usize },
22201        0usize,
22202        concat!(
22203            "Offset of field: ",
22204            stringify!(eth_dev_ops),
22205            "::",
22206            stringify!(dev_configure)
22207        )
22208    );
22209    assert_eq!(
22210        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_start as *const _ as usize },
22211        8usize,
22212        concat!(
22213            "Offset of field: ",
22214            stringify!(eth_dev_ops),
22215            "::",
22216            stringify!(dev_start)
22217        )
22218    );
22219    assert_eq!(
22220        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_stop as *const _ as usize },
22221        16usize,
22222        concat!(
22223            "Offset of field: ",
22224            stringify!(eth_dev_ops),
22225            "::",
22226            stringify!(dev_stop)
22227        )
22228    );
22229    assert_eq!(
22230        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_set_link_up as *const _ as usize },
22231        24usize,
22232        concat!(
22233            "Offset of field: ",
22234            stringify!(eth_dev_ops),
22235            "::",
22236            stringify!(dev_set_link_up)
22237        )
22238    );
22239    assert_eq!(
22240        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_set_link_down as *const _ as usize },
22241        32usize,
22242        concat!(
22243            "Offset of field: ",
22244            stringify!(eth_dev_ops),
22245            "::",
22246            stringify!(dev_set_link_down)
22247        )
22248    );
22249    assert_eq!(
22250        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_close as *const _ as usize },
22251        40usize,
22252        concat!(
22253            "Offset of field: ",
22254            stringify!(eth_dev_ops),
22255            "::",
22256            stringify!(dev_close)
22257        )
22258    );
22259    assert_eq!(
22260        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_reset as *const _ as usize },
22261        48usize,
22262        concat!(
22263            "Offset of field: ",
22264            stringify!(eth_dev_ops),
22265            "::",
22266            stringify!(dev_reset)
22267        )
22268    );
22269    assert_eq!(
22270        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).link_update as *const _ as usize },
22271        56usize,
22272        concat!(
22273            "Offset of field: ",
22274            stringify!(eth_dev_ops),
22275            "::",
22276            stringify!(link_update)
22277        )
22278    );
22279    assert_eq!(
22280        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).is_removed as *const _ as usize },
22281        64usize,
22282        concat!(
22283            "Offset of field: ",
22284            stringify!(eth_dev_ops),
22285            "::",
22286            stringify!(is_removed)
22287        )
22288    );
22289    assert_eq!(
22290        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).promiscuous_enable as *const _ as usize },
22291        72usize,
22292        concat!(
22293            "Offset of field: ",
22294            stringify!(eth_dev_ops),
22295            "::",
22296            stringify!(promiscuous_enable)
22297        )
22298    );
22299    assert_eq!(
22300        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).promiscuous_disable as *const _ as usize },
22301        80usize,
22302        concat!(
22303            "Offset of field: ",
22304            stringify!(eth_dev_ops),
22305            "::",
22306            stringify!(promiscuous_disable)
22307        )
22308    );
22309    assert_eq!(
22310        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).allmulticast_enable as *const _ as usize },
22311        88usize,
22312        concat!(
22313            "Offset of field: ",
22314            stringify!(eth_dev_ops),
22315            "::",
22316            stringify!(allmulticast_enable)
22317        )
22318    );
22319    assert_eq!(
22320        unsafe {
22321            &(*(::std::ptr::null::<eth_dev_ops>())).allmulticast_disable as *const _ as usize
22322        },
22323        96usize,
22324        concat!(
22325            "Offset of field: ",
22326            stringify!(eth_dev_ops),
22327            "::",
22328            stringify!(allmulticast_disable)
22329        )
22330    );
22331    assert_eq!(
22332        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).mac_addr_remove as *const _ as usize },
22333        104usize,
22334        concat!(
22335            "Offset of field: ",
22336            stringify!(eth_dev_ops),
22337            "::",
22338            stringify!(mac_addr_remove)
22339        )
22340    );
22341    assert_eq!(
22342        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).mac_addr_add as *const _ as usize },
22343        112usize,
22344        concat!(
22345            "Offset of field: ",
22346            stringify!(eth_dev_ops),
22347            "::",
22348            stringify!(mac_addr_add)
22349        )
22350    );
22351    assert_eq!(
22352        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).mac_addr_set as *const _ as usize },
22353        120usize,
22354        concat!(
22355            "Offset of field: ",
22356            stringify!(eth_dev_ops),
22357            "::",
22358            stringify!(mac_addr_set)
22359        )
22360    );
22361    assert_eq!(
22362        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).set_mc_addr_list as *const _ as usize },
22363        128usize,
22364        concat!(
22365            "Offset of field: ",
22366            stringify!(eth_dev_ops),
22367            "::",
22368            stringify!(set_mc_addr_list)
22369        )
22370    );
22371    assert_eq!(
22372        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).mtu_set as *const _ as usize },
22373        136usize,
22374        concat!(
22375            "Offset of field: ",
22376            stringify!(eth_dev_ops),
22377            "::",
22378            stringify!(mtu_set)
22379        )
22380    );
22381    assert_eq!(
22382        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).stats_get as *const _ as usize },
22383        144usize,
22384        concat!(
22385            "Offset of field: ",
22386            stringify!(eth_dev_ops),
22387            "::",
22388            stringify!(stats_get)
22389        )
22390    );
22391    assert_eq!(
22392        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).stats_reset as *const _ as usize },
22393        152usize,
22394        concat!(
22395            "Offset of field: ",
22396            stringify!(eth_dev_ops),
22397            "::",
22398            stringify!(stats_reset)
22399        )
22400    );
22401    assert_eq!(
22402        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).xstats_get as *const _ as usize },
22403        160usize,
22404        concat!(
22405            "Offset of field: ",
22406            stringify!(eth_dev_ops),
22407            "::",
22408            stringify!(xstats_get)
22409        )
22410    );
22411    assert_eq!(
22412        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).xstats_reset as *const _ as usize },
22413        168usize,
22414        concat!(
22415            "Offset of field: ",
22416            stringify!(eth_dev_ops),
22417            "::",
22418            stringify!(xstats_reset)
22419        )
22420    );
22421    assert_eq!(
22422        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).xstats_get_names as *const _ as usize },
22423        176usize,
22424        concat!(
22425            "Offset of field: ",
22426            stringify!(eth_dev_ops),
22427            "::",
22428            stringify!(xstats_get_names)
22429        )
22430    );
22431    assert_eq!(
22432        unsafe {
22433            &(*(::std::ptr::null::<eth_dev_ops>())).queue_stats_mapping_set as *const _ as usize
22434        },
22435        184usize,
22436        concat!(
22437            "Offset of field: ",
22438            stringify!(eth_dev_ops),
22439            "::",
22440            stringify!(queue_stats_mapping_set)
22441        )
22442    );
22443    assert_eq!(
22444        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_infos_get as *const _ as usize },
22445        192usize,
22446        concat!(
22447            "Offset of field: ",
22448            stringify!(eth_dev_ops),
22449            "::",
22450            stringify!(dev_infos_get)
22451        )
22452    );
22453    assert_eq!(
22454        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rxq_info_get as *const _ as usize },
22455        200usize,
22456        concat!(
22457            "Offset of field: ",
22458            stringify!(eth_dev_ops),
22459            "::",
22460            stringify!(rxq_info_get)
22461        )
22462    );
22463    assert_eq!(
22464        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).txq_info_get as *const _ as usize },
22465        208usize,
22466        concat!(
22467            "Offset of field: ",
22468            stringify!(eth_dev_ops),
22469            "::",
22470            stringify!(txq_info_get)
22471        )
22472    );
22473    assert_eq!(
22474        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rx_burst_mode_get as *const _ as usize },
22475        216usize,
22476        concat!(
22477            "Offset of field: ",
22478            stringify!(eth_dev_ops),
22479            "::",
22480            stringify!(rx_burst_mode_get)
22481        )
22482    );
22483    assert_eq!(
22484        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).tx_burst_mode_get as *const _ as usize },
22485        224usize,
22486        concat!(
22487            "Offset of field: ",
22488            stringify!(eth_dev_ops),
22489            "::",
22490            stringify!(tx_burst_mode_get)
22491        )
22492    );
22493    assert_eq!(
22494        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).fw_version_get as *const _ as usize },
22495        232usize,
22496        concat!(
22497            "Offset of field: ",
22498            stringify!(eth_dev_ops),
22499            "::",
22500            stringify!(fw_version_get)
22501        )
22502    );
22503    assert_eq!(
22504        unsafe {
22505            &(*(::std::ptr::null::<eth_dev_ops>())).dev_supported_ptypes_get as *const _ as usize
22506        },
22507        240usize,
22508        concat!(
22509            "Offset of field: ",
22510            stringify!(eth_dev_ops),
22511            "::",
22512            stringify!(dev_supported_ptypes_get)
22513        )
22514    );
22515    assert_eq!(
22516        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_ptypes_set as *const _ as usize },
22517        248usize,
22518        concat!(
22519            "Offset of field: ",
22520            stringify!(eth_dev_ops),
22521            "::",
22522            stringify!(dev_ptypes_set)
22523        )
22524    );
22525    assert_eq!(
22526        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).vlan_filter_set as *const _ as usize },
22527        256usize,
22528        concat!(
22529            "Offset of field: ",
22530            stringify!(eth_dev_ops),
22531            "::",
22532            stringify!(vlan_filter_set)
22533        )
22534    );
22535    assert_eq!(
22536        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).vlan_tpid_set as *const _ as usize },
22537        264usize,
22538        concat!(
22539            "Offset of field: ",
22540            stringify!(eth_dev_ops),
22541            "::",
22542            stringify!(vlan_tpid_set)
22543        )
22544    );
22545    assert_eq!(
22546        unsafe {
22547            &(*(::std::ptr::null::<eth_dev_ops>())).vlan_strip_queue_set as *const _ as usize
22548        },
22549        272usize,
22550        concat!(
22551            "Offset of field: ",
22552            stringify!(eth_dev_ops),
22553            "::",
22554            stringify!(vlan_strip_queue_set)
22555        )
22556    );
22557    assert_eq!(
22558        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).vlan_offload_set as *const _ as usize },
22559        280usize,
22560        concat!(
22561            "Offset of field: ",
22562            stringify!(eth_dev_ops),
22563            "::",
22564            stringify!(vlan_offload_set)
22565        )
22566    );
22567    assert_eq!(
22568        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).vlan_pvid_set as *const _ as usize },
22569        288usize,
22570        concat!(
22571            "Offset of field: ",
22572            stringify!(eth_dev_ops),
22573            "::",
22574            stringify!(vlan_pvid_set)
22575        )
22576    );
22577    assert_eq!(
22578        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rx_queue_start as *const _ as usize },
22579        296usize,
22580        concat!(
22581            "Offset of field: ",
22582            stringify!(eth_dev_ops),
22583            "::",
22584            stringify!(rx_queue_start)
22585        )
22586    );
22587    assert_eq!(
22588        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rx_queue_stop as *const _ as usize },
22589        304usize,
22590        concat!(
22591            "Offset of field: ",
22592            stringify!(eth_dev_ops),
22593            "::",
22594            stringify!(rx_queue_stop)
22595        )
22596    );
22597    assert_eq!(
22598        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).tx_queue_start as *const _ as usize },
22599        312usize,
22600        concat!(
22601            "Offset of field: ",
22602            stringify!(eth_dev_ops),
22603            "::",
22604            stringify!(tx_queue_start)
22605        )
22606    );
22607    assert_eq!(
22608        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).tx_queue_stop as *const _ as usize },
22609        320usize,
22610        concat!(
22611            "Offset of field: ",
22612            stringify!(eth_dev_ops),
22613            "::",
22614            stringify!(tx_queue_stop)
22615        )
22616    );
22617    assert_eq!(
22618        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rx_queue_setup as *const _ as usize },
22619        328usize,
22620        concat!(
22621            "Offset of field: ",
22622            stringify!(eth_dev_ops),
22623            "::",
22624            stringify!(rx_queue_setup)
22625        )
22626    );
22627    assert_eq!(
22628        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rx_queue_release as *const _ as usize },
22629        336usize,
22630        concat!(
22631            "Offset of field: ",
22632            stringify!(eth_dev_ops),
22633            "::",
22634            stringify!(rx_queue_release)
22635        )
22636    );
22637    assert_eq!(
22638        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rx_queue_count as *const _ as usize },
22639        344usize,
22640        concat!(
22641            "Offset of field: ",
22642            stringify!(eth_dev_ops),
22643            "::",
22644            stringify!(rx_queue_count)
22645        )
22646    );
22647    assert_eq!(
22648        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rx_descriptor_done as *const _ as usize },
22649        352usize,
22650        concat!(
22651            "Offset of field: ",
22652            stringify!(eth_dev_ops),
22653            "::",
22654            stringify!(rx_descriptor_done)
22655        )
22656    );
22657    assert_eq!(
22658        unsafe {
22659            &(*(::std::ptr::null::<eth_dev_ops>())).rx_descriptor_status as *const _ as usize
22660        },
22661        360usize,
22662        concat!(
22663            "Offset of field: ",
22664            stringify!(eth_dev_ops),
22665            "::",
22666            stringify!(rx_descriptor_status)
22667        )
22668    );
22669    assert_eq!(
22670        unsafe {
22671            &(*(::std::ptr::null::<eth_dev_ops>())).tx_descriptor_status as *const _ as usize
22672        },
22673        368usize,
22674        concat!(
22675            "Offset of field: ",
22676            stringify!(eth_dev_ops),
22677            "::",
22678            stringify!(tx_descriptor_status)
22679        )
22680    );
22681    assert_eq!(
22682        unsafe {
22683            &(*(::std::ptr::null::<eth_dev_ops>())).rx_queue_intr_enable as *const _ as usize
22684        },
22685        376usize,
22686        concat!(
22687            "Offset of field: ",
22688            stringify!(eth_dev_ops),
22689            "::",
22690            stringify!(rx_queue_intr_enable)
22691        )
22692    );
22693    assert_eq!(
22694        unsafe {
22695            &(*(::std::ptr::null::<eth_dev_ops>())).rx_queue_intr_disable as *const _ as usize
22696        },
22697        384usize,
22698        concat!(
22699            "Offset of field: ",
22700            stringify!(eth_dev_ops),
22701            "::",
22702            stringify!(rx_queue_intr_disable)
22703        )
22704    );
22705    assert_eq!(
22706        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).tx_queue_setup as *const _ as usize },
22707        392usize,
22708        concat!(
22709            "Offset of field: ",
22710            stringify!(eth_dev_ops),
22711            "::",
22712            stringify!(tx_queue_setup)
22713        )
22714    );
22715    assert_eq!(
22716        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).tx_queue_release as *const _ as usize },
22717        400usize,
22718        concat!(
22719            "Offset of field: ",
22720            stringify!(eth_dev_ops),
22721            "::",
22722            stringify!(tx_queue_release)
22723        )
22724    );
22725    assert_eq!(
22726        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).tx_done_cleanup as *const _ as usize },
22727        408usize,
22728        concat!(
22729            "Offset of field: ",
22730            stringify!(eth_dev_ops),
22731            "::",
22732            stringify!(tx_done_cleanup)
22733        )
22734    );
22735    assert_eq!(
22736        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_led_on as *const _ as usize },
22737        416usize,
22738        concat!(
22739            "Offset of field: ",
22740            stringify!(eth_dev_ops),
22741            "::",
22742            stringify!(dev_led_on)
22743        )
22744    );
22745    assert_eq!(
22746        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).dev_led_off as *const _ as usize },
22747        424usize,
22748        concat!(
22749            "Offset of field: ",
22750            stringify!(eth_dev_ops),
22751            "::",
22752            stringify!(dev_led_off)
22753        )
22754    );
22755    assert_eq!(
22756        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).flow_ctrl_get as *const _ as usize },
22757        432usize,
22758        concat!(
22759            "Offset of field: ",
22760            stringify!(eth_dev_ops),
22761            "::",
22762            stringify!(flow_ctrl_get)
22763        )
22764    );
22765    assert_eq!(
22766        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).flow_ctrl_set as *const _ as usize },
22767        440usize,
22768        concat!(
22769            "Offset of field: ",
22770            stringify!(eth_dev_ops),
22771            "::",
22772            stringify!(flow_ctrl_set)
22773        )
22774    );
22775    assert_eq!(
22776        unsafe {
22777            &(*(::std::ptr::null::<eth_dev_ops>())).priority_flow_ctrl_set as *const _ as usize
22778        },
22779        448usize,
22780        concat!(
22781            "Offset of field: ",
22782            stringify!(eth_dev_ops),
22783            "::",
22784            stringify!(priority_flow_ctrl_set)
22785        )
22786    );
22787    assert_eq!(
22788        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).uc_hash_table_set as *const _ as usize },
22789        456usize,
22790        concat!(
22791            "Offset of field: ",
22792            stringify!(eth_dev_ops),
22793            "::",
22794            stringify!(uc_hash_table_set)
22795        )
22796    );
22797    assert_eq!(
22798        unsafe {
22799            &(*(::std::ptr::null::<eth_dev_ops>())).uc_all_hash_table_set as *const _ as usize
22800        },
22801        464usize,
22802        concat!(
22803            "Offset of field: ",
22804            stringify!(eth_dev_ops),
22805            "::",
22806            stringify!(uc_all_hash_table_set)
22807        )
22808    );
22809    assert_eq!(
22810        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).mirror_rule_set as *const _ as usize },
22811        472usize,
22812        concat!(
22813            "Offset of field: ",
22814            stringify!(eth_dev_ops),
22815            "::",
22816            stringify!(mirror_rule_set)
22817        )
22818    );
22819    assert_eq!(
22820        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).mirror_rule_reset as *const _ as usize },
22821        480usize,
22822        concat!(
22823            "Offset of field: ",
22824            stringify!(eth_dev_ops),
22825            "::",
22826            stringify!(mirror_rule_reset)
22827        )
22828    );
22829    assert_eq!(
22830        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).udp_tunnel_port_add as *const _ as usize },
22831        488usize,
22832        concat!(
22833            "Offset of field: ",
22834            stringify!(eth_dev_ops),
22835            "::",
22836            stringify!(udp_tunnel_port_add)
22837        )
22838    );
22839    assert_eq!(
22840        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).udp_tunnel_port_del as *const _ as usize },
22841        496usize,
22842        concat!(
22843            "Offset of field: ",
22844            stringify!(eth_dev_ops),
22845            "::",
22846            stringify!(udp_tunnel_port_del)
22847        )
22848    );
22849    assert_eq!(
22850        unsafe {
22851            &(*(::std::ptr::null::<eth_dev_ops>())).l2_tunnel_eth_type_conf as *const _ as usize
22852        },
22853        504usize,
22854        concat!(
22855            "Offset of field: ",
22856            stringify!(eth_dev_ops),
22857            "::",
22858            stringify!(l2_tunnel_eth_type_conf)
22859        )
22860    );
22861    assert_eq!(
22862        unsafe {
22863            &(*(::std::ptr::null::<eth_dev_ops>())).l2_tunnel_offload_set as *const _ as usize
22864        },
22865        512usize,
22866        concat!(
22867            "Offset of field: ",
22868            stringify!(eth_dev_ops),
22869            "::",
22870            stringify!(l2_tunnel_offload_set)
22871        )
22872    );
22873    assert_eq!(
22874        unsafe {
22875            &(*(::std::ptr::null::<eth_dev_ops>())).set_queue_rate_limit as *const _ as usize
22876        },
22877        520usize,
22878        concat!(
22879            "Offset of field: ",
22880            stringify!(eth_dev_ops),
22881            "::",
22882            stringify!(set_queue_rate_limit)
22883        )
22884    );
22885    assert_eq!(
22886        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rss_hash_update as *const _ as usize },
22887        528usize,
22888        concat!(
22889            "Offset of field: ",
22890            stringify!(eth_dev_ops),
22891            "::",
22892            stringify!(rss_hash_update)
22893        )
22894    );
22895    assert_eq!(
22896        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).rss_hash_conf_get as *const _ as usize },
22897        536usize,
22898        concat!(
22899            "Offset of field: ",
22900            stringify!(eth_dev_ops),
22901            "::",
22902            stringify!(rss_hash_conf_get)
22903        )
22904    );
22905    assert_eq!(
22906        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).reta_update as *const _ as usize },
22907        544usize,
22908        concat!(
22909            "Offset of field: ",
22910            stringify!(eth_dev_ops),
22911            "::",
22912            stringify!(reta_update)
22913        )
22914    );
22915    assert_eq!(
22916        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).reta_query as *const _ as usize },
22917        552usize,
22918        concat!(
22919            "Offset of field: ",
22920            stringify!(eth_dev_ops),
22921            "::",
22922            stringify!(reta_query)
22923        )
22924    );
22925    assert_eq!(
22926        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).get_reg as *const _ as usize },
22927        560usize,
22928        concat!(
22929            "Offset of field: ",
22930            stringify!(eth_dev_ops),
22931            "::",
22932            stringify!(get_reg)
22933        )
22934    );
22935    assert_eq!(
22936        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).get_eeprom_length as *const _ as usize },
22937        568usize,
22938        concat!(
22939            "Offset of field: ",
22940            stringify!(eth_dev_ops),
22941            "::",
22942            stringify!(get_eeprom_length)
22943        )
22944    );
22945    assert_eq!(
22946        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).get_eeprom as *const _ as usize },
22947        576usize,
22948        concat!(
22949            "Offset of field: ",
22950            stringify!(eth_dev_ops),
22951            "::",
22952            stringify!(get_eeprom)
22953        )
22954    );
22955    assert_eq!(
22956        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).set_eeprom as *const _ as usize },
22957        584usize,
22958        concat!(
22959            "Offset of field: ",
22960            stringify!(eth_dev_ops),
22961            "::",
22962            stringify!(set_eeprom)
22963        )
22964    );
22965    assert_eq!(
22966        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).get_module_info as *const _ as usize },
22967        592usize,
22968        concat!(
22969            "Offset of field: ",
22970            stringify!(eth_dev_ops),
22971            "::",
22972            stringify!(get_module_info)
22973        )
22974    );
22975    assert_eq!(
22976        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).get_module_eeprom as *const _ as usize },
22977        600usize,
22978        concat!(
22979            "Offset of field: ",
22980            stringify!(eth_dev_ops),
22981            "::",
22982            stringify!(get_module_eeprom)
22983        )
22984    );
22985    assert_eq!(
22986        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).filter_ctrl as *const _ as usize },
22987        608usize,
22988        concat!(
22989            "Offset of field: ",
22990            stringify!(eth_dev_ops),
22991            "::",
22992            stringify!(filter_ctrl)
22993        )
22994    );
22995    assert_eq!(
22996        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).get_dcb_info as *const _ as usize },
22997        616usize,
22998        concat!(
22999            "Offset of field: ",
23000            stringify!(eth_dev_ops),
23001            "::",
23002            stringify!(get_dcb_info)
23003        )
23004    );
23005    assert_eq!(
23006        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).timesync_enable as *const _ as usize },
23007        624usize,
23008        concat!(
23009            "Offset of field: ",
23010            stringify!(eth_dev_ops),
23011            "::",
23012            stringify!(timesync_enable)
23013        )
23014    );
23015    assert_eq!(
23016        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).timesync_disable as *const _ as usize },
23017        632usize,
23018        concat!(
23019            "Offset of field: ",
23020            stringify!(eth_dev_ops),
23021            "::",
23022            stringify!(timesync_disable)
23023        )
23024    );
23025    assert_eq!(
23026        unsafe {
23027            &(*(::std::ptr::null::<eth_dev_ops>())).timesync_read_rx_timestamp as *const _ as usize
23028        },
23029        640usize,
23030        concat!(
23031            "Offset of field: ",
23032            stringify!(eth_dev_ops),
23033            "::",
23034            stringify!(timesync_read_rx_timestamp)
23035        )
23036    );
23037    assert_eq!(
23038        unsafe {
23039            &(*(::std::ptr::null::<eth_dev_ops>())).timesync_read_tx_timestamp as *const _ as usize
23040        },
23041        648usize,
23042        concat!(
23043            "Offset of field: ",
23044            stringify!(eth_dev_ops),
23045            "::",
23046            stringify!(timesync_read_tx_timestamp)
23047        )
23048    );
23049    assert_eq!(
23050        unsafe {
23051            &(*(::std::ptr::null::<eth_dev_ops>())).timesync_adjust_time as *const _ as usize
23052        },
23053        656usize,
23054        concat!(
23055            "Offset of field: ",
23056            stringify!(eth_dev_ops),
23057            "::",
23058            stringify!(timesync_adjust_time)
23059        )
23060    );
23061    assert_eq!(
23062        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).timesync_read_time as *const _ as usize },
23063        664usize,
23064        concat!(
23065            "Offset of field: ",
23066            stringify!(eth_dev_ops),
23067            "::",
23068            stringify!(timesync_read_time)
23069        )
23070    );
23071    assert_eq!(
23072        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).timesync_write_time as *const _ as usize },
23073        672usize,
23074        concat!(
23075            "Offset of field: ",
23076            stringify!(eth_dev_ops),
23077            "::",
23078            stringify!(timesync_write_time)
23079        )
23080    );
23081    assert_eq!(
23082        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).read_clock as *const _ as usize },
23083        680usize,
23084        concat!(
23085            "Offset of field: ",
23086            stringify!(eth_dev_ops),
23087            "::",
23088            stringify!(read_clock)
23089        )
23090    );
23091    assert_eq!(
23092        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).xstats_get_by_id as *const _ as usize },
23093        688usize,
23094        concat!(
23095            "Offset of field: ",
23096            stringify!(eth_dev_ops),
23097            "::",
23098            stringify!(xstats_get_by_id)
23099        )
23100    );
23101    assert_eq!(
23102        unsafe {
23103            &(*(::std::ptr::null::<eth_dev_ops>())).xstats_get_names_by_id as *const _ as usize
23104        },
23105        696usize,
23106        concat!(
23107            "Offset of field: ",
23108            stringify!(eth_dev_ops),
23109            "::",
23110            stringify!(xstats_get_names_by_id)
23111        )
23112    );
23113    assert_eq!(
23114        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).tm_ops_get as *const _ as usize },
23115        704usize,
23116        concat!(
23117            "Offset of field: ",
23118            stringify!(eth_dev_ops),
23119            "::",
23120            stringify!(tm_ops_get)
23121        )
23122    );
23123    assert_eq!(
23124        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).mtr_ops_get as *const _ as usize },
23125        712usize,
23126        concat!(
23127            "Offset of field: ",
23128            stringify!(eth_dev_ops),
23129            "::",
23130            stringify!(mtr_ops_get)
23131        )
23132    );
23133    assert_eq!(
23134        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).pool_ops_supported as *const _ as usize },
23135        720usize,
23136        concat!(
23137            "Offset of field: ",
23138            stringify!(eth_dev_ops),
23139            "::",
23140            stringify!(pool_ops_supported)
23141        )
23142    );
23143    assert_eq!(
23144        unsafe { &(*(::std::ptr::null::<eth_dev_ops>())).hairpin_cap_get as *const _ as usize },
23145        728usize,
23146        concat!(
23147            "Offset of field: ",
23148            stringify!(eth_dev_ops),
23149            "::",
23150            stringify!(hairpin_cap_get)
23151        )
23152    );
23153    assert_eq!(
23154        unsafe {
23155            &(*(::std::ptr::null::<eth_dev_ops>())).rx_hairpin_queue_setup as *const _ as usize
23156        },
23157        736usize,
23158        concat!(
23159            "Offset of field: ",
23160            stringify!(eth_dev_ops),
23161            "::",
23162            stringify!(rx_hairpin_queue_setup)
23163        )
23164    );
23165    assert_eq!(
23166        unsafe {
23167            &(*(::std::ptr::null::<eth_dev_ops>())).tx_hairpin_queue_setup as *const _ as usize
23168        },
23169        744usize,
23170        concat!(
23171            "Offset of field: ",
23172            stringify!(eth_dev_ops),
23173            "::",
23174            stringify!(tx_hairpin_queue_setup)
23175        )
23176    );
23177}
23178#[repr(C)]
23179#[derive(Copy, Clone)]
23180pub struct rte_eth_rxtx_callback {
23181    pub next: *mut rte_eth_rxtx_callback,
23182    pub fn_: rte_eth_rxtx_callback__bindgen_ty_1,
23183    pub param: *mut ::std::os::raw::c_void,
23184}
23185#[repr(C)]
23186#[derive(Copy, Clone)]
23187pub union rte_eth_rxtx_callback__bindgen_ty_1 {
23188    pub rx: rte_rx_callback_fn,
23189    pub tx: rte_tx_callback_fn,
23190    _bindgen_union_align: u64,
23191}
23192#[test]
23193fn bindgen_test_layout_rte_eth_rxtx_callback__bindgen_ty_1() {
23194    assert_eq!(
23195        ::std::mem::size_of::<rte_eth_rxtx_callback__bindgen_ty_1>(),
23196        8usize,
23197        concat!("Size of: ", stringify!(rte_eth_rxtx_callback__bindgen_ty_1))
23198    );
23199    assert_eq!(
23200        ::std::mem::align_of::<rte_eth_rxtx_callback__bindgen_ty_1>(),
23201        8usize,
23202        concat!(
23203            "Alignment of ",
23204            stringify!(rte_eth_rxtx_callback__bindgen_ty_1)
23205        )
23206    );
23207    assert_eq!(
23208        unsafe {
23209            &(*(::std::ptr::null::<rte_eth_rxtx_callback__bindgen_ty_1>())).rx as *const _ as usize
23210        },
23211        0usize,
23212        concat!(
23213            "Offset of field: ",
23214            stringify!(rte_eth_rxtx_callback__bindgen_ty_1),
23215            "::",
23216            stringify!(rx)
23217        )
23218    );
23219    assert_eq!(
23220        unsafe {
23221            &(*(::std::ptr::null::<rte_eth_rxtx_callback__bindgen_ty_1>())).tx as *const _ as usize
23222        },
23223        0usize,
23224        concat!(
23225            "Offset of field: ",
23226            stringify!(rte_eth_rxtx_callback__bindgen_ty_1),
23227            "::",
23228            stringify!(tx)
23229        )
23230    );
23231}
23232impl Default for rte_eth_rxtx_callback__bindgen_ty_1 {
23233    fn default() -> Self {
23234        unsafe { ::std::mem::zeroed() }
23235    }
23236}
23237#[test]
23238fn bindgen_test_layout_rte_eth_rxtx_callback() {
23239    assert_eq!(
23240        ::std::mem::size_of::<rte_eth_rxtx_callback>(),
23241        24usize,
23242        concat!("Size of: ", stringify!(rte_eth_rxtx_callback))
23243    );
23244    assert_eq!(
23245        ::std::mem::align_of::<rte_eth_rxtx_callback>(),
23246        8usize,
23247        concat!("Alignment of ", stringify!(rte_eth_rxtx_callback))
23248    );
23249    assert_eq!(
23250        unsafe { &(*(::std::ptr::null::<rte_eth_rxtx_callback>())).next as *const _ as usize },
23251        0usize,
23252        concat!(
23253            "Offset of field: ",
23254            stringify!(rte_eth_rxtx_callback),
23255            "::",
23256            stringify!(next)
23257        )
23258    );
23259    assert_eq!(
23260        unsafe { &(*(::std::ptr::null::<rte_eth_rxtx_callback>())).fn_ as *const _ as usize },
23261        8usize,
23262        concat!(
23263            "Offset of field: ",
23264            stringify!(rte_eth_rxtx_callback),
23265            "::",
23266            stringify!(fn_)
23267        )
23268    );
23269    assert_eq!(
23270        unsafe { &(*(::std::ptr::null::<rte_eth_rxtx_callback>())).param as *const _ as usize },
23271        16usize,
23272        concat!(
23273            "Offset of field: ",
23274            stringify!(rte_eth_rxtx_callback),
23275            "::",
23276            stringify!(param)
23277        )
23278    );
23279}
23280impl Default for rte_eth_rxtx_callback {
23281    fn default() -> Self {
23282        unsafe { ::std::mem::zeroed() }
23283    }
23284}
23285#[repr(C)]
23286#[repr(align(64))]
23287#[derive(Copy, Clone)]
23288pub struct rte_eth_dev {
23289    pub rx_pkt_burst: eth_rx_burst_t,
23290    pub tx_pkt_burst: eth_tx_burst_t,
23291    pub tx_pkt_prepare: eth_tx_prep_t,
23292    pub data: *mut rte_eth_dev_data,
23293    pub process_private: *mut ::std::os::raw::c_void,
23294    pub dev_ops: *const eth_dev_ops,
23295    pub device: *mut rte_device,
23296    pub intr_handle: *mut rte_intr_handle,
23297    pub link_intr_cbs: rte_eth_dev_cb_list,
23298    pub post_rx_burst_cbs: [*mut rte_eth_rxtx_callback; 1024usize],
23299    pub pre_tx_burst_cbs: [*mut rte_eth_rxtx_callback; 1024usize],
23300    pub state: rte_eth_dev_state::Type,
23301    pub security_ctx: *mut ::std::os::raw::c_void,
23302    pub reserved_64s: [u64; 4usize],
23303    pub reserved_ptrs: [*mut ::std::os::raw::c_void; 4usize],
23304}
23305#[test]
23306fn bindgen_test_layout_rte_eth_dev() {
23307    assert_eq!(
23308        ::std::mem::size_of::<rte_eth_dev>(),
23309        16576usize,
23310        concat!("Size of: ", stringify!(rte_eth_dev))
23311    );
23312    assert_eq!(
23313        ::std::mem::align_of::<rte_eth_dev>(),
23314        64usize,
23315        concat!("Alignment of ", stringify!(rte_eth_dev))
23316    );
23317    assert_eq!(
23318        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).rx_pkt_burst as *const _ as usize },
23319        0usize,
23320        concat!(
23321            "Offset of field: ",
23322            stringify!(rte_eth_dev),
23323            "::",
23324            stringify!(rx_pkt_burst)
23325        )
23326    );
23327    assert_eq!(
23328        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).tx_pkt_burst as *const _ as usize },
23329        8usize,
23330        concat!(
23331            "Offset of field: ",
23332            stringify!(rte_eth_dev),
23333            "::",
23334            stringify!(tx_pkt_burst)
23335        )
23336    );
23337    assert_eq!(
23338        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).tx_pkt_prepare as *const _ as usize },
23339        16usize,
23340        concat!(
23341            "Offset of field: ",
23342            stringify!(rte_eth_dev),
23343            "::",
23344            stringify!(tx_pkt_prepare)
23345        )
23346    );
23347    assert_eq!(
23348        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).data as *const _ as usize },
23349        24usize,
23350        concat!(
23351            "Offset of field: ",
23352            stringify!(rte_eth_dev),
23353            "::",
23354            stringify!(data)
23355        )
23356    );
23357    assert_eq!(
23358        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).process_private as *const _ as usize },
23359        32usize,
23360        concat!(
23361            "Offset of field: ",
23362            stringify!(rte_eth_dev),
23363            "::",
23364            stringify!(process_private)
23365        )
23366    );
23367    assert_eq!(
23368        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).dev_ops as *const _ as usize },
23369        40usize,
23370        concat!(
23371            "Offset of field: ",
23372            stringify!(rte_eth_dev),
23373            "::",
23374            stringify!(dev_ops)
23375        )
23376    );
23377    assert_eq!(
23378        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).device as *const _ as usize },
23379        48usize,
23380        concat!(
23381            "Offset of field: ",
23382            stringify!(rte_eth_dev),
23383            "::",
23384            stringify!(device)
23385        )
23386    );
23387    assert_eq!(
23388        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).intr_handle as *const _ as usize },
23389        56usize,
23390        concat!(
23391            "Offset of field: ",
23392            stringify!(rte_eth_dev),
23393            "::",
23394            stringify!(intr_handle)
23395        )
23396    );
23397    assert_eq!(
23398        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).link_intr_cbs as *const _ as usize },
23399        64usize,
23400        concat!(
23401            "Offset of field: ",
23402            stringify!(rte_eth_dev),
23403            "::",
23404            stringify!(link_intr_cbs)
23405        )
23406    );
23407    assert_eq!(
23408        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).post_rx_burst_cbs as *const _ as usize },
23409        80usize,
23410        concat!(
23411            "Offset of field: ",
23412            stringify!(rte_eth_dev),
23413            "::",
23414            stringify!(post_rx_burst_cbs)
23415        )
23416    );
23417    assert_eq!(
23418        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).pre_tx_burst_cbs as *const _ as usize },
23419        8272usize,
23420        concat!(
23421            "Offset of field: ",
23422            stringify!(rte_eth_dev),
23423            "::",
23424            stringify!(pre_tx_burst_cbs)
23425        )
23426    );
23427    assert_eq!(
23428        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).state as *const _ as usize },
23429        16464usize,
23430        concat!(
23431            "Offset of field: ",
23432            stringify!(rte_eth_dev),
23433            "::",
23434            stringify!(state)
23435        )
23436    );
23437    assert_eq!(
23438        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).security_ctx as *const _ as usize },
23439        16472usize,
23440        concat!(
23441            "Offset of field: ",
23442            stringify!(rte_eth_dev),
23443            "::",
23444            stringify!(security_ctx)
23445        )
23446    );
23447    assert_eq!(
23448        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).reserved_64s as *const _ as usize },
23449        16480usize,
23450        concat!(
23451            "Offset of field: ",
23452            stringify!(rte_eth_dev),
23453            "::",
23454            stringify!(reserved_64s)
23455        )
23456    );
23457    assert_eq!(
23458        unsafe { &(*(::std::ptr::null::<rte_eth_dev>())).reserved_ptrs as *const _ as usize },
23459        16512usize,
23460        concat!(
23461            "Offset of field: ",
23462            stringify!(rte_eth_dev),
23463            "::",
23464            stringify!(reserved_ptrs)
23465        )
23466    );
23467}
23468impl Default for rte_eth_dev {
23469    fn default() -> Self {
23470        unsafe { ::std::mem::zeroed() }
23471    }
23472}
23473#[repr(C)]
23474#[repr(align(64))]
23475#[derive(Copy, Clone)]
23476pub struct rte_eth_dev_data {
23477    pub name: [::std::os::raw::c_char; 64usize],
23478    pub rx_queues: *mut *mut ::std::os::raw::c_void,
23479    pub tx_queues: *mut *mut ::std::os::raw::c_void,
23480    pub nb_rx_queues: u16,
23481    pub nb_tx_queues: u16,
23482    pub sriov: rte_eth_dev_sriov,
23483    pub dev_private: *mut ::std::os::raw::c_void,
23484    pub dev_link: rte_eth_link,
23485    pub dev_conf: rte_eth_conf,
23486    pub mtu: u16,
23487    pub min_rx_buf_size: u32,
23488    pub rx_mbuf_alloc_failed: u64,
23489    pub mac_addrs: *mut rte_ether_addr,
23490    pub mac_pool_sel: [u64; 128usize],
23491    pub hash_mac_addrs: *mut rte_ether_addr,
23492    pub port_id: u16,
23493    pub _bitfield_align_1: [u8; 0],
23494    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
23495    pub rx_queue_state: [u8; 1024usize],
23496    pub tx_queue_state: [u8; 1024usize],
23497    pub dev_flags: u32,
23498    pub kdrv: rte_kernel_driver::Type,
23499    pub numa_node: ::std::os::raw::c_int,
23500    pub vlan_filter_conf: rte_vlan_filter_conf,
23501    pub owner: rte_eth_dev_owner,
23502    pub representor_id: u16,
23503    pub reserved_64s: [u64; 4usize],
23504    pub reserved_ptrs: [*mut ::std::os::raw::c_void; 4usize],
23505}
23506#[test]
23507fn bindgen_test_layout_rte_eth_dev_data() {
23508    assert_eq!(
23509        ::std::mem::size_of::<rte_eth_dev_data>(),
23510        6976usize,
23511        concat!("Size of: ", stringify!(rte_eth_dev_data))
23512    );
23513    assert_eq!(
23514        ::std::mem::align_of::<rte_eth_dev_data>(),
23515        64usize,
23516        concat!("Alignment of ", stringify!(rte_eth_dev_data))
23517    );
23518    assert_eq!(
23519        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).name as *const _ as usize },
23520        0usize,
23521        concat!(
23522            "Offset of field: ",
23523            stringify!(rte_eth_dev_data),
23524            "::",
23525            stringify!(name)
23526        )
23527    );
23528    assert_eq!(
23529        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).rx_queues as *const _ as usize },
23530        64usize,
23531        concat!(
23532            "Offset of field: ",
23533            stringify!(rte_eth_dev_data),
23534            "::",
23535            stringify!(rx_queues)
23536        )
23537    );
23538    assert_eq!(
23539        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).tx_queues as *const _ as usize },
23540        72usize,
23541        concat!(
23542            "Offset of field: ",
23543            stringify!(rte_eth_dev_data),
23544            "::",
23545            stringify!(tx_queues)
23546        )
23547    );
23548    assert_eq!(
23549        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).nb_rx_queues as *const _ as usize },
23550        80usize,
23551        concat!(
23552            "Offset of field: ",
23553            stringify!(rte_eth_dev_data),
23554            "::",
23555            stringify!(nb_rx_queues)
23556        )
23557    );
23558    assert_eq!(
23559        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).nb_tx_queues as *const _ as usize },
23560        82usize,
23561        concat!(
23562            "Offset of field: ",
23563            stringify!(rte_eth_dev_data),
23564            "::",
23565            stringify!(nb_tx_queues)
23566        )
23567    );
23568    assert_eq!(
23569        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).sriov as *const _ as usize },
23570        84usize,
23571        concat!(
23572            "Offset of field: ",
23573            stringify!(rte_eth_dev_data),
23574            "::",
23575            stringify!(sriov)
23576        )
23577    );
23578    assert_eq!(
23579        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).dev_private as *const _ as usize },
23580        96usize,
23581        concat!(
23582            "Offset of field: ",
23583            stringify!(rte_eth_dev_data),
23584            "::",
23585            stringify!(dev_private)
23586        )
23587    );
23588    assert_eq!(
23589        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).dev_link as *const _ as usize },
23590        104usize,
23591        concat!(
23592            "Offset of field: ",
23593            stringify!(rte_eth_dev_data),
23594            "::",
23595            stringify!(dev_link)
23596        )
23597    );
23598    assert_eq!(
23599        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).dev_conf as *const _ as usize },
23600        112usize,
23601        concat!(
23602            "Offset of field: ",
23603            stringify!(rte_eth_dev_data),
23604            "::",
23605            stringify!(dev_conf)
23606        )
23607    );
23608    assert_eq!(
23609        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).mtu as *const _ as usize },
23610        3192usize,
23611        concat!(
23612            "Offset of field: ",
23613            stringify!(rte_eth_dev_data),
23614            "::",
23615            stringify!(mtu)
23616        )
23617    );
23618    assert_eq!(
23619        unsafe {
23620            &(*(::std::ptr::null::<rte_eth_dev_data>())).min_rx_buf_size as *const _ as usize
23621        },
23622        3196usize,
23623        concat!(
23624            "Offset of field: ",
23625            stringify!(rte_eth_dev_data),
23626            "::",
23627            stringify!(min_rx_buf_size)
23628        )
23629    );
23630    assert_eq!(
23631        unsafe {
23632            &(*(::std::ptr::null::<rte_eth_dev_data>())).rx_mbuf_alloc_failed as *const _ as usize
23633        },
23634        3200usize,
23635        concat!(
23636            "Offset of field: ",
23637            stringify!(rte_eth_dev_data),
23638            "::",
23639            stringify!(rx_mbuf_alloc_failed)
23640        )
23641    );
23642    assert_eq!(
23643        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).mac_addrs as *const _ as usize },
23644        3208usize,
23645        concat!(
23646            "Offset of field: ",
23647            stringify!(rte_eth_dev_data),
23648            "::",
23649            stringify!(mac_addrs)
23650        )
23651    );
23652    assert_eq!(
23653        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).mac_pool_sel as *const _ as usize },
23654        3216usize,
23655        concat!(
23656            "Offset of field: ",
23657            stringify!(rte_eth_dev_data),
23658            "::",
23659            stringify!(mac_pool_sel)
23660        )
23661    );
23662    assert_eq!(
23663        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).hash_mac_addrs as *const _ as usize },
23664        4240usize,
23665        concat!(
23666            "Offset of field: ",
23667            stringify!(rte_eth_dev_data),
23668            "::",
23669            stringify!(hash_mac_addrs)
23670        )
23671    );
23672    assert_eq!(
23673        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).port_id as *const _ as usize },
23674        4248usize,
23675        concat!(
23676            "Offset of field: ",
23677            stringify!(rte_eth_dev_data),
23678            "::",
23679            stringify!(port_id)
23680        )
23681    );
23682    assert_eq!(
23683        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).rx_queue_state as *const _ as usize },
23684        4251usize,
23685        concat!(
23686            "Offset of field: ",
23687            stringify!(rte_eth_dev_data),
23688            "::",
23689            stringify!(rx_queue_state)
23690        )
23691    );
23692    assert_eq!(
23693        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).tx_queue_state as *const _ as usize },
23694        5275usize,
23695        concat!(
23696            "Offset of field: ",
23697            stringify!(rte_eth_dev_data),
23698            "::",
23699            stringify!(tx_queue_state)
23700        )
23701    );
23702    assert_eq!(
23703        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).dev_flags as *const _ as usize },
23704        6300usize,
23705        concat!(
23706            "Offset of field: ",
23707            stringify!(rte_eth_dev_data),
23708            "::",
23709            stringify!(dev_flags)
23710        )
23711    );
23712    assert_eq!(
23713        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).kdrv as *const _ as usize },
23714        6304usize,
23715        concat!(
23716            "Offset of field: ",
23717            stringify!(rte_eth_dev_data),
23718            "::",
23719            stringify!(kdrv)
23720        )
23721    );
23722    assert_eq!(
23723        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).numa_node as *const _ as usize },
23724        6308usize,
23725        concat!(
23726            "Offset of field: ",
23727            stringify!(rte_eth_dev_data),
23728            "::",
23729            stringify!(numa_node)
23730        )
23731    );
23732    assert_eq!(
23733        unsafe {
23734            &(*(::std::ptr::null::<rte_eth_dev_data>())).vlan_filter_conf as *const _ as usize
23735        },
23736        6312usize,
23737        concat!(
23738            "Offset of field: ",
23739            stringify!(rte_eth_dev_data),
23740            "::",
23741            stringify!(vlan_filter_conf)
23742        )
23743    );
23744    assert_eq!(
23745        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).owner as *const _ as usize },
23746        6824usize,
23747        concat!(
23748            "Offset of field: ",
23749            stringify!(rte_eth_dev_data),
23750            "::",
23751            stringify!(owner)
23752        )
23753    );
23754    assert_eq!(
23755        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).representor_id as *const _ as usize },
23756        6896usize,
23757        concat!(
23758            "Offset of field: ",
23759            stringify!(rte_eth_dev_data),
23760            "::",
23761            stringify!(representor_id)
23762        )
23763    );
23764    assert_eq!(
23765        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).reserved_64s as *const _ as usize },
23766        6904usize,
23767        concat!(
23768            "Offset of field: ",
23769            stringify!(rte_eth_dev_data),
23770            "::",
23771            stringify!(reserved_64s)
23772        )
23773    );
23774    assert_eq!(
23775        unsafe { &(*(::std::ptr::null::<rte_eth_dev_data>())).reserved_ptrs as *const _ as usize },
23776        6936usize,
23777        concat!(
23778            "Offset of field: ",
23779            stringify!(rte_eth_dev_data),
23780            "::",
23781            stringify!(reserved_ptrs)
23782        )
23783    );
23784}
23785impl Default for rte_eth_dev_data {
23786    fn default() -> Self {
23787        unsafe { ::std::mem::zeroed() }
23788    }
23789}
23790impl rte_eth_dev_data {
23791    #[inline]
23792    pub fn promiscuous(&self) -> u8 {
23793        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
23794    }
23795    #[inline]
23796    pub fn set_promiscuous(&mut self, val: u8) {
23797        unsafe {
23798            let val: u8 = ::std::mem::transmute(val);
23799            self._bitfield_1.set(0usize, 1u8, val as u64)
23800        }
23801    }
23802    #[inline]
23803    pub fn scattered_rx(&self) -> u8 {
23804        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
23805    }
23806    #[inline]
23807    pub fn set_scattered_rx(&mut self, val: u8) {
23808        unsafe {
23809            let val: u8 = ::std::mem::transmute(val);
23810            self._bitfield_1.set(1usize, 1u8, val as u64)
23811        }
23812    }
23813    #[inline]
23814    pub fn all_multicast(&self) -> u8 {
23815        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
23816    }
23817    #[inline]
23818    pub fn set_all_multicast(&mut self, val: u8) {
23819        unsafe {
23820            let val: u8 = ::std::mem::transmute(val);
23821            self._bitfield_1.set(2usize, 1u8, val as u64)
23822        }
23823    }
23824    #[inline]
23825    pub fn dev_started(&self) -> u8 {
23826        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
23827    }
23828    #[inline]
23829    pub fn set_dev_started(&mut self, val: u8) {
23830        unsafe {
23831            let val: u8 = ::std::mem::transmute(val);
23832            self._bitfield_1.set(3usize, 1u8, val as u64)
23833        }
23834    }
23835    #[inline]
23836    pub fn lro(&self) -> u8 {
23837        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
23838    }
23839    #[inline]
23840    pub fn set_lro(&mut self, val: u8) {
23841        unsafe {
23842            let val: u8 = ::std::mem::transmute(val);
23843            self._bitfield_1.set(4usize, 1u8, val as u64)
23844        }
23845    }
23846    #[inline]
23847    pub fn new_bitfield_1(
23848        promiscuous: u8,
23849        scattered_rx: u8,
23850        all_multicast: u8,
23851        dev_started: u8,
23852        lro: u8,
23853    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
23854        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
23855        __bindgen_bitfield_unit.set(0usize, 1u8, {
23856            let promiscuous: u8 = unsafe { ::std::mem::transmute(promiscuous) };
23857            promiscuous as u64
23858        });
23859        __bindgen_bitfield_unit.set(1usize, 1u8, {
23860            let scattered_rx: u8 = unsafe { ::std::mem::transmute(scattered_rx) };
23861            scattered_rx as u64
23862        });
23863        __bindgen_bitfield_unit.set(2usize, 1u8, {
23864            let all_multicast: u8 = unsafe { ::std::mem::transmute(all_multicast) };
23865            all_multicast as u64
23866        });
23867        __bindgen_bitfield_unit.set(3usize, 1u8, {
23868            let dev_started: u8 = unsafe { ::std::mem::transmute(dev_started) };
23869            dev_started as u64
23870        });
23871        __bindgen_bitfield_unit.set(4usize, 1u8, {
23872            let lro: u8 = unsafe { ::std::mem::transmute(lro) };
23873            lro as u64
23874        });
23875        __bindgen_bitfield_unit
23876    }
23877}
23878extern "C" {
23879    pub static mut rte_eth_devices: [rte_eth_dev; 0usize];
23880}
23881#[repr(C)]
23882#[derive(Debug, Default, Copy, Clone, PartialEq)]
23883pub struct rte_pci_id {
23884    pub class_id: u32,
23885    pub vendor_id: u16,
23886    pub device_id: u16,
23887    pub subsystem_vendor_id: u16,
23888    pub subsystem_device_id: u16,
23889}
23890#[test]
23891fn bindgen_test_layout_rte_pci_id() {
23892    assert_eq!(
23893        ::std::mem::size_of::<rte_pci_id>(),
23894        12usize,
23895        concat!("Size of: ", stringify!(rte_pci_id))
23896    );
23897    assert_eq!(
23898        ::std::mem::align_of::<rte_pci_id>(),
23899        4usize,
23900        concat!("Alignment of ", stringify!(rte_pci_id))
23901    );
23902    assert_eq!(
23903        unsafe { &(*(::std::ptr::null::<rte_pci_id>())).class_id as *const _ as usize },
23904        0usize,
23905        concat!(
23906            "Offset of field: ",
23907            stringify!(rte_pci_id),
23908            "::",
23909            stringify!(class_id)
23910        )
23911    );
23912    assert_eq!(
23913        unsafe { &(*(::std::ptr::null::<rte_pci_id>())).vendor_id as *const _ as usize },
23914        4usize,
23915        concat!(
23916            "Offset of field: ",
23917            stringify!(rte_pci_id),
23918            "::",
23919            stringify!(vendor_id)
23920        )
23921    );
23922    assert_eq!(
23923        unsafe { &(*(::std::ptr::null::<rte_pci_id>())).device_id as *const _ as usize },
23924        6usize,
23925        concat!(
23926            "Offset of field: ",
23927            stringify!(rte_pci_id),
23928            "::",
23929            stringify!(device_id)
23930        )
23931    );
23932    assert_eq!(
23933        unsafe { &(*(::std::ptr::null::<rte_pci_id>())).subsystem_vendor_id as *const _ as usize },
23934        8usize,
23935        concat!(
23936            "Offset of field: ",
23937            stringify!(rte_pci_id),
23938            "::",
23939            stringify!(subsystem_vendor_id)
23940        )
23941    );
23942    assert_eq!(
23943        unsafe { &(*(::std::ptr::null::<rte_pci_id>())).subsystem_device_id as *const _ as usize },
23944        10usize,
23945        concat!(
23946            "Offset of field: ",
23947            stringify!(rte_pci_id),
23948            "::",
23949            stringify!(subsystem_device_id)
23950        )
23951    );
23952}
23953#[repr(C)]
23954#[derive(Debug, Default, Copy, Clone, PartialEq)]
23955pub struct rte_pci_addr {
23956    pub domain: u32,
23957    pub bus: u8,
23958    pub devid: u8,
23959    pub function: u8,
23960}
23961#[test]
23962fn bindgen_test_layout_rte_pci_addr() {
23963    assert_eq!(
23964        ::std::mem::size_of::<rte_pci_addr>(),
23965        8usize,
23966        concat!("Size of: ", stringify!(rte_pci_addr))
23967    );
23968    assert_eq!(
23969        ::std::mem::align_of::<rte_pci_addr>(),
23970        4usize,
23971        concat!("Alignment of ", stringify!(rte_pci_addr))
23972    );
23973    assert_eq!(
23974        unsafe { &(*(::std::ptr::null::<rte_pci_addr>())).domain as *const _ as usize },
23975        0usize,
23976        concat!(
23977            "Offset of field: ",
23978            stringify!(rte_pci_addr),
23979            "::",
23980            stringify!(domain)
23981        )
23982    );
23983    assert_eq!(
23984        unsafe { &(*(::std::ptr::null::<rte_pci_addr>())).bus as *const _ as usize },
23985        4usize,
23986        concat!(
23987            "Offset of field: ",
23988            stringify!(rte_pci_addr),
23989            "::",
23990            stringify!(bus)
23991        )
23992    );
23993    assert_eq!(
23994        unsafe { &(*(::std::ptr::null::<rte_pci_addr>())).devid as *const _ as usize },
23995        5usize,
23996        concat!(
23997            "Offset of field: ",
23998            stringify!(rte_pci_addr),
23999            "::",
24000            stringify!(devid)
24001        )
24002    );
24003    assert_eq!(
24004        unsafe { &(*(::std::ptr::null::<rte_pci_addr>())).function as *const _ as usize },
24005        6usize,
24006        concat!(
24007            "Offset of field: ",
24008            stringify!(rte_pci_addr),
24009            "::",
24010            stringify!(function)
24011        )
24012    );
24013}
24014extern "C" {
24015    pub fn rte_pci_device_name(
24016        addr: *const rte_pci_addr,
24017        output: *mut ::std::os::raw::c_char,
24018        size: size_t,
24019    );
24020}
24021extern "C" {
24022    pub fn rte_pci_addr_cmp(
24023        addr: *const rte_pci_addr,
24024        addr2: *const rte_pci_addr,
24025    ) -> ::std::os::raw::c_int;
24026}
24027extern "C" {
24028    pub fn rte_pci_addr_parse(
24029        str_: *const ::std::os::raw::c_char,
24030        addr: *mut rte_pci_addr,
24031    ) -> ::std::os::raw::c_int;
24032}
24033pub mod rte_kni_req_id {
24034    pub type Type = ::std::os::raw::c_uint;
24035    pub const RTE_KNI_REQ_UNKNOWN: Type = 0;
24036    pub const RTE_KNI_REQ_CHANGE_MTU: Type = 1;
24037    pub const RTE_KNI_REQ_CFG_NETWORK_IF: Type = 2;
24038    pub const RTE_KNI_REQ_CHANGE_MAC_ADDR: Type = 3;
24039    pub const RTE_KNI_REQ_CHANGE_PROMISC: Type = 4;
24040    pub const RTE_KNI_REQ_CHANGE_ALLMULTI: Type = 5;
24041    pub const RTE_KNI_REQ_MAX: Type = 6;
24042}
24043#[repr(C, packed)]
24044#[derive(Copy, Clone)]
24045pub struct rte_kni_request {
24046    pub req_id: u32,
24047    pub __bindgen_anon_1: rte_kni_request__bindgen_ty_1,
24048    pub result: i32,
24049}
24050#[repr(C)]
24051#[derive(Copy, Clone)]
24052pub union rte_kni_request__bindgen_ty_1 {
24053    pub new_mtu: u32,
24054    pub if_up: u8,
24055    pub mac_addr: [u8; 6usize],
24056    pub promiscusity: u8,
24057    pub allmulti: u8,
24058    _bindgen_union_align: [u32; 2usize],
24059}
24060#[test]
24061fn bindgen_test_layout_rte_kni_request__bindgen_ty_1() {
24062    assert_eq!(
24063        ::std::mem::size_of::<rte_kni_request__bindgen_ty_1>(),
24064        8usize,
24065        concat!("Size of: ", stringify!(rte_kni_request__bindgen_ty_1))
24066    );
24067    assert_eq!(
24068        ::std::mem::align_of::<rte_kni_request__bindgen_ty_1>(),
24069        4usize,
24070        concat!("Alignment of ", stringify!(rte_kni_request__bindgen_ty_1))
24071    );
24072    assert_eq!(
24073        unsafe {
24074            &(*(::std::ptr::null::<rte_kni_request__bindgen_ty_1>())).new_mtu as *const _ as usize
24075        },
24076        0usize,
24077        concat!(
24078            "Offset of field: ",
24079            stringify!(rte_kni_request__bindgen_ty_1),
24080            "::",
24081            stringify!(new_mtu)
24082        )
24083    );
24084    assert_eq!(
24085        unsafe {
24086            &(*(::std::ptr::null::<rte_kni_request__bindgen_ty_1>())).if_up as *const _ as usize
24087        },
24088        0usize,
24089        concat!(
24090            "Offset of field: ",
24091            stringify!(rte_kni_request__bindgen_ty_1),
24092            "::",
24093            stringify!(if_up)
24094        )
24095    );
24096    assert_eq!(
24097        unsafe {
24098            &(*(::std::ptr::null::<rte_kni_request__bindgen_ty_1>())).mac_addr as *const _ as usize
24099        },
24100        0usize,
24101        concat!(
24102            "Offset of field: ",
24103            stringify!(rte_kni_request__bindgen_ty_1),
24104            "::",
24105            stringify!(mac_addr)
24106        )
24107    );
24108    assert_eq!(
24109        unsafe {
24110            &(*(::std::ptr::null::<rte_kni_request__bindgen_ty_1>())).promiscusity as *const _
24111                as usize
24112        },
24113        0usize,
24114        concat!(
24115            "Offset of field: ",
24116            stringify!(rte_kni_request__bindgen_ty_1),
24117            "::",
24118            stringify!(promiscusity)
24119        )
24120    );
24121    assert_eq!(
24122        unsafe {
24123            &(*(::std::ptr::null::<rte_kni_request__bindgen_ty_1>())).allmulti as *const _ as usize
24124        },
24125        0usize,
24126        concat!(
24127            "Offset of field: ",
24128            stringify!(rte_kni_request__bindgen_ty_1),
24129            "::",
24130            stringify!(allmulti)
24131        )
24132    );
24133}
24134impl Default for rte_kni_request__bindgen_ty_1 {
24135    fn default() -> Self {
24136        unsafe { ::std::mem::zeroed() }
24137    }
24138}
24139#[test]
24140fn bindgen_test_layout_rte_kni_request() {
24141    assert_eq!(
24142        ::std::mem::size_of::<rte_kni_request>(),
24143        16usize,
24144        concat!("Size of: ", stringify!(rte_kni_request))
24145    );
24146    assert_eq!(
24147        ::std::mem::align_of::<rte_kni_request>(),
24148        1usize,
24149        concat!("Alignment of ", stringify!(rte_kni_request))
24150    );
24151    assert_eq!(
24152        unsafe { &(*(::std::ptr::null::<rte_kni_request>())).req_id as *const _ as usize },
24153        0usize,
24154        concat!(
24155            "Offset of field: ",
24156            stringify!(rte_kni_request),
24157            "::",
24158            stringify!(req_id)
24159        )
24160    );
24161    assert_eq!(
24162        unsafe { &(*(::std::ptr::null::<rte_kni_request>())).result as *const _ as usize },
24163        12usize,
24164        concat!(
24165            "Offset of field: ",
24166            stringify!(rte_kni_request),
24167            "::",
24168            stringify!(result)
24169        )
24170    );
24171}
24172impl Default for rte_kni_request {
24173    fn default() -> Self {
24174        unsafe { ::std::mem::zeroed() }
24175    }
24176}
24177#[repr(C)]
24178#[derive(Debug)]
24179pub struct rte_kni_fifo {
24180    pub write: ::std::os::raw::c_uint,
24181    pub read: ::std::os::raw::c_uint,
24182    pub len: ::std::os::raw::c_uint,
24183    pub elem_size: ::std::os::raw::c_uint,
24184    pub buffer: __IncompleteArrayField<*mut ::std::os::raw::c_void>,
24185}
24186#[test]
24187fn bindgen_test_layout_rte_kni_fifo() {
24188    assert_eq!(
24189        ::std::mem::size_of::<rte_kni_fifo>(),
24190        16usize,
24191        concat!("Size of: ", stringify!(rte_kni_fifo))
24192    );
24193    assert_eq!(
24194        ::std::mem::align_of::<rte_kni_fifo>(),
24195        8usize,
24196        concat!("Alignment of ", stringify!(rte_kni_fifo))
24197    );
24198}
24199impl Default for rte_kni_fifo {
24200    fn default() -> Self {
24201        unsafe { ::std::mem::zeroed() }
24202    }
24203}
24204#[repr(C)]
24205#[repr(align(64))]
24206#[derive(Copy, Clone)]
24207pub struct rte_kni_mbuf {
24208    pub buf_addr: *mut ::std::os::raw::c_void,
24209    pub buf_physaddr: u64,
24210    pub data_off: u16,
24211    pub pad1: [::std::os::raw::c_char; 2usize],
24212    pub nb_segs: u16,
24213    pub pad4: [::std::os::raw::c_char; 2usize],
24214    pub ol_flags: u64,
24215    pub pad2: [::std::os::raw::c_char; 4usize],
24216    pub pkt_len: u32,
24217    pub data_len: u16,
24218    pub __bindgen_padding_0: [u8; 22usize],
24219    pub pad3: [::std::os::raw::c_char; 8usize],
24220    pub pool: *mut ::std::os::raw::c_void,
24221    pub next: *mut ::std::os::raw::c_void,
24222}
24223#[test]
24224fn bindgen_test_layout_rte_kni_mbuf() {
24225    assert_eq!(
24226        ::std::mem::size_of::<rte_kni_mbuf>(),
24227        128usize,
24228        concat!("Size of: ", stringify!(rte_kni_mbuf))
24229    );
24230    assert_eq!(
24231        ::std::mem::align_of::<rte_kni_mbuf>(),
24232        64usize,
24233        concat!("Alignment of ", stringify!(rte_kni_mbuf))
24234    );
24235    assert_eq!(
24236        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).buf_addr as *const _ as usize },
24237        0usize,
24238        concat!(
24239            "Offset of field: ",
24240            stringify!(rte_kni_mbuf),
24241            "::",
24242            stringify!(buf_addr)
24243        )
24244    );
24245    assert_eq!(
24246        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).buf_physaddr as *const _ as usize },
24247        8usize,
24248        concat!(
24249            "Offset of field: ",
24250            stringify!(rte_kni_mbuf),
24251            "::",
24252            stringify!(buf_physaddr)
24253        )
24254    );
24255    assert_eq!(
24256        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).data_off as *const _ as usize },
24257        16usize,
24258        concat!(
24259            "Offset of field: ",
24260            stringify!(rte_kni_mbuf),
24261            "::",
24262            stringify!(data_off)
24263        )
24264    );
24265    assert_eq!(
24266        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).pad1 as *const _ as usize },
24267        18usize,
24268        concat!(
24269            "Offset of field: ",
24270            stringify!(rte_kni_mbuf),
24271            "::",
24272            stringify!(pad1)
24273        )
24274    );
24275    assert_eq!(
24276        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).nb_segs as *const _ as usize },
24277        20usize,
24278        concat!(
24279            "Offset of field: ",
24280            stringify!(rte_kni_mbuf),
24281            "::",
24282            stringify!(nb_segs)
24283        )
24284    );
24285    assert_eq!(
24286        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).pad4 as *const _ as usize },
24287        22usize,
24288        concat!(
24289            "Offset of field: ",
24290            stringify!(rte_kni_mbuf),
24291            "::",
24292            stringify!(pad4)
24293        )
24294    );
24295    assert_eq!(
24296        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).ol_flags as *const _ as usize },
24297        24usize,
24298        concat!(
24299            "Offset of field: ",
24300            stringify!(rte_kni_mbuf),
24301            "::",
24302            stringify!(ol_flags)
24303        )
24304    );
24305    assert_eq!(
24306        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).pad2 as *const _ as usize },
24307        32usize,
24308        concat!(
24309            "Offset of field: ",
24310            stringify!(rte_kni_mbuf),
24311            "::",
24312            stringify!(pad2)
24313        )
24314    );
24315    assert_eq!(
24316        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).pkt_len as *const _ as usize },
24317        36usize,
24318        concat!(
24319            "Offset of field: ",
24320            stringify!(rte_kni_mbuf),
24321            "::",
24322            stringify!(pkt_len)
24323        )
24324    );
24325    assert_eq!(
24326        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).data_len as *const _ as usize },
24327        40usize,
24328        concat!(
24329            "Offset of field: ",
24330            stringify!(rte_kni_mbuf),
24331            "::",
24332            stringify!(data_len)
24333        )
24334    );
24335    assert_eq!(
24336        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).pad3 as *const _ as usize },
24337        64usize,
24338        concat!(
24339            "Offset of field: ",
24340            stringify!(rte_kni_mbuf),
24341            "::",
24342            stringify!(pad3)
24343        )
24344    );
24345    assert_eq!(
24346        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).pool as *const _ as usize },
24347        72usize,
24348        concat!(
24349            "Offset of field: ",
24350            stringify!(rte_kni_mbuf),
24351            "::",
24352            stringify!(pool)
24353        )
24354    );
24355    assert_eq!(
24356        unsafe { &(*(::std::ptr::null::<rte_kni_mbuf>())).next as *const _ as usize },
24357        80usize,
24358        concat!(
24359            "Offset of field: ",
24360            stringify!(rte_kni_mbuf),
24361            "::",
24362            stringify!(next)
24363        )
24364    );
24365}
24366impl Default for rte_kni_mbuf {
24367    fn default() -> Self {
24368        unsafe { ::std::mem::zeroed() }
24369    }
24370}
24371#[repr(C)]
24372#[derive(Debug, Copy, Clone, PartialEq)]
24373pub struct rte_kni_device_info {
24374    pub name: [::std::os::raw::c_char; 16usize],
24375    pub tx_phys: phys_addr_t,
24376    pub rx_phys: phys_addr_t,
24377    pub alloc_phys: phys_addr_t,
24378    pub free_phys: phys_addr_t,
24379    pub req_phys: phys_addr_t,
24380    pub resp_phys: phys_addr_t,
24381    pub sync_phys: phys_addr_t,
24382    pub sync_va: *mut ::std::os::raw::c_void,
24383    pub mbuf_va: *mut ::std::os::raw::c_void,
24384    pub mbuf_phys: phys_addr_t,
24385    pub group_id: u16,
24386    pub core_id: u32,
24387    pub _bitfield_align_1: [u8; 0],
24388    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
24389    pub mbuf_size: ::std::os::raw::c_uint,
24390    pub mtu: ::std::os::raw::c_uint,
24391    pub min_mtu: ::std::os::raw::c_uint,
24392    pub max_mtu: ::std::os::raw::c_uint,
24393    pub mac_addr: [u8; 6usize],
24394    pub iova_mode: u8,
24395}
24396#[test]
24397fn bindgen_test_layout_rte_kni_device_info() {
24398    assert_eq!(
24399        ::std::mem::size_of::<rte_kni_device_info>(),
24400        136usize,
24401        concat!("Size of: ", stringify!(rte_kni_device_info))
24402    );
24403    assert_eq!(
24404        ::std::mem::align_of::<rte_kni_device_info>(),
24405        8usize,
24406        concat!("Alignment of ", stringify!(rte_kni_device_info))
24407    );
24408    assert_eq!(
24409        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).name as *const _ as usize },
24410        0usize,
24411        concat!(
24412            "Offset of field: ",
24413            stringify!(rte_kni_device_info),
24414            "::",
24415            stringify!(name)
24416        )
24417    );
24418    assert_eq!(
24419        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).tx_phys as *const _ as usize },
24420        16usize,
24421        concat!(
24422            "Offset of field: ",
24423            stringify!(rte_kni_device_info),
24424            "::",
24425            stringify!(tx_phys)
24426        )
24427    );
24428    assert_eq!(
24429        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).rx_phys as *const _ as usize },
24430        24usize,
24431        concat!(
24432            "Offset of field: ",
24433            stringify!(rte_kni_device_info),
24434            "::",
24435            stringify!(rx_phys)
24436        )
24437    );
24438    assert_eq!(
24439        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).alloc_phys as *const _ as usize },
24440        32usize,
24441        concat!(
24442            "Offset of field: ",
24443            stringify!(rte_kni_device_info),
24444            "::",
24445            stringify!(alloc_phys)
24446        )
24447    );
24448    assert_eq!(
24449        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).free_phys as *const _ as usize },
24450        40usize,
24451        concat!(
24452            "Offset of field: ",
24453            stringify!(rte_kni_device_info),
24454            "::",
24455            stringify!(free_phys)
24456        )
24457    );
24458    assert_eq!(
24459        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).req_phys as *const _ as usize },
24460        48usize,
24461        concat!(
24462            "Offset of field: ",
24463            stringify!(rte_kni_device_info),
24464            "::",
24465            stringify!(req_phys)
24466        )
24467    );
24468    assert_eq!(
24469        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).resp_phys as *const _ as usize },
24470        56usize,
24471        concat!(
24472            "Offset of field: ",
24473            stringify!(rte_kni_device_info),
24474            "::",
24475            stringify!(resp_phys)
24476        )
24477    );
24478    assert_eq!(
24479        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).sync_phys as *const _ as usize },
24480        64usize,
24481        concat!(
24482            "Offset of field: ",
24483            stringify!(rte_kni_device_info),
24484            "::",
24485            stringify!(sync_phys)
24486        )
24487    );
24488    assert_eq!(
24489        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).sync_va as *const _ as usize },
24490        72usize,
24491        concat!(
24492            "Offset of field: ",
24493            stringify!(rte_kni_device_info),
24494            "::",
24495            stringify!(sync_va)
24496        )
24497    );
24498    assert_eq!(
24499        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).mbuf_va as *const _ as usize },
24500        80usize,
24501        concat!(
24502            "Offset of field: ",
24503            stringify!(rte_kni_device_info),
24504            "::",
24505            stringify!(mbuf_va)
24506        )
24507    );
24508    assert_eq!(
24509        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).mbuf_phys as *const _ as usize },
24510        88usize,
24511        concat!(
24512            "Offset of field: ",
24513            stringify!(rte_kni_device_info),
24514            "::",
24515            stringify!(mbuf_phys)
24516        )
24517    );
24518    assert_eq!(
24519        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).group_id as *const _ as usize },
24520        96usize,
24521        concat!(
24522            "Offset of field: ",
24523            stringify!(rte_kni_device_info),
24524            "::",
24525            stringify!(group_id)
24526        )
24527    );
24528    assert_eq!(
24529        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).core_id as *const _ as usize },
24530        100usize,
24531        concat!(
24532            "Offset of field: ",
24533            stringify!(rte_kni_device_info),
24534            "::",
24535            stringify!(core_id)
24536        )
24537    );
24538    assert_eq!(
24539        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).mbuf_size as *const _ as usize },
24540        108usize,
24541        concat!(
24542            "Offset of field: ",
24543            stringify!(rte_kni_device_info),
24544            "::",
24545            stringify!(mbuf_size)
24546        )
24547    );
24548    assert_eq!(
24549        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).mtu as *const _ as usize },
24550        112usize,
24551        concat!(
24552            "Offset of field: ",
24553            stringify!(rte_kni_device_info),
24554            "::",
24555            stringify!(mtu)
24556        )
24557    );
24558    assert_eq!(
24559        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).min_mtu as *const _ as usize },
24560        116usize,
24561        concat!(
24562            "Offset of field: ",
24563            stringify!(rte_kni_device_info),
24564            "::",
24565            stringify!(min_mtu)
24566        )
24567    );
24568    assert_eq!(
24569        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).max_mtu as *const _ as usize },
24570        120usize,
24571        concat!(
24572            "Offset of field: ",
24573            stringify!(rte_kni_device_info),
24574            "::",
24575            stringify!(max_mtu)
24576        )
24577    );
24578    assert_eq!(
24579        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).mac_addr as *const _ as usize },
24580        124usize,
24581        concat!(
24582            "Offset of field: ",
24583            stringify!(rte_kni_device_info),
24584            "::",
24585            stringify!(mac_addr)
24586        )
24587    );
24588    assert_eq!(
24589        unsafe { &(*(::std::ptr::null::<rte_kni_device_info>())).iova_mode as *const _ as usize },
24590        130usize,
24591        concat!(
24592            "Offset of field: ",
24593            stringify!(rte_kni_device_info),
24594            "::",
24595            stringify!(iova_mode)
24596        )
24597    );
24598}
24599impl Default for rte_kni_device_info {
24600    fn default() -> Self {
24601        unsafe { ::std::mem::zeroed() }
24602    }
24603}
24604impl rte_kni_device_info {
24605    #[inline]
24606    pub fn force_bind(&self) -> u8 {
24607        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
24608    }
24609    #[inline]
24610    pub fn set_force_bind(&mut self, val: u8) {
24611        unsafe {
24612            let val: u8 = ::std::mem::transmute(val);
24613            self._bitfield_1.set(0usize, 1u8, val as u64)
24614        }
24615    }
24616    #[inline]
24617    pub fn new_bitfield_1(force_bind: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
24618        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
24619        __bindgen_bitfield_unit.set(0usize, 1u8, {
24620            let force_bind: u8 = unsafe { ::std::mem::transmute(force_bind) };
24621            force_bind as u64
24622        });
24623        __bindgen_bitfield_unit
24624    }
24625}
24626#[repr(C)]
24627#[derive(Debug, Copy, Clone)]
24628pub struct rte_kni {
24629    _unused: [u8; 0],
24630}
24631#[repr(C)]
24632#[derive(Debug, Default, Copy, Clone, PartialEq)]
24633pub struct rte_kni_ops {
24634    pub port_id: u16,
24635    pub change_mtu: ::std::option::Option<
24636        unsafe extern "C" fn(
24637            port_id: u16,
24638            new_mtu: ::std::os::raw::c_uint,
24639        ) -> ::std::os::raw::c_int,
24640    >,
24641    pub config_network_if: ::std::option::Option<
24642        unsafe extern "C" fn(port_id: u16, if_up: u8) -> ::std::os::raw::c_int,
24643    >,
24644    pub config_mac_address: ::std::option::Option<
24645        unsafe extern "C" fn(port_id: u16, mac_addr: *mut u8) -> ::std::os::raw::c_int,
24646    >,
24647    pub config_promiscusity: ::std::option::Option<
24648        unsafe extern "C" fn(port_id: u16, to_on: u8) -> ::std::os::raw::c_int,
24649    >,
24650    pub config_allmulticast: ::std::option::Option<
24651        unsafe extern "C" fn(port_id: u16, to_on: u8) -> ::std::os::raw::c_int,
24652    >,
24653}
24654#[test]
24655fn bindgen_test_layout_rte_kni_ops() {
24656    assert_eq!(
24657        ::std::mem::size_of::<rte_kni_ops>(),
24658        48usize,
24659        concat!("Size of: ", stringify!(rte_kni_ops))
24660    );
24661    assert_eq!(
24662        ::std::mem::align_of::<rte_kni_ops>(),
24663        8usize,
24664        concat!("Alignment of ", stringify!(rte_kni_ops))
24665    );
24666    assert_eq!(
24667        unsafe { &(*(::std::ptr::null::<rte_kni_ops>())).port_id as *const _ as usize },
24668        0usize,
24669        concat!(
24670            "Offset of field: ",
24671            stringify!(rte_kni_ops),
24672            "::",
24673            stringify!(port_id)
24674        )
24675    );
24676    assert_eq!(
24677        unsafe { &(*(::std::ptr::null::<rte_kni_ops>())).change_mtu as *const _ as usize },
24678        8usize,
24679        concat!(
24680            "Offset of field: ",
24681            stringify!(rte_kni_ops),
24682            "::",
24683            stringify!(change_mtu)
24684        )
24685    );
24686    assert_eq!(
24687        unsafe { &(*(::std::ptr::null::<rte_kni_ops>())).config_network_if as *const _ as usize },
24688        16usize,
24689        concat!(
24690            "Offset of field: ",
24691            stringify!(rte_kni_ops),
24692            "::",
24693            stringify!(config_network_if)
24694        )
24695    );
24696    assert_eq!(
24697        unsafe { &(*(::std::ptr::null::<rte_kni_ops>())).config_mac_address as *const _ as usize },
24698        24usize,
24699        concat!(
24700            "Offset of field: ",
24701            stringify!(rte_kni_ops),
24702            "::",
24703            stringify!(config_mac_address)
24704        )
24705    );
24706    assert_eq!(
24707        unsafe { &(*(::std::ptr::null::<rte_kni_ops>())).config_promiscusity as *const _ as usize },
24708        32usize,
24709        concat!(
24710            "Offset of field: ",
24711            stringify!(rte_kni_ops),
24712            "::",
24713            stringify!(config_promiscusity)
24714        )
24715    );
24716    assert_eq!(
24717        unsafe { &(*(::std::ptr::null::<rte_kni_ops>())).config_allmulticast as *const _ as usize },
24718        40usize,
24719        concat!(
24720            "Offset of field: ",
24721            stringify!(rte_kni_ops),
24722            "::",
24723            stringify!(config_allmulticast)
24724        )
24725    );
24726}
24727#[repr(C)]
24728#[derive(Debug, Default, Copy, Clone, PartialEq)]
24729pub struct rte_kni_conf {
24730    pub name: [::std::os::raw::c_char; 16usize],
24731    pub core_id: u32,
24732    pub group_id: u16,
24733    pub mbuf_size: ::std::os::raw::c_uint,
24734    pub addr: rte_pci_addr,
24735    pub id: rte_pci_id,
24736    pub _bitfield_align_1: [u8; 0],
24737    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
24738    pub mac_addr: [u8; 6usize],
24739    pub mtu: u16,
24740    pub min_mtu: u16,
24741    pub max_mtu: u16,
24742}
24743#[test]
24744fn bindgen_test_layout_rte_kni_conf() {
24745    assert_eq!(
24746        ::std::mem::size_of::<rte_kni_conf>(),
24747        64usize,
24748        concat!("Size of: ", stringify!(rte_kni_conf))
24749    );
24750    assert_eq!(
24751        ::std::mem::align_of::<rte_kni_conf>(),
24752        4usize,
24753        concat!("Alignment of ", stringify!(rte_kni_conf))
24754    );
24755    assert_eq!(
24756        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).name as *const _ as usize },
24757        0usize,
24758        concat!(
24759            "Offset of field: ",
24760            stringify!(rte_kni_conf),
24761            "::",
24762            stringify!(name)
24763        )
24764    );
24765    assert_eq!(
24766        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).core_id as *const _ as usize },
24767        16usize,
24768        concat!(
24769            "Offset of field: ",
24770            stringify!(rte_kni_conf),
24771            "::",
24772            stringify!(core_id)
24773        )
24774    );
24775    assert_eq!(
24776        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).group_id as *const _ as usize },
24777        20usize,
24778        concat!(
24779            "Offset of field: ",
24780            stringify!(rte_kni_conf),
24781            "::",
24782            stringify!(group_id)
24783        )
24784    );
24785    assert_eq!(
24786        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).mbuf_size as *const _ as usize },
24787        24usize,
24788        concat!(
24789            "Offset of field: ",
24790            stringify!(rte_kni_conf),
24791            "::",
24792            stringify!(mbuf_size)
24793        )
24794    );
24795    assert_eq!(
24796        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).addr as *const _ as usize },
24797        28usize,
24798        concat!(
24799            "Offset of field: ",
24800            stringify!(rte_kni_conf),
24801            "::",
24802            stringify!(addr)
24803        )
24804    );
24805    assert_eq!(
24806        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).id as *const _ as usize },
24807        36usize,
24808        concat!(
24809            "Offset of field: ",
24810            stringify!(rte_kni_conf),
24811            "::",
24812            stringify!(id)
24813        )
24814    );
24815    assert_eq!(
24816        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).mac_addr as *const _ as usize },
24817        49usize,
24818        concat!(
24819            "Offset of field: ",
24820            stringify!(rte_kni_conf),
24821            "::",
24822            stringify!(mac_addr)
24823        )
24824    );
24825    assert_eq!(
24826        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).mtu as *const _ as usize },
24827        56usize,
24828        concat!(
24829            "Offset of field: ",
24830            stringify!(rte_kni_conf),
24831            "::",
24832            stringify!(mtu)
24833        )
24834    );
24835    assert_eq!(
24836        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).min_mtu as *const _ as usize },
24837        58usize,
24838        concat!(
24839            "Offset of field: ",
24840            stringify!(rte_kni_conf),
24841            "::",
24842            stringify!(min_mtu)
24843        )
24844    );
24845    assert_eq!(
24846        unsafe { &(*(::std::ptr::null::<rte_kni_conf>())).max_mtu as *const _ as usize },
24847        60usize,
24848        concat!(
24849            "Offset of field: ",
24850            stringify!(rte_kni_conf),
24851            "::",
24852            stringify!(max_mtu)
24853        )
24854    );
24855}
24856impl rte_kni_conf {
24857    #[inline]
24858    pub fn force_bind(&self) -> u8 {
24859        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
24860    }
24861    #[inline]
24862    pub fn set_force_bind(&mut self, val: u8) {
24863        unsafe {
24864            let val: u8 = ::std::mem::transmute(val);
24865            self._bitfield_1.set(0usize, 1u8, val as u64)
24866        }
24867    }
24868    #[inline]
24869    pub fn new_bitfield_1(force_bind: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
24870        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
24871        __bindgen_bitfield_unit.set(0usize, 1u8, {
24872            let force_bind: u8 = unsafe { ::std::mem::transmute(force_bind) };
24873            force_bind as u64
24874        });
24875        __bindgen_bitfield_unit
24876    }
24877}
24878extern "C" {
24879    pub fn rte_kni_init(max_kni_ifaces: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
24880}
24881extern "C" {
24882    pub fn rte_kni_alloc(
24883        pktmbuf_pool: *mut rte_mempool,
24884        conf: *const rte_kni_conf,
24885        ops: *mut rte_kni_ops,
24886    ) -> *mut rte_kni;
24887}
24888extern "C" {
24889    pub fn rte_kni_release(kni: *mut rte_kni) -> ::std::os::raw::c_int;
24890}
24891extern "C" {
24892    pub fn rte_kni_handle_request(kni: *mut rte_kni) -> ::std::os::raw::c_int;
24893}
24894extern "C" {
24895    pub fn rte_kni_rx_burst(
24896        kni: *mut rte_kni,
24897        mbufs: *mut *mut rte_mbuf,
24898        num: ::std::os::raw::c_uint,
24899    ) -> ::std::os::raw::c_uint;
24900}
24901extern "C" {
24902    pub fn rte_kni_tx_burst(
24903        kni: *mut rte_kni,
24904        mbufs: *mut *mut rte_mbuf,
24905        num: ::std::os::raw::c_uint,
24906    ) -> ::std::os::raw::c_uint;
24907}
24908extern "C" {
24909    pub fn rte_kni_get(name: *const ::std::os::raw::c_char) -> *mut rte_kni;
24910}
24911extern "C" {
24912    pub fn rte_kni_get_name(kni: *const rte_kni) -> *const ::std::os::raw::c_char;
24913}
24914extern "C" {
24915    pub fn rte_kni_register_handlers(
24916        kni: *mut rte_kni,
24917        ops: *mut rte_kni_ops,
24918    ) -> ::std::os::raw::c_int;
24919}
24920extern "C" {
24921    pub fn rte_kni_unregister_handlers(kni: *mut rte_kni) -> ::std::os::raw::c_int;
24922}
24923extern "C" {
24924    pub fn rte_kni_update_link(
24925        kni: *mut rte_kni,
24926        linkup: ::std::os::raw::c_uint,
24927    ) -> ::std::os::raw::c_int;
24928}
24929extern "C" {
24930    pub fn rte_kni_close();
24931}
24932#[repr(C)]
24933#[derive(Debug, Default, Copy, Clone, PartialEq)]
24934pub struct nodemask_t {
24935    pub n: [::std::os::raw::c_ulong; 2usize],
24936}
24937#[test]
24938fn bindgen_test_layout_nodemask_t() {
24939    assert_eq!(
24940        ::std::mem::size_of::<nodemask_t>(),
24941        16usize,
24942        concat!("Size of: ", stringify!(nodemask_t))
24943    );
24944    assert_eq!(
24945        ::std::mem::align_of::<nodemask_t>(),
24946        8usize,
24947        concat!("Alignment of ", stringify!(nodemask_t))
24948    );
24949    assert_eq!(
24950        unsafe { &(*(::std::ptr::null::<nodemask_t>())).n as *const _ as usize },
24951        0usize,
24952        concat!(
24953            "Offset of field: ",
24954            stringify!(nodemask_t),
24955            "::",
24956            stringify!(n)
24957        )
24958    );
24959}
24960#[repr(C)]
24961#[derive(Debug, Copy, Clone, PartialEq)]
24962pub struct bitmask {
24963    pub size: ::std::os::raw::c_ulong,
24964    pub maskp: *mut ::std::os::raw::c_ulong,
24965}
24966#[test]
24967fn bindgen_test_layout_bitmask() {
24968    assert_eq!(
24969        ::std::mem::size_of::<bitmask>(),
24970        16usize,
24971        concat!("Size of: ", stringify!(bitmask))
24972    );
24973    assert_eq!(
24974        ::std::mem::align_of::<bitmask>(),
24975        8usize,
24976        concat!("Alignment of ", stringify!(bitmask))
24977    );
24978    assert_eq!(
24979        unsafe { &(*(::std::ptr::null::<bitmask>())).size as *const _ as usize },
24980        0usize,
24981        concat!(
24982            "Offset of field: ",
24983            stringify!(bitmask),
24984            "::",
24985            stringify!(size)
24986        )
24987    );
24988    assert_eq!(
24989        unsafe { &(*(::std::ptr::null::<bitmask>())).maskp as *const _ as usize },
24990        8usize,
24991        concat!(
24992            "Offset of field: ",
24993            stringify!(bitmask),
24994            "::",
24995            stringify!(maskp)
24996        )
24997    );
24998}
24999impl Default for bitmask {
25000    fn default() -> Self {
25001        unsafe { ::std::mem::zeroed() }
25002    }
25003}
25004extern "C" {
25005    pub fn numa_bitmask_isbitset(
25006        arg1: *const bitmask,
25007        arg2: ::std::os::raw::c_uint,
25008    ) -> ::std::os::raw::c_int;
25009}
25010extern "C" {
25011    pub fn numa_bitmask_setall(arg1: *mut bitmask) -> *mut bitmask;
25012}
25013extern "C" {
25014    pub fn numa_bitmask_clearall(arg1: *mut bitmask) -> *mut bitmask;
25015}
25016extern "C" {
25017    pub fn numa_bitmask_setbit(arg1: *mut bitmask, arg2: ::std::os::raw::c_uint) -> *mut bitmask;
25018}
25019extern "C" {
25020    pub fn numa_bitmask_clearbit(arg1: *mut bitmask, arg2: ::std::os::raw::c_uint) -> *mut bitmask;
25021}
25022extern "C" {
25023    pub fn numa_bitmask_nbytes(arg1: *mut bitmask) -> ::std::os::raw::c_uint;
25024}
25025extern "C" {
25026    pub fn numa_bitmask_weight(arg1: *const bitmask) -> ::std::os::raw::c_uint;
25027}
25028extern "C" {
25029    pub fn numa_bitmask_alloc(arg1: ::std::os::raw::c_uint) -> *mut bitmask;
25030}
25031extern "C" {
25032    pub fn numa_bitmask_free(arg1: *mut bitmask);
25033}
25034extern "C" {
25035    pub fn numa_bitmask_equal(arg1: *const bitmask, arg2: *const bitmask) -> ::std::os::raw::c_int;
25036}
25037extern "C" {
25038    pub fn numa_available() -> ::std::os::raw::c_int;
25039}
25040extern "C" {
25041    pub fn numa_max_node() -> ::std::os::raw::c_int;
25042}
25043extern "C" {
25044    pub fn numa_max_possible_node() -> ::std::os::raw::c_int;
25045}
25046extern "C" {
25047    pub fn numa_preferred() -> ::std::os::raw::c_int;
25048}
25049extern "C" {
25050    pub fn numa_node_size64(
25051        node: ::std::os::raw::c_int,
25052        freep: *mut ::std::os::raw::c_longlong,
25053    ) -> ::std::os::raw::c_longlong;
25054}
25055extern "C" {
25056    pub fn numa_node_size(
25057        node: ::std::os::raw::c_int,
25058        freep: *mut ::std::os::raw::c_long,
25059    ) -> ::std::os::raw::c_long;
25060}
25061extern "C" {
25062    pub fn numa_pagesize() -> ::std::os::raw::c_int;
25063}
25064extern "C" {
25065    pub fn numa_bind(nodes: *mut bitmask);
25066}
25067extern "C" {
25068    pub fn numa_set_interleave_mask(nodemask: *mut bitmask);
25069}
25070extern "C" {
25071    pub fn numa_get_interleave_mask() -> *mut bitmask;
25072}
25073extern "C" {
25074    pub fn numa_allocate_nodemask() -> *mut bitmask;
25075}
25076extern "C" {
25077    pub fn numa_set_preferred(node: ::std::os::raw::c_int);
25078}
25079extern "C" {
25080    pub fn numa_set_localalloc();
25081}
25082extern "C" {
25083    pub fn numa_set_membind(nodemask: *mut bitmask);
25084}
25085extern "C" {
25086    pub fn numa_get_membind() -> *mut bitmask;
25087}
25088extern "C" {
25089    pub fn numa_get_mems_allowed() -> *mut bitmask;
25090}
25091extern "C" {
25092    pub fn numa_get_interleave_node() -> ::std::os::raw::c_int;
25093}
25094extern "C" {
25095    pub fn numa_alloc_interleaved_subset(
25096        size: size_t,
25097        nodemask: *mut bitmask,
25098    ) -> *mut ::std::os::raw::c_void;
25099}
25100extern "C" {
25101    pub fn numa_alloc_interleaved(size: size_t) -> *mut ::std::os::raw::c_void;
25102}
25103extern "C" {
25104    pub fn numa_alloc_onnode(
25105        size: size_t,
25106        node: ::std::os::raw::c_int,
25107    ) -> *mut ::std::os::raw::c_void;
25108}
25109extern "C" {
25110    pub fn numa_alloc_local(size: size_t) -> *mut ::std::os::raw::c_void;
25111}
25112extern "C" {
25113    pub fn numa_alloc(size: size_t) -> *mut ::std::os::raw::c_void;
25114}
25115extern "C" {
25116    pub fn numa_realloc(
25117        old_addr: *mut ::std::os::raw::c_void,
25118        old_size: size_t,
25119        new_size: size_t,
25120    ) -> *mut ::std::os::raw::c_void;
25121}
25122extern "C" {
25123    pub fn numa_free(mem: *mut ::std::os::raw::c_void, size: size_t);
25124}
25125extern "C" {
25126    pub fn numa_interleave_memory(
25127        mem: *mut ::std::os::raw::c_void,
25128        size: size_t,
25129        mask: *mut bitmask,
25130    );
25131}
25132extern "C" {
25133    pub fn numa_tonode_memory(
25134        start: *mut ::std::os::raw::c_void,
25135        size: size_t,
25136        node: ::std::os::raw::c_int,
25137    );
25138}
25139extern "C" {
25140    pub fn numa_tonodemask_memory(
25141        mem: *mut ::std::os::raw::c_void,
25142        size: size_t,
25143        mask: *mut bitmask,
25144    );
25145}
25146extern "C" {
25147    pub fn numa_setlocal_memory(start: *mut ::std::os::raw::c_void, size: size_t);
25148}
25149extern "C" {
25150    pub fn numa_police_memory(start: *mut ::std::os::raw::c_void, size: size_t);
25151}
25152extern "C" {
25153    pub fn numa_run_on_node_mask(mask: *mut bitmask) -> ::std::os::raw::c_int;
25154}
25155extern "C" {
25156    pub fn numa_run_on_node_mask_all(mask: *mut bitmask) -> ::std::os::raw::c_int;
25157}
25158extern "C" {
25159    pub fn numa_run_on_node(node: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
25160}
25161extern "C" {
25162    pub fn numa_get_run_node_mask() -> *mut bitmask;
25163}
25164extern "C" {
25165    pub fn numa_set_bind_policy(strict: ::std::os::raw::c_int);
25166}
25167extern "C" {
25168    pub fn numa_set_strict(flag: ::std::os::raw::c_int);
25169}
25170extern "C" {
25171    pub fn numa_num_possible_nodes() -> ::std::os::raw::c_int;
25172}
25173extern "C" {
25174    pub fn numa_num_possible_cpus() -> ::std::os::raw::c_int;
25175}
25176extern "C" {
25177    pub fn numa_num_configured_nodes() -> ::std::os::raw::c_int;
25178}
25179extern "C" {
25180    pub fn numa_num_configured_cpus() -> ::std::os::raw::c_int;
25181}
25182extern "C" {
25183    pub fn numa_num_task_cpus() -> ::std::os::raw::c_int;
25184}
25185extern "C" {
25186    pub fn numa_num_thread_cpus() -> ::std::os::raw::c_int;
25187}
25188extern "C" {
25189    pub fn numa_num_task_nodes() -> ::std::os::raw::c_int;
25190}
25191extern "C" {
25192    pub fn numa_num_thread_nodes() -> ::std::os::raw::c_int;
25193}
25194extern "C" {
25195    pub fn numa_allocate_cpumask() -> *mut bitmask;
25196}
25197extern "C" {
25198    pub fn numa_node_to_cpus(
25199        arg1: ::std::os::raw::c_int,
25200        arg2: *mut bitmask,
25201    ) -> ::std::os::raw::c_int;
25202}
25203extern "C" {
25204    pub fn numa_node_of_cpu(cpu: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
25205}
25206extern "C" {
25207    pub fn numa_distance(
25208        node1: ::std::os::raw::c_int,
25209        node2: ::std::os::raw::c_int,
25210    ) -> ::std::os::raw::c_int;
25211}
25212extern "C" {
25213    pub fn numa_error(where_: *mut ::std::os::raw::c_char);
25214}
25215extern "C" {
25216    pub fn numa_warn(num: ::std::os::raw::c_int, fmt: *mut ::std::os::raw::c_char, ...);
25217}
25218extern "C" {
25219    pub fn numa_migrate_pages(
25220        pid: ::std::os::raw::c_int,
25221        from: *mut bitmask,
25222        to: *mut bitmask,
25223    ) -> ::std::os::raw::c_int;
25224}
25225extern "C" {
25226    pub fn numa_move_pages(
25227        pid: ::std::os::raw::c_int,
25228        count: ::std::os::raw::c_ulong,
25229        pages: *mut *mut ::std::os::raw::c_void,
25230        nodes: *const ::std::os::raw::c_int,
25231        status: *mut ::std::os::raw::c_int,
25232        flags: ::std::os::raw::c_int,
25233    ) -> ::std::os::raw::c_int;
25234}
25235extern "C" {
25236    pub fn numa_sched_getaffinity(arg1: pid_t, arg2: *mut bitmask) -> ::std::os::raw::c_int;
25237}
25238extern "C" {
25239    pub fn numa_sched_setaffinity(arg1: pid_t, arg2: *mut bitmask) -> ::std::os::raw::c_int;
25240}
25241extern "C" {
25242    pub fn numa_parse_nodestring(arg1: *const ::std::os::raw::c_char) -> *mut bitmask;
25243}
25244extern "C" {
25245    pub fn numa_parse_nodestring_all(arg1: *const ::std::os::raw::c_char) -> *mut bitmask;
25246}
25247extern "C" {
25248    pub fn numa_parse_cpustring(arg1: *const ::std::os::raw::c_char) -> *mut bitmask;
25249}
25250extern "C" {
25251    pub fn numa_parse_cpustring_all(arg1: *const ::std::os::raw::c_char) -> *mut bitmask;
25252}
25253pub type bpf_int32 = ::std::os::raw::c_int;
25254pub type bpf_u_int32 = u_int;
25255#[repr(C)]
25256#[derive(Debug, Copy, Clone, PartialEq)]
25257pub struct bpf_program {
25258    pub bf_len: u_int,
25259    pub bf_insns: *mut bpf_insn,
25260}
25261#[test]
25262fn bindgen_test_layout_bpf_program() {
25263    assert_eq!(
25264        ::std::mem::size_of::<bpf_program>(),
25265        16usize,
25266        concat!("Size of: ", stringify!(bpf_program))
25267    );
25268    assert_eq!(
25269        ::std::mem::align_of::<bpf_program>(),
25270        8usize,
25271        concat!("Alignment of ", stringify!(bpf_program))
25272    );
25273    assert_eq!(
25274        unsafe { &(*(::std::ptr::null::<bpf_program>())).bf_len as *const _ as usize },
25275        0usize,
25276        concat!(
25277            "Offset of field: ",
25278            stringify!(bpf_program),
25279            "::",
25280            stringify!(bf_len)
25281        )
25282    );
25283    assert_eq!(
25284        unsafe { &(*(::std::ptr::null::<bpf_program>())).bf_insns as *const _ as usize },
25285        8usize,
25286        concat!(
25287            "Offset of field: ",
25288            stringify!(bpf_program),
25289            "::",
25290            stringify!(bf_insns)
25291        )
25292    );
25293}
25294impl Default for bpf_program {
25295    fn default() -> Self {
25296        unsafe { ::std::mem::zeroed() }
25297    }
25298}
25299#[repr(C)]
25300#[derive(Debug, Default, Copy, Clone, PartialEq)]
25301pub struct bpf_insn {
25302    pub code: u_short,
25303    pub jt: u_char,
25304    pub jf: u_char,
25305    pub k: bpf_u_int32,
25306}
25307#[test]
25308fn bindgen_test_layout_bpf_insn() {
25309    assert_eq!(
25310        ::std::mem::size_of::<bpf_insn>(),
25311        8usize,
25312        concat!("Size of: ", stringify!(bpf_insn))
25313    );
25314    assert_eq!(
25315        ::std::mem::align_of::<bpf_insn>(),
25316        4usize,
25317        concat!("Alignment of ", stringify!(bpf_insn))
25318    );
25319    assert_eq!(
25320        unsafe { &(*(::std::ptr::null::<bpf_insn>())).code as *const _ as usize },
25321        0usize,
25322        concat!(
25323            "Offset of field: ",
25324            stringify!(bpf_insn),
25325            "::",
25326            stringify!(code)
25327        )
25328    );
25329    assert_eq!(
25330        unsafe { &(*(::std::ptr::null::<bpf_insn>())).jt as *const _ as usize },
25331        2usize,
25332        concat!(
25333            "Offset of field: ",
25334            stringify!(bpf_insn),
25335            "::",
25336            stringify!(jt)
25337        )
25338    );
25339    assert_eq!(
25340        unsafe { &(*(::std::ptr::null::<bpf_insn>())).jf as *const _ as usize },
25341        3usize,
25342        concat!(
25343            "Offset of field: ",
25344            stringify!(bpf_insn),
25345            "::",
25346            stringify!(jf)
25347        )
25348    );
25349    assert_eq!(
25350        unsafe { &(*(::std::ptr::null::<bpf_insn>())).k as *const _ as usize },
25351        4usize,
25352        concat!(
25353            "Offset of field: ",
25354            stringify!(bpf_insn),
25355            "::",
25356            stringify!(k)
25357        )
25358    );
25359}
25360#[repr(C)]
25361#[derive(Debug, Copy, Clone)]
25362pub struct pcap {
25363    _unused: [u8; 0],
25364}
25365pub type pcap_t = pcap;
25366#[repr(C)]
25367#[derive(Debug, Copy, Clone)]
25368pub struct pcap_dumper {
25369    _unused: [u8; 0],
25370}
25371pub type pcap_dumper_t = pcap_dumper;
25372pub type pcap_if_t = pcap_if;
25373pub type pcap_addr_t = pcap_addr;
25374#[repr(C)]
25375#[derive(Debug, Default, Copy, Clone, PartialEq)]
25376pub struct pcap_file_header {
25377    pub magic: bpf_u_int32,
25378    pub version_major: u_short,
25379    pub version_minor: u_short,
25380    pub thiszone: bpf_int32,
25381    pub sigfigs: bpf_u_int32,
25382    pub snaplen: bpf_u_int32,
25383    pub linktype: bpf_u_int32,
25384}
25385#[test]
25386fn bindgen_test_layout_pcap_file_header() {
25387    assert_eq!(
25388        ::std::mem::size_of::<pcap_file_header>(),
25389        24usize,
25390        concat!("Size of: ", stringify!(pcap_file_header))
25391    );
25392    assert_eq!(
25393        ::std::mem::align_of::<pcap_file_header>(),
25394        4usize,
25395        concat!("Alignment of ", stringify!(pcap_file_header))
25396    );
25397    assert_eq!(
25398        unsafe { &(*(::std::ptr::null::<pcap_file_header>())).magic as *const _ as usize },
25399        0usize,
25400        concat!(
25401            "Offset of field: ",
25402            stringify!(pcap_file_header),
25403            "::",
25404            stringify!(magic)
25405        )
25406    );
25407    assert_eq!(
25408        unsafe { &(*(::std::ptr::null::<pcap_file_header>())).version_major as *const _ as usize },
25409        4usize,
25410        concat!(
25411            "Offset of field: ",
25412            stringify!(pcap_file_header),
25413            "::",
25414            stringify!(version_major)
25415        )
25416    );
25417    assert_eq!(
25418        unsafe { &(*(::std::ptr::null::<pcap_file_header>())).version_minor as *const _ as usize },
25419        6usize,
25420        concat!(
25421            "Offset of field: ",
25422            stringify!(pcap_file_header),
25423            "::",
25424            stringify!(version_minor)
25425        )
25426    );
25427    assert_eq!(
25428        unsafe { &(*(::std::ptr::null::<pcap_file_header>())).thiszone as *const _ as usize },
25429        8usize,
25430        concat!(
25431            "Offset of field: ",
25432            stringify!(pcap_file_header),
25433            "::",
25434            stringify!(thiszone)
25435        )
25436    );
25437    assert_eq!(
25438        unsafe { &(*(::std::ptr::null::<pcap_file_header>())).sigfigs as *const _ as usize },
25439        12usize,
25440        concat!(
25441            "Offset of field: ",
25442            stringify!(pcap_file_header),
25443            "::",
25444            stringify!(sigfigs)
25445        )
25446    );
25447    assert_eq!(
25448        unsafe { &(*(::std::ptr::null::<pcap_file_header>())).snaplen as *const _ as usize },
25449        16usize,
25450        concat!(
25451            "Offset of field: ",
25452            stringify!(pcap_file_header),
25453            "::",
25454            stringify!(snaplen)
25455        )
25456    );
25457    assert_eq!(
25458        unsafe { &(*(::std::ptr::null::<pcap_file_header>())).linktype as *const _ as usize },
25459        20usize,
25460        concat!(
25461            "Offset of field: ",
25462            stringify!(pcap_file_header),
25463            "::",
25464            stringify!(linktype)
25465        )
25466    );
25467}
25468pub mod pcap_direction_t {
25469    pub type Type = ::std::os::raw::c_uint;
25470    pub const PCAP_D_INOUT: Type = 0;
25471    pub const PCAP_D_IN: Type = 1;
25472    pub const PCAP_D_OUT: Type = 2;
25473}
25474#[repr(C)]
25475#[derive(Debug, Default, Copy, Clone, PartialEq)]
25476pub struct pcap_pkthdr {
25477    pub ts: timeval,
25478    pub caplen: bpf_u_int32,
25479    pub len: bpf_u_int32,
25480}
25481#[test]
25482fn bindgen_test_layout_pcap_pkthdr() {
25483    assert_eq!(
25484        ::std::mem::size_of::<pcap_pkthdr>(),
25485        24usize,
25486        concat!("Size of: ", stringify!(pcap_pkthdr))
25487    );
25488    assert_eq!(
25489        ::std::mem::align_of::<pcap_pkthdr>(),
25490        8usize,
25491        concat!("Alignment of ", stringify!(pcap_pkthdr))
25492    );
25493    assert_eq!(
25494        unsafe { &(*(::std::ptr::null::<pcap_pkthdr>())).ts as *const _ as usize },
25495        0usize,
25496        concat!(
25497            "Offset of field: ",
25498            stringify!(pcap_pkthdr),
25499            "::",
25500            stringify!(ts)
25501        )
25502    );
25503    assert_eq!(
25504        unsafe { &(*(::std::ptr::null::<pcap_pkthdr>())).caplen as *const _ as usize },
25505        16usize,
25506        concat!(
25507            "Offset of field: ",
25508            stringify!(pcap_pkthdr),
25509            "::",
25510            stringify!(caplen)
25511        )
25512    );
25513    assert_eq!(
25514        unsafe { &(*(::std::ptr::null::<pcap_pkthdr>())).len as *const _ as usize },
25515        20usize,
25516        concat!(
25517            "Offset of field: ",
25518            stringify!(pcap_pkthdr),
25519            "::",
25520            stringify!(len)
25521        )
25522    );
25523}
25524#[repr(C)]
25525#[derive(Debug, Default, Copy, Clone, PartialEq)]
25526pub struct pcap_stat {
25527    pub ps_recv: u_int,
25528    pub ps_drop: u_int,
25529    pub ps_ifdrop: u_int,
25530}
25531#[test]
25532fn bindgen_test_layout_pcap_stat() {
25533    assert_eq!(
25534        ::std::mem::size_of::<pcap_stat>(),
25535        12usize,
25536        concat!("Size of: ", stringify!(pcap_stat))
25537    );
25538    assert_eq!(
25539        ::std::mem::align_of::<pcap_stat>(),
25540        4usize,
25541        concat!("Alignment of ", stringify!(pcap_stat))
25542    );
25543    assert_eq!(
25544        unsafe { &(*(::std::ptr::null::<pcap_stat>())).ps_recv as *const _ as usize },
25545        0usize,
25546        concat!(
25547            "Offset of field: ",
25548            stringify!(pcap_stat),
25549            "::",
25550            stringify!(ps_recv)
25551        )
25552    );
25553    assert_eq!(
25554        unsafe { &(*(::std::ptr::null::<pcap_stat>())).ps_drop as *const _ as usize },
25555        4usize,
25556        concat!(
25557            "Offset of field: ",
25558            stringify!(pcap_stat),
25559            "::",
25560            stringify!(ps_drop)
25561        )
25562    );
25563    assert_eq!(
25564        unsafe { &(*(::std::ptr::null::<pcap_stat>())).ps_ifdrop as *const _ as usize },
25565        8usize,
25566        concat!(
25567            "Offset of field: ",
25568            stringify!(pcap_stat),
25569            "::",
25570            stringify!(ps_ifdrop)
25571        )
25572    );
25573}
25574#[repr(C)]
25575#[derive(Debug, Copy, Clone, PartialEq)]
25576pub struct pcap_if {
25577    pub next: *mut pcap_if,
25578    pub name: *mut ::std::os::raw::c_char,
25579    pub description: *mut ::std::os::raw::c_char,
25580    pub addresses: *mut pcap_addr,
25581    pub flags: bpf_u_int32,
25582}
25583#[test]
25584fn bindgen_test_layout_pcap_if() {
25585    assert_eq!(
25586        ::std::mem::size_of::<pcap_if>(),
25587        40usize,
25588        concat!("Size of: ", stringify!(pcap_if))
25589    );
25590    assert_eq!(
25591        ::std::mem::align_of::<pcap_if>(),
25592        8usize,
25593        concat!("Alignment of ", stringify!(pcap_if))
25594    );
25595    assert_eq!(
25596        unsafe { &(*(::std::ptr::null::<pcap_if>())).next as *const _ as usize },
25597        0usize,
25598        concat!(
25599            "Offset of field: ",
25600            stringify!(pcap_if),
25601            "::",
25602            stringify!(next)
25603        )
25604    );
25605    assert_eq!(
25606        unsafe { &(*(::std::ptr::null::<pcap_if>())).name as *const _ as usize },
25607        8usize,
25608        concat!(
25609            "Offset of field: ",
25610            stringify!(pcap_if),
25611            "::",
25612            stringify!(name)
25613        )
25614    );
25615    assert_eq!(
25616        unsafe { &(*(::std::ptr::null::<pcap_if>())).description as *const _ as usize },
25617        16usize,
25618        concat!(
25619            "Offset of field: ",
25620            stringify!(pcap_if),
25621            "::",
25622            stringify!(description)
25623        )
25624    );
25625    assert_eq!(
25626        unsafe { &(*(::std::ptr::null::<pcap_if>())).addresses as *const _ as usize },
25627        24usize,
25628        concat!(
25629            "Offset of field: ",
25630            stringify!(pcap_if),
25631            "::",
25632            stringify!(addresses)
25633        )
25634    );
25635    assert_eq!(
25636        unsafe { &(*(::std::ptr::null::<pcap_if>())).flags as *const _ as usize },
25637        32usize,
25638        concat!(
25639            "Offset of field: ",
25640            stringify!(pcap_if),
25641            "::",
25642            stringify!(flags)
25643        )
25644    );
25645}
25646impl Default for pcap_if {
25647    fn default() -> Self {
25648        unsafe { ::std::mem::zeroed() }
25649    }
25650}
25651#[repr(C)]
25652#[derive(Debug, Copy, Clone, PartialEq)]
25653pub struct pcap_addr {
25654    pub next: *mut pcap_addr,
25655    pub addr: *mut sockaddr,
25656    pub netmask: *mut sockaddr,
25657    pub broadaddr: *mut sockaddr,
25658    pub dstaddr: *mut sockaddr,
25659}
25660#[test]
25661fn bindgen_test_layout_pcap_addr() {
25662    assert_eq!(
25663        ::std::mem::size_of::<pcap_addr>(),
25664        40usize,
25665        concat!("Size of: ", stringify!(pcap_addr))
25666    );
25667    assert_eq!(
25668        ::std::mem::align_of::<pcap_addr>(),
25669        8usize,
25670        concat!("Alignment of ", stringify!(pcap_addr))
25671    );
25672    assert_eq!(
25673        unsafe { &(*(::std::ptr::null::<pcap_addr>())).next as *const _ as usize },
25674        0usize,
25675        concat!(
25676            "Offset of field: ",
25677            stringify!(pcap_addr),
25678            "::",
25679            stringify!(next)
25680        )
25681    );
25682    assert_eq!(
25683        unsafe { &(*(::std::ptr::null::<pcap_addr>())).addr as *const _ as usize },
25684        8usize,
25685        concat!(
25686            "Offset of field: ",
25687            stringify!(pcap_addr),
25688            "::",
25689            stringify!(addr)
25690        )
25691    );
25692    assert_eq!(
25693        unsafe { &(*(::std::ptr::null::<pcap_addr>())).netmask as *const _ as usize },
25694        16usize,
25695        concat!(
25696            "Offset of field: ",
25697            stringify!(pcap_addr),
25698            "::",
25699            stringify!(netmask)
25700        )
25701    );
25702    assert_eq!(
25703        unsafe { &(*(::std::ptr::null::<pcap_addr>())).broadaddr as *const _ as usize },
25704        24usize,
25705        concat!(
25706            "Offset of field: ",
25707            stringify!(pcap_addr),
25708            "::",
25709            stringify!(broadaddr)
25710        )
25711    );
25712    assert_eq!(
25713        unsafe { &(*(::std::ptr::null::<pcap_addr>())).dstaddr as *const _ as usize },
25714        32usize,
25715        concat!(
25716            "Offset of field: ",
25717            stringify!(pcap_addr),
25718            "::",
25719            stringify!(dstaddr)
25720        )
25721    );
25722}
25723impl Default for pcap_addr {
25724    fn default() -> Self {
25725        unsafe { ::std::mem::zeroed() }
25726    }
25727}
25728pub type pcap_handler = ::std::option::Option<
25729    unsafe extern "C" fn(arg1: *mut u_char, arg2: *const pcap_pkthdr, arg3: *const u_char),
25730>;
25731extern "C" {
25732    pub fn pcap_lookupdev(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
25733}
25734extern "C" {
25735    pub fn pcap_lookupnet(
25736        arg1: *const ::std::os::raw::c_char,
25737        arg2: *mut bpf_u_int32,
25738        arg3: *mut bpf_u_int32,
25739        arg4: *mut ::std::os::raw::c_char,
25740    ) -> ::std::os::raw::c_int;
25741}
25742extern "C" {
25743    pub fn pcap_create(
25744        arg1: *const ::std::os::raw::c_char,
25745        arg2: *mut ::std::os::raw::c_char,
25746    ) -> *mut pcap_t;
25747}
25748extern "C" {
25749    pub fn pcap_set_snaplen(
25750        arg1: *mut pcap_t,
25751        arg2: ::std::os::raw::c_int,
25752    ) -> ::std::os::raw::c_int;
25753}
25754extern "C" {
25755    pub fn pcap_set_promisc(
25756        arg1: *mut pcap_t,
25757        arg2: ::std::os::raw::c_int,
25758    ) -> ::std::os::raw::c_int;
25759}
25760extern "C" {
25761    pub fn pcap_can_set_rfmon(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
25762}
25763extern "C" {
25764    pub fn pcap_set_rfmon(arg1: *mut pcap_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
25765}
25766extern "C" {
25767    pub fn pcap_set_timeout(
25768        arg1: *mut pcap_t,
25769        arg2: ::std::os::raw::c_int,
25770    ) -> ::std::os::raw::c_int;
25771}
25772extern "C" {
25773    pub fn pcap_set_tstamp_type(
25774        arg1: *mut pcap_t,
25775        arg2: ::std::os::raw::c_int,
25776    ) -> ::std::os::raw::c_int;
25777}
25778extern "C" {
25779    pub fn pcap_set_immediate_mode(
25780        arg1: *mut pcap_t,
25781        arg2: ::std::os::raw::c_int,
25782    ) -> ::std::os::raw::c_int;
25783}
25784extern "C" {
25785    pub fn pcap_set_buffer_size(
25786        arg1: *mut pcap_t,
25787        arg2: ::std::os::raw::c_int,
25788    ) -> ::std::os::raw::c_int;
25789}
25790extern "C" {
25791    pub fn pcap_set_tstamp_precision(
25792        arg1: *mut pcap_t,
25793        arg2: ::std::os::raw::c_int,
25794    ) -> ::std::os::raw::c_int;
25795}
25796extern "C" {
25797    pub fn pcap_get_tstamp_precision(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
25798}
25799extern "C" {
25800    pub fn pcap_activate(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
25801}
25802extern "C" {
25803    pub fn pcap_list_tstamp_types(
25804        arg1: *mut pcap_t,
25805        arg2: *mut *mut ::std::os::raw::c_int,
25806    ) -> ::std::os::raw::c_int;
25807}
25808extern "C" {
25809    pub fn pcap_free_tstamp_types(arg1: *mut ::std::os::raw::c_int);
25810}
25811extern "C" {
25812    pub fn pcap_tstamp_type_name_to_val(
25813        arg1: *const ::std::os::raw::c_char,
25814    ) -> ::std::os::raw::c_int;
25815}
25816extern "C" {
25817    pub fn pcap_tstamp_type_val_to_name(
25818        arg1: ::std::os::raw::c_int,
25819    ) -> *const ::std::os::raw::c_char;
25820}
25821extern "C" {
25822    pub fn pcap_tstamp_type_val_to_description(
25823        arg1: ::std::os::raw::c_int,
25824    ) -> *const ::std::os::raw::c_char;
25825}
25826extern "C" {
25827    pub fn pcap_open_live(
25828        arg1: *const ::std::os::raw::c_char,
25829        arg2: ::std::os::raw::c_int,
25830        arg3: ::std::os::raw::c_int,
25831        arg4: ::std::os::raw::c_int,
25832        arg5: *mut ::std::os::raw::c_char,
25833    ) -> *mut pcap_t;
25834}
25835extern "C" {
25836    pub fn pcap_open_dead(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int) -> *mut pcap_t;
25837}
25838extern "C" {
25839    pub fn pcap_open_dead_with_tstamp_precision(
25840        arg1: ::std::os::raw::c_int,
25841        arg2: ::std::os::raw::c_int,
25842        arg3: u_int,
25843    ) -> *mut pcap_t;
25844}
25845extern "C" {
25846    pub fn pcap_open_offline_with_tstamp_precision(
25847        arg1: *const ::std::os::raw::c_char,
25848        arg2: u_int,
25849        arg3: *mut ::std::os::raw::c_char,
25850    ) -> *mut pcap_t;
25851}
25852extern "C" {
25853    pub fn pcap_open_offline(
25854        arg1: *const ::std::os::raw::c_char,
25855        arg2: *mut ::std::os::raw::c_char,
25856    ) -> *mut pcap_t;
25857}
25858extern "C" {
25859    pub fn pcap_fopen_offline_with_tstamp_precision(
25860        arg1: *mut FILE,
25861        arg2: u_int,
25862        arg3: *mut ::std::os::raw::c_char,
25863    ) -> *mut pcap_t;
25864}
25865extern "C" {
25866    pub fn pcap_fopen_offline(arg1: *mut FILE, arg2: *mut ::std::os::raw::c_char) -> *mut pcap_t;
25867}
25868extern "C" {
25869    pub fn pcap_close(arg1: *mut pcap_t);
25870}
25871extern "C" {
25872    pub fn pcap_loop(
25873        arg1: *mut pcap_t,
25874        arg2: ::std::os::raw::c_int,
25875        arg3: pcap_handler,
25876        arg4: *mut u_char,
25877    ) -> ::std::os::raw::c_int;
25878}
25879extern "C" {
25880    pub fn pcap_dispatch(
25881        arg1: *mut pcap_t,
25882        arg2: ::std::os::raw::c_int,
25883        arg3: pcap_handler,
25884        arg4: *mut u_char,
25885    ) -> ::std::os::raw::c_int;
25886}
25887extern "C" {
25888    pub fn pcap_next(arg1: *mut pcap_t, arg2: *mut pcap_pkthdr) -> *const u_char;
25889}
25890extern "C" {
25891    pub fn pcap_next_ex(
25892        arg1: *mut pcap_t,
25893        arg2: *mut *mut pcap_pkthdr,
25894        arg3: *mut *const u_char,
25895    ) -> ::std::os::raw::c_int;
25896}
25897extern "C" {
25898    pub fn pcap_breakloop(arg1: *mut pcap_t);
25899}
25900extern "C" {
25901    pub fn pcap_stats(arg1: *mut pcap_t, arg2: *mut pcap_stat) -> ::std::os::raw::c_int;
25902}
25903extern "C" {
25904    pub fn pcap_setfilter(arg1: *mut pcap_t, arg2: *mut bpf_program) -> ::std::os::raw::c_int;
25905}
25906extern "C" {
25907    pub fn pcap_setdirection(
25908        arg1: *mut pcap_t,
25909        arg2: pcap_direction_t::Type,
25910    ) -> ::std::os::raw::c_int;
25911}
25912extern "C" {
25913    pub fn pcap_getnonblock(
25914        arg1: *mut pcap_t,
25915        arg2: *mut ::std::os::raw::c_char,
25916    ) -> ::std::os::raw::c_int;
25917}
25918extern "C" {
25919    pub fn pcap_setnonblock(
25920        arg1: *mut pcap_t,
25921        arg2: ::std::os::raw::c_int,
25922        arg3: *mut ::std::os::raw::c_char,
25923    ) -> ::std::os::raw::c_int;
25924}
25925extern "C" {
25926    pub fn pcap_inject(
25927        arg1: *mut pcap_t,
25928        arg2: *const ::std::os::raw::c_void,
25929        arg3: size_t,
25930    ) -> ::std::os::raw::c_int;
25931}
25932extern "C" {
25933    pub fn pcap_sendpacket(
25934        arg1: *mut pcap_t,
25935        arg2: *const u_char,
25936        arg3: ::std::os::raw::c_int,
25937    ) -> ::std::os::raw::c_int;
25938}
25939extern "C" {
25940    pub fn pcap_statustostr(arg1: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
25941}
25942extern "C" {
25943    pub fn pcap_strerror(arg1: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
25944}
25945extern "C" {
25946    pub fn pcap_geterr(arg1: *mut pcap_t) -> *mut ::std::os::raw::c_char;
25947}
25948extern "C" {
25949    pub fn pcap_perror(arg1: *mut pcap_t, arg2: *const ::std::os::raw::c_char);
25950}
25951extern "C" {
25952    pub fn pcap_compile(
25953        arg1: *mut pcap_t,
25954        arg2: *mut bpf_program,
25955        arg3: *const ::std::os::raw::c_char,
25956        arg4: ::std::os::raw::c_int,
25957        arg5: bpf_u_int32,
25958    ) -> ::std::os::raw::c_int;
25959}
25960extern "C" {
25961    pub fn pcap_compile_nopcap(
25962        arg1: ::std::os::raw::c_int,
25963        arg2: ::std::os::raw::c_int,
25964        arg3: *mut bpf_program,
25965        arg4: *const ::std::os::raw::c_char,
25966        arg5: ::std::os::raw::c_int,
25967        arg6: bpf_u_int32,
25968    ) -> ::std::os::raw::c_int;
25969}
25970extern "C" {
25971    pub fn pcap_freecode(arg1: *mut bpf_program);
25972}
25973extern "C" {
25974    pub fn pcap_offline_filter(
25975        arg1: *const bpf_program,
25976        arg2: *const pcap_pkthdr,
25977        arg3: *const u_char,
25978    ) -> ::std::os::raw::c_int;
25979}
25980extern "C" {
25981    pub fn pcap_datalink(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
25982}
25983extern "C" {
25984    pub fn pcap_datalink_ext(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
25985}
25986extern "C" {
25987    pub fn pcap_list_datalinks(
25988        arg1: *mut pcap_t,
25989        arg2: *mut *mut ::std::os::raw::c_int,
25990    ) -> ::std::os::raw::c_int;
25991}
25992extern "C" {
25993    pub fn pcap_set_datalink(
25994        arg1: *mut pcap_t,
25995        arg2: ::std::os::raw::c_int,
25996    ) -> ::std::os::raw::c_int;
25997}
25998extern "C" {
25999    pub fn pcap_free_datalinks(arg1: *mut ::std::os::raw::c_int);
26000}
26001extern "C" {
26002    pub fn pcap_datalink_name_to_val(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
26003}
26004extern "C" {
26005    pub fn pcap_datalink_val_to_name(arg1: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
26006}
26007extern "C" {
26008    pub fn pcap_datalink_val_to_description(
26009        arg1: ::std::os::raw::c_int,
26010    ) -> *const ::std::os::raw::c_char;
26011}
26012extern "C" {
26013    pub fn pcap_snapshot(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
26014}
26015extern "C" {
26016    pub fn pcap_is_swapped(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
26017}
26018extern "C" {
26019    pub fn pcap_major_version(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
26020}
26021extern "C" {
26022    pub fn pcap_minor_version(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
26023}
26024extern "C" {
26025    pub fn pcap_file(arg1: *mut pcap_t) -> *mut FILE;
26026}
26027extern "C" {
26028    pub fn pcap_fileno(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
26029}
26030extern "C" {
26031    pub fn pcap_dump_open(
26032        arg1: *mut pcap_t,
26033        arg2: *const ::std::os::raw::c_char,
26034    ) -> *mut pcap_dumper_t;
26035}
26036extern "C" {
26037    pub fn pcap_dump_fopen(arg1: *mut pcap_t, fp: *mut FILE) -> *mut pcap_dumper_t;
26038}
26039extern "C" {
26040    pub fn pcap_dump_open_append(
26041        arg1: *mut pcap_t,
26042        arg2: *const ::std::os::raw::c_char,
26043    ) -> *mut pcap_dumper_t;
26044}
26045extern "C" {
26046    pub fn pcap_dump_file(arg1: *mut pcap_dumper_t) -> *mut FILE;
26047}
26048extern "C" {
26049    pub fn pcap_dump_ftell(arg1: *mut pcap_dumper_t) -> ::std::os::raw::c_long;
26050}
26051extern "C" {
26052    pub fn pcap_dump_flush(arg1: *mut pcap_dumper_t) -> ::std::os::raw::c_int;
26053}
26054extern "C" {
26055    pub fn pcap_dump_close(arg1: *mut pcap_dumper_t);
26056}
26057extern "C" {
26058    pub fn pcap_dump(arg1: *mut u_char, arg2: *const pcap_pkthdr, arg3: *const u_char);
26059}
26060extern "C" {
26061    pub fn pcap_findalldevs(
26062        arg1: *mut *mut pcap_if_t,
26063        arg2: *mut ::std::os::raw::c_char,
26064    ) -> ::std::os::raw::c_int;
26065}
26066extern "C" {
26067    pub fn pcap_freealldevs(arg1: *mut pcap_if_t);
26068}
26069extern "C" {
26070    pub fn pcap_lib_version() -> *const ::std::os::raw::c_char;
26071}
26072extern "C" {
26073    pub fn pcap_get_selectable_fd(arg1: *mut pcap_t) -> ::std::os::raw::c_int;
26074}
26075extern "C" {
26076    #[doc = " Error number value, stored per-thread, which can be queried after"]
26077    #[doc = " calls to certain functions to determine why those functions failed."]
26078    pub fn _rte_errno() -> ::std::os::raw::c_int;
26079}
26080extern "C" {
26081    #[doc = " Allocate a new mbuf from a mempool."]
26082    pub fn _rte_pktmbuf_alloc(mp: *mut rte_mempool) -> *mut rte_mbuf;
26083}
26084extern "C" {
26085    #[doc = " Free a packet mbuf back into its original mempool."]
26086    pub fn _rte_pktmbuf_free(m: *mut rte_mbuf);
26087}
26088extern "C" {
26089    #[doc = " Allocate a bulk of mbufs, initialize refcnt and reset the fields to"]
26090    #[doc = " default values."]
26091    pub fn _rte_pktmbuf_alloc_bulk(
26092        pool: *mut rte_mempool,
26093        mbufs: *mut *mut rte_mbuf,
26094        count: ::std::os::raw::c_uint,
26095    ) -> ::std::os::raw::c_int;
26096}
26097extern "C" {
26098    #[doc = " Put several objects back in the mempool."]
26099    pub fn _rte_mempool_put_bulk(
26100        mp: *mut rte_mempool,
26101        obj_table: *const *mut ::std::os::raw::c_void,
26102        n: ::std::os::raw::c_uint,
26103    );
26104}
26105extern "C" {
26106    #[doc = " Retrieve a burst of input packets from a receive queue of an Ethernet"]
26107    #[doc = " device. The retrieved packets are stored in *rte_mbuf* structures whose"]
26108    #[doc = " pointers are supplied in the *rx_pkts* array."]
26109    pub fn _rte_eth_rx_burst(
26110        port_id: u16,
26111        queue_id: u16,
26112        rx_pkts: *mut *mut rte_mbuf,
26113        nb_pkts: u16,
26114    ) -> u16;
26115}
26116extern "C" {
26117    #[doc = " Send a burst of output packets on a transmit queue of an Ethernet device."]
26118    pub fn _rte_eth_tx_burst(
26119        port_id: u16,
26120        queue_id: u16,
26121        tx_pkts: *mut *mut rte_mbuf,
26122        nb_pkts: u16,
26123    ) -> u16;
26124}
26125pub type __builtin_va_list = [__va_list_tag; 1usize];
26126#[repr(C)]
26127#[derive(Debug, Copy, Clone, PartialEq)]
26128pub struct __va_list_tag {
26129    pub gp_offset: ::std::os::raw::c_uint,
26130    pub fp_offset: ::std::os::raw::c_uint,
26131    pub overflow_arg_area: *mut ::std::os::raw::c_void,
26132    pub reg_save_area: *mut ::std::os::raw::c_void,
26133}
26134#[test]
26135fn bindgen_test_layout___va_list_tag() {
26136    assert_eq!(
26137        ::std::mem::size_of::<__va_list_tag>(),
26138        24usize,
26139        concat!("Size of: ", stringify!(__va_list_tag))
26140    );
26141    assert_eq!(
26142        ::std::mem::align_of::<__va_list_tag>(),
26143        8usize,
26144        concat!("Alignment of ", stringify!(__va_list_tag))
26145    );
26146    assert_eq!(
26147        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
26148        0usize,
26149        concat!(
26150            "Offset of field: ",
26151            stringify!(__va_list_tag),
26152            "::",
26153            stringify!(gp_offset)
26154        )
26155    );
26156    assert_eq!(
26157        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
26158        4usize,
26159        concat!(
26160            "Offset of field: ",
26161            stringify!(__va_list_tag),
26162            "::",
26163            stringify!(fp_offset)
26164        )
26165    );
26166    assert_eq!(
26167        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
26168        8usize,
26169        concat!(
26170            "Offset of field: ",
26171            stringify!(__va_list_tag),
26172            "::",
26173            stringify!(overflow_arg_area)
26174        )
26175    );
26176    assert_eq!(
26177        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
26178        16usize,
26179        concat!(
26180            "Offset of field: ",
26181            stringify!(__va_list_tag),
26182            "::",
26183            stringify!(reg_save_area)
26184        )
26185    );
26186}
26187impl Default for __va_list_tag {
26188    fn default() -> Self {
26189        unsafe { ::std::mem::zeroed() }
26190    }
26191}
26192#[repr(C)]
26193#[derive(Debug, Default, Copy, Clone, PartialEq)]
26194pub struct rte_class {
26195    pub _address: u8,
26196}