PcapPlusPlus
pcpp Namespace Reference

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

Classes

class  AndFilter
 
class  ApplicationEventHandler
 
class  AppName
 
class  ArpFilter
 
struct  arphdr
 
class  ArpLayer
 
struct  ConnectionData
 
struct  dhcp_header
 
class  DhcpLayer
 
class  DhcpOption
 
class  DhcpOptionBuilder
 
struct  dnshdr
 
class  DnsLayer
 
class  DnsQuery
 
class  DnsResource
 
class  DnsResourceDataPtr
 
class  DpdkDevice
 
class  DpdkDeviceList
 
class  DpdkWorkerThread
 
struct  ether_header
 
class  EtherTypeFilter
 
class  EthLayer
 
class  GeneralFilter
 
class  GenericDnsResourceData
 
struct  gre1_header
 
struct  gre_basic_header
 
class  GreLayer
 
class  GREv0Layer
 
class  GREv1Layer
 
class  HeaderField
 
class  HttpMessage
 
class  HttpRequestFirstLine
 
class  HttpRequestLayer
 
class  HttpResponseFirstLine
 
class  HttpResponseLayer
 
struct  icmp_address_mask_request
 
struct  icmp_destination_unreachable
 
struct  icmp_echo_hdr
 
struct  icmp_echo_request
 
struct  icmp_info_request
 
struct  icmp_param_problem
 
struct  icmp_redirect
 
struct  icmp_router_address_structure
 
struct  icmp_router_advertisement
 
struct  icmp_router_advertisement_hdr
 
struct  icmp_time_exceeded
 
struct  icmp_timestamp_request
 
struct  icmphdr
 
class  IcmpLayer
 
class  IDataContainer
 
class  IDevice
 
class  IDnsResource
 
class  IDnsResourceData
 
class  IFileDevice
 
class  IFileReaderDevice
 
class  IFileWriterDevice
 
class  IFilterableDevice
 
class  IFilterWithDirection
 
class  IFilterWithOperator
 
struct  igmp_header
 
class  IgmpLayer
 
class  IgmpV1Layer
 
class  IgmpV2Layer
 
struct  igmpv3_group_record
 
struct  igmpv3_query_header
 
struct  igmpv3_report_header
 
class  IgmpV3QueryLayer
 
class  IgmpV3ReportLayer
 
struct  ip6_hdr
 
class  IPAddress
 
class  IPcapDevice
 
class  IPFilter
 
struct  iphdr
 
class  IPReassembly
 
class  IPv4Address
 
class  IPv4DnsResourceData
 
class  IPv4IDFilter
 
class  IPv4Layer
 
class  IPv4Option
 
class  IPv4OptionBuilder
 
struct  IPv4TimestampOptionValue
 
class  IPv4TotalLengthFilter
 
class  IPv6Address
 
class  IPv6AuthenticationHeader
 
class  IPv6DestinationHeader
 
class  IPv6DnsResourceData
 
class  IPv6Extension
 
class  IPv6FragmentationHeader
 
class  IPv6HopByHopHeader
 
class  IPv6Layer
 
class  IPv6RoutingHeader
 
class  IPv6TLVOptionHeader
 
class  Layer
 
class  LoggerPP
 
class  LRUList
 
class  MacAddress
 
class  MacAddressFilter
 
class  MBufRawPacket
 
class  MplsLayer
 
class  MxDnsResourceData
 
class  NetworkUtils
 
class  NotFilter
 
class  NullLoopbackLayer
 
class  OrFilter
 
class  Packet
 
class  PacketTrailerLayer
 
class  PayloadLayer
 
class  PcapFileReaderDevice
 
class  PcapFileWriterDevice
 
class  PcapLiveDevice
 
class  PcapLiveDeviceList
 
class  PcapNgFileReaderDevice
 
class  PcapNgFileWriterDevice
 
struct  PcapRemoteAuthentication
 
class  PcapRemoteDevice
 
class  PcapRemoteDeviceList
 
class  PfRingDevice
 
class  PfRingDeviceList
 
class  PointerVector
 
class  PortFilter
 
class  PortRangeFilter
 
struct  ppp_pptp_header
 
class  PPP_PPTPLayer
 
struct  pppoe_header
 
class  PPPoEDiscoveryLayer
 
class  PPPoELayer
 
class  PPPoESessionLayer
 
class  ProtoFilter
 
struct  radius_header
 
class  RadiusAttribute
 
class  RadiusAttributeBuilder
 
class  RadiusLayer
 
class  RawPacket
 
class  RawSocketDevice
 
struct  ScalarBuffer
 
class  SdpLayer
 
class  SipLayer
 
class  SipRequestFirstLine
 
class  SipRequestLayer
 
class  SipResponseFirstLine
 
class  SipResponseLayer
 
struct  sll_header
 
class  SllLayer
 
struct  ssl_tls_alert
 
struct  ssl_tls_change_cipher_spec
 
struct  ssl_tls_client_server_hello
 
struct  ssl_tls_handshake_layer
 
struct  ssl_tls_record_layer
 
class  SSLAlertLayer
 
class  SSLApplicationDataLayer
 
class  SSLCertificateMessage
 
class  SSLCertificateRequestMessage
 
class  SSLCertificateVerifyMessage
 
class  SSLChangeCipherSpecLayer
 
class  SSLCipherSuite
 
class  SSLClientHelloMessage
 
class  SSLClientKeyExchangeMessage
 
class  SSLExtension
 
class  SSLFinishedMessage
 
class  SSLHandshakeLayer
 
class  SSLHandshakeMessage
 
class  SSLHelloRequestMessage
 
class  SSLLayer
 
class  SSLNewSessionTicketMessage
 
class  SSLServerHelloDoneMessage
 
class  SSLServerHelloMessage
 
class  SSLServerKeyExchangeMessage
 
class  SSLServerNameIndicationExtension
 
class  SSLUnknownMessage
 
class  SSLx509Certificate
 
class  StringDnsResourceData
 
struct  SystemCore
 
struct  SystemCores
 
class  TablePrinter
 
class  TcpFlagsFilter
 
struct  tcphdr
 
class  TcpLayer
 
class  TcpOption
 
class  TcpOptionBuilder
 
class  TcpReassembly
 
class  TcpStreamData
 
class  TcpWindowSizeFilter
 
class  TextBasedProtocolMessage
 
class  TLVRecord
 
class  TLVRecordBuilder
 
class  TLVRecordReader
 
struct  udphdr
 
class  UdpLayer
 
class  UdpLengthFilter
 
struct  vlan_header
 
class  VlanFilter
 
class  VlanLayer
 
struct  vxlan_header
 
class  VxlanLayer
 
class  WinPcapLiveDevice
 

Typedefs

typedef PointerVector< RawPacketRawPacketVector
 
typedef void(* OnDpdkPacketsArriveCallback) (MBufRawPacket *packets, uint32_t numOfPackets, uint8_t threadId, DpdkDevice *device, void *userCookie)
 
typedef PointerVector< MBufRawPacketMBufRawPacketVector
 
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 void(* OnPacketArrivesCallback) (RawPacket *pPacket, PcapLiveDevice *pDevice, void *userCookie)
 
typedef bool(* OnPacketArrivesStopBlocking) (RawPacket *pPacket, PcapLiveDevice *pDevice, void *userData)
 
typedef void(* OnStatsUpdateCallback) (pcap_stat &stats, void *userCookie)
 

Enumerations

enum  ArpOpcode { ARP_REQUEST = 0x0001, ARP_REPLY = 0x0002 }
 
enum  BootpOpCodes { DHCP_BOOTREQUEST = 1, DHCP_BOOTREPLY = 2 }
 
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
}
 
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
}
 
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
}
 
enum  DnsClass {
  DNS_CLASS_IN = 1, DNS_CLASS_IN_QU = 32769, DNS_CLASS_CH = 3, DNS_CLASS_HS = 4,
  DNS_CLASS_ANY = 255
}
 
enum  DnsResourceType { DnsQueryType = 0, DnsAnswerType = 1, DnsAuthorityType = 2, DnsAdditionalType = 3 }
 
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  HttpVersion { ZeroDotNine, OneDotZero, OneDotOne, HttpVersionUnknown }
 
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
}
 
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  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
}
 
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_RAW = 255,
  PACKETPP_IPPROTO_MAX
}
 
enum  IPv4OptionTypes {
  IPV4OPT_EndOfOtionsList = 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
}
 
enum  LogModule { ,
  CommonLogModuleIpUtils, CommonLogModuleTablePrinter, CommonLogModuleGenericUtils, PacketLogModuleRawPacket,
  PacketLogModulePacket, PacketLogModuleLayer, PacketLogModuleArpLayer, PacketLogModuleEthLayer,
  PacketLogModuleIPv4Layer, PacketLogModuleIPv6Layer, PacketLogModulePayloadLayer, PacketLogModuleTcpLayer,
  PacketLogModuleUdpLayer, PacketLogModuleVlanLayer, PacketLogModuleHttpLayer, PacketLogModulePPPoELayer,
  PacketLogModuleDnsLayer, PacketLogModuleMplsLayer, PacketLogModuleIcmpLayer, PacketLogModuleGreLayer,
  PacketLogModuleSSLLayer, PacketLogModuleSllLayer, PacketLogModuleDhcpLayer, PacketLogModuleIgmpLayer,
  PacketLogModuleSipLayer, PacketLogModuleSdpLayer, PacketLogModuleRadiusLayer, PacketLogModuleTcpReassembly,
  PacketLogModuleIPReassembly, PcapLogModuleWinPcapLiveDevice, PcapLogModuleRemoteDevice, PcapLogModuleLiveDevice,
  PcapLogModuleFileDevice, PcapLogModulePfRingDevice, PcapLogModuleDpdkDevice, NetworkUtils
}
 
enum  Direction { SRC, DST, SRC_OR_DST }
 
enum  FilterOperator {
  EQUALS, NOT_EQUALS, GREATER_THAN, GREATER_OR_EQUAL,
  LESS_THAN, LESS_OR_EQUAL
}
 
enum  ProtocolType {
  UnknownProtocol = 0x00, Ethernet = 0x01, IPv4 = 0x02, IPv6 = 0x04,
  IP = 0x06, TCP = 0x08, UDP = 0x10, HTTPRequest = 0x20,
  HTTPResponse = 0x40, HTTP = 0x20 | 0x40, ARP = 0x80, VLAN = 0x100,
  ICMP = 0x200, PPPoESession = 0x400, PPPoEDiscovery = 0x800, PPPoE = 0x400 | 0x800,
  DNS = 0x1000, MPLS = 0x2000, GREv0 = 0x4000, GREv1 = 0x8000,
  GRE = 0x4000 | 0x8000, PPP_PPTP = 0x10000, SSL = 0x20000, SLL = 0x40000,
  DHCP = 0x80000, NULL_LOOPBACK = 0x100000, IGMP = 0xE00000, IGMPv1 = 0x200000,
  IGMPv2 = 0x400000, IGMPv3 = 0x800000, GenericPayload = 0x1000000, VXLAN = 0x2000000,
  SIPRequest = 0x4000000, SIPResponse = 0x8000000, SIP = 0x4000000 | 0x8000000, SDP = 0x10000000,
  PacketTrailer = 0x20000000, Radius = 0x40000000
}
 
enum  OsiModelLayer {
  OsiModelPhysicalLayer = 1, OsiModelDataLinkLayer = 2, OsiModelNetworkLayer = 3, OsiModelTransportLayer = 4,
  OsiModelSesionLayer = 5, OsiModelPresentationLayer = 6, OsiModelApplicationLayer = 7, OsiModelLayerUnknown = 8
}
 
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_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
}
 
enum  SSLRecordType { SSL_CHANGE_CIPHER_SPEC = 20, SSL_ALERT = 21, SSL_HANDSHAKE = 22, SSL_APPLICATION_DATA = 23 }
 
enum  SSLVersion {
  SSL2 = 0x0200, SSL3 = 0x0300, TLS1_0 = 0x0301, TLS1_1 = 0x0302,
  TLS1_2 = 0x0303
}
 
enum  SSLHandshakeType {
  SSL_HELLO_REQUEST = 0, SSL_CLIENT_HELLO = 1, SSL_SERVER_HELLO = 2, SSL_NEW_SESSION_TICKET = 4,
  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_HANDSHAKE_UNKNOWN = 255
}
 
enum  SSLAlertLevel { SSL_ALERT_LEVEL_WARNING = 1, SSL_ALERT_LEVEL_FATAL = 2, SSL_ALERT_LEVEL_ENCRYPTED = 255 }
 
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_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_ENCRYPRED = 255
}
 
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
}
 
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
}
 
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_Unknown
}
 
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
}
 
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_ELLIPTIC_CURVES = 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_RENEGOTIATION_INFO = 65281, SSL_EXT_Unknown
}
 
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
}
 
enum  TcpOptionType {
  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
}
 

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)
 
in_addr * sockaddr2in_addr (struct sockaddr *sa)
 
in6_addr * sockaddr2in6_addr (struct sockaddr *sa)
 
void sockaddr2string (struct sockaddr *sa, char *resultString)
 
uint32_t in_addr2int (in_addr inAddr)
 
uint16_t compute_checksum (ScalarBuffer< uint16_t > vec[], size_t vecSize)
 
uint32_t fnv_hash (ScalarBuffer< uint8_t > vec[], size_t vecSize)
 
uint32_t fnv_hash (uint8_t *buffer, size_t bufSize)
 
uint32_t hash5Tuple (Packet *packet)
 
uint32_t hash2Tuple (Packet *packet)
 
std::string getPcapPlusPlusVersion ()
 
std::string getPcapPlusPlusVersionFull ()
 
std::string getBuildDateTime ()
 
std::string getGitCommit ()
 
std::string getGitBranch ()
 
std::string getGitInfo ()
 
int getNumOfCores ()
 
CoreMask getCoreMaskForAllMachineCores ()
 
CoreMask createCoreMaskFromCoreVector (std::vector< SystemCore > cores)
 
CoreMask createCoreMaskFromCoreIds (std::vector< int > coreIds)
 
void createCoreVectorFromCoreMask (CoreMask coreMask, std::vector< SystemCore > &resultVec)
 
std::string executeShellCommand (const std::string command)
 
bool directoryExists (std::string dirPath)
 
int clockGetTime (long &sec, long &nsec)
 

Detailed Description

The main namespace for the PcapPlusPlus lib.

Typedef Documentation

◆ 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

pcpp::OnPacketArrivesCallback

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

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

◆ OnPacketArrivesStopBlocking

pcpp::OnPacketArrivesStopBlocking

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

Parameters
[in]pPacketA pointer to the raw packet
[in]pDeviceA 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

pcpp::OnStatsUpdateCallback

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

◆ RawPacketVector

A vector of pointers to RawPacket

Enumeration Type Documentation

◆ ArpOpcode

An enum for ARP message type

Enumerator
ARP_REQUEST 

ARP request.

ARP_REPLY 

ARP reply (response)

◆ BootpOpCodes

BootP opcodes

Enumerator
DHCP_BOOTREQUEST 

BootP request

DHCP_BOOTREPLY 

BootP reply

◆ 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)

◆ 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

◆ 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

◆ 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

◆ 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_RAW 

Raw IP packets

PACKETPP_IPPROTO_MAX 

Maximum value

◆ IPv4OptionTypes

An enum for supported IPv4 option types

Enumerator
IPV4OPT_EndOfOtionsList 

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_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

◆ LogModule

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++)

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++)

PacketLogModuleGreLayer 

GreLayer module (Packet++)

PacketLogModuleSSLLayer 

SSLLayer module (Packet++)

PacketLogModuleSllLayer 

SllLayer module (Packet++)

PacketLogModuleDhcpLayer 

DhcpLayer module (Packet++)

PacketLogModuleIgmpLayer 

IgmpLayer module (Packet++)

PacketLogModuleSipLayer 

SipLayer module (Packet++)

PacketLogModuleSdpLayer 

SdpLayer module (Packet++)

PacketLogModuleRadiusLayer 

RadiusLayer module (Packet++)

PacketLogModuleTcpReassembly 

TcpReassembly module (Packet++)

PacketLogModuleIPReassembly 

IPReassembly module (Packet++)

PcapLogModuleWinPcapLiveDevice 

WinPcapLiveDevice module (Pcap++)

PcapLogModuleRemoteDevice 

WinPcapRemoteDevice module (Pcap++)

PcapLogModuleLiveDevice 

PcapLiveDevice module (Pcap++)

PcapLogModuleFileDevice 

FileDevice module (Pcap++)

PcapLogModulePfRingDevice 

PfRingDevice module (Pcap++)

PcapLogModuleDpdkDevice 

DpdkDevice module (Pcap++)

NetworkUtils 

NetworkUtils module (Pcap++)

◆ 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

◆ ProtocolType

An enum representing all protocols supported by PcapPlusPlus

Enumerator
UnknownProtocol 

Unknown protocol (or unsupported by PcapPlusPlus)

Ethernet 

Ethernet protocol

IPv4 

IPv4 protocol

IPv6 

IPv6 protocol

IP 

IP protocol (aggregation bitmask of IPv4 and IPv6 protocols)

TCP 

TCP protocol

UDP 

UDP protocol

HTTPRequest 

HTTP request protocol

HTTPResponse 

HTTP response protocol

HTTP 

HTTP protocol (aggregation bitmask of HTTP request and HTTP response protocols)

ARP 

ARP protocol

VLAN 

VLAN protocol

ICMP 

ICMP protocol (currently not supported by PcapPlusPlus)

PPPoESession 

PPPoE session protocol

PPPoEDiscovery 

PPPoE discovery protocol

PPPoE 

PPPoE protocol (aggregation bitmask of PPPoESession and PPPoEDiscovery protocols)

DNS 

DNS protocol

MPLS 

MPLS protocol

GREv0 

GRE version 0 protocol

GREv1 

GRE version 1 protocol

GRE 

GRE protocol (aggregation bitmask of GREv0 and GREv1 protocols)

PPP_PPTP 

PPP for PPTP protocol

SSL 

SSL/TLS protocol

SLL 

SLL (Linux cooked capture) protocol

DHCP 

DHCP/BOOTP protocol

NULL_LOOPBACK 

Null/Loopback protocol

IGMP 

IGMP protocol

IGMPv1 

IGMPv1 protocol

IGMPv2 

IGMPv2 protocol

IGMPv3 

IGMPv3 protocol

GenericPayload 

Generic payload (no specific protocol)

VXLAN 

VXLAN protocol

SIPRequest 

SIP request protocol

SIPResponse 

SIP response protocol

SIP 

SIP protocol (aggregation bitmask of SIPRequest and SIPResponse protocols)

SDP 

SDP protocol

PacketTrailer 

Packet trailer

Radius 

RADIUS protocol

◆ 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_ENCRYPRED 

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_ELLIPTIC_CURVES 

Supported Elliptic Curves extension

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_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_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_HANDSHAKE_UNKNOWN 

Unknown SSL handshake message

◆ SSLHashingAlgorithm

SSL/TLS hashing algortihms

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_Unknown 

Unknown algorithm

◆ SSLVersion

SSL/TLS versions. Only SSL3.0 and above are supported

Enumerator
SSL2 

SSLv2.0

SSL3 

SSLv3.0

TLS1_0 

TLSv1.0

TLS1_1 

TLSv1.1

TLS1_2 

TLSv1.2

◆ TcpOptionType

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 PCPP_TCPOPT_TIMESTAMP)

TCPOPT_ECHOREPLY 

Echo Reply (obsoleted by option 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

◆ compute_checksum()

uint16_t pcpp::compute_checksum ( 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

◆ createCoreMaskFromCoreIds()

CoreMask pcpp::createCoreMaskFromCoreIds ( 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 ( 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 
)

Covert 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

◆ directoryExists()

bool pcpp::directoryExists ( 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)

◆ fnv_hash() [1/2]

uint32_t pcpp::fnv_hash ( 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

◆ fnv_hash() [2/2]

uint32_t pcpp::fnv_hash ( 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

◆ 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: 17.02. Notice that for non-official releases (which were pulled from GitHub) the version will end with a '+'. For example: '17.02+' means non-official release but '17.02' 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: "v17.02+ (non-official release)" or "v17.02 (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)

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
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

◆ in_addr2int()

uint32_t pcpp::in_addr2int ( in_addr  inAddr)

Convert a in_addr format address to 32bit representation

Parameters
[in]inAddrAddress in in_addr format
Returns
Address in 32bit format

◆ sockaddr2in6_addr()

in6_addr* pcpp::sockaddr2in6_addr ( struct sockaddr *  sa)

Extract IPv6 address from sockaddr

Parameters
[in]sa- input sockaddr
Returns
Address in in6_addr format

◆ sockaddr2in_addr()

in_addr* pcpp::sockaddr2in_addr ( struct sockaddr *  sa)

Extract IPv4 address from sockaddr

Parameters
[in]sa- input sockaddr
Returns
Address in in_addr format

◆ sockaddr2string()

void pcpp::sockaddr2string ( struct sockaddr *  sa,
char *  resultString 
)

Converts a sockaddr format address to its string representation

Parameters
[in]saAddress in sockaddr format
[out]resultStringString representation of the address