pcap_file/
common.rs

1use byteorder_slice::{BigEndian, ByteOrder, LittleEndian};
2
3/// Timestamp resolution of the pcap
4#[derive(Copy, Clone, Debug, Eq, PartialEq)]
5pub enum TsResolution {
6    /// Microsecond resolution
7    MicroSecond,
8    /// Nanosecond resolution
9    NanoSecond,
10}
11
12/// Endianness of the pcap
13#[derive(Copy, Clone, Debug, Eq, PartialEq)]
14pub enum Endianness {
15    /// Big endian
16    Big,
17    /// Little endian
18    Little,
19}
20
21impl Endianness {
22    /// True if LitlleEndian
23    pub fn is_little(self) -> bool {
24        match self {
25            Endianness::Big => false,
26            Endianness::Little => true,
27        }
28    }
29
30    /// True if BigEndian
31    pub fn is_big(self) -> bool {
32        match self {
33            Endianness::Big => true,
34            Endianness::Little => false,
35        }
36    }
37
38    /// Return the endianness of the given ByteOrder
39    pub fn from_byteorder<B: ByteOrder>() -> Self {
40        if B::read_u32(&[0, 0, 0, 1]) == 1 {
41            Endianness::Big
42        }
43        else {
44            Endianness::Little
45        }
46    }
47
48    /// Return the native endianness of the system
49    pub fn native() -> Self {
50        #[cfg(target_endian = "big")]
51        return Endianness::Big;
52
53        #[cfg(target_endian = "little")]
54        return Endianness::Little;
55    }
56}
57
58pub(crate) trait RuntimeByteorder: ByteOrder {
59    fn endianness() -> Endianness;
60}
61
62impl RuntimeByteorder for BigEndian {
63    fn endianness() -> Endianness {
64        Endianness::Big
65    }
66}
67
68impl RuntimeByteorder for LittleEndian {
69    fn endianness() -> Endianness {
70        Endianness::Little
71    }
72}
73
74
75/// Data link type
76///
77/// The link-layer header type specifies the first protocol of the packet.
78///
79/// See [http://www.tcpdump.org/linktypes.html](http://www.tcpdump.org/linktypes.html)
80#[allow(non_camel_case_types)]
81#[allow(missing_docs)]
82#[derive(Copy, Clone, Debug, Eq, PartialEq)]
83pub enum DataLink {
84    NULL,
85    ETHERNET,
86    EXP_ETHERNET,
87    AX25,
88    PRONET,
89    CHAOS,
90    IEEE802_5,
91    ARCNET_BSD,
92    SLIP,
93    PPP,
94    FDDI,
95    PPP_HDLC,
96    PPP_ETHER,
97    SYMANTEC_FIREWALL,
98    ATM_RFC1483,
99    RAW,
100    SLIP_BSDOS,
101    PPP_BSDOS,
102    MATCHING_MIN,
103    C_HDLC,
104    IEEE802_11,
105    ATM_CLIP,
106    FRELAY,
107    LOOP,
108    ENC,
109    LANE8023,
110    HIPPI,
111    NETBSD_HDLC,
112    LINUX_SLL,
113    LTALK,
114    ECONET,
115    IPFILTER,
116    PFLOG,
117    CISCO_IOS,
118    IEEE802_11_PRISM,
119    IEEE802_11_AIRONET,
120    HHDLC,
121    IP_OVER_FC,
122    SUNATM,
123    RIO,
124    PCI_EXP,
125    AURORA,
126    IEEE802_11_RADIOTAP,
127    TZSP,
128    ARCNET_LINUX,
129    JUNIPER_MLPPP,
130    JUNIPER_MLFR,
131    JUNIPER_ES,
132    JUNIPER_GGSN,
133    JUNIPER_MFR,
134    JUNIPER_ATM2,
135    JUNIPER_SERVICES,
136    JUNIPER_ATM1,
137    APPLE_IP_OVER_IEEE1394,
138    MTP2_WITH_PHDR,
139    MTP2,
140    MTP3,
141    SCCP,
142    DOCSIS,
143    LINUX_IRDA,
144    IBM_SP,
145    IBM_SN,
146    USER0,
147    USER1,
148    USER2,
149    USER3,
150    USER4,
151    USER5,
152    USER6,
153    USER7,
154    USER8,
155    USER9,
156    USER10,
157    USER11,
158    USER12,
159    USER13,
160    USER14,
161    USER15,
162    IEEE802_11_AVS,
163    JUNIPER_MONITOR,
164    BACNET_MS_TP,
165    PPP_PPPD,
166    JUNIPER_PPPOE,
167    JUNIPER_PPPOE_ATM,
168    GPRS_LLC,
169    GPF_T,
170    GPF_F,
171    GCOM_T1E1,
172    GCOM_SERIAL,
173    JUNIPER_PIC_PEER,
174    ERF_ETH,
175    ERF_POS,
176    LINUX_LAPD,
177    JUNIPER_ETHER,
178    JUNIPER_PPP,
179    JUNIPER_FRELAY,
180    JUNIPER_CHDLC,
181    MFR,
182    JUNIPER_VP,
183    A429,
184    A653_ICM,
185    USB_FREEBSD,
186    BLUETOOTH_HCI_H4,
187    IEEE802_16_MAC_CPS,
188    USB_LINUX,
189    CAN20B,
190    IEEE802_15_4_LINUX,
191    PPI,
192    IEEE802_16_MAC_CPS_RADIO,
193    JUNIPER_ISM,
194    IEEE802_15_4,
195    SITA,
196    ERF,
197    RAIF1,
198    IPMB_KONTRON,
199    JUNIPER_ST,
200    BLUETOOTH_HCI_H4_WITH_PHDR,
201    AX25_KISS,
202    LAPD,
203    PPP_WITH_DIR,
204    C_HDLC_WITH_DIR,
205    FRELAY_WITH_DIR,
206    LAPB_WITH_DIR,
207    IPMB_LINUX,
208    FLEXRAY,
209    MOST,
210    LIN,
211    X2E_SERIAL,
212    X2E_XORAYA,
213    IEEE802_15_4_NONASK_PHY,
214    LINUX_EVDEV,
215    GSMTAP_UM,
216    GSMTAP_ABIS,
217    MPLS,
218    USB_LINUX_MMAPPED,
219    DECT,
220    AOS,
221    WIHART,
222    FC_2,
223    FC_2_WITH_FRAME_DELIMS,
224    IPNET,
225    CAN_SOCKETCAN,
226    IPV4,
227    IPV6,
228    IEEE802_15_4_NOFCS,
229    DBUS,
230    JUNIPER_VS,
231    JUNIPER_SRX_E2E,
232    JUNIPER_FIBRECHANNEL,
233    DVB_CI,
234    MUX27010,
235    STANAG_5066_D_PDU,
236    JUNIPER_ATM_CEMIC,
237    NFLOG,
238    NETANALYZER,
239    NETANALYZER_TRANSPARENT,
240    IPOIB,
241    MPEG_2_TS,
242    NG40,
243    NFC_LLCP,
244    PFSYNC,
245    INFINIBAND,
246    SCTP,
247    USBPCAP,
248    RTAC_SERIAL,
249    BLUETOOTH_LE_LL,
250    WIRESHARK_UPPER_PDU,
251    NETLINK,
252    BLUETOOTH_LINUX_MONITOR,
253    BLUETOOTH_BREDR_BB,
254    BLUETOOTH_LE_LL_WITH_PHDR,
255    PROFIBUS_DL,
256    PKTAP,
257    EPON,
258    IPMI_HPM_2,
259    ZWAVE_R1_R2,
260    ZWAVE_R3,
261    WATTSTOPPER_DLM,
262    ISO_14443,
263    RDS,
264    USB_DARWIN,
265    OPENFLOW,
266    SDLC,
267    TI_LLN_SNIFFER,
268    LORATAP,
269    VSOCK,
270    NORDIC_BLE,
271    DOCSIS31_XRA31,
272    ETHERNET_MPACKET,
273    DISPLAYPORT_AUX,
274    LINUX_SLL2,
275    SERCOS_MONITOR,
276    OPENVIZSLA,
277    EBHSCR,
278    VPP_DISPATCH,
279    DSA_TAG_BRCM,
280    DSA_TAG_BRCM_PREPEND,
281    IEEE802_15_4_TAP,
282    DSA_TAG_DSA,
283    DSA_TAG_EDSA,
284    ELEE,
285    Z_WAVE_SERIAL,
286    USB_2_0,
287    ATSC_ALP,
288    ETW,
289    NETANALYZER_NG,
290    ZBOSS_NCP,
291    USB_2_0_LOW_SPEED,
292    USB_2_0_FULL_SPEED,
293    USB_2_0_HIGH_SPEED,
294    AUERSWALD_LOG,
295
296    Unknown(u32),
297}
298
299impl From<u32> for DataLink {
300    fn from(n: u32) -> DataLink {
301        match n {
302            0 => DataLink::NULL,
303            1 => DataLink::ETHERNET,
304            2 => DataLink::EXP_ETHERNET,
305            3 => DataLink::AX25,
306            4 => DataLink::PRONET,
307            5 => DataLink::CHAOS,
308            6 => DataLink::IEEE802_5,
309            7 => DataLink::ARCNET_BSD,
310            8 => DataLink::SLIP,
311            9 => DataLink::PPP,
312            10 => DataLink::FDDI,
313            50 => DataLink::PPP_HDLC,
314            51 => DataLink::PPP_ETHER,
315            99 => DataLink::SYMANTEC_FIREWALL,
316            100 => DataLink::ATM_RFC1483,
317            101 => DataLink::RAW,
318            102 => DataLink::SLIP_BSDOS,
319            103 => DataLink::PPP_BSDOS,
320            104 => DataLink::C_HDLC,
321            105 => DataLink::IEEE802_11,
322            106 => DataLink::ATM_CLIP,
323            107 => DataLink::FRELAY,
324            108 => DataLink::LOOP,
325            109 => DataLink::ENC,
326            110 => DataLink::LANE8023,
327            111 => DataLink::HIPPI,
328            112 => DataLink::NETBSD_HDLC,
329            113 => DataLink::LINUX_SLL,
330            114 => DataLink::LTALK,
331            115 => DataLink::ECONET,
332            116 => DataLink::IPFILTER,
333            117 => DataLink::PFLOG,
334            118 => DataLink::CISCO_IOS,
335            119 => DataLink::IEEE802_11_PRISM,
336            120 => DataLink::IEEE802_11_AIRONET,
337            121 => DataLink::HHDLC,
338            122 => DataLink::IP_OVER_FC,
339            123 => DataLink::SUNATM,
340            124 => DataLink::RIO,
341            125 => DataLink::PCI_EXP,
342            126 => DataLink::AURORA,
343            127 => DataLink::IEEE802_11_RADIOTAP,
344            128 => DataLink::TZSP,
345            129 => DataLink::ARCNET_LINUX,
346            130 => DataLink::JUNIPER_MLPPP,
347            131 => DataLink::JUNIPER_MLFR,
348            132 => DataLink::JUNIPER_ES,
349            133 => DataLink::JUNIPER_GGSN,
350            134 => DataLink::JUNIPER_MFR,
351            135 => DataLink::JUNIPER_ATM2,
352            136 => DataLink::JUNIPER_SERVICES,
353            137 => DataLink::JUNIPER_ATM1,
354            138 => DataLink::APPLE_IP_OVER_IEEE1394,
355            139 => DataLink::MTP2_WITH_PHDR,
356            140 => DataLink::MTP2,
357            141 => DataLink::MTP3,
358            142 => DataLink::SCCP,
359            143 => DataLink::DOCSIS,
360            144 => DataLink::LINUX_IRDA,
361            145 => DataLink::IBM_SP,
362            146 => DataLink::IBM_SN,
363            147 => DataLink::USER0,
364            148 => DataLink::USER1,
365            149 => DataLink::USER2,
366            150 => DataLink::USER3,
367            151 => DataLink::USER4,
368            152 => DataLink::USER5,
369            153 => DataLink::USER6,
370            154 => DataLink::USER7,
371            155 => DataLink::USER8,
372            156 => DataLink::USER9,
373            157 => DataLink::USER10,
374            158 => DataLink::USER11,
375            159 => DataLink::USER12,
376            160 => DataLink::USER13,
377            161 => DataLink::USER14,
378            162 => DataLink::USER15,
379            163 => DataLink::IEEE802_11_AVS,
380            164 => DataLink::JUNIPER_MONITOR,
381            165 => DataLink::BACNET_MS_TP,
382            166 => DataLink::PPP_PPPD,
383            167 => DataLink::JUNIPER_PPPOE,
384            168 => DataLink::JUNIPER_PPPOE_ATM,
385            169 => DataLink::GPRS_LLC,
386            170 => DataLink::GPF_T,
387            171 => DataLink::GPF_F,
388            172 => DataLink::GCOM_T1E1,
389            173 => DataLink::GCOM_SERIAL,
390            174 => DataLink::JUNIPER_PIC_PEER,
391            175 => DataLink::ERF_ETH,
392            176 => DataLink::ERF_POS,
393            177 => DataLink::LINUX_LAPD,
394            178 => DataLink::JUNIPER_ETHER,
395            179 => DataLink::JUNIPER_PPP,
396            180 => DataLink::JUNIPER_FRELAY,
397            181 => DataLink::JUNIPER_CHDLC,
398            182 => DataLink::MFR,
399            183 => DataLink::JUNIPER_VP,
400            184 => DataLink::A429,
401            185 => DataLink::A653_ICM,
402            186 => DataLink::USB_FREEBSD,
403            187 => DataLink::BLUETOOTH_HCI_H4,
404            188 => DataLink::IEEE802_16_MAC_CPS,
405            189 => DataLink::USB_LINUX,
406            190 => DataLink::CAN20B,
407            191 => DataLink::IEEE802_15_4_LINUX,
408            192 => DataLink::PPI,
409            193 => DataLink::IEEE802_16_MAC_CPS_RADIO,
410            194 => DataLink::JUNIPER_ISM,
411            195 => DataLink::IEEE802_15_4,
412            196 => DataLink::SITA,
413            197 => DataLink::ERF,
414            198 => DataLink::RAIF1,
415            199 => DataLink::IPMB_KONTRON,
416            200 => DataLink::JUNIPER_ST,
417            201 => DataLink::BLUETOOTH_HCI_H4_WITH_PHDR,
418            202 => DataLink::AX25_KISS,
419            203 => DataLink::LAPD,
420            204 => DataLink::PPP_WITH_DIR,
421            205 => DataLink::C_HDLC_WITH_DIR,
422            206 => DataLink::FRELAY_WITH_DIR,
423            207 => DataLink::LAPB_WITH_DIR,
424            209 => DataLink::IPMB_LINUX,
425            210 => DataLink::FLEXRAY,
426            211 => DataLink::MOST,
427            212 => DataLink::LIN,
428            213 => DataLink::X2E_SERIAL,
429            214 => DataLink::X2E_XORAYA,
430            215 => DataLink::IEEE802_15_4_NONASK_PHY,
431            216 => DataLink::LINUX_EVDEV,
432            217 => DataLink::GSMTAP_UM,
433            218 => DataLink::GSMTAP_ABIS,
434            219 => DataLink::MPLS,
435            220 => DataLink::USB_LINUX_MMAPPED,
436            221 => DataLink::DECT,
437            222 => DataLink::AOS,
438            223 => DataLink::WIHART,
439            224 => DataLink::FC_2,
440            225 => DataLink::FC_2_WITH_FRAME_DELIMS,
441            226 => DataLink::IPNET,
442            227 => DataLink::CAN_SOCKETCAN,
443            228 => DataLink::IPV4,
444            229 => DataLink::IPV6,
445            230 => DataLink::IEEE802_15_4_NOFCS,
446            231 => DataLink::DBUS,
447            232 => DataLink::JUNIPER_VS,
448            233 => DataLink::JUNIPER_SRX_E2E,
449            234 => DataLink::JUNIPER_FIBRECHANNEL,
450            235 => DataLink::DVB_CI,
451            236 => DataLink::MUX27010,
452            237 => DataLink::STANAG_5066_D_PDU,
453            238 => DataLink::JUNIPER_ATM_CEMIC,
454            239 => DataLink::NFLOG,
455            240 => DataLink::NETANALYZER,
456            241 => DataLink::NETANALYZER_TRANSPARENT,
457            242 => DataLink::IPOIB,
458            243 => DataLink::MPEG_2_TS,
459            244 => DataLink::NG40,
460            245 => DataLink::NFC_LLCP,
461            246 => DataLink::PFSYNC,
462            247 => DataLink::INFINIBAND,
463            248 => DataLink::SCTP,
464            249 => DataLink::USBPCAP,
465            250 => DataLink::RTAC_SERIAL,
466            251 => DataLink::BLUETOOTH_LE_LL,
467            252 => DataLink::WIRESHARK_UPPER_PDU,
468            253 => DataLink::NETLINK,
469            254 => DataLink::BLUETOOTH_LINUX_MONITOR,
470            255 => DataLink::BLUETOOTH_BREDR_BB,
471            256 => DataLink::BLUETOOTH_LE_LL_WITH_PHDR,
472            257 => DataLink::PROFIBUS_DL,
473            258 => DataLink::PKTAP,
474            259 => DataLink::EPON,
475            260 => DataLink::IPMI_HPM_2,
476            261 => DataLink::ZWAVE_R1_R2,
477            262 => DataLink::ZWAVE_R3,
478            263 => DataLink::WATTSTOPPER_DLM,
479            264 => DataLink::ISO_14443,
480            265 => DataLink::RDS,
481            266 => DataLink::USB_DARWIN,
482            267 => DataLink::OPENFLOW,
483            268 => DataLink::SDLC,
484            269 => DataLink::TI_LLN_SNIFFER,
485            270 => DataLink::LORATAP,
486            271 => DataLink::VSOCK,
487            272 => DataLink::NORDIC_BLE,
488            273 => DataLink::DOCSIS31_XRA31,
489            274 => DataLink::ETHERNET_MPACKET,
490            275 => DataLink::DISPLAYPORT_AUX,
491            276 => DataLink::LINUX_SLL2,
492            277 => DataLink::SERCOS_MONITOR,
493            278 => DataLink::OPENVIZSLA,
494            279 => DataLink::EBHSCR,
495            280 => DataLink::VPP_DISPATCH,
496            281 => DataLink::DSA_TAG_BRCM,
497            282 => DataLink::DSA_TAG_BRCM_PREPEND,
498            283 => DataLink::IEEE802_15_4_TAP,
499            284 => DataLink::DSA_TAG_DSA,
500            285 => DataLink::DSA_TAG_EDSA,
501            286 => DataLink::ELEE,
502            287 => DataLink::Z_WAVE_SERIAL,
503            288 => DataLink::USB_2_0,
504            289 => DataLink::ATSC_ALP,
505            290 => DataLink::ETW,
506            291 => DataLink::NETANALYZER_NG,
507            292 => DataLink::ZBOSS_NCP,
508            293 => DataLink::USB_2_0_LOW_SPEED,
509            294 => DataLink::USB_2_0_FULL_SPEED,
510            295 => DataLink::USB_2_0_HIGH_SPEED,
511            296 => DataLink::AUERSWALD_LOG,
512
513            _ => DataLink::Unknown(n),
514        }
515    }
516}
517
518impl From<DataLink> for u32 {
519    fn from(link: DataLink) -> u32 {
520        match link {
521            DataLink::NULL => 0,
522            DataLink::ETHERNET => 1,
523            DataLink::EXP_ETHERNET => 2,
524            DataLink::AX25 => 3,
525            DataLink::PRONET => 4,
526            DataLink::CHAOS => 5,
527            DataLink::IEEE802_5 => 6,
528            DataLink::ARCNET_BSD => 7,
529            DataLink::SLIP => 8,
530            DataLink::PPP => 9,
531            DataLink::FDDI => 10,
532            DataLink::PPP_HDLC => 50,
533            DataLink::PPP_ETHER => 51,
534            DataLink::SYMANTEC_FIREWALL => 99,
535            DataLink::ATM_RFC1483 => 100,
536            DataLink::RAW => 101,
537            DataLink::SLIP_BSDOS => 102,
538            DataLink::PPP_BSDOS => 103,
539            DataLink::MATCHING_MIN => 104,
540            DataLink::C_HDLC => 104,
541            DataLink::IEEE802_11 => 105,
542            DataLink::ATM_CLIP => 106,
543            DataLink::FRELAY => 107,
544            DataLink::LOOP => 108,
545            DataLink::ENC => 109,
546            DataLink::LANE8023 => 110,
547            DataLink::HIPPI => 111,
548            DataLink::NETBSD_HDLC => 112,
549            DataLink::LINUX_SLL => 113,
550            DataLink::LTALK => 114,
551            DataLink::ECONET => 115,
552            DataLink::IPFILTER => 116,
553            DataLink::PFLOG => 117,
554            DataLink::CISCO_IOS => 118,
555            DataLink::IEEE802_11_PRISM => 119,
556            DataLink::IEEE802_11_AIRONET => 120,
557            DataLink::HHDLC => 121,
558            DataLink::IP_OVER_FC => 122,
559            DataLink::SUNATM => 123,
560            DataLink::RIO => 124,
561            DataLink::PCI_EXP => 125,
562            DataLink::AURORA => 126,
563            DataLink::IEEE802_11_RADIOTAP => 127,
564            DataLink::TZSP => 128,
565            DataLink::ARCNET_LINUX => 129,
566            DataLink::JUNIPER_MLPPP => 130,
567            DataLink::JUNIPER_MLFR => 131,
568            DataLink::JUNIPER_ES => 132,
569            DataLink::JUNIPER_GGSN => 133,
570            DataLink::JUNIPER_MFR => 134,
571            DataLink::JUNIPER_ATM2 => 135,
572            DataLink::JUNIPER_SERVICES => 136,
573            DataLink::JUNIPER_ATM1 => 137,
574            DataLink::APPLE_IP_OVER_IEEE1394 => 138,
575            DataLink::MTP2_WITH_PHDR => 139,
576            DataLink::MTP2 => 140,
577            DataLink::MTP3 => 141,
578            DataLink::SCCP => 142,
579            DataLink::DOCSIS => 143,
580            DataLink::LINUX_IRDA => 144,
581            DataLink::IBM_SP => 145,
582            DataLink::IBM_SN => 146,
583            DataLink::USER0 => 147,
584            DataLink::USER1 => 148,
585            DataLink::USER2 => 149,
586            DataLink::USER3 => 150,
587            DataLink::USER4 => 151,
588            DataLink::USER5 => 152,
589            DataLink::USER6 => 153,
590            DataLink::USER7 => 154,
591            DataLink::USER8 => 155,
592            DataLink::USER9 => 156,
593            DataLink::USER10 => 157,
594            DataLink::USER11 => 158,
595            DataLink::USER12 => 159,
596            DataLink::USER13 => 160,
597            DataLink::USER14 => 161,
598            DataLink::USER15 => 162,
599            DataLink::IEEE802_11_AVS => 163,
600            DataLink::JUNIPER_MONITOR => 164,
601            DataLink::BACNET_MS_TP => 165,
602            DataLink::PPP_PPPD => 166,
603            DataLink::JUNIPER_PPPOE => 167,
604            DataLink::JUNIPER_PPPOE_ATM => 168,
605            DataLink::GPRS_LLC => 169,
606            DataLink::GPF_T => 170,
607            DataLink::GPF_F => 171,
608            DataLink::GCOM_T1E1 => 172,
609            DataLink::GCOM_SERIAL => 173,
610            DataLink::JUNIPER_PIC_PEER => 174,
611            DataLink::ERF_ETH => 175,
612            DataLink::ERF_POS => 176,
613            DataLink::LINUX_LAPD => 177,
614            DataLink::JUNIPER_ETHER => 178,
615            DataLink::JUNIPER_PPP => 179,
616            DataLink::JUNIPER_FRELAY => 180,
617            DataLink::JUNIPER_CHDLC => 181,
618            DataLink::MFR => 182,
619            DataLink::JUNIPER_VP => 183,
620            DataLink::A429 => 184,
621            DataLink::A653_ICM => 185,
622            DataLink::USB_FREEBSD => 186,
623            DataLink::BLUETOOTH_HCI_H4 => 187,
624            DataLink::IEEE802_16_MAC_CPS => 188,
625            DataLink::USB_LINUX => 189,
626            DataLink::CAN20B => 190,
627            DataLink::IEEE802_15_4_LINUX => 191,
628            DataLink::PPI => 192,
629            DataLink::IEEE802_16_MAC_CPS_RADIO => 193,
630            DataLink::JUNIPER_ISM => 194,
631            DataLink::IEEE802_15_4 => 195,
632            DataLink::SITA => 196,
633            DataLink::ERF => 197,
634            DataLink::RAIF1 => 198,
635            DataLink::IPMB_KONTRON => 199,
636            DataLink::JUNIPER_ST => 200,
637            DataLink::BLUETOOTH_HCI_H4_WITH_PHDR => 201,
638            DataLink::AX25_KISS => 202,
639            DataLink::LAPD => 203,
640            DataLink::PPP_WITH_DIR => 204,
641            DataLink::C_HDLC_WITH_DIR => 205,
642            DataLink::FRELAY_WITH_DIR => 206,
643            DataLink::LAPB_WITH_DIR => 207,
644            DataLink::IPMB_LINUX => 209,
645            DataLink::FLEXRAY => 210,
646            DataLink::MOST => 211,
647            DataLink::LIN => 212,
648            DataLink::X2E_SERIAL => 213,
649            DataLink::X2E_XORAYA => 214,
650            DataLink::IEEE802_15_4_NONASK_PHY => 215,
651            DataLink::LINUX_EVDEV => 216,
652            DataLink::GSMTAP_UM => 217,
653            DataLink::GSMTAP_ABIS => 218,
654            DataLink::MPLS => 219,
655            DataLink::USB_LINUX_MMAPPED => 220,
656            DataLink::DECT => 221,
657            DataLink::AOS => 222,
658            DataLink::WIHART => 223,
659            DataLink::FC_2 => 224,
660            DataLink::FC_2_WITH_FRAME_DELIMS => 225,
661            DataLink::IPNET => 226,
662            DataLink::CAN_SOCKETCAN => 227,
663            DataLink::IPV4 => 228,
664            DataLink::IPV6 => 229,
665            DataLink::IEEE802_15_4_NOFCS => 230,
666            DataLink::DBUS => 231,
667            DataLink::JUNIPER_VS => 232,
668            DataLink::JUNIPER_SRX_E2E => 233,
669            DataLink::JUNIPER_FIBRECHANNEL => 234,
670            DataLink::DVB_CI => 235,
671            DataLink::MUX27010 => 236,
672            DataLink::STANAG_5066_D_PDU => 237,
673            DataLink::JUNIPER_ATM_CEMIC => 238,
674            DataLink::NFLOG => 239,
675            DataLink::NETANALYZER => 240,
676            DataLink::NETANALYZER_TRANSPARENT => 241,
677            DataLink::IPOIB => 242,
678            DataLink::MPEG_2_TS => 243,
679            DataLink::NG40 => 244,
680            DataLink::NFC_LLCP => 245,
681            DataLink::PFSYNC => 246,
682            DataLink::INFINIBAND => 247,
683            DataLink::SCTP => 248,
684            DataLink::USBPCAP => 249,
685            DataLink::RTAC_SERIAL => 250,
686            DataLink::BLUETOOTH_LE_LL => 251,
687            DataLink::WIRESHARK_UPPER_PDU => 252,
688            DataLink::NETLINK => 253,
689            DataLink::BLUETOOTH_LINUX_MONITOR => 254,
690            DataLink::BLUETOOTH_BREDR_BB => 255,
691            DataLink::BLUETOOTH_LE_LL_WITH_PHDR => 256,
692            DataLink::PROFIBUS_DL => 257,
693            DataLink::PKTAP => 258,
694            DataLink::EPON => 259,
695            DataLink::IPMI_HPM_2 => 260,
696            DataLink::ZWAVE_R1_R2 => 261,
697            DataLink::ZWAVE_R3 => 262,
698            DataLink::WATTSTOPPER_DLM => 263,
699            DataLink::ISO_14443 => 264,
700            DataLink::RDS => 265,
701            DataLink::USB_DARWIN => 266,
702            DataLink::OPENFLOW => 267,
703            DataLink::SDLC => 268,
704            DataLink::TI_LLN_SNIFFER => 269,
705            DataLink::LORATAP => 270,
706            DataLink::VSOCK => 271,
707            DataLink::NORDIC_BLE => 272,
708            DataLink::DOCSIS31_XRA31 => 273,
709            DataLink::ETHERNET_MPACKET => 274,
710            DataLink::DISPLAYPORT_AUX => 275,
711            DataLink::LINUX_SLL2 => 276,
712            DataLink::SERCOS_MONITOR => 277,
713            DataLink::OPENVIZSLA => 278,
714            DataLink::EBHSCR => 279,
715            DataLink::VPP_DISPATCH => 280,
716            DataLink::DSA_TAG_BRCM => 281,
717            DataLink::DSA_TAG_BRCM_PREPEND => 282,
718            DataLink::IEEE802_15_4_TAP => 283,
719            DataLink::DSA_TAG_DSA => 284,
720            DataLink::DSA_TAG_EDSA => 285,
721            DataLink::ELEE => 286,
722            DataLink::Z_WAVE_SERIAL => 287,
723            DataLink::USB_2_0 => 288,
724            DataLink::ATSC_ALP => 289,
725            DataLink::ETW => 290,
726            DataLink::NETANALYZER_NG => 291,
727            DataLink::ZBOSS_NCP => 292,
728            DataLink::USB_2_0_LOW_SPEED => 293,
729            DataLink::USB_2_0_FULL_SPEED => 294,
730            DataLink::USB_2_0_HIGH_SPEED => 295,
731            DataLink::AUERSWALD_LOG => 296,
732
733            DataLink::Unknown(n) => n,
734        }
735    }
736}