18#include <promeki/config.h>
19#if PROMEKI_ENABLE_NETWORK
23PROMEKI_NAMESPACE_BEGIN
53class PcapLinkType :
public TypedEnum<PcapLinkType> {
55 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"PcapLinkType",
"PCAP Link Type", 1,
56 {
"Null", 0,
"BSD Loopback"},
57 {
"Ethernet", 1,
"Ethernet II / 802.3"},
58 {
"Raw", 101,
"Raw IP"},
59 {
"Loop", 108,
"OpenBSD Loopback"},
60 {
"LinuxSll", 113,
"Linux Cooked v1 (SLL)"},
61 {
"Ipv4", 228,
"Raw IPv4"},
62 {
"Ipv6", 229,
"Raw IPv6"},
63 {
"LinuxSll2", 276,
"Linux Cooked v2 (SLL2)"});
65 using TypedEnum<PcapLinkType>::TypedEnum;
67 static const PcapLinkType Null;
68 static const PcapLinkType Ethernet;
69 static const PcapLinkType Raw;
70 static const PcapLinkType Loop;
71 static const PcapLinkType LinuxSll;
72 static const PcapLinkType Ipv4;
73 static const PcapLinkType Ipv6;
74 static const PcapLinkType LinuxSll2;
77inline const PcapLinkType PcapLinkType::Null{0};
78inline const PcapLinkType PcapLinkType::Ethernet{1};
79inline const PcapLinkType PcapLinkType::Raw{101};
80inline const PcapLinkType PcapLinkType::Loop{108};
81inline const PcapLinkType PcapLinkType::LinuxSll{113};
82inline const PcapLinkType PcapLinkType::Ipv4{228};
83inline const PcapLinkType PcapLinkType::Ipv6{229};
84inline const PcapLinkType PcapLinkType::LinuxSll2{276};
95class PcapFileFormat :
public TypedEnum<PcapFileFormat> {
97 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"PcapFileFormat",
"PCAP File Format", 0,
98 {
"Unknown", 0,
"Unknown"},
99 {
"ClassicPcap", 1,
"Classic pcap"},
100 {
"Pcapng", 2,
"pcapng"});
102 using TypedEnum<PcapFileFormat>::TypedEnum;
104 static const PcapFileFormat Unknown;
105 static const PcapFileFormat ClassicPcap;
106 static const PcapFileFormat Pcapng;
109inline const PcapFileFormat PcapFileFormat::Unknown{0};
110inline const PcapFileFormat PcapFileFormat::ClassicPcap{1};
111inline const PcapFileFormat PcapFileFormat::Pcapng{2};
125class PcapByteOrder :
public TypedEnum<PcapByteOrder> {
127 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"PcapByteOrder",
"PCAP Byte Order", 0,
128 {
"Unknown", 0,
"Unknown"},
129 {
"LittleEndian", 1,
"Little Endian"},
130 {
"BigEndian", 2,
"Big Endian"});
132 using TypedEnum<PcapByteOrder>::TypedEnum;
134 static const PcapByteOrder Unknown;
135 static const PcapByteOrder LittleEndian;
136 static const PcapByteOrder BigEndian;
139inline const PcapByteOrder PcapByteOrder::Unknown{0};
140inline const PcapByteOrder PcapByteOrder::LittleEndian{1};
141inline const PcapByteOrder PcapByteOrder::BigEndian{2};
154class PcapFlowKind :
public TypedEnum<PcapFlowKind> {
156 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"PcapFlowKind",
"PCAP Flow Kind", 0,
157 {
"Unknown", 0,
"Unknown"},
158 {
"Video", 1,
"Video"},
159 {
"Audio", 2,
"Audio"},
160 {
"Anc", 3,
"Ancillary Data"},
161 {
"Data", 4,
"Data"});
163 using TypedEnum<PcapFlowKind>::TypedEnum;
165 static const PcapFlowKind Unknown;
166 static const PcapFlowKind Video;
167 static const PcapFlowKind Audio;
168 static const PcapFlowKind Anc;
169 static const PcapFlowKind Data;
172inline const PcapFlowKind PcapFlowKind::Unknown{0};
173inline const PcapFlowKind PcapFlowKind::Video{1};
174inline const PcapFlowKind PcapFlowKind::Audio{2};
175inline const PcapFlowKind PcapFlowKind::Anc{3};
176inline const PcapFlowKind PcapFlowKind::Data{4};