PcapPlusPlus  Next
pcpp Namespace Reference

The main namespace for the PcapPlusPlus lib. More...

Classes

struct  EnumClassHash
 
class  IPv4Address
 
class  IPv6Address
 
class  IPAddress
 
class  IPv4Network
 
class  IPv6Network
 
class  IPNetwork
 
struct  LogSource
 
class  Logger
 
class  LRUList
 
class  MacAddress
 
class  OUILookup
 
class  PointerVector
 
struct  SystemCore
 
struct  SystemCores
 
class  AppName
 
class  ApplicationEventHandler
 
class  TablePrinter
 A class for printing tables in command-line. More...
 
struct  arphdr
 
struct  ArpRequest
 A struct representing the build data for an ARP request. More...
 
struct  ArpReply
 A struct representing the build data for an ARP reply. More...
 
struct  GratuitousArpRequest
 A struct representing the build data for a gratuitous ARP request. More...
 
struct  GratuitousArpReply
 A struct representing the build data a gratuitous ARP reply. More...
 
class  ArpLayer
 
class  Asn1Record
 
class  Asn1GenericRecord
 
class  Asn1ConstructedRecord
 
class  Asn1SequenceRecord
 
class  Asn1SetRecord
 
class  Asn1PrimitiveRecord
 
class  Asn1IntegerRecord
 
class  Asn1EnumeratedRecord
 
class  Asn1OctetStringRecord
 
class  Asn1BooleanRecord
 
class  Asn1NullRecord
 
class  BgpLayer
 
class  BgpOpenMessageLayer
 
class  BgpUpdateMessageLayer
 
class  BgpNotificationMessageLayer
 
class  BgpKeepaliveMessageLayer
 
class  BgpRouteRefreshMessageLayer
 
class  CiscoHdlcLayer
 
struct  cotphdr
 
class  CotpLayer
 
struct  dhcp_header
 
class  DhcpOption
 
class  DhcpOptionBuilder
 
class  DhcpLayer
 
class  DhcpV6Option
 
class  DhcpV6OptionBuilder
 
struct  dhcpv6_header
 
class  DhcpV6Layer
 
struct  dnshdr
 
class  DnsLayer
 
class  DnsOverTcpLayer
 
class  IDnsResource
 
class  DnsQuery
 
class  DnsResource
 
class  IDnsResourceData
 
class  DnsResourceDataPtr
 
class  StringDnsResourceData
 
class  IPv4DnsResourceData
 
class  IPv6DnsResourceData
 
class  MxDnsResourceData
 
class  GenericDnsResourceData
 
struct  ether_dot3_header
 
class  EthDot3Layer
 
struct  ether_header
 
class  EthLayer
 
class  FtpLayer
 Class for general FTP message. More...
 
class  FtpRequestLayer
 Class for representing the request messages of FTP Layer. More...
 
class  FtpResponseLayer
 Class for representing the response messages of FTP Layer. More...
 
class  FtpDataLayer
 Class for representing the data of FTP Layer. More...
 
struct  gre_basic_header
 
struct  gre1_header
 
struct  ppp_pptp_header
 
class  GreLayer
 
class  GREv0Layer
 
class  GREv1Layer
 
class  PPP_PPTPLayer
 
struct  gtpv1_header
 
class  GtpV1Layer
 
class  GtpV2MessageType
 
class  GtpV2InformationElement
 
class  GtpV2InformationElementBuilder
 
class  GtpV2Layer
 
class  HttpMessage
 
class  HttpRequestLayer
 
struct  HttpResponseStatusCode
 The enum wrapper class of HTTP response status codes. More...
 
class  HttpResponseLayer
 
class  HttpRequestFirstLine
 
class  HttpResponseFirstLine
 
struct  icmphdr
 
struct  icmp_echo_hdr
 
struct  icmp_echo_request
 
struct  icmp_timestamp_request
 
struct  icmp_destination_unreachable
 
struct  icmp_time_exceeded
 
struct  icmp_param_problem
 
struct  icmp_redirect
 
struct  icmp_router_address_structure
 
struct  icmp_router_advertisement_hdr
 
struct  icmp_router_advertisement
 
struct  icmp_address_mask_request
 
struct  icmp_info_request
 
class  IcmpLayer
 
struct  icmpv6hdr
 
struct  icmpv6_echo_hdr
 
class  IcmpV6Layer
 
class  ICMPv6EchoLayer
 
struct  igmp_header
 
struct  igmpv3_query_header
 
struct  igmpv3_report_header
 
struct  igmpv3_group_record
 
class  IgmpLayer
 
class  IgmpV1Layer
 
class  IgmpV2Layer
 
class  IgmpV3QueryLayer
 
class  IgmpV3ReportLayer
 
class  IPLayer
 
class  IPReassembly
 
struct  ipsec_authentication_header
 
struct  ipsec_esp
 
class  AuthenticationHeaderLayer
 
class  ESPLayer
 
struct  iphdr
 
struct  IPv4TimestampOptionValue
 
class  IPv4Option
 
class  IPv4OptionBuilder
 
class  IPv4Layer
 
class  IPv6Extension
 
class  IPv6FragmentationHeader
 
class  IPv6TLVOptionHeader
 
class  IPv6HopByHopHeader
 
class  IPv6DestinationHeader
 
class  IPv6RoutingHeader
 
class  IPv6AuthenticationHeader
 
struct  ip6_hdr
 
class  IPv6Layer
 
class  IDataContainer
 
class  Layer
 
class  LdapOperationType
 An enum wrapper class for LDAP operation types. More...
 
class  LdapResultCode
 An enum wrapper class for LDAP result codes. More...
 
struct  LdapControl
 
struct  LdapAttribute
 
class  LdapLayer
 
class  LdapResponseLayer
 
class  LdapBindRequestLayer
 
class  LdapBindResponseLayer
 
class  LdapUnbindRequestLayer
 
class  LdapSearchRequestLayer
 
class  LdapSearchResultEntryLayer
 
class  LdapSearchResultDoneLayer
 
class  LdapModifyResponseLayer
 
class  LdapAddResponseLayer
 
class  LdapDeleteResponseLayer
 
class  LdapModifyDNResponseLayer
 
class  LdapCompareResponseLayer
 
struct  llc_header
 
class  LLCLayer
 
class  MplsLayer
 
class  NdpOption
 
class  NdpOptionBuilder
 
class  NDPLayerBase
 
class  NDPNeighborSolicitationLayer
 
class  NDPNeighborAdvertisementLayer
 
struct  nflog_header
 
class  NflogTlv
 
class  NflogLayer
 
class  NtpLayer
 The NTP packet consists of an integral number of 32-bit (4 octet) words in network byte order. The packet format consists of three components: the header itself, one or more optional extension fields (for v4), and an optional message authentication code (MAC). Currently the extension fields are not supported. The NTP header is: More...
 
class  NullLoopbackLayer
 
class  Packet
 
class  PacketTrailerLayer
 
struct  ScalarBuffer
 A struct that represent a single buffer. More...
 
class  PayloadLayer
 
struct  pppoe_header
 
class  PPPoELayer
 
class  PPPoESessionLayer
 
class  PPPoEDiscoveryLayer
 
struct  radius_header
 
class  RadiusAttribute
 
class  RadiusAttributeBuilder
 
class  RadiusLayer
 
class  RawPacket
 
struct  s7commhdr
 
struct  s7comm_ack_data_hdr
 
class  S7CommParameter
 
class  S7CommLayer
 
class  SdpLayer
 
class  SingleCommandTextProtocol
 Class for single command text based protocol (FTP, SMTP) messages. More...
 
class  SipLayer
 
class  SipRequestLayer
 
class  SipResponseLayer
 
class  SipRequestFirstLine
 
class  SipResponseFirstLine
 
struct  sll2_header
 
class  Sll2Layer
 
struct  sll_header
 
class  SllLayer
 
class  SmtpLayer
 Class for general SMTP message. More...
 
class  SmtpRequestLayer
 Class for representing the request messages of SMTP Layer. More...
 
class  SmtpResponseLayer
 Class for representing the response messages of SMTP Layer. More...
 
class  SomeIpLayer
 
class  SomeIpTpLayer
 
class  SomeIpSdOption
 
class  SomeIpSdIPv4Option
 
class  SomeIpSdIPv6Option
 
class  SomeIpSdConfigurationOption
 
class  SomeIpSdLoadBalancingOption
 
class  SomeIpSdEntry
 
class  SomeIpSdLayer
 
class  SSHLayer
 
class  SSHIdentificationMessage
 
class  SSHHandshakeMessage
 
class  SSHKeyExchangeInitMessage
 
class  SSHEncryptedMessage
 
struct  ssl_tls_record_layer
 
struct  ssl_tls_handshake_layer
 
struct  ssl_tls_client_server_hello
 
struct  ssl_tls_change_cipher_spec
 
struct  ssl_tls_alert
 
class  SSLVersion
 
class  SSLCipherSuite
 
class  SSLExtension
 
class  SSLServerNameIndicationExtension
 
class  SSLSupportedVersionsExtension
 
class  TLSSupportedGroupsExtension
 
class  TLSECPointFormatExtension
 
class  SSLx509Certificate
 
class  SSLHandshakeMessage
 
class  SSLClientHelloMessage
 
class  SSLServerHelloMessage
 
class  SSLCertificateMessage
 
class  SSLHelloRequestMessage
 
class  SSLServerKeyExchangeMessage
 
class  SSLClientKeyExchangeMessage
 
class  SSLCertificateRequestMessage
 
class  SSLServerHelloDoneMessage
 
class  SSLCertificateVerifyMessage
 
class  SSLFinishedMessage
 
class  SSLNewSessionTicketMessage
 
class  SSLUnknownMessage
 
class  SSLLayer
 
class  SSLHandshakeLayer
 
class  SSLChangeCipherSpecLayer
 
class  SSLAlertLayer
 
class  SSLApplicationDataLayer
 
struct  stp_tcn_bpdu
 
struct  stp_conf_bpdu
 
struct  rstp_conf_bpdu
 
struct  mstp_conf_bpdu
 
struct  msti_conf_msg
 
class  StpLayer
 
class  StpTopologyChangeBPDULayer
 
class  StpConfigurationBPDULayer
 
class  RapidStpLayer
 
class  MultipleStpLayer
 
struct  tcphdr
 
class  TcpOption
 
class  TcpOptionBuilder
 
class  TcpLayer
 
struct  ConnectionData
 
class  TcpStreamData
 
struct  TcpReassemblyConfiguration
 
class  TcpReassembly
 
class  TelnetLayer
 Class for representing the Telnet Layer. More...
 
class  HeaderField
 
class  TextBasedProtocolMessage
 
class  TLVRecord
 
class  TLVRecordReader
 
class  TLVRecordBuilder
 
struct  tpkthdr
 
class  TpktLayer
 
struct  udphdr
 
class  UdpLayer
 
struct  vlan_header
 
class  VlanLayer
 
struct  vrrp_header
 
class  VrrpLayer
 
class  VrrpV2Layer
 
class  VrrpV3Layer
 
struct  vxlan_header
 
class  VxlanLayer
 
class  WakeOnLanLayer
 Class for representing the Wake on LAN Layer. More...
 
class  WireGuardLayer
 
class  WireGuardHandshakeInitiationLayer
 
class  WireGuardHandshakeResponseLayer
 
class  WireGuardCookieReplyLayer
 
class  WireGuardTransportDataLayer
 
class  IDevice
 
class  IFilterableDevice
 
class  DpdkDevice
 
class  DpdkWorkerThread
 
class  DpdkDeviceList
 
class  KniDevice
 
class  KniDeviceList
 
class  LinuxNicInformationSocket
 
class  MBufRawPacket
 
class  NetworkUtils
 
class  IPcapDevice
 
class  IFileDevice
 
class  IFileReaderDevice
 
class  PcapFileReaderDevice
 
class  SnoopFileReaderDevice
 
class  PcapNgFileReaderDevice
 
class  IFileWriterDevice
 
class  PcapFileWriterDevice
 
class  PcapNgFileWriterDevice
 
class  BpfFilterWrapper
 
class  GeneralFilter
 
class  BPFStringFilter
 
class  IFilterWithDirection
 
class  IFilterWithOperator
 
class  IPFilter
 
class  IPv4IDFilter
 
class  IPv4TotalLengthFilter
 
class  PortFilter
 
class  PortRangeFilter
 
class  MacAddressFilter
 
class  EtherTypeFilter
 
class  CompositeFilter
 
class  CompositeLogicFilter
 
class  NotFilter
 
class  ProtoFilter
 
class  ArpFilter
 
class  VlanFilter
 
class  TcpFlagsFilter
 
class  TcpWindowSizeFilter
 
class  UdpLengthFilter
 
class  PcapLiveDevice
 
class  PcapLiveDeviceList
 
struct  PcapRemoteAuthentication
 
class  PcapRemoteDevice
 
class  PcapRemoteDeviceList
 
class  PfRingDevice
 
class  PfRingDeviceList
 
class  RawSocketDevice
 
class  WinPcapLiveDevice
 
class  XdpDevice
 

Typedefs

typedef icmp_echo_request icmp_echo_reply
 
typedef icmp_timestamp_request icmp_timestamp_reply
 
typedef icmp_time_exceeded icmp_source_quench
 
typedef icmphdr icmp_router_solicitation
 
typedef icmp_address_mask_request icmp_address_mask_reply
 
typedef icmp_info_request icmp_info_reply
 
typedef uint8_t ProtocolType
 
typedef uint32_t ProtocolTypeFamily
 
typedef stp_tcn_bpdu stp_header
 Spanning Tree protocol common header.
 
typedef PointerVector< RawPacketRawPacketVector
 A vector of pointers to RawPacket.
 
typedef void(* OnDpdkPacketsArriveCallback) (MBufRawPacket *packets, uint32_t numOfPackets, uint8_t threadId, DpdkDevice *device, void *userCookie)
 
typedef bool(* OnKniPacketArriveCallback) (MBufRawPacket *packets, uint32_t numOfPackets, KniDevice *device, void *userCookie)
 Defines the signature callback used by capturing API on KNI device.
 
typedef PointerVector< MBufRawPacketMBufRawPacketVector
 
using AndFilter = CompositeLogicFilter< CompositeLogicFilterOp::AND >
 
using OrFilter = CompositeLogicFilter< CompositeLogicFilterOp::OR >
 
using OnPacketArrivesCallback = std::function< void(RawPacket *, PcapLiveDevice *, void *)>
 
using OnPacketArrivesStopBlocking = std::function< bool(RawPacket *, PcapLiveDevice *, void *)>
 
using OnStatsUpdateCallback = std::function< void(IPcapDevice::PcapStats &, void *)>
 

Enumerations

enum  LogModule : uint8_t {
}
 An enum representing all PcapPlusPlus modules. More...
 
enum class  LogLevel { Off = 0 , Error = 1 , Info = 2 , Debug = 3 }
 
enum  ArpOpcode { ARP_REQUEST = 0x0001 , ARP_REPLY = 0x0002 }
 An enum for ARP message type. More...
 
enum class  ArpMessageType {
  Unknown , Request , Reply , GratuitousRequest ,
  GratuitousReply
}
 An enum representing the ARP message type. More...
 
enum class  Asn1TagClass : uint8_t { Universal = 0 , Application = 1 , ContextSpecific = 2 , Private = 3 }
 An enum for representing ASN.1 tag class. More...
 
enum class  Asn1UniversalTagType : uint8_t {
  EndOfContent = 0 , Boolean = 1 , Integer = 2 , BitString = 3 ,
  OctetString = 4 , Null = 5 , ObjectIdentifier = 6 , ObjectDescriptor = 7 ,
  External = 8 , Real = 9 , Enumerated = 10 , EmbeddedPDV = 11 ,
  UTF8String = 12 , RelativeObjectIdentifier = 13 , Time = 14 , Reserved = 15 ,
  Sequence = 16 , Set = 17 , NumericString = 18 , PrintableString = 19 ,
  T61String = 20 , VideotexString = 21 , IA5String = 22 , UTCTime = 23 ,
  GeneralizedTime = 24 , GraphicString = 25 , VisibleString = 26 , GeneralString = 27 ,
  UniversalString = 28 , CharacterString = 29 , BMPString = 30 , Date = 31 ,
  TimeOfDay = 32 , DateTime = 33 , Duration = 34 , ObjectIdentifierIRI = 35 ,
  RelativeObjectIdentifierIRI = 36 , NotApplicable = 255
}
 An enum for representing ASN.1 Universal tag types. More...
 
enum  BootpOpCodes { DHCP_BOOTREQUEST = 1 , DHCP_BOOTREPLY = 2 }
 BootP opcodes. More...
 
enum  DhcpMessageType {
  DHCP_UNKNOWN_MSG_TYPE = 0 , DHCP_DISCOVER = 1 , DHCP_OFFER = 2 , DHCP_REQUEST = 3 ,
  DHCP_DECLINE = 4 , DHCP_ACK = 5 , DHCP_NAK = 6 , DHCP_RELEASE = 7 ,
  DHCP_INFORM = 8
}
 DHCP message types. More...
 
enum  DhcpOptionTypes {
  DHCPOPT_UNKNOWN = -1 , DHCPOPT_PAD = 0 , DHCPOPT_SUBNET_MASK = 1 , DHCPOPT_TIME_OFFSET = 2 ,
  DHCPOPT_ROUTERS = 3 , DHCPOPT_TIME_SERVERS = 4 , DHCPOPT_NAME_SERVERS = 5 , DHCPOPT_DOMAIN_NAME_SERVERS = 6 ,
  DHCPOPT_LOG_SERVERS = 7 , DHCPOPT_QUOTES_SERVERS = 8 , DHCPOPT_LPR_SERVERS = 9 , DHCPOPT_IMPRESS_SERVERS = 10 ,
  DHCPOPT_RESOURCE_LOCATION_SERVERS = 11 , DHCPOPT_HOST_NAME = 12 , DHCPOPT_BOOT_SIZE = 13 , DHCPOPT_MERIT_DUMP = 14 ,
  DHCPOPT_DOMAIN_NAME = 15 , DHCPOPT_SWAP_SERVER = 16 , DHCPOPT_ROOT_PATH = 17 , DHCPOPT_EXTENSIONS_PATH = 18 ,
  DHCPOPT_IP_FORWARDING = 19 , DHCPOPT_NON_LOCAL_SOURCE_ROUTING = 20 , DHCPOPT_POLICY_FILTER = 21 , DHCPOPT_MAX_DGRAM_REASSEMBLY = 22 ,
  DEFAULT_IP_TTL = 23 , DHCPOPT_PATH_MTU_AGING_TIMEOUT = 24 , PATH_MTU_PLATEAU_TABLE = 25 , DHCPOPT_INTERFACE_MTU = 26 ,
  DHCPOPT_ALL_SUBNETS_LOCAL = 27 , DHCPOPT_BROADCAST_ADDRESS = 28 , DHCPOPT_PERFORM_MASK_DISCOVERY = 29 , DHCPOPT_MASK_SUPPLIER = 30 ,
  DHCPOPT_ROUTER_DISCOVERY = 31 , DHCPOPT_ROUTER_SOLICITATION_ADDRESS = 32 , DHCPOPT_STATIC_ROUTES = 33 , DHCPOPT_TRAILER_ENCAPSULATION = 34 ,
  DHCPOPT_ARP_CACHE_TIMEOUT = 35 , DHCPOPT_IEEE802_3_ENCAPSULATION = 36 , DHCPOPT_DEFAULT_TCP_TTL = 37 , DHCPOPT_TCP_KEEPALIVE_INTERVAL = 38 ,
  DHCPOPT_TCP_KEEPALIVE_GARBAGE = 39 , DHCPOPT_NIS_DOMAIN = 40 , DHCPOPT_NIS_SERVERS = 41 , DHCPOPT_NTP_SERVERS = 42 ,
  DHCPOPT_VENDOR_ENCAPSULATED_OPTIONS = 43 , DHCPOPT_NETBIOS_NAME_SERVERS = 44 , DHCPOPT_NETBIOS_DD_SERVER = 45 , DHCPOPT_NETBIOS_NODE_TYPE = 46 ,
  DHCPOPT_NETBIOS_SCOPE = 47 , DHCPOPT_FONT_SERVERS = 48 , DHCPOPT_X_DISPLAY_MANAGER = 49 , DHCPOPT_DHCP_REQUESTED_ADDRESS = 50 ,
  DHCPOPT_DHCP_LEASE_TIME = 51 , DHCPOPT_DHCP_OPTION_OVERLOAD = 52 , DHCPOPT_DHCP_MESSAGE_TYPE = 53 , DHCPOPT_DHCP_SERVER_IDENTIFIER = 54 ,
  DHCPOPT_DHCP_PARAMETER_REQUEST_LIST = 55 , DHCPOPT_DHCP_MESSAGE = 56 , DHCPOPT_DHCP_MAX_MESSAGE_SIZE = 57 , DHCPOPT_DHCP_RENEWAL_TIME = 58 ,
  DHCPOPT_DHCP_REBINDING_TIME = 59 , DHCPOPT_VENDOR_CLASS_IDENTIFIER = 60 , DHCPOPT_DHCP_CLIENT_IDENTIFIER = 61 , DHCPOPT_NWIP_DOMAIN_NAME = 62 ,
  DHCPOPT_NWIP_SUBOPTIONS = 63 , DHCPOPT_NIS_DOMAIN_NAME = 64 , DHCPOPT_NIS_SERVER_ADDRESS = 65 , DHCPOPT_TFTP_SERVER_NAME = 66 ,
  DHCPOPT_BOOTFILE_NAME = 67 , DHCPOPT_HOME_AGENT_ADDRESS = 68 , DHCPOPT_SMTP_SERVER = 69 , DHCPOPT_POP3_SERVER = 70 ,
  DHCPOPT_NNTP_SERVER = 71 , DHCPOPT_WWW_SERVER = 72 , DHCPOPT_FINGER_SERVER = 73 , DHCPOPT_IRC_SERVER = 74 ,
  DHCPOPT_STREETTALK_SERVER = 75 , DHCPOPT_STDA_SERVER = 76 , DHCPOPT_USER_CLASS = 77 , DHCPOPT_DIRECTORY_AGENT = 78 ,
  DHCPOPT_SERVICE_SCOPE = 79 , DHCPOPT_RAPID_COMMIT = 80 , DHCPOPT_FQDN = 81 , DHCPOPT_DHCP_AGENT_OPTIONS = 82 ,
  DHCPOPT_ISNS = 83 , DHCPOPT_NDS_SERVERS = 85 , DHCPOPT_NDS_TREE_NAME = 86 , DHCPOPT_NDS_CONTEXT = 87 ,
  DHCPOPT_BCMCS_CONTROLLER_DOMAIN_NAME_LIST = 88 , DHCPOPT_BCMCS_CONTROLLER_IPV4_ADDRESS = 89 , DHCPOPT_AUTHENTICATION = 90 , DHCPOPT_CLIENT_LAST_TXN_TIME = 91 ,
  DHCPOPT_ASSOCIATED_IP = 92 , DHCPOPT_CLIENT_SYSTEM = 93 , DHCPOPT_CLIENT_NDI = 94 , DHCPOPT_LDAP = 95 ,
  DHCPOPT_UUID_GUID = 97 , DHCPOPT_USER_AUTH = 98 , DHCPOPT_GEOCONF_CIVIC = 99 , DHCPOPT_PCODE = 100 ,
  DHCPOPT_TCODE = 101 , DHCPOPT_NETINFO_ADDRESS = 112 , DHCPOPT_NETINFO_TAG = 113 , DHCPOPT_URL = 114 ,
  DHCPOPT_AUTO_CONFIG = 116 , DHCPOPT_NAME_SERVICE_SEARCH = 117 , DHCPOPT_SUBNET_SELECTION = 118 , DHCPOPT_DOMAIN_SEARCH = 119 ,
  DHCPOPT_SIP_SERVERS = 120 , DHCPOPT_CLASSLESS_STATIC_ROUTE = 121 , DHCPOPT_CCC = 122 , DHCPOPT_GEOCONF = 123 ,
  DHCPOPT_V_I_VENDOR_CLASS = 124 , DHCPOPT_V_I_VENDOR_OPTS = 125 , DHCPOPT_OPTION_PANA_AGENT = 136 , DHCPOPT_OPTION_V4_LOST = 137 ,
  DHCPOPT_OPTION_CAPWAP_AC_V4 = 138 , DHCPOPT_OPTION_IPV4_ADDRESS_MOS = 139 , DHCPOPT_OPTION_IPV4_FQDN_MOS = 140 , DHCPOPT_SIP_UA_CONFIG = 141 ,
  DHCPOPT_OPTION_IPV4_ADDRESS_ANDSF = 142 , DHCPOPT_GEOLOC = 144 , DHCPOPT_FORCERENEW_NONCE_CAPABLE = 145 , DHCPOPT_RDNSS_SELECTION = 146 ,
  DHCPOPT_STATUS_CODE = 151 , DHCPOPT_BASE_TIME = 152 , DHCPOPT_START_TIME_OF_STATE = 153 , DHCPOPT_QUERY_START_TIME = 154 ,
  DHCPOPT_QUERY_END_TIME = 155 , DHCPOPT_DHCP_STATE = 156 , DHCPOPT_DATA_SOURCE = 157 , DHCPOPT_OPTION_V4_PCP_SERVER = 158 ,
  DHCPOPT_OPTION_V4_PORTPARAMS = 159 , DHCPOPT_CAPTIVE_PORTAL = 160 , DHCPOPT_OPTION_MUD_URL_V4 = 161 , DHCPOPT_ETHERBOOT = 175 ,
  DHCPOPT_IP_TELEPHONE = 176 , DHCPOPT_PXELINUX_MAGIC = 208 , DHCPOPT_CONFIGURATION_FILE = 209 , DHCPOPT_PATH_PREFIX = 210 ,
  DHCPOPT_REBOOT_TIME = 211 , DHCPOPT_OPTION_6RD = 212 , DHCPOPT_OPTION_V4_ACCESS_DOMAIN = 213 , DHCPOPT_SUBNET_ALLOCATION = 220 ,
  DHCPOPT_VIRTUAL_SUBNET_SELECTION = 221 , DHCPOPT_END = 255
}
 DHCP option types. More...
 
enum  DhcpV6MessageType {
  DHCPV6_UNKNOWN_MSG_TYPE = 0 , DHCPV6_SOLICIT = 1 , DHCPV6_ADVERTISE = 2 , DHCPV6_REQUEST = 3 ,
  DHCPV6_CONFIRM = 4 , DHCPV6_RENEW = 5 , DHCPV6_REBIND = 6 , DHCPV6_REPLY = 7 ,
  DHCPV6_RELEASE = 8 , DHCPV6_DECLINE = 9 , DHCPV6_RECONFIGURE = 10 , DHCPV6_INFORMATION_REQUEST = 11 ,
  DHCPV6_RELAY_FORWARD = 12 , DHCPV6_RELAY_REPLY = 13
}
 DHCPv6 message types. More...
 
enum  DhcpV6OptionType {
  DHCPV6_OPT_UNKNOWN = 0 , DHCPV6_OPT_CLIENTID = 1 , DHCPV6_OPT_SERVERID = 2 , DHCPV6_OPT_IA_NA = 3 ,
  DHCPV6_OPT_IA_TA = 4 , DHCPV6_OPT_IAADDR = 5 , DHCPV6_OPT_ORO = 6 , DHCPV6_OPT_PREFERENCE = 7 ,
  DHCPV6_OPT_ELAPSED_TIME = 8 , DHCPV6_OPT_RELAY_MSG = 9 , DHCPV6_OPT_AUTH = 11 , DHCPV6_OPT_UNICAST = 12 ,
  DHCPV6_OPT_STATUS_CODE = 13 , DHCPV6_OPT_RAPID_COMMIT = 14 , DHCPV6_OPT_USER_CLASS = 15 , DHCPV6_OPT_VENDOR_CLASS = 16 ,
  DHCPV6_OPT_VENDOR_OPTS = 17 , DHCPV6_OPT_INTERFACE_ID = 18 , DHCPV6_OPT_RECONF_MSG = 19 , DHCPV6_OPT_RECONF_ACCEPT = 20 ,
  DHCPV6_OPT_SIP_SERVERS_D = 21 , DHCPV6_OPT_SIP_SERVERS_A = 22 , DHCPV6_OPT_DNS_SERVERS = 23 , DHCPV6_OPT_DOMAIN_LIST = 24 ,
  DHCPV6_OPT_IA_PD = 25 , DHCPV6_OPT_IAPREFIX = 26 , DHCPV6_OPT_NIS_SERVERS = 27 , DHCPV6_OPT_NISP_SERVERS = 28 ,
  DHCPV6_OPT_NIS_DOMAIN_NAME = 29 , DHCPV6_OPT_NISP_DOMAIN_NAME = 30 , DHCPV6_OPT_SNTP_SERVERS = 31 , DHCPV6_OPT_INFORMATION_REFRESH_TIME = 32 ,
  DHCPV6_OPT_BCMCS_SERVER_D = 33 , DHCPV6_OPT_BCMCS_SERVER_A = 34 , DHCPV6_OPT_GEOCONF_CIVIC = 36 , DHCPV6_OPT_REMOTE_ID = 37 ,
  DHCPV6_OPT_SUBSCRIBER_ID = 38 , DHCPV6_OPT_CLIENT_FQDN = 39 , DHCPV6_OPT_PANA_AGENT = 40 , DHCPV6_OPT_NEW_POSIX_TIMEZONE = 41 ,
  DHCPV6_OPT_NEW_TZDB_TIMEZONE = 42 , DHCPV6_OPT_ERO = 43 , DHCPV6_OPT_LQ_QUERY = 44 , DHCPV6_OPT_CLIENT_DATA = 45 ,
  DHCPV6_OPT_CLT_TIME = 46 , DHCPV6_OPT_LQ_RELAY_DATA = 47 , DHCPV6_OPT_LQ_CLIENT_LINK = 48 , DHCPV6_OPT_MIP6_HNINF = 49 ,
  DHCPV6_OPT_MIP6_RELAY = 50 , DHCPV6_OPT_V6_LOST = 51 , DHCPV6_OPT_CAPWAP_AC_V6 = 52 , DHCPV6_OPT_RELAY_ID = 53 ,
  DHCPV6_OPT_IPH6_ADDRESS_MOS = 54 , DHCPV6_OPT_IPV6_FQDN_MOS = 55 , DHCPV6_OPT_NTP_SERVER = 56 , DHCPV6_OPT_BOOTFILE_URL = 59 ,
  DHCPV6_OPT_BOOTFILE_PARAM = 60 , DHCPV6_OPT_CLIENT_ARCH_TYPE = 61 , DHCPV6_OPT_NII = 62 , DHCPV6_OPT_ERP_LOCAL_DOMAIN_NAME = 65 ,
  DHCPV6_OPT_RELAY_SUPPLIED_OPTIONS = 66 , DHCPV6_OPT_VSS = 68 , DHCPV6_OPT_CLIENT_LINKLAYER_ADDR = 79 , DHCPV6_OPT_MUD_URL = 112
}
 
enum  DnsType {
  DNS_TYPE_A = 1 , DNS_TYPE_NS , DNS_TYPE_MD , DNS_TYPE_MF ,
  DNS_TYPE_CNAME , DNS_TYPE_SOA , DNS_TYPE_MB , DNS_TYPE_MG ,
  DNS_TYPE_MR , DNS_TYPE_NULL_R , DNS_TYPE_WKS , DNS_TYPE_PTR ,
  DNS_TYPE_HINFO , DNS_TYPE_MINFO , DNS_TYPE_MX , DNS_TYPE_TXT ,
  DNS_TYPE_RP , DNS_TYPE_AFSDB , DNS_TYPE_X25 , DNS_TYPE_ISDN ,
  DNS_TYPE_RT , DNS_TYPE_NSAP , DNS_TYPE_NSAP_PTR , DNS_TYPE_SIG ,
  DNS_TYPE_KEY , DNS_TYPE_PX , DNS_TYPE_GPOS , DNS_TYPE_AAAA ,
  DNS_TYPE_LOC , DNS_TYPE_NXT , DNS_TYPE_EID , DNS_TYPE_NIMLOC ,
  DNS_TYPE_SRV , DNS_TYPE_ATMA , DNS_TYPE_NAPTR , DNS_TYPE_KX ,
  DNS_TYPE_CERT , DNS_TYPE_A6 , DNS_TYPE_DNAM , DNS_TYPE_SINK ,
  DNS_TYPE_OPT , DNS_TYPE_APL , DNS_TYPE_DS , DNS_TYPE_SSHFP ,
  DNS_TYPE_IPSECKEY , DNS_TYPE_RRSIG , DNS_TYPE_NSEC , DNS_TYPE_DNSKEY ,
  DNS_TYPE_DHCID , DNS_TYPE_NSEC3 , DNS_TYPE_NSEC3PARAM , DNS_TYPE_ALL = 255
}
 An enum for all possible DNS record types. More...
 
enum  DnsClass {
  DNS_CLASS_IN = 1 , DNS_CLASS_IN_QU = 32769 , DNS_CLASS_CH = 3 , DNS_CLASS_HS = 4 ,
  DNS_CLASS_ANY = 255
}
 An enum for all possible DNS classes. More...
 
enum  DnsResourceType { DnsQueryType = 0 , DnsAnswerType = 1 , DnsAuthorityType = 2 , DnsAdditionalType = 3 }
 An enum for representing the 4 types of possible DNS records. More...
 
enum  GtpV1MessageType {
  GtpV1_MessageTypeUnknown = 0 , GtpV1_EchoRequest = 1 , GtpV1_EchoResponse = 2 , GtpV1_VersionNotSupported = 3 ,
  GtpV1_NodeAliveRequest = 4 , GtpV1_NodeAliveResponse = 5 , GtpV1_RedirectionRequest = 6 , GtpV1_CreatePDPContextRequest = 7 ,
  GtpV1_CreatePDPContextResponse = 16 , GtpV1_UpdatePDPContextRequest = 17 , GtpV1_UpdatePDPContextResponse = 18 , GtpV1_DeletePDPContextRequest = 19 ,
  GtpV1_DeletePDPContextResponse = 20 , GtpV1_InitiatePDPContextActivationRequest = 22 , GtpV1_InitiatePDPContextActivationResponse = 23 , GtpV1_ErrorIndication = 26 ,
  GtpV1_PDUNotificationRequest = 27 , GtpV1_PDUNotificationResponse = 28 , GtpV1_PDUNotificationRejectRequest = 29 , GtpV1_PDUNotificationRejectResponse = 30 ,
  GtpV1_SupportedExtensionsHeaderNotification = 31 , GtpV1_SendRoutingforGPRSRequest = 32 , GtpV1_SendRoutingforGPRSResponse = 33 , GtpV1_FailureReportRequest = 34 ,
  GtpV1_FailureReportResponse = 35 , GtpV1_NoteMSPresentRequest = 36 , GtpV1_NoteMSPresentResponse = 37 , GtpV1_IdentificationRequest = 38 ,
  GtpV1_IdentificationResponse = 39 , GtpV1_SGSNContextRequest = 50 , GtpV1_SGSNContextResponse = 51 , GtpV1_SGSNContextAcknowledge = 52 ,
  GtpV1_ForwardRelocationRequest = 53 , GtpV1_ForwardRelocationResponse = 54 , GtpV1_ForwardRelocationComplete = 55 , GtpV1_RelocationCancelRequest = 56 ,
  GtpV1_RelocationCancelResponse = 57 , GtpV1_ForwardSRNSContext = 58 , GtpV1_ForwardRelocationCompleteAcknowledge = 59 , GtpV1_ForwardSRNSContextAcknowledge = 60 ,
  GtpV1_UERegistrationRequest = 61 , GtpV1_UERegistrationResponse = 62 , GtpV1_RANInformationRelay = 70 , GtpV1_MBMSNotificationRequest = 96 ,
  GtpV1_MBMSNotificationResponse = 97 , GtpV1_MBMSNotificationRejectRequest = 98 , GtpV1_MBMSNotificationRejectResponse = 99 , GtpV1_CreateMBMSNotificationRequest = 100 ,
  GtpV1_CreateMBMSNotificationResponse = 101 , GtpV1_UpdateMBMSNotificationRequest = 102 , GtpV1_UpdateMBMSNotificationResponse = 103 , GtpV1_DeleteMBMSNotificationRequest = 104 ,
  GtpV1_DeleteMBMSNotificationResponse = 105 , GtpV1_MBMSRegistrationRequest = 112 , GtpV1_MBMSRegistrationResponse = 113 , GtpV1_MBMSDeRegistrationRequest = 114 ,
  GtpV1_MBMSDeRegistrationResponse = 115 , GtpV1_MBMSSessionStartRequest = 116 , GtpV1_MBMSSessionStartResponse = 117 , GtpV1_MBMSSessionStopRequest = 118 ,
  GtpV1_MBMSSessionStopResponse = 119 , GtpV1_MBMSSessionUpdateRequest = 120 , GtpV1_MBMSSessionUpdateResponse = 121 , GtpV1_MSInfoChangeRequest = 128 ,
  GtpV1_MSInfoChangeResponse = 129 , GtpV1_DataRecordTransferRequest = 240 , GtpV1_DataRecordTransferResponse = 241 , GtpV1_EndMarker = 254 ,
  GtpV1_GPDU = 255
}
 
enum  HttpVersion { ZeroDotNine , OneDotZero , OneDotOne , HttpVersionUnknown }
 An enum for HTTP version. More...
 
enum  IcmpMessageType {
  ICMP_ECHO_REPLY = 0 , ICMP_DEST_UNREACHABLE = 3 , ICMP_SOURCE_QUENCH = 4 , ICMP_REDIRECT = 5 ,
  ICMP_ECHO_REQUEST = 8 , ICMP_ROUTER_ADV = 9 , ICMP_ROUTER_SOL = 10 , ICMP_TIME_EXCEEDED = 11 ,
  ICMP_PARAM_PROBLEM = 12 , ICMP_TIMESTAMP_REQUEST = 13 , ICMP_TIMESTAMP_REPLY = 14 , ICMP_INFO_REQUEST = 15 ,
  ICMP_INFO_REPLY = 16 , ICMP_ADDRESS_MASK_REQUEST = 17 , ICMP_ADDRESS_MASK_REPLY = 18 , ICMP_UNSUPPORTED = 255
}
 An enum of all supported ICMP message types. More...
 
enum  IcmpDestUnreachableCodes {
  IcmpNetworkUnreachable = 0 , IcmpHostUnreachable = 1 , IcmpProtocolUnreachable = 2 , IcmpPortUnreachable = 3 ,
  IcmpDatagramTooBig = 4 , IcmpSourceRouteFailed = 5 , IcmpDestinationNetworkUnknown = 6 , IcmpDestinationHostUnknown = 7 ,
  IcmpSourceHostIsolated = 8 , IcmpDestinationNetworkProhibited = 9 , IcmpDestinationHostProhibited = 10 , IcmpNetworkUnreachableForTypeOfService = 11 ,
  IcmpHostUnreachableForTypeOfService = 12 , IcmpCommunicationProhibited = 13 , IcmpHostPrecedenceViolation = 14 , IcmpPrecedenceCutoff = 15
}
 
enum class  ICMPv6MessageType : int {
  ICMPv6_UNKNOWN_MESSAGE = 0 , ICMPv6_DESTINATION_UNREACHABLE = 1 , ICMPv6_PACKET_TOO_BIG = 2 , ICMPv6_TIME_EXCEEDED = 3 ,
  ICMPv6_PARAMETER_PROBLEM = 4 , ICMPv6_PRIVATE_EXPERIMENTATION1 = 100 , ICMPv6_PRIVATE_EXPERIMENTATION2 = 101 , ICMPv6_RESERVED_EXPANSION_ERROR = 127 ,
  ICMPv6_ECHO_REQUEST = 128 , ICMPv6_ECHO_REPLY = 129 , ICMPv6_MULTICAST_LISTENER_QUERY = 130 , ICMPv6_MULTICAST_LISTENER_REPORT = 131 ,
  ICMPv6_MULTICAST_LISTENER_DONE = 132 , ICMPv6_ROUTER_SOLICITATION = 133 , ICMPv6_ROUTER_ADVERTISEMENT = 134 , ICMPv6_NEIGHBOR_SOLICITATION = 135 ,
  ICMPv6_NEIGHBOR_ADVERTISEMENT = 136 , ICMPv6_REDIRECT_MESSAGE = 137 , ICMPv6_ROUTER_RENUMBERING = 138 , ICMPv6_ICMP_NODE_INFORMATION_QUERY = 139 ,
  ICMPv6_ICMP_NODE_INFORMATION_RESPONSE = 140 , ICMPv6_INVERSE_NEIGHBOR_DISCOVERY_SOLICITATION_MESSAGE = 141 , ICMPv6_INVERSE_NEIGHBOR_DISCOVERY_ADVERTISEMENT_MESSAGE = 142 , ICMPv6_MULTICAST_LISTENER_DISCOVERY_REPORTS = 143 ,
  ICMPv6_HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_MESSAGE = 144 , ICMPv6_HOME_AGENT_ADDRESS_DISCOVERY_REPLY_MESSAGE = 145 , ICMPv6_MOBILE_PREFIX_SOLICITATION = 146 , ICMPv6_MOBILE_PREFIX_ADVERTISEMENT = 147 ,
  ICMPv6_CERTIFICATION_PATH_SOLICITATION = 148 , ICMPv6_CERTIFICATION_PATH_ADVERTISEMENT = 149 , ICMPv6_EXPERIMENTAL_MOBILITY = 150 , ICMPv6_MULTICAST_ROUTER_ADVERTISEMENT = 151 ,
  ICMPv6_MULTICAST_ROUTER_SOLICITATION = 152 , ICMPv6_MULTICAST_ROUTER_TERMINATION = 153 , ICMPv6_RPL_CONTROL_MESSAGE = 155 , ICMPv6_PRIVATE_EXPERIMENTATION3 = 200 ,
  ICMPv6_PRIVATE_EXPERIMENTATION4 = 201 , ICMPv6_RESERVED_EXPANSION_INFORMATIONAL = 255
}
 An enum representing the available ICMPv6 message types. More...
 
enum  IgmpType {
  IgmpType_Unknown = 0 , IgmpType_MembershipQuery = 0x11 , IgmpType_MembershipReportV1 = 0x12 , IgmpType_DVMRP = 0x13 ,
  IgmpType_P1Mv1 = 0x14 , IgmpType_CiscoTrace = 0x15 , IgmpType_MembershipReportV2 = 0x16 , IgmpType_LeaveGroup = 0x17 ,
  IgmpType_MulticastTracerouteResponse = 0x1e , IgmpType_MulticastTraceroute = 0x1f , IgmpType_MembershipReportV3 = 0x22 , IgmpType_MulticastRouterAdvertisement = 0x30 ,
  IgmpType_MulticastRouterSolicitation = 0x31 , IgmpType_MulticastRouterTermination = 0x32
}
 IGMP message types. More...
 
enum  IPProtocolTypes {
  PACKETPP_IPPROTO_IP = 0 , PACKETPP_IPPROTO_HOPOPTS = 0 , PACKETPP_IPPROTO_ICMP = 1 , PACKETPP_IPPROTO_IGMP = 2 ,
  PACKETPP_IPPROTO_IPIP = 4 , PACKETPP_IPPROTO_TCP = 6 , PACKETPP_IPPROTO_EGP = 8 , PACKETPP_IPPROTO_PUP = 12 ,
  PACKETPP_IPPROTO_UDP = 17 , PACKETPP_IPPROTO_IDP = 22 , PACKETPP_IPPROTO_IPV6 = 41 , PACKETPP_IPPROTO_ROUTING = 43 ,
  PACKETPP_IPPROTO_FRAGMENT = 44 , PACKETPP_IPPROTO_GRE = 47 , PACKETPP_IPPROTO_ESP = 50 , PACKETPP_IPPROTO_AH = 51 ,
  PACKETPP_IPPROTO_ICMPV6 = 58 , PACKETPP_IPPROTO_NONE = 59 , PACKETPP_IPPROTO_DSTOPTS = 60 , PACKETPP_IPPROTO_VRRP = 112 ,
  PACKETPP_IPPROTO_RAW = 255 , PACKETPP_IPPROTO_MAX
}
 An enum for all possible IPv4 and IPv6 protocol types. More...
 
enum  IPv4OptionTypes {
  IPV4OPT_EndOfOptionsList = 0 , IPV4OPT_NOP = 1 , IPV4OPT_RecordRoute = 7 , IPV4OPT_MTUProbe = 11 ,
  IPV4OPT_MTUReply = 12 , IPV4OPT_QuickStart = 25 , IPV4OPT_Timestamp = 68 , IPV4OPT_Traceroute = 82 ,
  IPV4OPT_Security = 130 , IPV4OPT_LooseSourceRoute = 131 , IPV4OPT_ExtendedSecurity = 133 , IPV4OPT_CommercialSecurity = 134 ,
  IPV4OPT_StreamID = 136 , IPV4OPT_StrictSourceRoute = 137 , IPV4OPT_ExtendedInternetProtocol = 145 , IPV4OPT_AddressExtension = 147 ,
  IPV4OPT_RouterAlert = 148 , IPV4OPT_SelectiveDirectedBroadcast = 149 , IPV4OPT_DynamicPacketState = 151 , IPV4OPT_UpstreamMulticastPkt = 152 ,
  IPV4OPT_Unknown
}
 An enum for supported IPv4 option types. More...
 
enum class  NDPNeighborOptionTypes : int
 An enum representing the available option types for Neighbor Discovery in IPv6 (see RFC 4861)
 
enum class  NflogTlvType {
  NFULA_PACKET_HDR = 1 , NFULA_MARK = 2 , NFULA_TIMESTAMP = 3 , NFULA_IFINDEX_INDEV = 4 ,
  NFULA_IFINDEX_OUTDEV = 5 , NFULA_IFINDEX_PHYSINDEV = 6 , NFULA_IFINDEX_PHYSOUTDEV = 7 , NFULA_HWADDR = 8 ,
  NFULA_PAYLOAD = 9 , NFULA_PREFIX = 10 , NFULA_UID = 11 , NFULA_SEQ = 12 ,
  NFULA_SEQ_GLOBAL = 13 , NFULA_GID = 14 , NFULA_HWTYPE = 15 , NFULA_HWHEADER = 16 ,
  NFULA_HWLEN = 17
}
 
enum  OsiModelLayer {
  OsiModelPhysicalLayer = 1 , OsiModelDataLinkLayer = 2 , OsiModelNetworkLayer = 3 , OsiModelTransportLayer = 4 ,
  OsiModelSesionLayer = 5 , OsiModelPresentationLayer = 6 , OsiModelApplicationLayer = 7 , OsiModelLayerUnknown = 8
}
 An enum representing OSI model layers. More...
 
enum  LinkLayerType {
  LINKTYPE_NULL = 0 , LINKTYPE_ETHERNET = 1 , LINKTYPE_AX25 = 3 , LINKTYPE_IEEE802_5 = 6 ,
  LINKTYPE_ARCNET_BSD = 7 , LINKTYPE_SLIP = 8 , LINKTYPE_PPP = 9 , LINKTYPE_FDDI = 10 ,
  LINKTYPE_DLT_RAW1 = 12 , LINKTYPE_DLT_RAW2 = 14 , LINKTYPE_PPP_HDLC = 50 , LINKTYPE_PPP_ETHER = 51 ,
  LINKTYPE_ATM_RFC1483 = 100 , LINKTYPE_RAW = 101 , LINKTYPE_C_HDLC = 104 , LINKTYPE_IEEE802_11 = 105 ,
  LINKTYPE_FRELAY = 107 , LINKTYPE_LOOP = 108 , LINKTYPE_LINUX_SLL = 113 , LINKTYPE_LTALK = 114 ,
  LINKTYPE_PFLOG = 117 , LINKTYPE_IEEE802_11_PRISM = 119 , LINKTYPE_IP_OVER_FC = 122 , LINKTYPE_SUNATM = 123 ,
  LINKTYPE_IEEE802_11_RADIOTAP = 127 , LINKTYPE_ARCNET_LINUX = 129 , LINKTYPE_APPLE_IP_OVER_IEEE1394 = 138 , LINKTYPE_MTP2_WITH_PHDR = 139 ,
  LINKTYPE_MTP2 = 140 , LINKTYPE_MTP3 = 141 , LINKTYPE_SCCP = 142 , LINKTYPE_DOCSIS = 143 ,
  LINKTYPE_LINUX_IRDA = 144 , LINKTYPE_USER0 = 147 , LINKTYPE_USER1 = 148 , LINKTYPE_USER2 = 149 ,
  LINKTYPE_USER3 = 150 , LINKTYPE_USER4 = 151 , LINKTYPE_USER5 = 152 , LINKTYPE_USER6 = 153 ,
  LINKTYPE_USER7 = 154 , LINKTYPE_USER8 = 155 , LINKTYPE_USER9 = 156 , LINKTYPE_USER10 = 157 ,
  LINKTYPE_USER11 = 158 , LINKTYPE_USER12 = 159 , LINKTYPE_USER13 = 160 , LINKTYPE_USER14 = 161 ,
  LINKTYPE_USER15 = 162 , LINKTYPE_IEEE802_11_AVS = 163 , LINKTYPE_BACNET_MS_TP = 165 , LINKTYPE_PPP_PPPD = 166 ,
  LINKTYPE_GPRS_LLC = 169 , LINKTYPE_GPF_T = 170 , LINKTYPE_GPF_F = 171 , LINKTYPE_LINUX_LAPD = 177 ,
  LINKTYPE_BLUETOOTH_HCI_H4 = 187 , LINKTYPE_USB_LINUX = 189 , LINKTYPE_PPI = 192 , LINKTYPE_IEEE802_15_4 = 195 ,
  LINKTYPE_SITA = 196 , LINKTYPE_ERF = 197 , LINKTYPE_BLUETOOTH_HCI_H4_WITH_PHDR = 201 , LINKTYPE_AX25_KISS = 202 ,
  LINKTYPE_LAPD = 203 , LINKTYPE_PPP_WITH_DIR = 204 , LINKTYPE_C_HDLC_WITH_DIR = 205 , LINKTYPE_FRELAY_WITH_DIR = 206 ,
  LINKTYPE_IPMB_LINUX = 209 , LINKTYPE_IEEE802_15_4_NONASK_PHY = 215 , LINKTYPE_USB_LINUX_MMAPPED = 220 , LINKTYPE_FC_2 = 224 ,
  LINKTYPE_FC_2_WITH_FRAME_DELIMS = 225 , LINKTYPE_IPNET = 226 , LINKTYPE_CAN_SOCKETCAN = 227 , LINKTYPE_IPV4 = 228 ,
  LINKTYPE_IPV6 = 229 , LINKTYPE_IEEE802_15_4_NOFCS = 230 , LINKTYPE_DBUS = 231 , LINKTYPE_DVB_CI = 235 ,
  LINKTYPE_MUX27010 = 236 , LINKTYPE_STANAG_5066_D_PDU = 237 , LINKTYPE_NFLOG = 239 , LINKTYPE_NETANALYZER = 240 ,
  LINKTYPE_NETANALYZER_TRANSPARENT = 241 , LINKTYPE_IPOIB = 242 , LINKTYPE_MPEG_2_TS = 243 , LINKTYPE_NG40 = 244 ,
  LINKTYPE_NFC_LLCP = 245 , LINKTYPE_INFINIBAND = 247 , LINKTYPE_SCTP = 248 , LINKTYPE_USBPCAP = 249 ,
  LINKTYPE_RTAC_SERIAL = 250 , LINKTYPE_BLUETOOTH_LE_LL = 251 , LINKTYPE_NETLINK = 253 , LINKTYPE_BLUETOOTH_LINUX_MONITOR = 254 ,
  LINKTYPE_BLUETOOTH_BREDR_BB = 255 , LINKTYPE_BLUETOOTH_LE_LL_WITH_PHDR = 256 , LINKTYPE_PROFIBUS_DL = 257 , LINKTYPE_PKTAP = 258 ,
  LINKTYPE_EPON = 259 , LINKTYPE_IPMI_HPM_2 = 260 , LINKTYPE_ZWAVE_R1_R2 = 261 , LINKTYPE_ZWAVE_R3 = 262 ,
  LINKTYPE_WATTSTOPPER_DLM = 263 , LINKTYPE_ISO_14443 = 264 , LINKTYPE_LINUX_SLL2 = 276 , LINKTYPE_INVALID = 0xFFFF
}
 An enum describing all known link layer type. Taken from: http://www.tcpdump.org/linktypes.html . More...
 
enum  SomeIpSdProtocolType : uint8_t { SD_TCP = 0x06 , SD_UDP = 0x11 }
 Types of protocols that can be referenced in SOME/IP-SD. More...
 
enum  SSLRecordType { SSL_CHANGE_CIPHER_SPEC = 20 , SSL_ALERT = 21 , SSL_HANDSHAKE = 22 , SSL_APPLICATION_DATA = 23 }
 SSL/TLS message types. More...
 
enum  SSLHandshakeType {
  SSL_HELLO_REQUEST = 0 , SSL_CLIENT_HELLO = 1 , SSL_SERVER_HELLO = 2 , SSL_NEW_SESSION_TICKET = 4 ,
  SSL_END_OF_EARLY_DATE = 5 , SSL_ENCRYPTED_EXTENSIONS = 8 , SSL_CERTIFICATE = 11 , SSL_SERVER_KEY_EXCHANGE = 12 ,
  SSL_CERTIFICATE_REQUEST = 13 , SSL_SERVER_DONE = 14 , SSL_CERTIFICATE_VERIFY = 15 , SSL_CLIENT_KEY_EXCHANGE = 16 ,
  SSL_FINISHED = 20 , SSL_KEY_UPDATE = 24 , SSL_HANDSHAKE_UNKNOWN = 255
}
 SSL/TLS handshake message types. More...
 
enum  SSLAlertLevel { SSL_ALERT_LEVEL_WARNING = 1 , SSL_ALERT_LEVEL_FATAL = 2 , SSL_ALERT_LEVEL_ENCRYPTED = 255 }
 SSL/TLS alert levels. More...
 
enum  SSLAlertDescription {
  SSL_ALERT_CLOSE_NOTIFY = 0 , SSL_ALERT_UNEXPECTED_MESSAGE = 10 , SSL_ALERT_BAD_RECORD_MAC = 20 , SSL_ALERT_DECRYPTION_FAILED = 21 ,
  SSL_ALERT_RECORD_OVERFLOW = 22 , SSL_ALERT_DECOMPRESSION_FAILURE = 30 , SSL_ALERT_HANDSHAKE_FAILURE = 40 , SSL_ALERT_NO_CERTIFICATE = 41 ,
  SSL_ALERT_BAD_CERTIFICATE = 42 , SSL_ALERT_UNSUPPORTED_CERTIFICATE = 43 , SSL_ALERT_CERTIFICATE_REVOKED = 44 , SSL_ALERT_CERTIFICATE_EXPIRED = 45 ,
  SSL_ALERT_CERTIFICATE_UNKNOWN = 46 , SSL_ALERT_ILLEGAL_PARAMETER = 47 , SSL_ALERT_UNKNOWN_CA = 48 , SSL_ALERT_ACCESS_DENIED = 49 ,
  SSL_ALERT_DECODE_ERROR = 50 , SSL_ALERT_DECRYPT_ERROR = 51 , SSL_ALERT_EXPORT_RESTRICTION = 60 , SSL_ALERT_PROTOCOL_VERSION = 70 ,
  SSL_ALERT_INSUFFICIENT_SECURITY = 71 , SSL_ALERT_INTERNAL_ERROR = 80 , SSL_ALERT_USER_CANCELLED = 90 , SSL_ALERT_NO_RENEGOTIATION = 100 ,
  SSL_ALERT_UNSUPPORTED_EXTENSION = 110 , SSL_ALERT_ENCRYPTED = 255
}
 SSL/TLS alert description types. More...
 
enum  SSLKeyExchangeAlgorithm {
  SSL_KEYX_NULL , SSL_KEYX_RSA , SSL_KEYX_DH , SSL_KEYX_DHE ,
  SSL_KEYX_ECDH , SSL_KEYX_ECDHE , SSL_KEYX_FORTEZZA , SSL_KEYX_KRB5 ,
  SSL_KEYX_PSK , SSL_KEYX_GOST , SSL_KEYX_SRP , SSL_KEYX_PCT ,
  SSL_KEYX_Unknown
}
 SSL/TLS key exchange algorithms. More...
 
enum  SSLAuthenticationAlgorithm {
  SSL_AUTH_NULL , SSL_AUTH_RSA , SSL_AUTH_DSS , SSL_AUTH_anon ,
  SSL_AUTH_KEA , SSL_AUTH_KRB5 , SSL_AUTH_PSK , SSL_AUTH_ECDSA ,
  SSL_AUTH_GOST , SSL_AUTH_SHA , SSL_AUTH_PCT , SSL_AUTH_DHE ,
  SSL_AUTH_Unknown
}
 SSL/TLS authentication algorithms. More...
 
enum  SSLSymetricEncryptionAlgorithm {
  SSL_SYM_NULL , SSL_SYM_RC4_40 , SSL_SYM_RC4_128 , SSL_SYM_RC2_CBC_40 ,
  SSL_SYM_IDEA_CBC , SSL_SYM_DES40_CBC , SSL_SYM_DES_CBC , SSL_SYM_3DES_EDE_CBC ,
  SSL_SYM_FORTEZZA_CBC , SSL_SYM_DES_CBC_40 , SSL_SYM_AES_128_CBC , SSL_SYM_AES_256_CBC ,
  SSL_SYM_CAMELLIA_128_CBC , SSL_SYM_CAMELLIA_128_GCM , SSL_SYM_CAMELLIA_256_GCM , SSL_SYM_RC4_56 ,
  SSL_SYM_RC2_CBC_56 , SSL_SYM_GOST28147 , SSL_SYM_CAMELLIA_256_CBC , SSL_SYM_SEED_CBC ,
  SSL_SYM_AES_128 , SSL_SYM_AES_256 , SSL_SYM_AES_128_GCM , SSL_SYM_AES_256_GCM ,
  SSL_SYM_RC4_128_EXPORT40 , SSL_SYM_RC2_CBC_128_CBC , SSL_SYM_IDEA_128_CBC , SSL_SYM_DES_64_CBC ,
  SSL_SYM_DES_192_EDE3_CBC , SSL_SYM_RC4_64 , SSL_SYM_ARIA_128_CBC , SSL_SYM_ARIA_256_CBC ,
  SSL_SYM_ARIA_128_GCM , SSL_SYM_ARIA_256_GCM , SSL_SYM_CHACHA20_POLY1305 , SSL_SYM_AES_128_CCM ,
  SSL_SYM_AES_128_CCM_8 , SSL_SYM_Unknown
}
 SSL/TLS symmetric encryption algorithms. More...
 
enum  SSLHashingAlgorithm {
  SSL_HASH_NULL , SSL_HASH_MD5 , SSL_HASH_SHA , SSL_HASH_SHA256 ,
  SSL_HASH_GOST28147 , SSL_HASH_GOSTR3411 , SSL_HASH_SHA384 , SSL_HASH_CCM ,
  SSL_HASH_CCM_8 , SSL_HASH_Unknown
}
 SSL/TLS hashing algorithms. More...
 
enum  SSLExtensionType {
  SSL_EXT_SERVER_NAME = 0 , SSL_EXT_MAX_FRAGMENT_LENGTH = 1 , SSL_EXT_CLIENT_CERTIFICATE_URL = 2 , SSL_EXT_TRUSTED_CA_KEYS = 3 ,
  SSL_EXT_TRUNCATED_HMAC = 4 , SSL_EXT_STATUS_REQUEST = 5 , SSL_EXT_USER_MAPPING = 6 , SSL_EXT_CLIENT_AUTHZ = 7 ,
  SSL_EXT_SERVER_AUTHZ = 8 , SSL_EXT_CERT_TYPE = 9 , SSL_EXT_SUPPORTED_GROUPS = 10 , SSL_EXT_EC_POINT_FORMATS = 11 ,
  SSL_EXT_SRP = 12 , SSL_EXT_SIGNATURE_ALGORITHMS = 13 , SSL_EXT_USE_SRTP = 14 , SSL_EXT_HEARTBEAT = 15 ,
  SSL_EXT_APPLICATION_LAYER_PROTOCOL_NEGOTIATION = 16 , SSL_EXT_STATUS_REQUEST_V2 = 17 , SSL_EXT_SIGNED_CERTIFICATE_TIMESTAMP = 18 , SSL_EXT_CLIENT_CERTIFICATE_TYPE = 19 ,
  SSL_EXT_SERVER_CERTIFICATE_TYPE = 20 , SSL_EXT_PADDING = 21 , SSL_EXT_ENCRYPT_THEN_MAC = 22 , SSL_EXT_EXTENDED_MASTER_SECRET = 23 ,
  SSL_EXT_TOKEN_BINDING = 24 , SSL_EXT_SESSIONTICKET_TLS = 35 , SSL_EXT_PRE_SHARED_KEY = 41 , SSL_EXT_EARLY_DATA = 42 ,
  SSL_EXT_SUPPORTED_VERSIONS = 43 , SSL_EXT_COOKIE = 44 , SSL_EXT_PSK_KEY_EXCHANGE_MODES = 45 , SSL_EXT_CERTIFICATE_AUTHORITIES = 47 ,
  SSL_EXT_OLD_FILTERS = 48 , SSL_EXT_POST_HANDSHAKE_AUTH = 49 , SSL_EXT_SIGNATURE_ALGORITHM_CERT = 50 , SSL_EXT_KEY_SHARE = 51 ,
  SSL_EXT_RENEGOTIATION_INFO = 65281 , SSL_EXT_Unknown
}
 SSL/TLS extension types. More...
 
enum  SSLClientCertificateType {
  SSL_CCT_RSA_SIGN = 1 , SSL_CCT_DSS_SIGN = 2 , SSL_CCT_RSA_FIXED_DH = 3 , SSL_CCT_DSS_FIXED_DH = 4 ,
  SSL_CCT_RSA_EPHEMERAL_DH_RESERVED = 5 , SSL_CCT_DSS_EPHEMERAL_DH_RESERVED = 6 , SSL_CCT_FORTEZZA_DMS_RESERVED = 20 , SSL_CCT_ECDSA_SIGN = 64 ,
  SSL_CCT_RSA_FIXED_ECDH = 65 , SSL_CCT_ECDSA_FIXED_ECDH = 66 , SSL_CCT_UNKNOWN
}
 SSL/TLS client certificate types. More...
 
enum  TcpOptionType : uint8_t {
  PCPP_TCPOPT_NOP = 1 , PCPP_TCPOPT_EOL = 0 , TCPOPT_MSS = 2 , PCPP_TCPOPT_WINDOW = 3 ,
  TCPOPT_SACK_PERM = 4 , PCPP_TCPOPT_SACK = 5 , TCPOPT_ECHO = 6 , TCPOPT_ECHOREPLY = 7 ,
  PCPP_TCPOPT_TIMESTAMP = 8 , TCPOPT_CC = 11 , TCPOPT_CCNEW = 12 , TCPOPT_CCECHO = 13 ,
  TCPOPT_MD5 = 19 , TCPOPT_MPTCP = 0x1e , TCPOPT_SCPS = 20 , TCPOPT_SNACK = 21 ,
  TCPOPT_RECBOUND = 22 , TCPOPT_CORREXP = 23 , TCPOPT_QS = 27 , TCPOPT_USER_TO = 28 ,
  TCPOPT_EXP_FD = 0xfd , TCPOPT_EXP_FE = 0xfe , TCPOPT_RVBD_PROBE = 76 , TCPOPT_RVBD_TRPY = 78 ,
  TCPOPT_Unknown = 255
}
 TCP options types. More...
 
enum class  TcpOptionEnumType : uint8_t {
  Nop = 1 , Eol = 0 , Mss = 2 , Window = 3 ,
  SackPerm = 4 , Sack = 5 , Echo = 6 , EchoReply = 7 ,
  Timestamp = 8 , Cc = 11 , CcNew = 12 , CcEcho = 13 ,
  Md5 = 19 , MpTcp = 0x1e , Scps = 20 , Snack = 21 ,
  RecBound = 22 , CorrExp = 23 , Qs = 27 , UserTo = 28 ,
  ExpFd = 0xfd , ExpFe = 0xfe , RvbdProbe = 76 , RvbdTrpy = 78 ,
  Unknown = 255
}
 TCP options types. More...
 
enum  DpdkPMDType {
  PMD_UNKNOWN , PMD_BOND , PMD_E1000EM , PMD_IGB ,
  PMD_IGBVF , PMD_ENIC , PMD_FM10K , PMD_I40E ,
  PMD_I40EVF , PMD_IXGBE , PMD_IXGBEVF , PMD_MLX4 ,
  PMD_NULL , PMD_PCAP , PMD_RING , PMD_VIRTIO ,
  PMD_VMXNET3 , PMD_XENVIRT , PMD_AF_PACKET
}
 
enum class  FileTimestampPrecision : int8_t { Unknown = -1 , Microseconds = 0 , Nanoseconds = 1 }
 
enum  Direction { SRC , DST , SRC_OR_DST }
 An enum that contains direction (source or destination) More...
 
enum  FilterOperator {
  EQUALS , NOT_EQUALS , GREATER_THAN , GREATER_OR_EQUAL ,
  LESS_THAN , LESS_OR_EQUAL
}
 Supported operators enum. More...
 
enum class  CompositeLogicFilterOp { AND , OR }
 Supported composite logic filter operators enum. More...
 

Functions

std::string byteArrayToHexString (const uint8_t *byteArr, size_t byteArrSize, int stringSizeLimit=-1)
 
size_t hexStringToByteArray (const std::string &hexString, uint8_t *resultByteArr, size_t resultByteArrSize)
 
char * cross_platform_memmem (const char *haystack, size_t haystackLen, const char *needle, size_t needleLen)
 
bool operator== (const IPv4Address &lhs, const in_addr &rhs)
 
bool operator!= (const IPv4Address &lhs, const in_addr &rhs)
 
bool operator== (const in_addr &lhs, const IPv4Address &rhs)
 
bool operator!= (const in_addr &lhs, const IPv4Address &rhs)
 
bool operator== (const IPv6Address &lhs, const in6_addr &rhs)
 
bool operator!= (const IPv6Address &lhs, const in6_addr &rhs)
 
bool operator== (const in6_addr &lhs, const IPv6Address &rhs)
 
bool operator!= (const in6_addr &lhs, const IPv6Address &rhs)
 
bool operator== (const IPAddress &lhs, const in_addr &rhs)
 
bool operator!= (const IPAddress &lhs, const in_addr &rhs)
 
bool operator== (const in_addr &lhs, const IPAddress &rhs)
 
bool operator!= (const in_addr &lhs, const IPAddress &rhs)
 
bool operator== (const IPAddress &lhs, const in6_addr &rhs)
 
bool operator!= (const IPAddress &lhs, const in6_addr &rhs)
 
bool operator== (const in6_addr &lhs, const IPAddress &rhs)
 
bool operator!= (const in6_addr &lhs, const IPAddress &rhs)
 
std::string getErrorString (int errnum)
 
std::string getPcapPlusPlusVersion ()
 
std::string getPcapPlusPlusVersionFull ()
 
std::string getBuildDateTime ()
 
std::string getGitCommit ()
 
std::string getGitBranch ()
 
std::string getGitInfo ()
 
int getNumOfCores ()
 
CoreMask getCoreMaskForAllMachineCores ()
 
CoreMask createCoreMaskFromCoreVector (const std::vector< SystemCore > &cores)
 
CoreMask createCoreMaskFromCoreIds (const std::vector< int > &coreIds)
 
void createCoreVectorFromCoreMask (CoreMask coreMask, std::vector< SystemCore > &resultVec)
 
std::string executeShellCommand (const std::string &command)
 
bool directoryExists (const std::string &dirPath)
 
int clockGetTime (long &sec, long &nsec)
 
void multiPlatformSleep (uint32_t seconds)
 
void multiPlatformMSleep (uint32_t milliseconds)
 
uint16_t hostToNet16 (uint16_t host)
 
uint16_t netToHost16 (uint16_t net)
 
uint32_t hostToNet32 (uint32_t host)
 
uint32_t netToHost32 (uint32_t net)
 
uint16_t computeChecksum (ScalarBuffer< uint16_t > vec[], size_t vecSize)
 
uint16_t computePseudoHdrChecksum (uint8_t *dataPtr, size_t dataLen, IPAddress::AddressType ipAddrType, uint8_t protocolType, IPAddress srcIPAddress, IPAddress dstIPAddress)
 
uint32_t fnvHash (ScalarBuffer< uint8_t > vec[], size_t vecSize)
 
uint32_t fnvHash (uint8_t *buffer, size_t bufSize)
 
uint32_t hash5Tuple (Packet *packet, bool const &directionUnique=false)
 
uint32_t hash2Tuple (Packet *packet)
 

Variables

const ProtocolType UnknownProtocol = 0
 Unknown protocol (or unsupported by PcapPlusPlus)
 
const ProtocolType Ethernet = 1
 Ethernet protocol.
 
const ProtocolType IPv4 = 2
 IPv4 protocol.
 
const ProtocolType IPv6 = 3
 IPv6 protocol.
 
const ProtocolTypeFamily IP = 0x203
 IP protocol family (IPv4 and IPv6 protocols)
 
const ProtocolType TCP = 4
 TCP protocol.
 
const ProtocolType UDP = 5
 UDP protocol.
 
const ProtocolType HTTPRequest = 6
 HTTP request protocol.
 
const ProtocolType HTTPResponse = 7
 HTTP response protocol.
 
const ProtocolTypeFamily HTTP = 0x607
 HTTP protocol family (HTTP request and HTTP response protocols)
 
const ProtocolType ARP = 8
 ARP protocol.
 
const ProtocolType VLAN = 9
 VLAN protocol.
 
const ProtocolType ICMP = 10
 ICMP protocol.
 
const ProtocolType PPPoESession = 11
 PPPoE session protocol.
 
const ProtocolType PPPoEDiscovery = 12
 PPPoE discovery protocol.
 
const ProtocolTypeFamily PPPoE = 0xb0c
 PPPoE protocol family (PPPoESession and PPPoEDiscovery protocols)
 
const ProtocolType DNS = 13
 DNS protocol.
 
const ProtocolType MPLS = 14
 MPLS protocol.
 
const ProtocolType GREv0 = 15
 GRE version 0 protocol.
 
const ProtocolType GREv1 = 16
 GRE version 1 protocol.
 
const ProtocolTypeFamily GRE = 0xf10
 GRE protocol family (GREv0 and GREv1 protocols)
 
const ProtocolType PPP_PPTP = 17
 PPP for PPTP protocol.
 
const ProtocolType SSL = 18
 SSL/TLS protocol.
 
const ProtocolType SLL = 19
 SLL (Linux cooked capture) protocol.
 
const ProtocolType DHCP = 20
 DHCP/BOOTP protocol.
 
const ProtocolType NULL_LOOPBACK = 21
 Null/Loopback protocol.
 
const ProtocolType IGMPv1 = 22
 IGMPv1 protocol.
 
const ProtocolType IGMPv2 = 23
 IGMPv2 protocol.
 
const ProtocolType IGMPv3 = 24
 IGMPv3 protocol.
 
const ProtocolTypeFamily IGMP = 0x161718
 IGMP protocol family (IGMPv1, IGMPv2, IGMPv3)
 
const ProtocolType GenericPayload = 25
 Generic payload (no specific protocol)
 
const ProtocolType VXLAN = 26
 VXLAN protocol.
 
const ProtocolType SIPRequest = 27
 SIP request protocol.
 
const ProtocolType SIPResponse = 28
 SIP response protocol.
 
const ProtocolTypeFamily SIP = 0x1b1c
 SIP protocol family (SIPRequest and SIPResponse protocols)
 
const ProtocolType SDP = 29
 SDP protocol.
 
const ProtocolType PacketTrailer = 30
 Packet trailer.
 
const ProtocolType Radius = 31
 RADIUS protocol.
 
const ProtocolType GTPv1 = 32
 GTPv1 protocol.
 
const ProtocolTypeFamily GTP = 0x2039
 GTP protocol family (GTPv1 and GTPv2)
 
const ProtocolType EthernetDot3 = 33
 IEEE 802.3 Ethernet protocol.
 
const ProtocolType BGP = 34
 Border Gateway Protocol (BGP) version 4 protocol.
 
const ProtocolType SSH = 35
 SSH version 2 protocol.
 
const ProtocolType AuthenticationHeader = 36
 IPSec Authentication Header (AH) protocol.
 
const ProtocolType ESP = 37
 IPSec Encapsulating Security Payload (ESP) protocol.
 
const ProtocolTypeFamily IPSec = 0x2425
 IPSec protocol family (AH and ESP protocols)
 
const ProtocolType DHCPv6 = 38
 Dynamic Host Configuration Protocol version 6 (DHCPv6) protocol.
 
const ProtocolType NTP = 39
 Network Time (NTP) Protocol.
 
const ProtocolType Telnet = 40
 Telnet Protocol.
 
const ProtocolType FTP = 41
 File Transfer (FTP) Protocol.
 
const ProtocolType ICMPv6 = 42
 ICMPv6 protocol.
 
const ProtocolType STP = 43
 Spanning Tree Protocol.
 
const ProtocolType LLC = 44
 Logical Link Control (LLC)
 
const ProtocolType SomeIP = 45
 SOME/IP Base protocol.
 
const ProtocolType WakeOnLan = 46
 Wake On LAN (WOL) Protocol.
 
const ProtocolType NFLOG = 47
 NFLOG (Linux Netfilter NFLOG) Protocol.
 
const ProtocolType TPKT = 48
 TPKT protocol.
 
const ProtocolType VRRPv2 = 49
 VRRP version 2 protocol.
 
const ProtocolType VRRPv3 = 50
 VRRP version 3 protocol.
 
const ProtocolTypeFamily VRRP = 0x3132
 VRRP protocol family (VRRPv2 and VRRPv3 protocols)
 
const ProtocolType COTP = 51
 COTP protocol.
 
const ProtocolType SLL2 = 52
 SLL2 protocol.
 
const ProtocolType S7COMM = 53
 S7COMM protocol.
 
const ProtocolType SMTP = 54
 SMTP protocol.
 
const ProtocolType LDAP = 55
 LDAP protocol.
 
const ProtocolType WireGuard = 56
 WireGuard protocol.
 
const ProtocolType GTPv2 = 57
 GTPv2 protocol.
 
const ProtocolType CiscoHDLC = 58
 Cisco HDLC protocol.
 

Detailed Description

The main namespace for the PcapPlusPlus lib.

@

Typedef Documentation

◆ AndFilter

A class for connecting several filters into one filter with logical "and" between them. For example: if the 2 filters are: "IPv4 address = x.x.x.x" + "TCP port dst = 80", then the new filter will be: "IPv4 address = x.x.x.x _AND_ TCP port dst = 80"

This class follows the composite design pattern.

For deeper understanding of the filter concept please refer to PcapFilter.h

◆ icmp_address_mask_reply

ICMP address mask reply message structure, same as icmp_address_mask_request

◆ icmp_echo_reply

ICMP echo (ping) reply message structure, same as icmp_echo_request

◆ icmp_info_reply

ICMP information reply message structure, same as icmp_info_request

◆ icmp_router_solicitation

ICMP router solicitation message structure, same as icmphdr

◆ icmp_source_quench

ICMP source quence message structure, same as icmp_time_exceeded

◆ icmp_timestamp_reply

ICMP timestamp reply message structure, same as icmp_timestamp_request

◆ MBufRawPacketVector

A vector of pointers to MBufRawPacket

◆ OnDpdkPacketsArriveCallback

pcpp::OnDpdkPacketsArriveCallback

A callback that is called when a burst of packets are captured by DpdkDevice

Parameters
[in]packetsA pointer to an array of MBufRawPacket
[in]numOfPacketsThe length of the array
[in]threadIdThe thread/core ID who captured the packets
[in]deviceA pointer to the DpdkDevice who captured the packets
[in]userCookieThe user cookie assigned by the user in DpdkDevice::startCaptureSingleThread() or DpdkDevice::startCaptureMultiThreads

◆ OnPacketArrivesCallback

using pcpp::OnPacketArrivesCallback = typedef std::function<void(RawPacket*, PcapLiveDevice*, void*)>

A callback that is called when a packet is captured by PcapLiveDevice

Parameters
[in]packetA pointer to the raw packet
[in]deviceA pointer to the PcapLiveDevice instance
[in]userCookieA pointer to the object put by the user when packet capturing stared

◆ OnPacketArrivesStopBlocking

using pcpp::OnPacketArrivesStopBlocking = typedef std::function<bool(RawPacket*, PcapLiveDevice*, void*)>

A callback that is called when a packet is captured by PcapLiveDevice

Parameters
[in]packetA pointer to the raw packet
[in]deviceA pointer to the PcapLiveDevice instance
[in]userCookieA pointer to the object put by the user when packet capturing stared
Returns
True when main thread should stop blocking or false otherwise

◆ OnStatsUpdateCallback

using pcpp::OnStatsUpdateCallback = typedef std::function<void(IPcapDevice::PcapStats&, void*)>

A callback that is called periodically for stats collection if user asked to start packet capturing with periodic stats collection

Parameters
[in]statsA reference to the most updated stats
[in]userCookieA pointer to the object put by the user when packet capturing stared

◆ OrFilter

A class for connecting several filters into one filter with logical "or" between them. For example: if the 2 filters are: "IPv4 address = x.x.x.x" + "TCP port dst = 80", then the new filter will be: "IPv4 address = x.x.x.x _OR_ TCP port dst = 80"

This class follows the composite design pattern.

For deeper understanding of the filter concept please refer to PcapFilter.h

◆ ProtocolType

Representing all protocols supported by PcapPlusPlus

◆ ProtocolTypeFamily

Representing a family of protocols

Enumeration Type Documentation

◆ ArpMessageType

enum pcpp::ArpMessageType
strong

An enum representing the ARP message type.

Enumerator
Unknown 

Unknown ARP message type.

Request 

ARP request.

Reply 

ARP reply.

GratuitousRequest 

Gratuitous ARP request.

GratuitousReply 

Gratuitous ARP reply.

◆ ArpOpcode

An enum for ARP message type.

Enumerator
ARP_REQUEST 

ARP request.

ARP_REPLY 

ARP reply (response)

◆ Asn1TagClass

enum pcpp::Asn1TagClass : uint8_t
strong

An enum for representing ASN.1 tag class.

Enumerator
Universal 

The Universal tag class.

Application 

The Application tag class.

ContextSpecific 

The Context-Specific tag class.

Private 

The Private tag class.

◆ Asn1UniversalTagType

enum pcpp::Asn1UniversalTagType : uint8_t
strong

An enum for representing ASN.1 Universal tag types.

Enumerator
EndOfContent 

The reserved identifier for the End-of-Contents marker in an indefinite length encoding.

Boolean 

The universal tag type for Boolean.

Integer 

The universal tag type for Integer.

BitString 

The universal tag type for Bit String.

OctetString 

The universal tag type for Octet String.

Null 

The universal tag type for Null.

ObjectIdentifier 

The universal tag type for Object Identifier.

ObjectDescriptor 

The universal tag type for Object Descriptor.

External 

The universal tag type for External.

Real 

The universal tag type for Real.

Enumerated 

The universal tag type for Enumerated.

EmbeddedPDV 

The universal tag type for Embedded-PDV.

UTF8String 

The universal tag type for UTF8 String.

RelativeObjectIdentifier 

The universal tag type for Relative Object Identifier.

Time 

The universal tag type for Time.

Reserved 

A reserved value.

Sequence 

The universal tag type Sequence.

Set 

The universal tag type for Set.

NumericString 

The universal tag type for Numeric String.

PrintableString 

The universal tag type for Printable String.

T61String 

The universal tag type for T61String.

VideotexString 

The universal tag type for Videotex String.

IA5String 

The universal tag type for IA5String.

UTCTime 

The universal tag type for UTC time.

GeneralizedTime 

The universal tag type for Generalized time.

GraphicString 

The universal tag type for GraphicString.

VisibleString 

The universal tag type for VisibleString.

GeneralString 

The universal tag type for GeneralString.

UniversalString 

The universal tag type for UniversalString.

CharacterString 

The universal tag type for CharacterString.

BMPString 

The universal tag type for BMPString.

Date 

The universal tag type for Date.

TimeOfDay 

The universal tag type for Time of Day.

DateTime 

The universal tag type for Date-Time.

Duration 

The universal tag type for Duration.

ObjectIdentifierIRI 

The universal tag type for Object Identifier Internationalized Resource Identifier (IRI)

RelativeObjectIdentifierIRI 

The universal tag type for Relative Object Identifier Internationalized Resource Identifier (IRI)

NotApplicable 

A non-applicable value.

◆ BootpOpCodes

BootP opcodes.

Enumerator
DHCP_BOOTREQUEST 

BootP request.

DHCP_BOOTREPLY 

BootP reply.

◆ CompositeLogicFilterOp

Supported composite logic filter operators enum.

Enumerator
AND 

Logical AND operation.

OR 

Logical OR operation.

◆ DhcpMessageType

DHCP message types.

Enumerator
DHCP_UNKNOWN_MSG_TYPE 

Unknown message type.

DHCP_DISCOVER 

Discover message type.

DHCP_OFFER 

Offer message type.

DHCP_REQUEST 

Request message type.

DHCP_DECLINE 

Decline message type.

DHCP_ACK 

Acknowledge message type.

DHCP_NAK 

Non-acknowledge message type.

DHCP_RELEASE 

Release message type.

DHCP_INFORM 

Inform message type.

◆ DhcpOptionTypes

DHCP option types.

Enumerator
DHCPOPT_UNKNOWN 

Unknown option type.

DHCPOPT_PAD 

Pad.

DHCPOPT_SUBNET_MASK 

Subnet Mask Value.

DHCPOPT_TIME_OFFSET 

Time Offset in Seconds from UTC.

DHCPOPT_ROUTERS 

N/4 Router addresses.

DHCPOPT_TIME_SERVERS 

N/4 Timeserver addresses.

DHCPOPT_NAME_SERVERS 

N/4 IEN-116 Server addresses.

DHCPOPT_DOMAIN_NAME_SERVERS 

N/4 DNS Server addresses.

DHCPOPT_LOG_SERVERS 

N/4 Logging Server addresses.

DHCPOPT_QUOTES_SERVERS 

N/4 Quotes Server addresses.

DHCPOPT_LPR_SERVERS 

N/4 Quotes Server addresses.

DHCPOPT_IMPRESS_SERVERS 

N/4 Quotes Server addresses.

DHCPOPT_RESOURCE_LOCATION_SERVERS 

N/4 RLP Server addresses.

DHCPOPT_HOST_NAME 

Hostname string.

DHCPOPT_BOOT_SIZE 

Size of boot file in 512 byte chunks.

DHCPOPT_MERIT_DUMP 

Client to dump and name the file to dump it to.

DHCPOPT_DOMAIN_NAME 

The DNS domain name of the client.

DHCPOPT_SWAP_SERVER 

Swap Server address.

DHCPOPT_ROOT_PATH 

Path name for root disk.

DHCPOPT_EXTENSIONS_PATH 

Path name for more BOOTP info.

DHCPOPT_IP_FORWARDING 

Enable/Disable IP Forwarding.

DHCPOPT_NON_LOCAL_SOURCE_ROUTING 

Enable/Disable Source Routing.

DHCPOPT_POLICY_FILTER 

Routing Policy Filters.

DHCPOPT_MAX_DGRAM_REASSEMBLY 

Max Datagram Reassembly Size.

DEFAULT_IP_TTL 

Default IP Time to Live.

DHCPOPT_PATH_MTU_AGING_TIMEOUT 

Path MTU Aging Timeout.

PATH_MTU_PLATEAU_TABLE 

Path MTU Plateau Table.

DHCPOPT_INTERFACE_MTU 

Interface MTU Size.

DHCPOPT_ALL_SUBNETS_LOCAL 

All Subnets are Local.

DHCPOPT_BROADCAST_ADDRESS 

Broadcast Address.

DHCPOPT_PERFORM_MASK_DISCOVERY 

Perform Mask Discovery.

DHCPOPT_MASK_SUPPLIER 

Provide Mask to Others.

DHCPOPT_ROUTER_DISCOVERY 

Perform Router Discovery.

DHCPOPT_ROUTER_SOLICITATION_ADDRESS 

Router Solicitation Address.

DHCPOPT_STATIC_ROUTES 

Static Routing Table.

DHCPOPT_TRAILER_ENCAPSULATION 

Trailer Encapsulation.

DHCPOPT_ARP_CACHE_TIMEOUT 

ARP Cache Timeout.

DHCPOPT_IEEE802_3_ENCAPSULATION 

IEEE802.3 Encapsulation.

DHCPOPT_DEFAULT_TCP_TTL 

Default TCP Time to Live.

DHCPOPT_TCP_KEEPALIVE_INTERVAL 

TCP Keepalive Interval.

DHCPOPT_TCP_KEEPALIVE_GARBAGE 

TCP Keepalive Garbage.

DHCPOPT_NIS_DOMAIN 

NIS Domain Name.

DHCPOPT_NIS_SERVERS 

NIS Server Addresses.

DHCPOPT_NTP_SERVERS 

NTP Server Addresses.

DHCPOPT_VENDOR_ENCAPSULATED_OPTIONS 

Vendor Specific Information.

DHCPOPT_NETBIOS_NAME_SERVERS 

NETBIOS Name Servers.

DHCPOPT_NETBIOS_DD_SERVER 

NETBIOS Datagram Distribution.

DHCPOPT_NETBIOS_NODE_TYPE 

NETBIOS Node Type.

DHCPOPT_NETBIOS_SCOPE 

NETBIOS Scope.

DHCPOPT_FONT_SERVERS 

X Window Font Server.

DHCPOPT_X_DISPLAY_MANAGER 

X Window Display Manager.

DHCPOPT_DHCP_REQUESTED_ADDRESS 

Requested IP Address.

DHCPOPT_DHCP_LEASE_TIME 

IP Address Lease Time.

DHCPOPT_DHCP_OPTION_OVERLOAD 

Overload "sname" or "file".

DHCPOPT_DHCP_MESSAGE_TYPE 

DHCP Message Type.

DHCPOPT_DHCP_SERVER_IDENTIFIER 

DHCP Server Identification.

DHCPOPT_DHCP_PARAMETER_REQUEST_LIST 

Parameter Request List.

DHCPOPT_DHCP_MESSAGE 

DHCP Error Message.

DHCPOPT_DHCP_MAX_MESSAGE_SIZE 

DHCP Maximum Message Size.

DHCPOPT_DHCP_RENEWAL_TIME 

DHCP Renewal (T1) Time.

DHCPOPT_DHCP_REBINDING_TIME 

DHCP Rebinding (T2) Time.

DHCPOPT_VENDOR_CLASS_IDENTIFIER 

Class Identifier.

DHCPOPT_DHCP_CLIENT_IDENTIFIER 

Class Identifier.

DHCPOPT_NWIP_DOMAIN_NAME 

NetWare/IP Domain Name.

DHCPOPT_NWIP_SUBOPTIONS 

NetWare/IP sub Options.

DHCPOPT_NIS_DOMAIN_NAME 

NIS+ v3 Client Domain Name.

DHCPOPT_NIS_SERVER_ADDRESS 

NIS+ v3 Server Addresses.

DHCPOPT_TFTP_SERVER_NAME 

TFTP Server Name.

DHCPOPT_BOOTFILE_NAME 

Boot File Name.

DHCPOPT_HOME_AGENT_ADDRESS 

Home Agent Addresses.

DHCPOPT_SMTP_SERVER 

Simple Mail Server (SMTP) Addresses.

DHCPOPT_POP3_SERVER 

Post Office (POP3) Server Addresses.

DHCPOPT_NNTP_SERVER 

Network News (NNTP) Server Addresses.

DHCPOPT_WWW_SERVER 

WWW Server Addresses.

DHCPOPT_FINGER_SERVER 

Finger Server Addresses.

DHCPOPT_IRC_SERVER 

Chat (IRC) Server Addresses.

DHCPOPT_STREETTALK_SERVER 

StreetTalk Server Addresses.

DHCPOPT_STDA_SERVER 

ST Directory Assist. Addresses.

DHCPOPT_USER_CLASS 

User Class Information.

DHCPOPT_DIRECTORY_AGENT 

Directory Agent Information.

DHCPOPT_SERVICE_SCOPE 

Service Location Agent Scope.

DHCPOPT_RAPID_COMMIT 

Rapid Commit.

DHCPOPT_FQDN 

Fully Qualified Domain Name.

DHCPOPT_DHCP_AGENT_OPTIONS 

Relay Agent Information.

DHCPOPT_ISNS 

Internet Storage Name Service.

DHCPOPT_NDS_SERVERS 

Novell Directory Services.

DHCPOPT_NDS_TREE_NAME 

Novell Directory Services.

DHCPOPT_NDS_CONTEXT 

Novell Directory Services.

DHCPOPT_BCMCS_CONTROLLER_DOMAIN_NAME_LIST 

BCMCS Controller Domain Name list.

DHCPOPT_BCMCS_CONTROLLER_IPV4_ADDRESS 

BCMCS Controller IPv4 address option.

DHCPOPT_AUTHENTICATION 

Authentication.

DHCPOPT_CLIENT_LAST_TXN_TIME 

Client Last Transaction Time.

DHCPOPT_ASSOCIATED_IP 

Associated IP.

DHCPOPT_CLIENT_SYSTEM 

Client System Architecture.

DHCPOPT_CLIENT_NDI 

Client Network Device Interface.

DHCPOPT_LDAP 

Lightweight Directory Access Protocol [.

DHCPOPT_UUID_GUID 

UUID/GUID-based Client Identifier.

DHCPOPT_USER_AUTH 

Open Group's User Authentication.

DHCPOPT_GEOCONF_CIVIC 

GEOCONF_CIVIC.

DHCPOPT_PCODE 

IEEE 1003.1 TZ String.

DHCPOPT_TCODE 

Reference to the TZ Database.

DHCPOPT_NETINFO_ADDRESS 

NetInfo Parent Server Address.

DHCPOPT_NETINFO_TAG 

NetInfo Parent Server Tag.

DHCPOPT_URL 

URL.

DHCPOPT_AUTO_CONFIG 

DHCP Auto-Configuration.

DHCPOPT_NAME_SERVICE_SEARCH 

Name Service Search.

DHCPOPT_SUBNET_SELECTION 

Subnet Selection Option.

DHCPOPT_DOMAIN_SEARCH 

DNS Domain Search List.

DHCPOPT_SIP_SERVERS 

SIP Servers DHCP Option.

DHCPOPT_CLASSLESS_STATIC_ROUTE 

Classless Static Route Option.

DHCPOPT_CCC 

CableLabs Client Configuration.

DHCPOPT_GEOCONF 

GeoConf Option.

DHCPOPT_V_I_VENDOR_CLASS 

Vendor-Identifying Vendor Class.

DHCPOPT_V_I_VENDOR_OPTS 

Vendor-Identifying Vendor-Specific Information.

DHCPOPT_OPTION_PANA_AGENT 

OPTION_PANA_AGENT.

DHCPOPT_OPTION_V4_LOST 

OPTION_V4_LOST.

DHCPOPT_OPTION_CAPWAP_AC_V4 

CAPWAP Access Controller addresses.

DHCPOPT_OPTION_IPV4_ADDRESS_MOS 

A Series Of Suboptions.

DHCPOPT_OPTION_IPV4_FQDN_MOS 

A Series Of Suboptions.

DHCPOPT_SIP_UA_CONFIG 

List of domain names to search for SIP User Agent Configuration.

DHCPOPT_OPTION_IPV4_ADDRESS_ANDSF 

ANDSF IPv4 Address Option for DHCPv4.

DHCPOPT_GEOLOC 

Geospatial Location with Uncertainty [RF.

DHCPOPT_FORCERENEW_NONCE_CAPABLE 

Forcerenew Nonce Capable.

DHCPOPT_RDNSS_SELECTION 

Information for selecting RDNSS.

DHCPOPT_STATUS_CODE 

Status code and optional N byte text message describing status.

DHCPOPT_BASE_TIME 

Absolute time (seconds since Jan 1, 1970) message was sent.

DHCPOPT_START_TIME_OF_STATE 

Number of seconds in the past when client entered current state.

DHCPOPT_QUERY_START_TIME 

Absolute time (seconds since Jan 1, 1970) for beginning of query.

DHCPOPT_QUERY_END_TIME 

Absolute time (seconds since Jan 1, 1970) for end of query.

DHCPOPT_DHCP_STATE 

State of IP address.

DHCPOPT_DATA_SOURCE 

Indicates information came from local or remote server.

DHCPOPT_OPTION_V4_PCP_SERVER 

Includes one or multiple lists of PCP server IP addresses; each list is treated as a separate PCP server.

DHCPOPT_OPTION_V4_PORTPARAMS 

This option is used to configure a set of ports bound to a shared IPv4 address.

DHCPOPT_CAPTIVE_PORTAL 

DHCP Captive-Portal.

DHCPOPT_OPTION_MUD_URL_V4 

Manufacturer Usage Descriptions.

DHCPOPT_ETHERBOOT 

Etherboot.

DHCPOPT_IP_TELEPHONE 

IP Telephone.

DHCPOPT_PXELINUX_MAGIC 

Magic string = F1:00:74:7E.

DHCPOPT_CONFIGURATION_FILE 

Configuration file.

DHCPOPT_PATH_PREFIX 

Path Prefix Option.

DHCPOPT_REBOOT_TIME 

Reboot Time.

DHCPOPT_OPTION_6RD 

OPTION_6RD with N/4 6rd BR addresses.

DHCPOPT_OPTION_V4_ACCESS_DOMAIN 

Access Network Domain Name.

DHCPOPT_SUBNET_ALLOCATION 

Subnet Allocation Option.

DHCPOPT_VIRTUAL_SUBNET_SELECTION 

Virtual Subnet Selection (VSS) Option.

DHCPOPT_END 

End (last option)

◆ DhcpV6MessageType

DHCPv6 message types.

Enumerator
DHCPV6_UNKNOWN_MSG_TYPE 

Unknown message type.

DHCPV6_SOLICIT 

Solicit message type (Client to Server)

DHCPV6_ADVERTISE 

Advertise message type (Server to Client)

DHCPV6_REQUEST 

Request message type (Client to Server)

DHCPV6_CONFIRM 

Confirm message type (Client to Server)

DHCPV6_RENEW 

Renew message type (Client to Server)

DHCPV6_REBIND 

Rebind message type (Client to Server)

DHCPV6_REPLY 

Reply message type (Server to Client)

DHCPV6_RELEASE 

Release message type (Client to Server)

DHCPV6_DECLINE 

Decline message type (Client to Server)

DHCPV6_RECONFIGURE 

Reconfigure message type (Server to Client)

DHCPV6_INFORMATION_REQUEST 

Information-Request message type (Client to Server)

DHCPV6_RELAY_FORWARD 

Relay-Forward message type (Relay agent to Server)

DHCPV6_RELAY_REPLY 

Relay-Reply message type (Server to Relay agent)

◆ DhcpV6OptionType

DHCPv6 option types. Resources for more information:

Enumerator
DHCPV6_OPT_UNKNOWN 

Unknown option type.

DHCPV6_OPT_CLIENTID 

Client Identifier (DUID of client)

DHCPV6_OPT_SERVERID 

Server Identifier (DUID of server)

DHCPV6_OPT_IA_NA 

Identity Association for Non-temporary addresses.

DHCPV6_OPT_IA_TA 

Identity Association for Temporary addresses.

DHCPV6_OPT_IAADDR 

IA Address option.

DHCPV6_OPT_ORO 

Option Request Option.

DHCPV6_OPT_PREFERENCE 

Preference setting.

DHCPV6_OPT_ELAPSED_TIME 

The amount of time since the client began the current DHCP transaction.

DHCPV6_OPT_RELAY_MSG 

The DHCP message being relayed by a relay agent.

DHCPV6_OPT_AUTH 

Authentication information.

DHCPV6_OPT_UNICAST 

Server unicast.

DHCPV6_OPT_STATUS_CODE 

Status code.

DHCPV6_OPT_RAPID_COMMIT 

Rapid commit.

DHCPV6_OPT_USER_CLASS 

User class.

DHCPV6_OPT_VENDOR_CLASS 

Vendor class.

DHCPV6_OPT_VENDOR_OPTS 

Vendor specific information.

DHCPV6_OPT_INTERFACE_ID 

Interface ID.

DHCPV6_OPT_RECONF_MSG 

Reconfigure Message.

DHCPV6_OPT_RECONF_ACCEPT 

Reconfigure Accept.

DHCPV6_OPT_SIP_SERVERS_D 

SIP Servers Domain Name.

DHCPV6_OPT_SIP_SERVERS_A 

SIP Servers IPv6 Address List.

DHCPV6_OPT_DNS_SERVERS 

DNS Recursive Name Server.

DHCPV6_OPT_DOMAIN_LIST 

Domain Search List.

DHCPV6_OPT_IA_PD 

Identity Association for Prefix Delegation.

DHCPV6_OPT_IAPREFIX 

IA_PD Prefix.

DHCPV6_OPT_NIS_SERVERS 

Network Information Service (NIS) Servers.

DHCPV6_OPT_NISP_SERVERS 

Network Information Service v2 (NIS+) Servers.

DHCPV6_OPT_NIS_DOMAIN_NAME 

Network Information Service (NIS) domain name.

DHCPV6_OPT_NISP_DOMAIN_NAME 

Network Information Service v2 (NIS+) domain name.

DHCPV6_OPT_SNTP_SERVERS 

Simple Network Time Protocol (SNTP) servers.

DHCPV6_OPT_INFORMATION_REFRESH_TIME 

Information Refresh.

DHCPV6_OPT_BCMCS_SERVER_D 

Broadcast and Multicast Service (BCMCS) Domain Name List.

DHCPV6_OPT_BCMCS_SERVER_A 

Broadcast and Multicast Service (BCMCS) IPv6 Address List.

DHCPV6_OPT_GEOCONF_CIVIC 

Geographical location in civic (e.g., postal) format.

DHCPV6_OPT_REMOTE_ID 

Relay Agent Remote ID.

DHCPV6_OPT_SUBSCRIBER_ID 

Relay Agent Subscriber ID.

DHCPV6_OPT_CLIENT_FQDN 

FQDN.

DHCPV6_OPT_PANA_AGENT 

One or more IPv6 addresses associated with PANA (Protocol for carrying Authentication for Network Access) Authentication Agents

DHCPV6_OPT_NEW_POSIX_TIMEZONE 

Time zone to be used by the client in IEEE 1003.1 format.

DHCPV6_OPT_NEW_TZDB_TIMEZONE 

Time zone (TZ) database entry referred to by entry name.

DHCPV6_OPT_ERO 

Relay Agent Echo Request.

DHCPV6_OPT_LQ_QUERY 

Query option.

DHCPV6_OPT_CLIENT_DATA 

Client Data.

DHCPV6_OPT_CLT_TIME 

Client Last Transaction Time.

DHCPV6_OPT_LQ_RELAY_DATA 

Relay data.

DHCPV6_OPT_LQ_CLIENT_LINK 

Client link.

DHCPV6_OPT_MIP6_HNINF 

Mobile IPv6 Home Network Information.

DHCPV6_OPT_MIP6_RELAY 

Mobile IPv6 Relay Agent.

DHCPV6_OPT_V6_LOST 

Location to Service Translation (LoST) server domain name.

DHCPV6_OPT_CAPWAP_AC_V6 

Access Points (CAPWAP) Access Controller IPv6 addresses.

DHCPV6_OPT_RELAY_ID 

DHCPv6 Bulk LeaseQuery.

DHCPV6_OPT_IPH6_ADDRESS_MOS 

List of IPv6 addresses for servers providing particular types of IEEE 802.21 Mobility Service (MoS)

DHCPV6_OPT_IPV6_FQDN_MOS 

List of FQDNs for servers providing particular types of IEEE 802.21 Mobility Service (MoS)

DHCPV6_OPT_NTP_SERVER 

Network Time Protocol (NTP) or Simple NTP (SNTP) Server Location.

DHCPV6_OPT_BOOTFILE_URL 

Boot File Uniform Resource Locator (URL)

DHCPV6_OPT_BOOTFILE_PARAM 

Boot File Parameters.

DHCPV6_OPT_CLIENT_ARCH_TYPE 

Client System Architecture Type.

DHCPV6_OPT_NII 

Client Network Interface Identifier.

DHCPV6_OPT_ERP_LOCAL_DOMAIN_NAME 

ERP Local Domain Name.

DHCPV6_OPT_RELAY_SUPPLIED_OPTIONS 

Relay supplied options.

DHCPV6_OPT_VSS 

Virtual Subnet Selection.

DHCPV6_OPT_CLIENT_LINKLAYER_ADDR 

Client link layer.

DHCPV6_OPT_MUD_URL 

Manufacturer Usage Description.

◆ Direction

An enum that contains direction (source or destination)

Enumerator
SRC 

Source.

DST 

Destination.

SRC_OR_DST 

Source or destination.

◆ DnsClass

An enum for all possible DNS classes.

Enumerator
DNS_CLASS_IN 

Internet class.

DNS_CLASS_IN_QU 

Internet class with QU flag set to True.

DNS_CLASS_CH 

Chaos class.

DNS_CLASS_HS 

Hesiod class.

DNS_CLASS_ANY 

ANY class.

◆ DnsResourceType

An enum for representing the 4 types of possible DNS records.

Enumerator
DnsQueryType 

DNS query record.

DnsAnswerType 

DNS answer record.

DnsAuthorityType 

DNS authority record.

DnsAdditionalType 

DNS additional record.

◆ DnsType

An enum for all possible DNS record types.

Enumerator
DNS_TYPE_A 

IPv4 address record.

DNS_TYPE_NS 

Name Server record.

DNS_TYPE_MD 

Obsolete, replaced by MX.

DNS_TYPE_MF 

Obsolete, replaced by MX.

DNS_TYPE_CNAME 

Canonical name record.

DNS_TYPE_SOA 

Start of Authority record.

DNS_TYPE_MB 

mailbox domain name record

DNS_TYPE_MG 

mail group member record

DNS_TYPE_MR 

mail rename domain name record

DNS_TYPE_NULL_R 

Null record.

DNS_TYPE_WKS 

well known service description record

DNS_TYPE_PTR 

Pointer record.

DNS_TYPE_HINFO 

Host information record.

DNS_TYPE_MINFO 

mailbox or mail list information record

DNS_TYPE_MX 

Mail exchanger record.

DNS_TYPE_TXT 

Text record.

DNS_TYPE_RP 

Responsible person record.

DNS_TYPE_AFSDB 

AFS database record.

DNS_TYPE_X25 

DNS X25 resource record.

DNS_TYPE_ISDN 

Integrated Services Digital Network record.

DNS_TYPE_RT 

Route Through record.

DNS_TYPE_NSAP 

network service access point address record

DNS_TYPE_NSAP_PTR 

network service access point address pointer record

DNS_TYPE_SIG 

Signature record.

DNS_TYPE_KEY 

Key record.

DNS_TYPE_PX 

Mail Mapping Information record.

DNS_TYPE_GPOS 

DNS Geographical Position record.

DNS_TYPE_AAAA 

IPv6 address record.

DNS_TYPE_LOC 

Location record.

DNS_TYPE_NXT 

Obsolete record.

DNS_TYPE_EID 

DNS Endpoint Identifier record.

DNS_TYPE_NIMLOC 

DNS Nimrod Locator record.

DNS_TYPE_SRV 

Service locator record.

DNS_TYPE_ATMA 

Asynchronous Transfer Mode address record.

DNS_TYPE_NAPTR 

Naming Authority Pointer record.

DNS_TYPE_KX 

Key eXchanger record.

DNS_TYPE_CERT 

Certificate record.

DNS_TYPE_A6 

Obsolete, replaced by AAAA type.

DNS_TYPE_DNAM 

Delegation Name record.

DNS_TYPE_SINK 

Kitchen sink record.

DNS_TYPE_OPT 

Option record.

DNS_TYPE_APL 

Address Prefix List record.

DNS_TYPE_DS 

Delegation signer record.

DNS_TYPE_SSHFP 

SSH Public Key Fingerprint record.

DNS_TYPE_IPSECKEY 

IPsec Key record.

DNS_TYPE_RRSIG 

DNSSEC signature record.

DNS_TYPE_NSEC 

Next-Secure record.

DNS_TYPE_DNSKEY 

DNS Key record.

DNS_TYPE_DHCID 

DHCP identifier record.

DNS_TYPE_NSEC3 

NSEC record version 3.

DNS_TYPE_NSEC3PARAM 

NSEC3 parameters.

DNS_TYPE_ALL 

All cached records.

◆ DpdkPMDType

An enum describing all PMD (poll mode driver) types supported by DPDK. For more info about these PMDs please visit the DPDK web-site

Enumerator
PMD_UNKNOWN 

Unknown PMD type.

PMD_BOND 

Link Bonding for 1GbE and 10GbE ports to allow the aggregation of multiple (slave) NICs into a single logical interface

PMD_E1000EM 

Intel E1000 PMD.

PMD_IGB 

Intel 1GbE PMD.

PMD_IGBVF 

Intel 1GbE virtual function PMD.

PMD_ENIC 

Cisco enic (UCS Virtual Interface Card) PMD.

PMD_FM10K 

Intel fm10k PMD.

PMD_I40E 

Intel 40GbE PMD.

PMD_I40EVF 

Intel 40GbE virtual function PMD.

PMD_IXGBE 

Intel 10GbE PMD.

PMD_IXGBEVF 

Intel 10GbE virtual function PMD.

PMD_MLX4 

Mellanox ConnectX-3, ConnectX-3 Pro PMD.

PMD_NULL 

Null PMD.

PMD_PCAP 

pcap file PMD

PMD_RING 

ring-based (memory) PMD

PMD_VIRTIO 

VirtIO PMD.

PMD_VMXNET3 

VMWare VMXNET3 PMD.

PMD_XENVIRT 

Xen Project PMD.

PMD_AF_PACKET 

AF_PACKET PMD.

◆ FileTimestampPrecision

enum pcpp::FileTimestampPrecision : int8_t
strong

An enumeration representing the precision of timestamps in a pcap file. The precision can be Unknown, Micro, or Nano.

Enumerator
Unknown 

Precision is unknown or not set/determined.

Microseconds 

Precision is in microseconds.

Nanoseconds 

Precision is in nanoseconds.

◆ FilterOperator

Supported operators enum.

Enumerator
EQUALS 

Equals.

NOT_EQUALS 

Not equals.

GREATER_THAN 

Greater than.

GREATER_OR_EQUAL 

Greater or equal.

LESS_THAN 

Less than.

LESS_OR_EQUAL 

Less or equal.

◆ GtpV1MessageType

An enum representing the possible GTP v1 message types. All of the message types except for GtpV1_GPDU are considered GTP-C messages. GtpV1_GPDU is considered a GTP-U message

Enumerator
GtpV1_MessageTypeUnknown 

GTPv1 Message Type Unknown.

GtpV1_EchoRequest 

Echo Request.

GtpV1_EchoResponse 

Echo Response.

GtpV1_VersionNotSupported 

Version Not Supported.

GtpV1_NodeAliveRequest 

Node Alive Request.

GtpV1_NodeAliveResponse 

Node Alive Response.

GtpV1_RedirectionRequest 

Redirection Request.

GtpV1_CreatePDPContextRequest 

Create PDP Context Request.

GtpV1_CreatePDPContextResponse 

Create PDP Context Response.

GtpV1_UpdatePDPContextRequest 

Update PDP Context Request.

GtpV1_UpdatePDPContextResponse 

Update PDP Context Response.

GtpV1_DeletePDPContextRequest 

Delete PDP Context Request.

GtpV1_DeletePDPContextResponse 

Delete PDP Context Response.

GtpV1_InitiatePDPContextActivationRequest 

Initiate PDP Context Activation Request.

GtpV1_InitiatePDPContextActivationResponse 

Initiate PDP Context Activation Response.

GtpV1_ErrorIndication 

Error Indication.

GtpV1_PDUNotificationRequest 

PDU Notification Request.

GtpV1_PDUNotificationResponse 

PDU Notification Response.

GtpV1_PDUNotificationRejectRequest 

PDU Notification Reject Request.

GtpV1_PDUNotificationRejectResponse 

PDU Notification Reject Response.

GtpV1_SupportedExtensionsHeaderNotification 

Supported Extensions Header Notification.

GtpV1_SendRoutingforGPRSRequest 

Send Routing for GPRS Request.

GtpV1_SendRoutingforGPRSResponse 

Send Routing for GPRS Response.

GtpV1_FailureReportRequest 

Failure Report Request.

GtpV1_FailureReportResponse 

Failure Report Response.

GtpV1_NoteMSPresentRequest 

Note MS Present Request.

GtpV1_NoteMSPresentResponse 

Note MS Present Response.

GtpV1_IdentificationRequest 

Identification Request.

GtpV1_IdentificationResponse 

Identification Response.

GtpV1_SGSNContextRequest 

SGSN Context Request.

GtpV1_SGSNContextResponse 

SGSN Context Response.

GtpV1_SGSNContextAcknowledge 

SGSN Context Acknowledge.

GtpV1_ForwardRelocationRequest 

Forward Relocation Request.

GtpV1_ForwardRelocationResponse 

Forward Relocation Response.

GtpV1_ForwardRelocationComplete 

Forward Relocation Complete.

GtpV1_RelocationCancelRequest 

Relocation Cancel Request.

GtpV1_RelocationCancelResponse 

Relocation Cancel Response.

GtpV1_ForwardSRNSContext 

Forward SRNS Context.

GtpV1_ForwardRelocationCompleteAcknowledge 

Forward Relocation Complete Acknowledge.

GtpV1_ForwardSRNSContextAcknowledge 

Forward SRNS Context Acknowledge.

GtpV1_UERegistrationRequest 

UE Registration Request.

GtpV1_UERegistrationResponse 

UE Registration Response.

GtpV1_RANInformationRelay 

RAN Information Relay.

GtpV1_MBMSNotificationRequest 

MBMS Notification Request.

GtpV1_MBMSNotificationResponse 

MBMS Notification Response.

GtpV1_MBMSNotificationRejectRequest 

MBMS Notification Reject Request.

GtpV1_MBMSNotificationRejectResponse 

MBMS Notification Reject Response.

GtpV1_CreateMBMSNotificationRequest 

Create MBMS Notification Request.

GtpV1_CreateMBMSNotificationResponse 

Create MBMS Notification Response.

GtpV1_UpdateMBMSNotificationRequest 

Update MBMS Notification Request.

GtpV1_UpdateMBMSNotificationResponse 

Update MBMS Notification Response.

GtpV1_DeleteMBMSNotificationRequest 

Delete MBMS Notification Request.

GtpV1_DeleteMBMSNotificationResponse 

Delete MBMS Notification Response.

GtpV1_MBMSRegistrationRequest 

MBMS Registration Request.

GtpV1_MBMSRegistrationResponse 

MBMS Registration Response.

GtpV1_MBMSDeRegistrationRequest 

MBMS De-Registration Request.

GtpV1_MBMSDeRegistrationResponse 

MBMS De-Registration Response.

GtpV1_MBMSSessionStartRequest 

MBMS Session Start Request.

GtpV1_MBMSSessionStartResponse 

MBMS Session Start Response.

GtpV1_MBMSSessionStopRequest 

MBMS Session Stop Request.

GtpV1_MBMSSessionStopResponse 

MBMS Session Stop Response.

GtpV1_MBMSSessionUpdateRequest 

MBMS Session Update Request.

GtpV1_MBMSSessionUpdateResponse 

MBMS Session Update Response.

GtpV1_MSInfoChangeRequest 

MS Info Change Request.

GtpV1_MSInfoChangeResponse 

MS Info Change Response.

GtpV1_DataRecordTransferRequest 

Data Record Transfer Request.

GtpV1_DataRecordTransferResponse 

Data Record Transfer Response.

GtpV1_EndMarker 

End Marker.

GtpV1_GPDU 

G-PDU.

◆ HttpVersion

An enum for HTTP version.

Enumerator
ZeroDotNine 

HTTP/0.9.

OneDotZero 

HTTP/1.0.

OneDotOne 

HTTP/1.1.

HttpVersionUnknown 

Unknown HTTP version.

◆ IcmpDestUnreachableCodes

An enum for all possible codes for a destination unreachable message type Documentation is taken from Wikipedia: https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol

Enumerator
IcmpNetworkUnreachable 

Network unreachable error.

IcmpHostUnreachable 

Host unreachable error.

IcmpProtocolUnreachable 

Protocol unreachable error (the designated transport protocol is not supported)

IcmpPortUnreachable 

Port unreachable error (the designated protocol is unable to inform the host of the incoming message)

IcmpDatagramTooBig 

The datagram is too big. Packet fragmentation is required but the 'don't fragment' (DF) flag is on.

IcmpSourceRouteFailed 

Source route failed error.

IcmpDestinationNetworkUnknown 

Destination network unknown error.

IcmpDestinationHostUnknown 

Destination host unknown error.

IcmpSourceHostIsolated 

Source host isolated error.

IcmpDestinationNetworkProhibited 

The destination network is administratively prohibited.

IcmpDestinationHostProhibited 

The destination host is administratively prohibited.

IcmpNetworkUnreachableForTypeOfService 

The network is unreachable for Type Of Service.

IcmpHostUnreachableForTypeOfService 

The host is unreachable for Type Of Service.

IcmpCommunicationProhibited 

Communication administratively prohibited (administrative filtering prevents packet from being forwarded)

IcmpHostPrecedenceViolation 

Host precedence violation (indicates the requested precedence is not permitted for the combination of host or network and port)

IcmpPrecedenceCutoff 

Precedence cutoff in effect (precedence of datagram is below the level set by the network administrators)

◆ IcmpMessageType

An enum of all supported ICMP message types.

Enumerator
ICMP_ECHO_REPLY 

ICMP echo (ping) reply message.

ICMP_DEST_UNREACHABLE 

ICMP destination unreachable message.

ICMP_SOURCE_QUENCH 

ICMP source quench message.

ICMP_REDIRECT 

ICMP redirect message.

ICMP_ECHO_REQUEST 

ICMP echo (ping) request message.

ICMP_ROUTER_ADV 

ICMP router advertisement message.

ICMP_ROUTER_SOL 

ICMP router soliciatation message.

ICMP_TIME_EXCEEDED 

ICMP time-to-live excceded message.

ICMP_PARAM_PROBLEM 

ICMP parameter problem message.

ICMP_TIMESTAMP_REQUEST 

ICMP timestamp request message.

ICMP_TIMESTAMP_REPLY 

ICMP timestamp reply message.

ICMP_INFO_REQUEST 

ICMP information request message.

ICMP_INFO_REPLY 

ICMP information reply message.

ICMP_ADDRESS_MASK_REQUEST 

ICMP address mask request message.

ICMP_ADDRESS_MASK_REPLY 

ICMP address mask reply message.

ICMP_UNSUPPORTED 

ICMP message type unsupported by PcapPlusPlus.

◆ ICMPv6MessageType

enum pcpp::ICMPv6MessageType : int
strong

An enum representing the available ICMPv6 message types.

Enumerator
ICMPv6_UNKNOWN_MESSAGE 

Unknown ICMPv6 message.

ICMPv6_DESTINATION_UNREACHABLE 

Destination Unreachable Message.

ICMPv6_PACKET_TOO_BIG 

Packet Too Big Message.

ICMPv6_TIME_EXCEEDED 

Time Exceeded Message.

ICMPv6_PARAMETER_PROBLEM 

Parameter Problem Message.

ICMPv6_PRIVATE_EXPERIMENTATION1 

Private Experimentation Message.

ICMPv6_PRIVATE_EXPERIMENTATION2 

Private Experimentation Message.

ICMPv6_RESERVED_EXPANSION_ERROR 

Reserved for expansion of ICMPv6 error messages.

ICMPv6_ECHO_REQUEST 

Echo Request Message.

ICMPv6_ECHO_REPLY 

Echo Reply Message.

ICMPv6_MULTICAST_LISTENER_QUERY 

Multicast Listener Query Message.

ICMPv6_MULTICAST_LISTENER_REPORT 

Multicast Listener Report Message.

ICMPv6_MULTICAST_LISTENER_DONE 

Multicast Listener Done Message.

ICMPv6_ROUTER_SOLICITATION 

Router Solicitation Message.

ICMPv6_ROUTER_ADVERTISEMENT 

Router Advertisement Message.

ICMPv6_NEIGHBOR_SOLICITATION 

Neighbor Solicitation Message.

ICMPv6_NEIGHBOR_ADVERTISEMENT 

Neighbor Advertisement Message.

ICMPv6_REDIRECT_MESSAGE 

Redirect Message.

ICMPv6_ROUTER_RENUMBERING 

Router Renumbering Message.

ICMPv6_ICMP_NODE_INFORMATION_QUERY 

Node Information Query Message.

ICMPv6_ICMP_NODE_INFORMATION_RESPONSE 

Node Information Reply Message.

ICMPv6_INVERSE_NEIGHBOR_DISCOVERY_SOLICITATION_MESSAGE 

Inverse Neighbor Discovery Solicitation Message.

ICMPv6_INVERSE_NEIGHBOR_DISCOVERY_ADVERTISEMENT_MESSAGE 

Inverse Neighbor Discovery Advertisement Message.

ICMPv6_MULTICAST_LISTENER_DISCOVERY_REPORTS 

Multicast Listener Report Message.

ICMPv6_HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_MESSAGE 

Home Agent Address Discovery Request Message.

ICMPv6_HOME_AGENT_ADDRESS_DISCOVERY_REPLY_MESSAGE 

Home Agent Address Discovery Reply Message.

ICMPv6_MOBILE_PREFIX_SOLICITATION 

Mobile Prefix Solicitation Message.

ICMPv6_MOBILE_PREFIX_ADVERTISEMENT 

Mobile Prefix Advertisement Message.

ICMPv6_CERTIFICATION_PATH_SOLICITATION 

Certification Path Solicitation Message.

ICMPv6_CERTIFICATION_PATH_ADVERTISEMENT 

Certification Path Advertisement Message.

ICMPv6_EXPERIMENTAL_MOBILITY 

ICMP Experimental Mobility Subtype Format and Registry Message.

ICMPv6_MULTICAST_ROUTER_ADVERTISEMENT 

Multicast Router Advertisement Message.

ICMPv6_MULTICAST_ROUTER_SOLICITATION 

Multicast Router Solicitation Message.

ICMPv6_MULTICAST_ROUTER_TERMINATION 

Multicast Router Termination Message.

ICMPv6_RPL_CONTROL_MESSAGE 

RPL Control Message.

ICMPv6_PRIVATE_EXPERIMENTATION3 

Private Experimentation Message.

ICMPv6_PRIVATE_EXPERIMENTATION4 

Private Experimentation Message.

ICMPv6_RESERVED_EXPANSION_INFORMATIONAL 

Reserved for expansion of ICMPv6 informational messages.

◆ IgmpType

IGMP message types.

Enumerator
IgmpType_Unknown 

Unknown message type.

IgmpType_MembershipQuery 

IGMP Membership Query.

IgmpType_MembershipReportV1 

IGMPv1 Membership Report.

IgmpType_DVMRP 

DVMRP.

IgmpType_P1Mv1 

PIM version 1.

IgmpType_CiscoTrace 

Cisco Trace Messages.

IgmpType_MembershipReportV2 

IGMPv2 Membership Report.

IgmpType_LeaveGroup 

IGMPv2 Leave Group.

IgmpType_MulticastTracerouteResponse 

Multicast Traceroute Response.

IgmpType_MulticastTraceroute 

Multicast Traceroute.

IgmpType_MembershipReportV3 

IGMPv3 Membership Report.

IgmpType_MulticastRouterAdvertisement 

MRD, Multicast Router Advertisement.

IgmpType_MulticastRouterSolicitation 

MRD, Multicast Router Solicitation.

IgmpType_MulticastRouterTermination 

MRD, Multicast Router Termination.

◆ IPProtocolTypes

An enum for all possible IPv4 and IPv6 protocol types.

Enumerator
PACKETPP_IPPROTO_IP 

Dummy protocol for TCP.

PACKETPP_IPPROTO_HOPOPTS 

IPv6 Hop-by-Hop options.

PACKETPP_IPPROTO_ICMP 

Internet Control Message Protocol.

PACKETPP_IPPROTO_IGMP 

Internet Gateway Management Protocol.

PACKETPP_IPPROTO_IPIP 

IPIP tunnels (older KA9Q tunnels use 94)

PACKETPP_IPPROTO_TCP 

Transmission Control Protocol.

PACKETPP_IPPROTO_EGP 

Exterior Gateway Protocol.

PACKETPP_IPPROTO_PUP 

PUP protocol.

PACKETPP_IPPROTO_UDP 

User Datagram Protocol.

PACKETPP_IPPROTO_IDP 

XNS IDP protocol.

PACKETPP_IPPROTO_IPV6 

IPv6 header.

PACKETPP_IPPROTO_ROUTING 

IPv6 Routing header.

PACKETPP_IPPROTO_FRAGMENT 

IPv6 fragmentation header.

PACKETPP_IPPROTO_GRE 

GRE protocol.

PACKETPP_IPPROTO_ESP 

encapsulating security payload

PACKETPP_IPPROTO_AH 

authentication header

PACKETPP_IPPROTO_ICMPV6 

ICMPv6.

PACKETPP_IPPROTO_NONE 

IPv6 no next header.

PACKETPP_IPPROTO_DSTOPTS 

IPv6 Destination options.

PACKETPP_IPPROTO_VRRP 

VRRP protocol.

PACKETPP_IPPROTO_RAW 

Raw IP packets.

PACKETPP_IPPROTO_MAX 

Maximum value.

◆ IPv4OptionTypes

An enum for supported IPv4 option types.

Enumerator
IPV4OPT_EndOfOptionsList 

End of Options List.

IPV4OPT_NOP 

No Operation.

IPV4OPT_RecordRoute 

Record Route.

IPV4OPT_MTUProbe 

MTU Probe.

IPV4OPT_MTUReply 

MTU Reply.

IPV4OPT_QuickStart 

Quick-Start.

IPV4OPT_Timestamp 

Timestamp.

IPV4OPT_Traceroute 

Traceroute.

IPV4OPT_Security 

Security.

IPV4OPT_LooseSourceRoute 

Loose Source Route.

IPV4OPT_ExtendedSecurity 

Extended Security.

IPV4OPT_CommercialSecurity 

Commercial Security.

IPV4OPT_StreamID 

Stream ID.

IPV4OPT_StrictSourceRoute 

Strict Source Route.

IPV4OPT_ExtendedInternetProtocol 

Extended Internet Protocol.

IPV4OPT_AddressExtension 

Address Extension.

IPV4OPT_RouterAlert 

Router Alert.

IPV4OPT_SelectiveDirectedBroadcast 

Selective Directed Broadcast.

IPV4OPT_DynamicPacketState 

Dynamic Packet State.

IPV4OPT_UpstreamMulticastPkt 

Upstream Multicast Pkt.

IPV4OPT_Unknown 

Unknown IPv4 option.

◆ LinkLayerType

An enum describing all known link layer type. Taken from: http://www.tcpdump.org/linktypes.html .

Enumerator
LINKTYPE_NULL 

BSD loopback encapsulation.

LINKTYPE_ETHERNET 

IEEE 802.3 Ethernet.

LINKTYPE_AX25 

AX.25 packet.

LINKTYPE_IEEE802_5 

IEEE 802.5 Token Ring.

LINKTYPE_ARCNET_BSD 

ARCNET Data Packets.

LINKTYPE_SLIP 

SLIP, encapsulated with a LINKTYPE_SLIP header.

LINKTYPE_PPP 

PPP, as per RFC 1661 and RFC 1662.

LINKTYPE_FDDI 

FDDI, as specified by ANSI INCITS 239-1994.

LINKTYPE_DLT_RAW1 

Raw IP.

LINKTYPE_DLT_RAW2 

Raw IP (OpenBSD)

LINKTYPE_PPP_HDLC 

PPP in HDLC-like framing, as per RFC 1662, or Cisco PPP with HDLC framing, as per section 4.3.1 of RFC 1547.

LINKTYPE_PPP_ETHER 

PPPoE.

LINKTYPE_ATM_RFC1483 

RFC 1483 LLC/SNAP-encapsulated ATM.

LINKTYPE_RAW 

Raw IP.

LINKTYPE_C_HDLC 

Cisco PPP with HDLC framing.

LINKTYPE_IEEE802_11 

IEEE 802.11 wireless LAN.

LINKTYPE_FRELAY 

Frame Relay.

LINKTYPE_LOOP 

OpenBSD loopback encapsulation.

LINKTYPE_LINUX_SLL 

Linux "cooked" capture encapsulation.

LINKTYPE_LTALK 

Apple LocalTalk.

LINKTYPE_PFLOG 

OpenBSD pflog.

LINKTYPE_IEEE802_11_PRISM 

Prism monitor mode information followed by an 802.11 header.

LINKTYPE_IP_OVER_FC 

RFC 2625 IP-over-Fibre Channel.

LINKTYPE_SUNATM 

ATM traffic, encapsulated as per the scheme used by SunATM devices.

LINKTYPE_IEEE802_11_RADIOTAP 

Radiotap link-layer information followed by an 802.11 header.

LINKTYPE_ARCNET_LINUX 

ARCNET Data Packets, as described by the ARCNET Trade Association standard ATA 878.1-1999.

LINKTYPE_APPLE_IP_OVER_IEEE1394 

Apple IP-over-IEEE 1394 cooked header.

LINKTYPE_MTP2_WITH_PHDR 

Signaling System 7 Message Transfer Part Level 2.

LINKTYPE_MTP2 

Signaling System 7 Message Transfer Part Level 2.

LINKTYPE_MTP3 

Signaling System 7 Message Transfer Part Level 3.

LINKTYPE_SCCP 

Signaling System 7 Signalling Connection Control Part.

LINKTYPE_DOCSIS 

Signaling System 7 Signalling Connection Control Part.

LINKTYPE_LINUX_IRDA 

Linux-IrDA packets.

LINKTYPE_USER0 

Reserved for private use.

LINKTYPE_USER1 

Reserved for private use.

LINKTYPE_USER2 

Reserved for private use.

LINKTYPE_USER3 

Reserved for private use.

LINKTYPE_USER4 

Reserved for private use.

LINKTYPE_USER5 

Reserved for private use.

LINKTYPE_USER6 

Reserved for private use.

LINKTYPE_USER7 

Reserved for private use.

LINKTYPE_USER8 

Reserved for private use.

LINKTYPE_USER9 

Reserved for private use.

LINKTYPE_USER10 

Reserved for private use.

LINKTYPE_USER11 

Reserved for private use.

LINKTYPE_USER12 

Reserved for private use.

LINKTYPE_USER13 

Reserved for private use.

LINKTYPE_USER14 

Reserved for private use.

LINKTYPE_USER15 

Reserved for private use.

LINKTYPE_IEEE802_11_AVS 

AVS monitor mode information followed by an 802.11 header.

LINKTYPE_BACNET_MS_TP 

BACnet MS/TP frames.

LINKTYPE_PPP_PPPD 

PPP in HDLC-like encapsulation, like LINKTYPE_PPP_HDLC, but with the 0xff address byte replaced by a direction indication - 0x00 for incoming and 0x01 for outgoing

LINKTYPE_GPRS_LLC 

General Packet Radio Service Logical Link Control.

LINKTYPE_GPF_T 

Transparent-mapped generic framing procedure.

LINKTYPE_GPF_F 

Frame-mapped generic framing procedure.

LINKTYPE_LINUX_LAPD 

Link Access Procedures on the D Channel (LAPD) frames.

LINKTYPE_BLUETOOTH_HCI_H4 

Bluetooth HCI UART transport layer.

LINKTYPE_USB_LINUX 

USB packets, beginning with a Linux USB header.

LINKTYPE_PPI 

Per-Packet Information information.

LINKTYPE_IEEE802_15_4 

IEEE 802.15.4 wireless Personal Area Network.

LINKTYPE_SITA 

Various link-layer types, with a pseudo-header, for SITA.

LINKTYPE_ERF 

Various link-layer types, with a pseudo-header, for Endace DAG cards; encapsulates Endace ERF record.

LINKTYPE_BLUETOOTH_HCI_H4_WITH_PHDR 

Bluetooth HCI UART transport layer.

LINKTYPE_AX25_KISS 

AX.25 packet, with a 1-byte KISS header containing a type indicator.

LINKTYPE_LAPD 

Link Access Procedures on the D Channel (LAPD) frames.

LINKTYPE_PPP_WITH_DIR 

PPP, as per RFC 1661 and RFC 1662, preceded with a one-byte pseudo-header with a zero value meaning "received by this host" and a non-zero value meaning "sent by this host"

LINKTYPE_C_HDLC_WITH_DIR 

Cisco PPP with HDLC framing.

LINKTYPE_FRELAY_WITH_DIR 

Frame Relay.

LINKTYPE_IPMB_LINUX 

IPMB over an I2C circuit.

LINKTYPE_IEEE802_15_4_NONASK_PHY 

IEEE 802.15.4 wireless Personal Area Network.

LINKTYPE_USB_LINUX_MMAPPED 

USB packets, beginning with a Linux USB header.

LINKTYPE_FC_2 

Fibre Channel FC-2 frames, beginning with a Frame_Header.

LINKTYPE_FC_2_WITH_FRAME_DELIMS 

Fibre Channel FC-2 frames.

LINKTYPE_IPNET 

Solaris ipnet pseudo-header.

LINKTYPE_CAN_SOCKETCAN 

CAN (Controller Area Network) frames, with a pseudo-header as supplied by Linux SocketCAN.

LINKTYPE_IPV4 

Raw IPv4; the packet begins with an IPv4 header.

LINKTYPE_IPV6 

Raw IPv6; the packet begins with an IPv6 header.

LINKTYPE_IEEE802_15_4_NOFCS 

IEEE 802.15.4 wireless Personal Area Network, without the FCS at the end of the frame.

LINKTYPE_DBUS 

Raw D-Bus messages, starting with the endianness flag, followed by the message type, etc., but without the authentication handshake before the message sequence

LINKTYPE_DVB_CI 

DVB-CI (DVB Common Interface for communication between a PC Card module and a DVB receiver), with the message format specified by the PCAP format for DVB-CI specification

LINKTYPE_MUX27010 

Variant of 3GPP TS 27.010 multiplexing protocol (similar to, but not the same as, 27.010)

LINKTYPE_STANAG_5066_D_PDU 

D_PDUs as described by NATO standard STANAG 5066, starting with the synchronization sequence, and including both header and data CRCs

LINKTYPE_NFLOG 

Linux netlink NETLINK NFLOG socket log messages.

LINKTYPE_NETANALYZER 

Pseudo-header for Hilscher Gesellschaft für Systemautomation mbH netANALYZER devices, followed by an Ethernet frame, beginning with the MAC header and ending with the FCS

LINKTYPE_NETANALYZER_TRANSPARENT 

Pseudo-header for Hilscher Gesellschaft für Systemautomation mbH netANALYZER devices, followed by an Ethernet frame, beginning with the preamble, SFD, and MAC header, and ending with the FCS

LINKTYPE_IPOIB 

IP-over-InfiniBand, as specified by RFC 4391 section 6.

LINKTYPE_MPEG_2_TS 

MPEG-2 Transport Stream transport packets, as specified by ISO 13818-1/ITU-T Recommendation H.222.0.

LINKTYPE_NG40 

Pseudo-header for ng4T GmbH's UMTS Iub/Iur-over-ATM and Iub/Iur-over-IP format as used by their ng40 protocol tester

LINKTYPE_NFC_LLCP 

Pseudo-header for NFC LLCP packet captures, followed by frame data for the LLCP Protocol as specified by NFCForum-TS-LLCP_1.1

LINKTYPE_INFINIBAND 

Raw InfiniBand frames, starting with the Local Routing Header.

LINKTYPE_SCTP 

SCTP packets, as defined by RFC 4960, with no lower-level protocols such as IPv4 or IPv6.

LINKTYPE_USBPCAP 

USB packets, beginning with a USBPcap header.

LINKTYPE_RTAC_SERIAL 

Serial-line packet header for the Schweitzer Engineering Laboratories "RTAC" product.

LINKTYPE_BLUETOOTH_LE_LL 

Bluetooth Low Energy air interface Link Layer packets.

LINKTYPE_NETLINK 

Linux Netlink capture encapsulation.

LINKTYPE_BLUETOOTH_LINUX_MONITOR 

Bluetooth Linux Monitor encapsulation of traffic for the BlueZ stack.

LINKTYPE_BLUETOOTH_BREDR_BB 

Bluetooth Basic Rate and Enhanced Data Rate baseband packets.

LINKTYPE_BLUETOOTH_LE_LL_WITH_PHDR 

Bluetooth Low Energy link-layer packets.

LINKTYPE_PROFIBUS_DL 

PROFIBUS data link layer packets, as specified by IEC standard 61158-6-3.

LINKTYPE_PKTAP 

Apple PKTAP capture encapsulation.

LINKTYPE_EPON 

Ethernet-over-passive-optical-network packets.

LINKTYPE_IPMI_HPM_2 

IPMI trace packets, as specified by Table 3-20 "Trace Data Block Format" in the PICMG HPM.2 specification.

LINKTYPE_ZWAVE_R1_R2 

Per Joshua Wright jwrig.nosp@m.ht@h.nosp@m.asbor.nosp@m.g.co.nosp@m.m, formats for Z-Wave RF profiles R1 and R2 captures.

LINKTYPE_ZWAVE_R3 

Per Joshua Wright jwrig.nosp@m.ht@h.nosp@m.asbor.nosp@m.g.co.nosp@m.m, formats for Z-Wave RF profile R3 captures.

LINKTYPE_WATTSTOPPER_DLM 

Formats for WattStopper Digital Lighting Management (DLM) and Legrand Nitoo Open protocol common packet structure captures

LINKTYPE_ISO_14443 

Messages between ISO 14443 contactless smartcards (Proximity Integrated Circuit Card, PICC) and card readers (Proximity Coupling Device, PCD), with the message format specified by the PCAP format for ISO14443 specification

LINKTYPE_LINUX_SLL2 

Linux "cooked" capture encapsulation v2.

LINKTYPE_INVALID 

Set if interface ID for a packet of a pcapng file is too high.

◆ LogLevel

enum pcpp::LogLevel
strong

An enum representing the log level. Currently 4 log levels are supported: Off, Error, Info and Debug. Info is the default log level

Enumerator
Off 

No log messages are emitted.

Error 

Error level logs are emitted.

Info 

Info level logs and above are emitted.

Debug 

Debug level logs and above are emitted.

◆ LogModule

enum pcpp::LogModule : uint8_t

An enum representing all PcapPlusPlus modules.

Enumerator
CommonLogModuleIpUtils 

IP Utils module (Common++)

CommonLogModuleTablePrinter 

Table printer module (Common++)

CommonLogModuleGenericUtils 

Generic Utils (Common++)

PacketLogModuleRawPacket 

RawPacket module (Packet++)

PacketLogModulePacket 

Packet module (Packet++)

PacketLogModuleLayer 

Layer module (Packet++)

PacketLogModuleAsn1Codec 

Asn1Codec module (Packet++)

PacketLogModuleArpLayer 

ArpLayer module (Packet++)

PacketLogModuleEthLayer 

EthLayer module (Packet++)

PacketLogModuleIPv4Layer 

IPv4Layer module (Packet++)

PacketLogModuleIPv6Layer 

IPv6Layer module (Packet++)

PacketLogModulePayloadLayer 

PayloadLayer module (Packet++)

PacketLogModuleTcpLayer 

TcpLayer module (Packet++)

PacketLogModuleUdpLayer 

UdpLayer module (Packet++)

PacketLogModuleVlanLayer 

VlanLayer module (Packet++)

PacketLogModuleHttpLayer 

HttpLayer module (Packet++)

PacketLogModulePPPoELayer 

PPPoELayer module (Packet++)

PacketLogModuleDnsLayer 

DnsLayer module (Packet++)

PacketLogModuleMplsLayer 

MplsLayer module (Packet++)

PacketLogModuleIcmpLayer 

IcmpLayer module (Packet++)

PacketLogModuleIcmpV6Layer 

IcmpV6Layer module (Packet++)

PacketLogModuleGreLayer 

GreLayer module (Packet++)

PacketLogModuleSSLLayer 

SSLLayer module (Packet++)

PacketLogModuleSllLayer 

SllLayer module (Packet++)

PacketLogModuleSll2Layer 

Sll2Layer module (Packet++)

PacketLogModuleNflogLayer 

NflogLayer module (Packet++)

PacketLogModuleDhcpLayer 

DhcpLayer module (Packet++)

PacketLogModuleDhcpV6Layer 

DhcpV6Layer module (Packet++)

PacketLogModuleIgmpLayer 

IgmpLayer module (Packet++)

PacketLogModuleSipLayer 

SipLayer module (Packet++)

PacketLogModuleSdpLayer 

SdpLayer module (Packet++)

PacketLogModuleRadiusLayer 

RadiusLayer module (Packet++)

PacketLogModuleGtpLayer 

GtpLayer module (Packet++)

PacketLogModuleBgpLayer 

GtpLayer module (Packet++)

PacketLogModuleSSHLayer 

SSHLayer module (Packet++)

PacketLogModuleVrrpLayer 

Vrrp Record module (Packet++)

PacketLogModuleTcpReassembly 

TcpReassembly module (Packet++)

PacketLogModuleIPReassembly 

IPReassembly module (Packet++)

PacketLogModuleIPSecLayer 

IPSecLayers module (Packet++)

PacketLogModuleNtpLayer 

NtpLayer module (Packet++)

PacketLogModuleTelnetLayer 

TelnetLayer module (Packet++)

PacketLogModuleStpLayer 

StpLayer module (Packet++)

PacketLogModuleLLCLayer 

LLCLayer module (Packet++)

PacketLogModuleNdpLayer 

NdpLayer module (Packet++)

PacketLogModuleFtpLayer 

FtpLayer module (Packet++)

PacketLogModuleSomeIpLayer 

SomeIpLayer module (Packet++)

PacketLogModuleSomeIpSdLayer 

SomeIpSdLayer module (Packet++)

PacketLogModuleWakeOnLanLayer 

WakeOnLanLayer module (Packet++)

PacketLogModuleSmtpLayer 

SmtpLayer module (Packet++)

PacketLogModuleWireGuardLayer 

WireGuardLayer module (Packet++)

PcapLogModuleWinPcapLiveDevice 

WinPcapLiveDevice module (Pcap++)

PcapLogModuleRemoteDevice 

WinPcapRemoteDevice module (Pcap++)

PcapLogModuleLiveDevice 

PcapLiveDevice module (Pcap++)

PcapLogModuleFileDevice 

FileDevice module (Pcap++)

PcapLogModulePfRingDevice 

PfRingDevice module (Pcap++)

PcapLogModuleMBufRawPacket 

MBufRawPacket module (Pcap++)

PcapLogModuleDpdkDevice 

DpdkDevice module (Pcap++)

PcapLogModuleKniDevice 

KniDevice module (Pcap++)

PcapLogModuleXdpDevice 

XdpDevice module (Pcap++)

PcapLogModuleNetworkUtils 

Network Utils module (Pcap++)

◆ NflogTlvType

enum pcpp::NflogTlvType
strong

Represents TLV types of NFLOG packets

Enumerator
NFULA_PACKET_HDR 

the packet header structure

NFULA_MARK 

packet mark from skbuff

NFULA_TIMESTAMP 

nflog_timestamp_t for skbuff's time stamp

NFULA_IFINDEX_INDEV 

ifindex of device on which packet received (possibly bridge group)

NFULA_IFINDEX_OUTDEV 

ifindex of device on which packet transmitted (possibly bridge group)

NFULA_IFINDEX_PHYSINDEV 

ifindex of physical device on which packet received (not bridge group)

NFULA_IFINDEX_PHYSOUTDEV 

ifindex of physical device on which packet transmitted (not bridge group)

NFULA_HWADDR 

nflog_hwaddr_t for hardware address

NFULA_PAYLOAD 

packet payload

NFULA_PREFIX 

text string - null-terminated, count includes NUL

NFULA_UID 

UID owning socket on which packet was sent/received.

NFULA_SEQ 

sequence number of packets on this NFLOG socket

NFULA_SEQ_GLOBAL 

sequence number of packets on all NFLOG sockets

NFULA_GID 

GID owning socket on which packet was sent/received.

NFULA_HWTYPE 

ARPHRD_ type of skbuff's device.

NFULA_HWHEADER 

skbuff's MAC-layer header

NFULA_HWLEN 

length of skbuff's MAC-layer header

◆ OsiModelLayer

An enum representing OSI model layers.

Enumerator
OsiModelPhysicalLayer 

Physical layer (layer 1)

OsiModelDataLinkLayer 

Data link layer (layer 2)

OsiModelNetworkLayer 

Network layer (layer 3)

OsiModelTransportLayer 

Transport layer (layer 4)

OsiModelSesionLayer 

Session layer (layer 5)

OsiModelPresentationLayer 

Presentation layer (layer 6)

OsiModelApplicationLayer 

Application layer (layer 7)

OsiModelLayerUnknown 

Unknown / null layer.

◆ SomeIpSdProtocolType

Types of protocols that can be referenced in SOME/IP-SD.

Enumerator
SD_TCP 

TCP.

SD_UDP 

UDP.

◆ SSLAlertDescription

SSL/TLS alert description types.

Enumerator
SSL_ALERT_CLOSE_NOTIFY 

Close notify alert.

SSL_ALERT_UNEXPECTED_MESSAGE 

Unexpected message alert.

SSL_ALERT_BAD_RECORD_MAC 

Bad record MAC alert.

SSL_ALERT_DECRYPTION_FAILED 

Decryption failed alert.

SSL_ALERT_DECOMPRESSION_FAILURE 

Decompression failure alert.

SSL_ALERT_HANDSHAKE_FAILURE 

Handshake failure alert.

SSL_ALERT_NO_CERTIFICATE 

No certificate alert.

SSL_ALERT_BAD_CERTIFICATE 

Bad certificate alert.

SSL_ALERT_UNSUPPORTED_CERTIFICATE 

Unsupported certificate.

SSL_ALERT_CERTIFICATE_REVOKED 

Certificate revoked alert.

SSL_ALERT_CERTIFICATE_EXPIRED 

Certificate expired alert.

SSL_ALERT_CERTIFICATE_UNKNOWN 

Certificate unknown alert.

SSL_ALERT_ILLEGAL_PARAMETER 

Illegal parameter alert.

SSL_ALERT_UNKNOWN_CA 

Unknown CA alert.

SSL_ALERT_ACCESS_DENIED 

Access denied alert.

SSL_ALERT_DECODE_ERROR 

Decode error alert.

SSL_ALERT_DECRYPT_ERROR 

Decrypt error alert.

SSL_ALERT_EXPORT_RESTRICTION 

Export restriction alert.

SSL_ALERT_PROTOCOL_VERSION 

Protocol version alert.

SSL_ALERT_INSUFFICIENT_SECURITY 

Insufficient security alert.

SSL_ALERT_INTERNAL_ERROR 

Internal error alert.

SSL_ALERT_USER_CANCELLED 

User cancelled alert.

SSL_ALERT_NO_RENEGOTIATION 

No negotiation alert.

SSL_ALERT_UNSUPPORTED_EXTENSION 

Unsupported extension alert.

SSL_ALERT_ENCRYPTED 

Encrtpyed alert (cannot determine its type)

◆ SSLAlertLevel

SSL/TLS alert levels.

Enumerator
SSL_ALERT_LEVEL_WARNING 

Warning level alert.

SSL_ALERT_LEVEL_FATAL 

Fatal level alert.

SSL_ALERT_LEVEL_ENCRYPTED 

For encrypted alerts the level is unknown so this type will be returned.

◆ SSLAuthenticationAlgorithm

SSL/TLS authentication algorithms.

Enumerator
SSL_AUTH_NULL 

Null value.

SSL_AUTH_RSA 

RSA (Rivest-Shamir-Adleman)

SSL_AUTH_DSS 

Digital Signature Standard.

SSL_AUTH_anon 

Anonymous.

SSL_AUTH_KEA 

Diffie-Hellman based key-exchange protocol.

SSL_AUTH_KRB5 

Kerberos 5.

SSL_AUTH_PSK 

Pre-Shared Key.

SSL_AUTH_ECDSA 

Elliptic Curve Digital Signature Algorithm.

SSL_AUTH_GOST 

GOST.

SSL_AUTH_SHA 

SHA-1 (Secure Hash Algorithm)

SSL_AUTH_PCT 

PCT.

SSL_AUTH_DHE 

Diffie-Hellman ephemeral.

SSL_AUTH_Unknown 

Unknown algorithm.

◆ SSLClientCertificateType

SSL/TLS client certificate types.

Enumerator
SSL_CCT_RSA_SIGN 

RSA_SIGN.

SSL_CCT_DSS_SIGN 

DSS_SIGN.

SSL_CCT_RSA_FIXED_DH 

RSA_FIXED_DH.

SSL_CCT_DSS_FIXED_DH 

DSS_FIXED_DH.

SSL_CCT_RSA_EPHEMERAL_DH_RESERVED 

RSA_EPHEMERAL_DH_RESERVED.

SSL_CCT_DSS_EPHEMERAL_DH_RESERVED 

DSS_EPHEMERAL_DH_RESERVED.

SSL_CCT_FORTEZZA_DMS_RESERVED 

FORTEZZA_DMS_RESERVED.

SSL_CCT_ECDSA_SIGN 

ECDSA_SIGN.

SSL_CCT_RSA_FIXED_ECDH 

FIXED_ECDH.

SSL_CCT_ECDSA_FIXED_ECDH 

ECDSA_FIXED_ECDH.

SSL_CCT_UNKNOWN 

Unknown client certificate type.

◆ SSLExtensionType

SSL/TLS extension types.

Enumerator
SSL_EXT_SERVER_NAME 

Server Name Indication extension.

SSL_EXT_MAX_FRAGMENT_LENGTH 

Maximum Fragment Length Negotiation extension.

SSL_EXT_CLIENT_CERTIFICATE_URL 

Client Certificate URLs extension.

SSL_EXT_TRUSTED_CA_KEYS 

Trusted CA Indication extension.

SSL_EXT_TRUNCATED_HMAC 

Truncated HMAC extension.

SSL_EXT_STATUS_REQUEST 

Certificate Status Request extension.

SSL_EXT_USER_MAPPING 

TLS User Mapping extension.

SSL_EXT_CLIENT_AUTHZ 

Client Authorization extension.

SSL_EXT_SERVER_AUTHZ 

Server Authorization extension.

SSL_EXT_CERT_TYPE 

Certificate Type extension.

SSL_EXT_SUPPORTED_GROUPS 

Supported Groups extension (renamed from "elliptic curves")

SSL_EXT_EC_POINT_FORMATS 

Elliptic Curves Point Format extension.

SSL_EXT_SRP 

Secure Remote Password extension.

SSL_EXT_SIGNATURE_ALGORITHMS 

Signature Algorithms extension.

SSL_EXT_USE_SRTP 

Use Secure Real-time Transport Protocol extension.

SSL_EXT_HEARTBEAT 

TLS Heartbit extension.

SSL_EXT_APPLICATION_LAYER_PROTOCOL_NEGOTIATION 

Application Layer Protocol Negotiation (ALPN) extension.

SSL_EXT_STATUS_REQUEST_V2 

Status Request extension.

SSL_EXT_SIGNED_CERTIFICATE_TIMESTAMP 

Signed Certificate Timestamp extension.

SSL_EXT_CLIENT_CERTIFICATE_TYPE 

Client Certificate Type extension.

SSL_EXT_SERVER_CERTIFICATE_TYPE 

Server Certificate Type extension.

SSL_EXT_PADDING 

ClientHello Padding extension.

SSL_EXT_ENCRYPT_THEN_MAC 

Encrypt-then-MAC extension.

SSL_EXT_EXTENDED_MASTER_SECRET 

Extended Master Secret extension.

SSL_EXT_TOKEN_BINDING 

Token Binding extension.

SSL_EXT_SESSIONTICKET_TLS 

SessionTicket TLS extension.

SSL_EXT_PRE_SHARED_KEY 

Pre-shared key (PSK) extension (TLS 1.3)

SSL_EXT_EARLY_DATA 

Early data extension (TLS 1.3)

SSL_EXT_SUPPORTED_VERSIONS 

Supported versions extension (TLS 1.3)

SSL_EXT_COOKIE 

Cookie extension (TLS 1.3)

SSL_EXT_PSK_KEY_EXCHANGE_MODES 

Pre-Shared Key Exchange Modes extension (TLS 1.3)

SSL_EXT_CERTIFICATE_AUTHORITIES 

Certificate authorities extension (TLS 1.3)

SSL_EXT_OLD_FILTERS 

Old filters extension (TLS 1.3)

SSL_EXT_POST_HANDSHAKE_AUTH 

Post handshake auth extension (TLS 1.3)

SSL_EXT_SIGNATURE_ALGORITHM_CERT 

Signature algorithm cert extension (TLS 1.3)

SSL_EXT_KEY_SHARE 

Key share extension (TLS 1.3)

SSL_EXT_RENEGOTIATION_INFO 

Renegotiation Indication extension.

SSL_EXT_Unknown 

Unknown extension.

◆ SSLHandshakeType

SSL/TLS handshake message types.

Enumerator
SSL_HELLO_REQUEST 

Hello-request message type.

SSL_CLIENT_HELLO 

Client-hello message type.

SSL_SERVER_HELLO 

Server-hello message type.

SSL_NEW_SESSION_TICKET 

New-session-ticket message type.

SSL_END_OF_EARLY_DATE 

End-of-early-data message type (TLS 1.3)

SSL_ENCRYPTED_EXTENSIONS 

Encrypted-extensions message type (TLS 1.3)

SSL_CERTIFICATE 

Certificate message type.

SSL_SERVER_KEY_EXCHANGE 

Server-key-exchange message type.

SSL_CERTIFICATE_REQUEST 

Certificate-request message type.

SSL_SERVER_DONE 

Server-hello-done message type.

SSL_CERTIFICATE_VERIFY 

Certificate-verify message type.

SSL_CLIENT_KEY_EXCHANGE 

Client-key-exchange message type.

SSL_FINISHED 

Finish message type.

SSL_KEY_UPDATE 

Key-update message type (TLS 1.3)

SSL_HANDSHAKE_UNKNOWN 

Unknown SSL handshake message.

◆ SSLHashingAlgorithm

SSL/TLS hashing algorithms.

Enumerator
SSL_HASH_NULL 

Null value.

SSL_HASH_MD5 

Message-Digest Algorithm.

SSL_HASH_SHA 

SHA-1 (Secure Hash Algorithm)

SSL_HASH_SHA256 

SHA-256 (Secure Hash Algorithm)

SSL_HASH_GOST28147 

GOST 28147.

SSL_HASH_GOSTR3411 

GOST R 34.11.

SSL_HASH_SHA384 

SHA-384 (Secure Hash Algorithm)

SSL_HASH_CCM 

CCM mode (Counter with CBC-MAC)

SSL_HASH_CCM_8 

CCM mode (Counter with CBC-MAC)

SSL_HASH_Unknown 

Unknown algorithm.

◆ SSLKeyExchangeAlgorithm

SSL/TLS key exchange algorithms.

Enumerator
SSL_KEYX_NULL 

Null value.

SSL_KEYX_RSA 

RSA (Rivest-Shamir-Adleman)

SSL_KEYX_DH 

Diffie-Hellman.

SSL_KEYX_DHE 

Diffie-Hellman ephemeral.

SSL_KEYX_ECDH 

Elliptic curve Diffie�Hellman.

SSL_KEYX_ECDHE 

Elliptic curve Diffie�Hellman ephemeral.

SSL_KEYX_FORTEZZA 

Fortezza Crypto Card.

SSL_KEYX_KRB5 

Kerberos 5.

SSL_KEYX_PSK 

Pre-Shared Key.

SSL_KEYX_GOST 

GOST.

SSL_KEYX_SRP 

Secure Remote Password.

SSL_KEYX_PCT 

PCT.

SSL_KEYX_Unknown 

Unknown algorithm.

◆ SSLRecordType

SSL/TLS message types.

Enumerator
SSL_CHANGE_CIPHER_SPEC 

Change-cipher-spec message.

SSL_ALERT 

SSL alert message.

SSL_HANDSHAKE 

SSL handshake message.

SSL_APPLICATION_DATA 

SSL data message.

◆ SSLSymetricEncryptionAlgorithm

SSL/TLS symmetric encryption algorithms.

Enumerator
SSL_SYM_NULL 

Null value.

SSL_SYM_RC4_40 

RC4_40.

SSL_SYM_RC4_128 

RC4_128.

SSL_SYM_RC2_CBC_40 

RC2_CBC_40.

SSL_SYM_IDEA_CBC 

IDEA_CBC.

SSL_SYM_DES40_CBC 

DES40_CBC.

SSL_SYM_DES_CBC 

DES_CBC.

SSL_SYM_3DES_EDE_CBC 

3DES_EDE_CBC

SSL_SYM_FORTEZZA_CBC 

FORTEZZA_CBC.

SSL_SYM_DES_CBC_40 

DES_CBC_40.

SSL_SYM_AES_128_CBC 

AES_128_CBC.

SSL_SYM_AES_256_CBC 

AES_256_CBC.

SSL_SYM_CAMELLIA_128_CBC 

CAMELLIA_128_CBC.

SSL_SYM_CAMELLIA_128_GCM 

CAMELLIA_128_GCM.

SSL_SYM_CAMELLIA_256_GCM 

CAMELLIA_256_GCM.

SSL_SYM_RC4_56 

RC4_56.

SSL_SYM_RC2_CBC_56 

RC2_CBC_56.

SSL_SYM_GOST28147 

GOST28147.

SSL_SYM_CAMELLIA_256_CBC 

CAMELLIA_256_CBC.

SSL_SYM_SEED_CBC 

SEED_CBC.

SSL_SYM_AES_128 

AES_128.

SSL_SYM_AES_256 

AES_256.

SSL_SYM_AES_128_GCM 

SSL_SYM_AES_128_GCM.

SSL_SYM_AES_256_GCM 

AES_256_GCM.

SSL_SYM_RC4_128_EXPORT40 

RC4_128_EXPORT40.

SSL_SYM_RC2_CBC_128_CBC 

RC2_CBC_128_CBC.

SSL_SYM_IDEA_128_CBC 

IDEA_128_CBC.

SSL_SYM_DES_64_CBC 

DES_64_CBC.

SSL_SYM_DES_192_EDE3_CBC 

DES_192_EDE3_CBC.

SSL_SYM_RC4_64 

RC4_64.

SSL_SYM_ARIA_128_CBC 

ARIA_128_CBC.

SSL_SYM_ARIA_256_CBC 

ARIA_256_CBC.

SSL_SYM_ARIA_128_GCM 

ARIA_128_GCM.

SSL_SYM_ARIA_256_GCM 

ARIA_256_GCM.

SSL_SYM_CHACHA20_POLY1305 

CHACHA20_POLY1305.

SSL_SYM_AES_128_CCM 

AES_128_CCM.

SSL_SYM_AES_128_CCM_8 

AES_128_CCM_8.

SSL_SYM_Unknown 

Unknown algorithm.

◆ TcpOptionEnumType

enum pcpp::TcpOptionEnumType : uint8_t
strong

TCP options types.

Enumerator
Nop 

Padding.

Eol 

End of options.

Mss 

Segment size negotiating.

Window 

Window scaling.

SackPerm 

SACK Permitted.

Sack 

SACK Block.

Echo 

Echo (obsoleted by option TcpOptionEnumType::Timestamp)

EchoReply 

Echo Reply (obsoleted by option TcpOptionEnumType::Timestamp)

Timestamp 

TCP Timestamps.

Cc 

CC (obsolete)

CcNew 

CC.NEW (obsolete)

CcEcho 

CC.ECHO(obsolete)

Md5 

MD5 Signature Option.

MpTcp 

Multipath TCP.

Scps 

SCPS Capabilities.

Snack 

SCPS SNACK.

RecBound 

SCPS Record Boundary.

CorrExp 

SCPS Corruption Experienced.

Qs 

Quick-Start Response.

UserTo 

User Timeout Option (also, other known unauthorized use)

ExpFd 

RFC3692-style Experiment 1 (also improperly used for shipping products)

ExpFe 

RFC3692-style Experiment 2 (also improperly used for shipping products)

RvbdProbe 

Riverbed probe option, non IANA registered option number.

RvbdTrpy 

Riverbed transparency option, non IANA registered option number.

Unknown 

Unknown option.

◆ TcpOptionType

enum pcpp::TcpOptionType : uint8_t

TCP options types.

Enumerator
PCPP_TCPOPT_NOP 

Padding.

PCPP_TCPOPT_EOL 

End of options.

TCPOPT_MSS 

Segment size negotiating.

PCPP_TCPOPT_WINDOW 

Window scaling.

TCPOPT_SACK_PERM 

SACK Permitted.

PCPP_TCPOPT_SACK 

SACK Block.

TCPOPT_ECHO 

Echo (obsoleted by option TcpOptionType::PCPP_TCPOPT_TIMESTAMP)

TCPOPT_ECHOREPLY 

Echo Reply (obsoleted by option TcpOptionType::PCPP_TCPOPT_TIMESTAMP)

PCPP_TCPOPT_TIMESTAMP 

TCP Timestamps.

TCPOPT_CC 

CC (obsolete)

TCPOPT_CCNEW 

CC.NEW (obsolete)

TCPOPT_CCECHO 

CC.ECHO(obsolete)

TCPOPT_MD5 

MD5 Signature Option.

TCPOPT_MPTCP 

Multipath TCP.

TCPOPT_SCPS 

SCPS Capabilities.

TCPOPT_SNACK 

SCPS SNACK.

TCPOPT_RECBOUND 

SCPS Record Boundary.

TCPOPT_CORREXP 

SCPS Corruption Experienced.

TCPOPT_QS 

Quick-Start Response.

TCPOPT_USER_TO 

User Timeout Option (also, other known unauthorized use)

TCPOPT_EXP_FD 

RFC3692-style Experiment 1 (also improperly used for shipping products)

TCPOPT_EXP_FE 

RFC3692-style Experiment 2 (also improperly used for shipping products)

TCPOPT_RVBD_PROBE 

Riverbed probe option, non IANA registered option number.

TCPOPT_RVBD_TRPY 

Riverbed transparency option, non IANA registered option number.

TCPOPT_Unknown 

Unknown option.

Function Documentation

◆ byteArrayToHexString()

std::string pcpp::byteArrayToHexString ( const uint8_t *  byteArr,
size_t  byteArrSize,
int  stringSizeLimit = -1 
)

Convert a byte array into a string of hex characters. For example: for the array { 0xaa, 0x2b, 0x10 } the string "aa2b10" will be returned

Parameters
[in]byteArrA byte array
[in]byteArrSizeThe size of the byte array [in bytes]
[in]stringSizeLimitAn optional parameter that enables to limit the returned string size. If set to a positive integer value the returned string size will be equal or less than this value. If the string representation of the whole array is longer than this size then only part of the array will be read. The default value is -1 which means no string size limitation
Returns
A string of hex characters representing the byte array

◆ clockGetTime()

int pcpp::clockGetTime ( long &  sec,
long &  nsec 
)

Retrieve a system-wide real-time accurate clock. It's actually a multi-platform version of clock_gettime() which is fully supported only on Linux

Parameters
[out]secThe second portion of the time
[out]nsecThe nanosecond portion of the time
Returns
0 for success, or -1 for failure

◆ computeChecksum()

uint16_t pcpp::computeChecksum ( ScalarBuffer< uint16_t >  vec[],
size_t  vecSize 
)

Computes the checksum for a vector of buffers

Parameters
[in]vecThe vector of buffers
[in]vecSizeNumber of ScalarBuffers in vector
Returns
The checksum result

◆ computePseudoHdrChecksum()

uint16_t pcpp::computePseudoHdrChecksum ( uint8_t *  dataPtr,
size_t  dataLen,
IPAddress::AddressType  ipAddrType,
uint8_t  protocolType,
IPAddress  srcIPAddress,
IPAddress  dstIPAddress 
)

Computes the checksum for Pseudo header

Parameters
[in]dataPtrData pointer
[in]dataLenData length
[in]ipAddrTypeIP address type(IPv4/IPv6) type IPAddress::AddressType
[in]protocolTypeCurrent protocol type IPProtocolTypes
[in]srcIPAddressSource IP Address
[in]dstIPAddressDestination IP Address
Returns
The checksum result

◆ createCoreMaskFromCoreIds()

CoreMask pcpp::createCoreMaskFromCoreIds ( const std::vector< int > &  coreIds)

Create a core mask from a vector of core IDs

Parameters
[in]coreIdsA vector of core IDs
Returns
A core mask representing these cores

◆ createCoreMaskFromCoreVector()

CoreMask pcpp::createCoreMaskFromCoreVector ( const std::vector< SystemCore > &  cores)

Create a core mask from a vector of system cores

Parameters
[in]coresA vector of SystemCore instances
Returns
A core mask representing these cores

◆ createCoreVectorFromCoreMask()

void pcpp::createCoreVectorFromCoreMask ( CoreMask  coreMask,
std::vector< SystemCore > &  resultVec 
)

Convert a core mask into a vector of its appropriate system cores

Parameters
[in]coreMaskThe input core mask
[out]resultVecThe vector that will contain the system cores

◆ cross_platform_memmem()

char* pcpp::cross_platform_memmem ( const char *  haystack,
size_t  haystackLen,
const char *  needle,
size_t  needleLen 
)

This is a cross platform version of memmem (https://man7.org/linux/man-pages/man3/memmem.3.html) which is not supported on all platforms.

Parameters
[in]haystackA pointer to the buffer to be searched
[in]haystackLenLength of the haystack buffer
[in]needleA pointer to a buffer that will be searched for
[in]needleLenLength of the needle buffer
Returns
A pointer to the beginning of the substring, or nullptr if the substring is not found

◆ directoryExists()

bool pcpp::directoryExists ( const std::string &  dirPath)

Check if a directory exists

Parameters
[in]dirPathFull path of the directory to search
Returns
True if directory exists, false otherwise

◆ executeShellCommand()

std::string pcpp::executeShellCommand ( const std::string &  command)

Execute a shell command and return its output

Parameters
[in]commandThe command to run
Returns
The output of the command (both stdout and stderr)
Exceptions
std::runtime_errorError executing the command.

◆ fnvHash() [1/2]

uint32_t pcpp::fnvHash ( ScalarBuffer< uint8_t >  vec[],
size_t  vecSize 
)

Computes Fowler-Noll-Vo (FNV-1) 32bit hash function on an array of byte buffers. The hash is calculated on each byte in each byte buffer, as if all byte buffers were one long byte buffer

Parameters
[in]vecAn array of byte buffers (ScalarBuffer of type uint8_t)
[in]vecSizeThe length of vec
Returns
The 32bit hash value

◆ fnvHash() [2/2]

uint32_t pcpp::fnvHash ( uint8_t *  buffer,
size_t  bufSize 
)

Computes Fowler-Noll-Vo (FNV-1) 32bit hash function on a byte buffer

Parameters
[in]bufferThe byte buffer
[in]bufSizeThe size of the byte buffer
Returns
The 32bit hash value

◆ getBuildDateTime()

std::string pcpp::getBuildDateTime ( )
inline
Returns
The build date and time in a format of "Mmm dd yyyy hh:mm:ss"

◆ getCoreMaskForAllMachineCores()

CoreMask pcpp::getCoreMaskForAllMachineCores ( )

Create a core mask for all cores available on machine

Returns
A core mask for all cores available on machine

◆ getErrorString()

std::string pcpp::getErrorString ( int  errnum)

Cross-platform and thread-safe version of strerror

Parameters
errnumValue of errno
Returns
String representation of the error number

◆ getGitBranch()

std::string pcpp::getGitBranch ( )
Returns
The Git branch the binaries are built from

◆ getGitCommit()

std::string pcpp::getGitCommit ( )
Returns
The Git commit (revision) the binaries are built from

◆ getGitInfo()

std::string pcpp::getGitInfo ( )
Returns
Git branch and commit the binaries are built from. Aggregates data from getGitCommit() and getGitBranch()

◆ getNumOfCores()

int pcpp::getNumOfCores ( )

Get total number of cores on device

Returns
Total number of CPU cores on device

◆ getPcapPlusPlusVersion()

std::string pcpp::getPcapPlusPlusVersion ( )
inline
Returns
PcapPlusPlus current version, e.g: 23.09. Notice that for non-official releases (which were pulled from GitHub) the version will end with a '+'. For example: '23.09+' means non-official release but '23.09' means official release

◆ getPcapPlusPlusVersionFull()

std::string pcpp::getPcapPlusPlusVersionFull ( )
inline
Returns
PcapPlusPlus long version string which includes the version and info whether it's an official or non-official release. For example: "v23.09+ (non-official release)" or "v23.09 (official release)"

◆ hash2Tuple()

uint32_t pcpp::hash2Tuple ( Packet packet)

A method that is given a packet and calculates a hash value by the packet's 2-tuple (IP src + IP dst). Supports IPv4 and IPv6. For packets which aren't IPv4/6 the value of 0 will be returned

Parameters
[in]packetThe packet to calculate hash for
Returns
The hash value calculated for this packet or 0 if the packet isn't IPv4/6

◆ hash5Tuple()

uint32_t pcpp::hash5Tuple ( Packet packet,
bool const &  directionUnique = false 
)

A method that is given a packet and calculates a hash value by the packet's 5-tuple. Supports IPv4, IPv6, TCP and UDP. For packets which doesn't have 5-tuple (for example: packets which aren't IPv4/6 or aren't TCP/UDP) the value of 0 will be returned

Parameters
[in]packetThe packet to calculate hash for
[in]directionUniqueMake hash value unique for each direction
Returns
The hash value calculated for this packet or 0 if the packet doesn't contain 5-tuple

◆ hexStringToByteArray()

size_t pcpp::hexStringToByteArray ( const std::string &  hexString,
uint8_t *  resultByteArr,
size_t  resultByteArrSize 
)

Convert a string of hex characters into a byte array. For example: for the string "aa2b10" an array of values { 0xaa, 0x2b, 0x10 } will be returned

Parameters
[in]hexStringA string of hex characters
[out]resultByteArrA pre-allocated byte array where the result will be written to
[in]resultByteArrSizeThe size of the pre-allocated byte array
Returns
The size of the result array. If the string represents an array that is longer than the pre-allocated size (resultByteArrSize) then the result array will contain only the part of the string that managed to fit into the array, and the returned size will be resultByteArrSize. However if the string represents an array that is shorter than the pre-allocated size then some of the cells will remain empty and contain zeros, and the returned size will be the part of the array that contain data. If the input is an illegal hex string 0 will be returned. Illegal hex string means odd number of characters or a string that contains non-hex characters

◆ hostToNet16()

uint16_t pcpp::hostToNet16 ( uint16_t  host)

A multi-platform version of htons which convert host to network byte order

Parameters
[in]hostValue in host byte order
Returns
Value in network byte order

◆ hostToNet32()

uint32_t pcpp::hostToNet32 ( uint32_t  host)

A multi-platform version of htonl which convert host to network byte order

Parameters
[in]hostValue in host byte order
Returns
Value in network byte order

◆ multiPlatformMSleep()

void pcpp::multiPlatformMSleep ( uint32_t  milliseconds)

A multi-platform version of sleep in milliseconds resolution. This method simply runs the right sleep method, according to the platform it is running on.

Parameters
[in]millisecondsNumber of milliseconds to sleep
Deprecated:
Please use std::this_thread::sleep_for(). It is a standard C++ (since C++11) method which is already cross-platform

◆ multiPlatformSleep()

void pcpp::multiPlatformSleep ( uint32_t  seconds)

A multi-platform version of the popular sleep method. This method simply runs the right sleep method, according to the platform it is running on.

Parameters
[in]secondsNumber of seconds to sleep
Deprecated:
Please use std::this_thread::sleep_for(). It is a standard C++ (since C++11) method which is already cross-platform

◆ netToHost16()

uint16_t pcpp::netToHost16 ( uint16_t  net)

A multi-platform version of ntohs which convert network to host byte order

Parameters
[in]netValue in network byte order
Returns
Value in host byte order

◆ netToHost32()

uint32_t pcpp::netToHost32 ( uint32_t  net)

A multi-platform version of ntohl which convert network to host byte order

Parameters
[in]netValue in network byte order
Returns
Value in host byte order

◆ operator!=() [1/8]

bool pcpp::operator!= ( const in6_addr &  lhs,
const IPAddress rhs 
)
inline

Overload of the not-equal-to operator

Returns
True if the addresses differ, false otherwise

◆ operator!=() [2/8]

bool pcpp::operator!= ( const in6_addr &  lhs,
const IPv6Address rhs 
)
inline

Overload of the not-equal-to operator

Returns
True if the addresses differ, false otherwise

◆ operator!=() [3/8]

bool pcpp::operator!= ( const in_addr &  lhs,
const IPAddress rhs 
)
inline

Overload of the not-equal-to operator

Returns
True if the addresses differ, false otherwise

◆ operator!=() [4/8]

bool pcpp::operator!= ( const in_addr &  lhs,
const IPv4Address rhs 
)
inline

Overload of the not-equal-to operator

Returns
True if the addresses differ, false otherwise

◆ operator!=() [5/8]

bool pcpp::operator!= ( const IPAddress lhs,
const in6_addr &  rhs 
)
inline

Overload of the not-equal-to operator

Returns
True if the addresses differ, false otherwise

◆ operator!=() [6/8]

bool pcpp::operator!= ( const IPAddress lhs,
const in_addr &  rhs 
)
inline

Overload of the not-equal-to operator

Returns
True if the addresses differ, false otherwise

◆ operator!=() [7/8]

bool pcpp::operator!= ( const IPv4Address lhs,
const in_addr &  rhs 
)
inline

Overload of the not-equal-to operator

Returns
True if the addresses differ, false otherwise

◆ operator!=() [8/8]

bool pcpp::operator!= ( const IPv6Address lhs,
const in6_addr &  rhs 
)
inline

Overload of the not-equal-to operator

Returns
True if the addresses differ, false otherwise

◆ operator==() [1/8]

bool pcpp::operator== ( const in6_addr &  lhs,
const IPAddress rhs 
)
inline

Overload of the equal-to operator

Returns
True if the addresses are equal, false otherwise

◆ operator==() [2/8]

bool pcpp::operator== ( const in6_addr &  lhs,
const IPv6Address rhs 
)
inline

Overload of the equal-to operator

Returns
True if the addresses are equal, false otherwise

◆ operator==() [3/8]

bool pcpp::operator== ( const in_addr &  lhs,
const IPAddress rhs 
)
inline

Overload of the equal-to operator

Returns
True if the addresses are equal, false otherwise

◆ operator==() [4/8]

bool pcpp::operator== ( const in_addr &  lhs,
const IPv4Address rhs 
)
inline

Overload of the equal-to operator

Returns
True if the addresses are equal, false otherwise

◆ operator==() [5/8]

bool pcpp::operator== ( const IPAddress lhs,
const in6_addr &  rhs 
)

Overload of the equal-to operator

Returns
True if the addresses are equal, false otherwise

◆ operator==() [6/8]

bool pcpp::operator== ( const IPAddress lhs,
const in_addr &  rhs 
)

Overload of the equal-to operator

Returns
True if the addresses are equal, false otherwise

◆ operator==() [7/8]

bool pcpp::operator== ( const IPv4Address lhs,
const in_addr &  rhs 
)

Overload of the equal-to operator

Returns
True if the addresses are equal, false otherwise

◆ operator==() [8/8]

bool pcpp::operator== ( const IPv6Address lhs,
const in6_addr &  rhs 
)

Overload of the equal-to operator

Returns
True if the addresses are equal, false otherwise