From 5e70e8bb2d60c94dfcf0abfc6826ac77a2ce8678 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 15:39:09 +0300 Subject: [PATCH 01/16] update --- README.md | 873 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 684 insertions(+), 189 deletions(-) diff --git a/README.md b/README.md index 6bab270fd2..3be0cee7ac 100644 --- a/README.md +++ b/README.md @@ -1,107 +1,187 @@ +
+ + + + PcapPlusPlus Logo + + +

πŸš€ PcapPlusPlus

+ +

⚑ High-Performance Network Packet Processing Library for C++ ⚑

+ +--- + +
+ +[![πŸ”§ Build Status](https://img.shields.io/github/actions/workflow/status/seladb/PcapPlusPlus/build_and_test.yml?branch=master&label=Build&logo=github&style=for-the-badge&color=brightgreen)](https://github.com/seladb/PcapPlusPlus/actions?query=workflow%3A%22Build+and+test%22) +[![πŸ” CodeQL](https://img.shields.io/github/actions/workflow/status/seladb/PcapPlusPlus/codeql.yml?branch=master&label=Security&logo=github&style=for-the-badge&color=blue)](https://github.com/seladb/PcapPlusPlus/actions?query=workflow%3A%22CodeQL%22) +[![πŸ“Š Coverage](https://img.shields.io/codecov/c/github/seladb/PcapPlusPlus?logo=codecov&logoColor=white&style=for-the-badge&color=purple)](https://app.codecov.io/github/seladb/PcapPlusPlus) + +
+ +
+ +[![πŸ† Quality Score](https://img.shields.io/ossf-scorecard/github.com/seladb/PcapPlusPlus?label=Security%20Score&style=for-the-badge&color=orange)](https://scorecard.dev/viewer/?uri=github.com/seladb/PcapPlusPlus) +[![πŸ‘₯ Contributors](https://img.shields.io/github/contributors/seladb/PcapPlusPlus?style=for-the-badge&label=Contributors&logo=github&color=red)](https://github.com/seladb/PcapPlusPlus/graphs/contributors) +[![πŸ“₯ Downloads](https://img.shields.io/github/downloads/seladb/PcapPlusPlus/total?style=for-the-badge&label=Downloads&logo=github&color=teal)](https://tooomm.github.io/github-release-stats/?username=seladb&repository=PcapPlusPlus) + +
+ +
+ +[![🐦 Follow](https://img.shields.io/badge/follow-%40seladb-1DA1F2?logo=x&style=for-the-badge)](https://x.com/intent/follow?screen_name=seladb) +[![⭐ Stars](https://img.shields.io/github/stars/seladb/PcapPlusPlus?style=for-the-badge&logo=github&color=yellow)](https://github.com/seladb/PcapPlusPlus/stargazers) +[![🍴 Forks](https://img.shields.io/github/forks/seladb/PcapPlusPlus?style=for-the-badge&logo=github&color=lightgrey)](https://github.com/seladb/PcapPlusPlus/network/members) + +
+ +
+ +
+ + + + + + +
+ +**🌐 Multiplatform**
+Linux β€’ Windows β€’ macOS
+Android β€’ FreeBSD -[![PcapPlusPlus Logo](https://pcapplusplus.github.io/img/logo/logo_color.png)](https://pcapplusplus.github.io) +
-[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/seladb/PcapPlusPlus/build_and_test.yml?branch=master&label=Actions&logo=github&style=flat)](https://github.com/seladb/PcapPlusPlus/actions?query=workflow%3A%22Build+and+test%22) -[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/seladb/PcapPlusPlus/codeql.yml?branch=master&label=CodeQL&logo=github&style=flat)](https://github.com/seladb/PcapPlusPlus/actions?query=workflow%3A%22CodeQL%22) -[![Codecov](https://img.shields.io/codecov/c/github/seladb/PcapPlusPlus?logo=codecov&logoColor=white)](https://app.codecov.io/github/seladb/PcapPlusPlus) -[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/seladb/PcapPlusPlus/badge)](https://scorecard.dev/viewer/?uri=github.com/seladb/PcapPlusPlus) -[![GitHub contributors](https://img.shields.io/github/contributors/seladb/PcapPlusPlus?style=flat&label=Contributors&logo=github)](https://github.com/seladb/PcapPlusPlus/graphs/contributors) +**⚑ High Performance**
+DPDK β€’ PF_RING β€’ eBPF
+Line-rate Processing -[![X Follow](https://img.shields.io/badge/follow-%40seladb-1DA1F2?logo=x&style=social)](https://x.com/intent/follow?screen_name=seladb) -[![GitHub Repo stars](https://img.shields.io/github/stars/seladb/PcapPlusPlus?style=social)]() +
+**πŸ”§ Easy to Use**
+Modern C++ API
+Extensive Documentation + +
-[PcapPlusPlus](https://pcapplusplus.github.io/) is a multiplatform C++ library for capturing, parsing and crafting of network packets. It is designed to be efficient, powerful and easy to use. +--- -PcapPlusPlus enables decoding and forging capabilities for a large variety of network protocols. It also provides easy to use C++ wrappers for the most popular packet processing engines such as [libpcap](https://www.tcpdump.org/), [WinPcap](https://www.winpcap.org/), [Npcap](https://nmap.org/npcap/), [DPDK](https://www.dpdk.org/), [eBPF AF_XDP](https://www.kernel.org/doc/html/next/networking/af_xdp.html) and [PF_RING](https://www.ntop.org/products/packet-capture/pf_ring/). +## 🎯 About PcapPlusPlus -Translations: English Β· [ζ­£ι«”δΈ­ζ–‡](./translation/README-zh-tw.md) Β· [ν•œκ΅­μ–΄](./translation/README-kor.md) +[**PcapPlusPlus**](https://pcapplusplus.github.io/) is a **multiplatform C++ library** for capturing, parsing and crafting of network packets. It is designed to be **efficient**, **powerful** and **easy to use**. -## Table Of Contents +> πŸ’‘ **What makes PcapPlusPlus special?** +> +> PcapPlusPlus enables decoding and forging capabilities for a **large variety of network protocols**. It also provides easy to use C++ wrappers for the most popular packet processing engines such as [**libpcap**](https://www.tcpdump.org/), [**WinPcap**](https://www.winpcap.org/), [**Npcap**](https://nmap.org/npcap/), [**DPDK**](https://www.dpdk.org/), [**eBPF AF_XDP**](https://www.kernel.org/doc/html/next/networking/af_xdp.html) and [**PF_RING**](https://www.ntop.org/products/packet-capture/pf_ring/). -- [Table Of Contents](#table-of-contents) -- [Download](#download) - - [GitHub Release Page](#github-release-page) - - [Homebrew](#homebrew) - - [Vcpkg](#vcpkg) - - [Conan](#conan) - - [Build It Yourself](#build-it-yourself) - - [Verify your packages](#verify-your-packages) -- [Feature Overview](#feature-overview) -- [Getting Started](#getting-started) -- [API Documentation](#api-documentation) -- [Multi Platform Support](#multi-platform-support) -- [Supported Network Protocols](#supported-network-protocols) - - [Data Link Layer (L2)](#data-link-layer-l2) - - [Network Layer (L3)](#network-layer-l3) - - [Transport Layer (L4)](#transport-layer-l4) - - [Session Layer (L5)](#session-layer-l5) - - [Presentation Layer (L6)](#presentation-layer-l6) - - [Application Layer (L7)](#application-layer-l7) -- [DPDK And PF_RING Support](#dpdk-and-pf_ring-support) -- [Benchmarks](#benchmarks) -- [Provide Feedback](#provide-feedback) -- [Contributing](#contributing) -- [License](#license) +
-## Download +**🌍 Translations Available** -You can choose between downloading from GitHub release page, use a package manager or build PcapPlusPlus yourself. For more details please visit the [Download](https://pcapplusplus.github.io/docs/install) page in PcapPlusPlus web-site. +[**πŸ‡ΊπŸ‡Έ English**]() Β· [**πŸ‡ΉπŸ‡Ό ζ­£ι«”δΈ­ζ–‡**](./translation/README-zh-tw.md) Β· [**πŸ‡°πŸ‡· ν•œκ΅­μ–΄**](./translation/README-kor.md) -[![GitHub all releases](https://img.shields.io/github/downloads/seladb/PcapPlusPlus/total?style=flat&label=Downloads&logo=github)](https://tooomm.github.io/github-release-stats/?username=seladb&repository=PcapPlusPlus) +
-### GitHub Release Page +## πŸ“‹ Table Of Contents + +- [🎯 About PcapPlusPlus](#-about-pcapplusplus) +- [πŸ“‹ Table Of Contents](#-table-of-contents) +- [πŸ“¦ Download](#-download) + - [🎯 GitHub Release Page](#-github-release-page) + - [🍺 Homebrew](#-homebrew) + - [πŸ“¦ Vcpkg](#-vcpkg) + - [πŸ”§ Conan](#-conan) + - [πŸ› οΈ Build It Yourself](#️-build-it-yourself) + - [βœ… Verify your packages](#-verify-your-packages) +- [✨ Feature Overview](#-feature-overview) + - [πŸ“‘ **Packet Capture**](#-packet-capture) + - [πŸ” **Packet Parsing \& Crafting**](#-packet-parsing--crafting) + - [πŸ“ **File I/O Operations**](#-file-io-operations) + - [⚑ **Line-Rate Processing**](#-line-rate-processing) + - [🧩 **Packet Reassembly**](#-packet-reassembly) + - [πŸ” **Advanced Features**](#-advanced-features) +- [πŸš€ Getting Started](#-getting-started) +- [πŸ“– API Documentation](#-api-documentation) + - [πŸ“¦ **Packet++**](#-packet) + - [🌐 **Pcap++**](#-pcap) + - [πŸ› οΈ **Common++**](#️-common) +- [🌐 Multi Platform Support](#-multi-platform-support) +- [🌐 Supported Network Protocols](#-supported-network-protocols) + - [πŸ”— Data Link Layer (L2)](#-data-link-layer-l2) + - [🌍 Network Layer (L3)](#-network-layer-l3) + - [🚚 Transport Layer (L4)](#-transport-layer-l4) + - [🀝 Session Layer (L5)](#-session-layer-l5) + - [🎨 Presentation Layer (L6)](#-presentation-layer-l6) + - [πŸ“± Application Layer (L7)](#-application-layer-l7) +- [⚑ DPDK And PF\_RING Support](#-dpdk-and-pf_ring-support) + - [⚑ **DPDK**](#-dpdk) + - [πŸ”₯ **PF\_RINGβ„’**](#-pf_ring) +- [πŸ“Š Benchmarks](#-benchmarks) +- [πŸ’¬ Provide Feedback](#-provide-feedback) +- [🀝 Contributing](#-contributing) +- [πŸ“„ License](#-license) + +## πŸ“¦ Download - +
+ +**πŸŽ‰ Choose Your Preferred Installation Method πŸŽ‰** + +
-### Homebrew +You can choose between downloading from GitHub release page, use a package manager or build PcapPlusPlus yourself. For more details please visit the [**πŸ“– Download**](https://pcapplusplus.github.io/docs/install) page in PcapPlusPlus web-site. + +### 🎯 GitHub Release Page + +``` +πŸ”— https://github.com/seladb/PcapPlusPlus/releases/latest +``` + +### 🍺 Homebrew ```shell brew install pcapplusplus ``` -Homebrew formulae: - -### Vcpkg +**πŸ“Ž Homebrew formulae:** -Windows: +### πŸ“¦ Vcpkg -```text +**πŸͺŸ Windows:** +```cmd .\vcpkg install pcapplusplus ``` -MacOS/Linux: - -```text +**🐧 MacOS/Linux:** +```bash vcpkg install pcapplusplus ``` -Vcpkg port: +**πŸ“Ž Vcpkg port:** -### Conan +### πŸ”§ Conan -```text +```bash conan install "pcapplusplus/[>0]@" -u ``` -The package in ConanCenter: +**πŸ“Ž The package in ConanCenter:** -### Build It Yourself - -Clone the git repository: +### πŸ› οΈ Build It Yourself +**πŸ“₯ Clone the repository:** ```shell git clone https://github.com/seladb/PcapPlusPlus.git ``` -Follow the build instructions according to your platform in the [Build From Source](https://pcapplusplus.github.io/docs/install#build-from-source) page in PcapPlusPlus web-site. +Follow the build instructions according to your platform in the [**πŸ—οΈ Build From Source**](https://pcapplusplus.github.io/docs/install#build-from-source) page in PcapPlusPlus web-site. -### Verify your packages +### βœ… Verify your packages -PcapPlusPlus releases which newer than v23.09 are signed with GitHub attestation. All of the attestations can be found [here](https://github.com/seladb/PcapPlusPlus/attestations). You can verify the attestation of these packages with GitHub CLI. To verify packages you can follow the most recent instructions from [gh attestation verify](https://cli.github.com/manual/gh_attestation_verify). For simple instructions you can use the following command: +PcapPlusPlus releases which newer than **v23.09** are signed with **GitHub attestation**. All of the attestations can be found [**here**](https://github.com/seladb/PcapPlusPlus/attestations). You can verify the attestation of these packages with GitHub CLI. To verify packages you can follow the most recent instructions from [**gh attestation verify**](https://cli.github.com/manual/gh_attestation_verify). For simple instructions you can use the following command: ```shell gh attestation verify --repository seladb/PcapPlusPlus @@ -113,20 +193,108 @@ and you should see the following output in your terminal: βœ“ Verification succeeded! ``` -## Feature Overview +## ✨ Feature Overview + +
+ +**🎯 Everything You Need for Network Packet Processing 🎯** + +
+ + + + + + + + + + + + + + +
+ +### πŸ“‘ **Packet Capture** +Easy-to-use C++ wrapper for popular engines: +- πŸ”§ **libpcap** - Universal packet capture +- πŸͺŸ **WinPcap/Npcap** - Windows packet capture +- ⚑ **Intel DPDK** - High-performance processing +- 🌐 **eBPF AF_XDP** - Kernel bypass networking +- πŸ”₯ **PF_RING** - High-speed packet processing +- πŸ”Œ **Raw sockets** - Low-level network access + +[**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#packet-capture) + + + +### πŸ” **Packet Parsing & Crafting** +Detailed protocol analysis and packet generation: +- πŸ•΅οΈ **Deep packet inspection** +- πŸ› οΈ **Packet creation and modification** +- πŸ“Š **Layer-by-layer analysis** +- 🌐 **50+ supported protocols** +- 🎯 **Protocol-specific handling** + +[**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#packet-parsing-and-crafting) + +
+ +### πŸ“ **File I/O Operations** +Read and write packets from/to files: +- πŸ“„ **PCAP format support** +- πŸ“Š **PCAPNG format support** +- πŸ”„ **Format conversion** +- πŸ’Ύ **Efficient file handling** + +[**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#read-and-write-packets-fromto-files) + + + +### ⚑ **Line-Rate Processing** +High-performance packet processing: +- πŸš€ **DPDK integration** +- 🌊 **eBPF AF_XDP support** +- πŸ”₯ **PF_RING optimization** +- πŸ“ˆ **Scalable architecture** +- ⚑ **Zero-copy processing** + +[**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#dpdk-support) + +
+ +### 🧩 **Packet Reassembly** +Advanced reconstruction capabilities: +- πŸ”— **TCP Reassembly** - Handle retransmissions & out-of-order +- 🧩 **IP Fragmentation/Defragmentation** - IPv4 & IPv6 +- πŸ”„ **Missing data handling** +- 🎯 **State management** + +[**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#packet-reassembly) + + + +### πŸ” **Advanced Features** +Specialized networking capabilities: +- πŸŽ›οΈ **BPF filters made easy** +- πŸ” **TLS Fingerprinting (JA3/JA3S)** +- 🌐 **Multi-platform support** +- 🎯 **User-friendly packet filtering** + +[**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#packet-filtering) + +
+ +## πŸš€ Getting Started -- __Packet capture__ through an easy to use C++ wrapper for popular packet capture engines such as [libpcap](https://www.tcpdump.org/), [WinPcap](https://www.winpcap.org/), [Npcap](https://nmap.org/npcap/), [Intel DPDK](https://www.dpdk.org/), [eBPF AF_XDP](https://www.kernel.org/doc/html/next/networking/af_xdp.html), [ntop’s PF_RING](https://www.ntop.org/products/packet-capture/pf_ring/) and [raw sockets](https://en.wikipedia.org/wiki/Network_socket#Raw_socket) [[Learn more](https://pcapplusplus.github.io/docs/features#packet-capture)] -- __Packet parsing and crafting__ including detailed analysis of protocols and layers, packet generation and packet edit for a large variety of [network protocols](https://pcapplusplus.github.io/docs/features#supported-network-protocols) [[Learn more](https://pcapplusplus.github.io/docs/features#packet-parsing-and-crafting)] -- __Read and write packets from/to files__ in both __PCAP__ and __PCAPNG__ formats [[Learn more](https://pcapplusplus.github.io/docs/features#read-and-write-packets-fromto-files)] -- __Packet processing in line rate__ through an efficient and easy to use C++ wrapper for [DPDK](https://www.dpdk.org/), [eBPF AF_XDP](https://www.kernel.org/doc/html/next/networking/af_xdp.html) and [PF_RING](https://www.ntop.org/products/packet-capture/pf_ring/) [[Learn more](https://pcapplusplus.github.io/docs/features#dpdk-support)] -- __Multiplatform support__ - PcapPlusPlus is fully supported on Linux, MacOS, Windows, Android and FreeBSD -- __Packet reassembly__ - unique implementation of __TCP Reassembly__ which includes TCP retransmission, out-of-order TCP packets and missing TCP data, and __IP Fragmentation and Defragmentation__ to create and reassemble IPv4 and IPv6 fragments [[Learn more](https://pcapplusplus.github.io/docs/features#packet-reassembly)] -- __Packet filtering__ that makes libpcap's BPF filters a lot more user-friendly [[Learn more](https://pcapplusplus.github.io/docs/features#packet-filtering)] -- __TLS Fingerprinting__ - a C++ implementation of [JA3 and JA3S](https://github.com/salesforce/ja3) TLS fingerprinting [[Learn more](https://pcapplusplus.github.io/docs/features#tls-fingerprinting)] +
+ +**✨ Writing applications with PcapPlusPlus is very easy and intuitive! ✨** -## Getting Started +
-Writing applications with PcapPlusPlus is very easy and intuitive. Here is a simple application that shows how to read a packet from a PCAP file and parse it: +Here's a **simple application** that shows how to read a packet from a PCAP file and parse it: ```cpp #include @@ -136,190 +304,517 @@ Writing applications with PcapPlusPlus is very easy and intuitive. Here is a sim int main(int argc, char* argv[]) { - // open a pcap file for reading + // πŸ“‚ open a pcap file for reading pcpp::PcapFileReaderDevice reader("1_packet.pcap"); if (!reader.open()) { - std::cerr << "Error opening the pcap file" << std::endl; + std::cerr << "❌ Error opening the pcap file" << std::endl; return 1; } - // read the first (and only) packet from the file + // πŸ“¦ read the first (and only) packet from the file pcpp::RawPacket rawPacket; if (!reader.getNextPacket(rawPacket)) { - std::cerr << "Couldn't read the first packet in the file" << std::endl; + std::cerr << "❌ Couldn't read the first packet in the file" << std::endl; return 1; } - // parse the raw packet into a parsed packet + // πŸ” parse the raw packet into a parsed packet pcpp::Packet parsedPacket(&rawPacket); - // verify the packet is IPv4 + // βœ… verify the packet is IPv4 if (parsedPacket.isPacketOfType(pcpp::IPv4)) { - // extract source and dest IPs + // 🎯 extract source and dest IPs pcpp::IPv4Address srcIP = parsedPacket.getLayerOfType()->getSrcIPv4Address(); pcpp::IPv4Address destIP = parsedPacket.getLayerOfType()->getDstIPv4Address(); - // print source and dest IPs - std::cout << "Source IP is '" << srcIP << "'; Dest IP is '" << destIP << "'" << std::endl; + // πŸ“€ print source and dest IPs + std::cout << "🌐 Source IP is '" << srcIP << "'; Dest IP is '" << destIP << "'" << std::endl; } - // close the file + // πŸ”’ close the file reader.close(); return 0; } ``` -You can find much more information in the [Getting Started](https://pcapplusplus.github.io/docs/quickstart) page in PcapPlusPlus web-site. This page will walk you through few easy steps to have an app up and running. +
+ +**πŸŽ“ Want to learn more?** + +Visit our comprehensive [**πŸ“š Getting Started**](https://pcapplusplus.github.io/docs/quickstart) guide! This page will walk you through **few easy steps** to have an app up and running. + +
+ +## πŸ“– API Documentation + +
+ +**πŸ—οΈ PcapPlusPlus Architecture Overview πŸ—οΈ** + +
+ +PcapPlusPlus consists of **3 powerful libraries**: + + + + + + + +
+ +### πŸ“¦ **Packet++** +Packet++ + +**πŸ” Packet Processing Engine** + +A library for **parsing**, **creating** and **editing** network packets with support for 50+ protocols. + + + +### 🌐 **Pcap++** +Pcap++ + +**πŸ“‘ Capture & Send Engine** -## API Documentation +C++ wrapper for packet engines like **libpcap**, **WinPcap**, **Npcap**, **DPDK** and **PF_RING**. -PcapPlusPlus consists of 3 libraries: + -1. __Packet++__ - a library for parsing, creating and editing network packets -2. __Pcap++__ - a library for intercepting and sending packets, providing network and NIC info, stats, etc. It is actually a C++ wrapper for packet capturing engines such as libpcap, WinPcap, Npcap, DPDK and PF_RING -3. __Common++__ - a library with some common code utilities used by both Packet++ and Pcap++ +### πŸ› οΈ **Common++** +Common++ -You can find an extensive API documentation in the [API documentation section](https://pcapplusplus.github.io/docs/api) in PcapPlusPlus web-site. -If you see any missing data please [contact us](#provide-feedback). +**βš™οΈ Utilities Library** -## Multi Platform Support +Common utilities and helper functions used by both **Packet++** and **Pcap++**. + +
+ +
+ +**πŸ“š Comprehensive Documentation Available** + +You can find extensive API documentation in the [**πŸ“– API Documentation**](https://pcapplusplus.github.io/docs/api) section. + +
+ +## 🌐 Multi Platform Support + +
+ +**Runs Everywhere You Need It! πŸš€** + +
+ +
+ + + + + + + + +
-PcapPlusPlus is currently supported on -__Windows__ - -, -__Linux__ + Windows + + +**πŸͺŸ Windows** + +*Visual Studio 16+* +
+*MinGW 32* +
+*MinGW 64* +
+ +
+ - -, -__MacOS__ - - -, -__Android__ + Linux + + +**🐧 Linux** + +*Ubuntu 20.04+* +
+*Alpine 3.20* +
+*Fedora 42* +
+*Red Hat Enterprise Linux 9.4* + +
+ + + + macOS + + +**🍎 macOS** + +*MacOS 13+ x86* +
+*MacOS 13+ arm64* + +
+ - - and -__FreeBSD__ + Android + + +**πŸ€– Android** + +*API version 35+* + + + - -. -Please visit PcapPlusPlus web-site to see all of the [supported platforms](https://pcapplusplus.github.io/docs/platforms) and refer to the [Download](#download) section to start using PcapPlusPlus on your platform. + FreeBSD + + +**😈 FreeBSD** + +*FreeBSD 13.4* +
+*FreeBSD 14.1* + +
+
-## Supported Network Protocols +
-PcapPlusPlus currently supports parsing, editing and creation of packets of the following protocols: +
-### Data Link Layer (L2) +## 🌐 Supported Network Protocols -1. Cisco HDLC -2. Ethernet II -3. IEEE 802.3 Ethernet -4. LLC (Only BPDU supported) -5. Null/Loopback -6. Packet trailer (a.k.a footer or padding) -7. PPPoE -8. SLL (Linux cooked capture) -9. SLL2 (Linux cooked capture v2) -10. STP -11. VLAN -12. VXLAN -13. Wake on LAN (WoL) -14. NFLOG (Linux Netfilter NFLOG) - parsing only (no editing capabilities) +
+**🎯 50+ Network Protocols Supported! 🎯** -### Network Layer (L3) +*PcapPlusPlus supports **parsing**, **editing** and **creation** of packets for the following protocols:* -15. ARP -16. GRE -17. ICMP -18. ICMPv6 -19. IGMP (IGMPv1, IGMPv2 and IGMPv3 are supported) -20. IPv4 -21. IPv6 -22. MPLS -23. NDP -24. Raw IP (IPv4 & IPv6) -25. VRRP (IPv4 & IPv6) -26. WireGuard +
+ +### πŸ”— Data Link Layer (L2) + +
+ +- 🌐 **Cisco HDLC** +- πŸ”Œ **Ethernet II** +- πŸ“‘ **IEEE 802.3 Ethernet** +- πŸ”§ **LLC** (BPDU supported) +- πŸ”„ **Null/Loopback** +- πŸ“¦ **Packet trailer** (footer/padding) +- 🌐 **PPPoE** +- 🐧 **SLL** (Linux cooked capture) +- 🐧 **SLL2** (Linux cooked capture v2) +- 🌳 **STP** +- 🏷️ **VLAN** +- 🌊 **VXLAN** +- πŸ’€ **Wake on LAN (WoL)** +- πŸ”₯ **NFLOG** *(parsing only)* -### Transport Layer (L4) +
-27. COTP -28. GTP (v1 & v2) -29. IPSec AH & ESP - parsing only (no editing capabilities) -30. TCP -31. TPKT -32. UDP +### 🌍 Network Layer (L3) -### Session Layer (L5) +
-33. SDP -34. SIP +- πŸ—ΊοΈ **ARP** +- πŸš‡ **GRE** +- πŸ“‘ **ICMP** +- πŸ“‘ **ICMPv6** +- πŸ“Š **IGMP** (v1, v2, v3) +- 🌍 **IPv4** +- 🌐 **IPv6** +- 🏷️ **MPLS** +- πŸ” **NDP** +- πŸ“¦ **Raw IP** (IPv4 & IPv6) +- πŸ”„ **VRRP** (IPv4 & IPv6) +- πŸ”’ **WireGuard** -### Presentation Layer (L6) +
-35. SSL/TLS - parsing only (no editing capabilities) +### 🚚 Transport Layer (L4) -### Application Layer (L7) +
-36. ASN.1 decoder and encoder -37. BGP (v4) -38. DHCP -39. DHCPv6 -40. DNS -41. FTP -42. HTTP headers (request & response) -43. LDAP -44. NTP (v3, v4) -45. Radius -46. S7 Communication (S7comm) -47. SMTP -48. SOME/IP -49. SSH - parsing only (no editing capabilities) -50. Telnet - parsing only (no editing capabilities) -51. Generic payload +- πŸ”— **COTP** +- πŸ“± **GTP** (v1 & v2) +- πŸ”’ **IPSec AH & ESP** *(parsing only)* +- 🚚 **TCP** +- πŸ“¦ **TPKT** +- πŸ“‘ **UDP** -## DPDK And PF_RING Support +
-[The Data Plane Development Kit (DPDK)](https://www.dpdk.org/) is a set of data plane libraries and network interface controller drivers for fast packet processing. +### 🀝 Session Layer (L5) -[PF_RINGβ„’](https://www.ntop.org/products/packet-capture/pf_ring/) is a new type of network socket that dramatically improves the packet capture speed. +
-Both frameworks provide very fast packets processing (up to line speed) and are used in many network applications such as routers, firewalls, load balancers, etc. -PcapPlusPLus provides a C++ abstraction layer over DPDK & PF_RING. This abstraction layer provides an easy to use interface that removes a lot of the boilerplate involved in using these frameworks. You can learn more by visiting the [DPDK](https://pcapplusplus.github.io/docs/dpdk) & [PF_RING](https://pcapplusplus.github.io/docs/features#pf_ring-support) support pages in PcapPlusPlus web-site. +- πŸ“ž **SDP** +- πŸ“ž **SIP** -## Benchmarks +
-We used Matias Fontanini's [packet-capture-benchmarks](https://github.com/mfontanini/packet-capture-benchmarks) project to compare the performance of PcapPlusPlus with other similar C++ libraries (such as `libtins` and `libcrafter`). +### 🎨 Presentation Layer (L6) -You can see the results in the [Benchmarks](https://pcapplusplus.github.io/docs/benchmark) page in PcapPlusPlus web-site. +
-## Provide Feedback +- πŸ”’ **SSL/TLS** *(parsing only)* -We'd be more than happy to get feedback, please feel free to reach out to us in any of the following ways: +
-- Open a GitHub ticket -- Post a message in PcapPlusPlus Google group: -- Ask a question on Stack Overflow: -- Send an email to: -- Follow us on X: +### πŸ“± Application Layer (L7) + +
+ +- πŸ”§ **ASN.1** decoder/encoder +- 🌐 **BGP** (v4) +- πŸ”§ **DHCP** +- πŸ”§ **DHCPv6** +- 🌐 **DNS** +- πŸ“ **FTP** +- 🌐 **HTTP** headers +- πŸ“‚ **LDAP** +- ⏰ **NTP** (v3, v4) +- πŸ” **Radius** +- 🏭 **S7 Communication** +- πŸ“§ **SMTP** +- πŸš— **SOME/IP** +- πŸ” **SSH** *(parsing only)* +- πŸ“Ÿ **Telnet** *(parsing only)* +- πŸ“¦ **Generic payload** -If you like this project please __Star us on GitHub β€” it helps!__ :star: :star: +
-Please visit the [PcapPlusPlus web-site](https://pcapplusplus.github.io/community) to learn more. +## ⚑ DPDK And PF_RING Support -## Contributing +
-We would very much appreciate any contribution to this project. If you're interested in contributing please visit the [contribution page](https://pcapplusplus.github.io/community#contribute) in PcapPlusPlus web-site. +**πŸš€ Unleash Line-Rate Performance! πŸš€** -## License +
-PcapPlusPlus is released under the [Unlicense license](https://choosealicense.com/licenses/unlicense/). + + + + + +
-[![GitHub](https://img.shields.io/github/license/seladb/PcapPlusPlus?style=flat&color=blue&logo=unlicense)](https://choosealicense.com/licenses/unlicense/) +### ⚑ **DPDK** +DPDK + +**πŸ”₯ Data Plane Development Kit** + +Set of data plane libraries and drivers for **ultra-fast packet processing**. Perfect for routers, firewalls, and load balancers. + +[**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/dpdk) + + + +### πŸ”₯ **PF_RINGβ„’** +PF_RING + +**⚑ High-Speed Network Socket** + +Revolutionary network socket that **dramatically improves** packet capture speed for real-time processing. + +[**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#pf_ring-support) + +
+ +> πŸ’‘ **Why use DPDK & PF_RING?** +> +> Both frameworks provide **very fast packet processing** (up to **line speed**) and are used in many network applications such as **routers**, **firewalls**, **load balancers**, etc. +> +> **PcapPlusPlus** provides a **C++ abstraction layer** over DPDK & PF_RING that removes the boilerplate and makes these powerful frameworks **easy to use**! + +## πŸ“Š Benchmarks + +
+ +**πŸ† Performance Matters! πŸ†** + +
+ +We used **Matias Fontanini's** [**packet-capture-benchmarks**](https://github.com/mfontanini/packet-capture-benchmarks) project to compare the performance of **PcapPlusPlus** with other similar C++ libraries (such as `libtins` and `libcrafter`). + +
+ +**πŸ“ˆ See The Results** + +Check out our comprehensive [**πŸ“Š Benchmarks**](https://pcapplusplus.github.io/docs/benchmark) page to see how **PcapPlusPlus** performs! + +
+ +## πŸ’¬ Provide Feedback + +
+ +**🀝 We'd Love to Hear From You! 🀝** + +
+ +
+ + + + + + + + +
+ +**πŸ› Issues** + +[GitHub Issues](https://github.com/seladb/PcapPlusPlus/issues) + +*Bug reports & feature requests* + + + +**πŸ’¬ Discussion** + +[Google Groups](https://groups.google.com/d/forum/pcapplusplus-support) + +*Community support* + + + +**❓ Q&A** + +[Stack Overflow](https://stackoverflow.com/questions/tagged/pcapplusplus) + +*Technical questions* + + + +**πŸ“§ Email** + +[pcapplusplus@gmail.com](mailto:pcapplusplus@gmail.com) + +*Direct contact* + + + +**🐦 Social** + +[Follow @seladb](https://x.com/seladb) + +*Updates & news* + +
+
+ +
+ +**⭐ Show Your Support ⭐** + +If you like this project please **Star us on GitHub** β€” it helps! 🌟 + +[![GitHub stars](https://img.shields.io/github/stars/seladb/PcapPlusPlus?style=for-the-badge&logo=github&color=yellow)](https://github.com/seladb/PcapPlusPlus/stargazers) + +
+ +
+ +**🌐 Learn More** + +Visit the [**PcapPlusPlus Community**](https://pcapplusplus.github.io/community) page to learn more. + +
+ +## 🀝 Contributing + +
+ +**πŸŽ‰ Join Our Community of Contributors! πŸŽ‰** + +
+ +We would **very much appreciate** any contribution to this project! Whether you're: + +
+ + + + + + + +
+ +**πŸ› Bug Hunter** + +Found a bug?
+*Help us fix it!* + +
+ +**✨ Feature Developer** + +Got a cool idea?
+*Let's build it together!* + +
+ +**πŸ“š Documentation Writer** + +Love clear docs?
+*Help us improve them!* + +
+ +**πŸ§ͺ Tester** + +Testing enthusiast?
+*Help us ensure quality!* + +
+
+ +
+ +**πŸš€ Get Started Contributing** + +Visit our [**🀝 Contributing Guide**](https://pcapplusplus.github.io/community#contribute) to learn how you can help make PcapPlusPlus even better! + +
+ +## πŸ“„ License + +
+ +**πŸ†“ Free and Open Source πŸ†“** + +
+ +PcapPlusPlus is released under the [**Unlicense**](https://choosealicense.com/licenses/unlicense/) - meaning it's completely **free** for any use! + +
+ +[![License: Unlicense](https://img.shields.io/github/license/seladb/PcapPlusPlus?style=for-the-badge&color=brightgreen&logo=unlicense)](https://choosealicense.com/licenses/unlicense/) + +**βœ… Commercial Use** β€’ **βœ… Modification** β€’ **βœ… Distribution** β€’ **βœ… Private Use** + +
+ +--- + +
+ +**πŸŽ‰ Thank you for using PcapPlusPlus! πŸŽ‰** + +Made with Love + +
From f790e61a2cb78133a0600ad0f8e31ee01cf6204b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 15:42:24 +0300 Subject: [PATCH 02/16] add aligner --- README.md | 70 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 3be0cee7ac..ca23359dbb 100644 --- a/README.md +++ b/README.md @@ -411,9 +411,9 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt
- +
- - - - - From a80927857906cd2ecc64c71089e8382629a8526a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 15:43:30 +0300 Subject: [PATCH 03/16] fix logo --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index ca23359dbb..30dbcf427e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@
- - - PcapPlusPlus Logo - +[![PcapPlusPlus Logo](https://pcapplusplus.github.io/img/logo/logo_color.png)](https://pcapplusplus.github.io)

πŸš€ PcapPlusPlus

From 2e8430b7cc9e44bf7b3b66ef13ca645b35e5fb9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 15:44:00 +0300 Subject: [PATCH 04/16] remove header it looks like duplicate --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 30dbcf427e..a0bb003d29 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ [![PcapPlusPlus Logo](https://pcapplusplus.github.io/img/logo/logo_color.png)](https://pcapplusplus.github.io) -

πŸš€ PcapPlusPlus

-

⚑ High-Performance Network Packet Processing Library for C++ ⚑

--- From fd1307fb28736d7806af72ff554cf9731d22a31a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 15:46:03 +0300 Subject: [PATCH 05/16] shorten red hat --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a0bb003d29..e2d7009573 100644 --- a/README.md +++ b/README.md @@ -439,7 +439,7 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt *Ubuntu 20.04+*
*Alpine 3.20*
*Fedora 42*
-*Red Hat Enterprise Linux 9.4* +*Red Hat EL 9.4*
From 894bffa7aceb433ff30181709b7d38906293070e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 15:47:03 +0300 Subject: [PATCH 06/16] remove extra aligners --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index e2d7009573..4a3fe51db7 100644 --- a/README.md +++ b/README.md @@ -420,8 +420,7 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt *Visual Studio 16+*
*MinGW 32*
-*MinGW 64*
-* * +*MinGW 64* @@ -457,7 +456,6 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt *MacOS 13+ x86*
*MacOS 13+ arm64*
-* *
* * From 8e09ea8bbbfb19e7e16a22dae1cadb4fb0f545f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 15:47:56 +0300 Subject: [PATCH 07/16] shorten visual studio --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4a3fe51db7..09658b9aa0 100644 --- a/README.md +++ b/README.md @@ -418,9 +418,10 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt
-*Visual Studio 16+*
+*VS 16+*
*MinGW 32*
-*MinGW 64* +*MinGW 64*
+* *
From 1f70b2f82b327fe5c5657fadd0547fda6a85b356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 15:48:11 +0300 Subject: [PATCH 08/16] Revert "shorten visual studio" This reverts commit 8e09ea8bbbfb19e7e16a22dae1cadb4fb0f545f0. --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 09658b9aa0..4a3fe51db7 100644 --- a/README.md +++ b/README.md @@ -418,10 +418,9 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt
-*VS 16+*
+*Visual Studio 16+*
*MinGW 32*
-*MinGW 64*
-* * +*MinGW 64*
From 4b8e6b4397274d38d94befb8718945ca1c1b77f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 15:52:19 +0300 Subject: [PATCH 09/16] improve contrast of heart --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a3fe51db7..04fda4604d 100644 --- a/README.md +++ b/README.md @@ -828,6 +828,6 @@ PcapPlusPlus is released under the [**Unlicense**](https://choosealicense.com/li **πŸŽ‰ Thank you for using PcapPlusPlus! πŸŽ‰** -Made with Love +Made with Love From e2924109b24b9ccb0d15ae537e5d27d5ff8d0bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 16:08:48 +0300 Subject: [PATCH 10/16] fix whitespace --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 02407eaee7..b27055e830 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ Extensive Documentation [**PcapPlusPlus**](https://pcapplusplus.github.io/) is a **multiplatform C++ library** for capturing, parsing and crafting of network packets. It is designed to be **efficient**, **powerful** and **easy to use**. > πŸ’‘ **What makes PcapPlusPlus special?** -> +> > PcapPlusPlus enables decoding and forging capabilities for a **large variety of network protocols**. It also provides easy to use C++ wrappers for the most popular packet processing engines such as [**libpcap**](https://www.tcpdump.org/), [**WinPcap**](https://www.winpcap.org/), [**Npcap**](https://nmap.org/npcap/), [**DPDK**](https://www.dpdk.org/), [**eBPF AF_XDP**](https://www.kernel.org/doc/html/next/networking/af_xdp.html) and [**PF_RING**](https://www.ntop.org/products/packet-capture/pf_ring/).
@@ -203,7 +203,7 @@ and you should see the following output in your terminal: ### πŸ“‘ **Packet Capture** Easy-to-use C++ wrapper for popular engines: - πŸ”§ **libpcap** - Universal packet capture -- πŸͺŸ **WinPcap/Npcap** - Windows packet capture +- πŸͺŸ **WinPcap/Npcap** - Windows packet capture - ⚑ **Intel DPDK** - High-performance processing - 🌐 **eBPF AF_XDP** - Kernel bypass networking - πŸ”₯ **PF_RING** - High-speed packet processing @@ -621,7 +621,7 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt
+ Windows @@ -421,15 +421,17 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt **πŸͺŸ Windows** -*Visual Studio 16+* -
-*MinGW 32* -
-*MinGW 64* -
+
+ +*Visual Studio 16+*
+*MinGW 32*
+*MinGW 64*
+* * + +
+ Linux @@ -437,16 +439,17 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt **🐧 Linux** -*Ubuntu 20.04+* -
-*Alpine 3.20* -
-*Fedora 42* -
+
+ +*Ubuntu 20.04+*
+*Alpine 3.20*
+*Fedora 42*
*Red Hat Enterprise Linux 9.4* +
+
+ @@ -455,12 +458,17 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt **🍎 macOS** -*MacOS 13+ x86* -
-*MacOS 13+ arm64* +
+ +*MacOS 13+ x86*
+*MacOS 13+ arm64*
+* *
+* * + +
+ Android @@ -468,10 +476,17 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt **πŸ€– Android** -*API version 35+* +
+ +*API version 35+*
+* *
+* *
+* * + +
+ FreeBSD @@ -479,9 +494,14 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt **😈 FreeBSD** -*FreeBSD 13.4* -
-*FreeBSD 14.1* +
+ +*FreeBSD 13.4*
+*FreeBSD 14.1*
+* *
+* * + +
-### ⚑ **DPDK** +### ⚑ **DPDK** DPDK **πŸ”₯ Data Plane Development Kit** @@ -647,7 +647,7 @@ Revolutionary network socket that **dramatically improves** packet capture speed
> πŸ’‘ **Why use DPDK & PF_RING?** -> +> > Both frameworks provide **very fast packet processing** (up to **line speed**) and are used in many network applications such as **routers**, **firewalls**, **load balancers**, etc. > > **PcapPlusPlus** provides a **C++ abstraction layer** over DPDK & PF_RING that removes the boilerplate and makes these powerful frameworks **easy to use**! From 8120d12f141a19a87589cceb5a2c00cd2266433f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 16:25:01 +0300 Subject: [PATCH 11/16] add xdp --- README.md | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b27055e830..86cc2f5365 100644 --- a/README.md +++ b/README.md @@ -111,9 +111,10 @@ Extensive Documentation - [🀝 Session Layer (L5)](#-session-layer-l5) - [🎨 Presentation Layer (L6)](#-presentation-layer-l6) - [πŸ“± Application Layer (L7)](#-application-layer-l7) -- [⚑ DPDK And PF\_RING Support](#-dpdk-and-pf_ring-support) +- [⚑ High-Performance Packet Processing Support](#-high-performance-packet-processing-support) - [⚑ **DPDK**](#-dpdk) - [πŸ”₯ **PF\_RINGβ„’**](#-pf_ring) + - [**eBPF XDP**](#ebpf-xdp) - [πŸ“Š Benchmarks](#-benchmarks) - [πŸ’¬ Provide Feedback](#-provide-feedback) - [🀝 Contributing](#-contributing) @@ -609,7 +610,7 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt
-## ⚑ DPDK And PF_RING Support +## ⚑ High-Performance Packet Processing Support
@@ -619,7 +620,7 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt - - - -
+ ### ⚑ **DPDK** DPDK @@ -631,7 +632,7 @@ Set of data plane libraries and drivers for **ultra-fast packet processing**. Pe [**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/dpdk) + ### πŸ”₯ **PF_RINGβ„’** PF_RING @@ -643,14 +644,24 @@ Revolutionary network socket that **dramatically improves** packet capture speed [**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#pf_ring-support)
+ + +### **eBPF XDP** +XDP -> πŸ’‘ **Why use DPDK & PF_RING?** +**⚑ eXpress Data Path** + +Linux kernel's **ultra-fast** packet processing framework using eBPF for **zero-copy** performance. + +[**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#af_xdp-support) + + + + > πŸ’‘ **Why use these high-performance frameworks?** > -> Both frameworks provide **very fast packet processing** (up to **line speed**) and are used in many network applications such as **routers**, **firewalls**, **load balancers**, etc. +> All these frameworks provide **very fast packet processing** (up to **line speed**) and are used in many network applications such as **routers**, **firewalls**, **load balancers**, etc. > -> **PcapPlusPlus** provides a **C++ abstraction layer** over DPDK & PF_RING that removes the boilerplate and makes these powerful frameworks **easy to use**! +> **PcapPlusPlus** provides a **C++ abstraction layer** over DPDK, PF_RING & XDP that removes the boilerplate and makes these powerful frameworks **easy to use**! ## πŸ“Š Benchmarks From c7dddf9e8f2983c5f030f35b7ee70f51f974411e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 16:34:11 +0300 Subject: [PATCH 12/16] add backends section to mention all of them --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/README.md b/README.md index 86cc2f5365..a0579280d1 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,11 @@ Extensive Documentation - [🧩 **Packet Reassembly**](#-packet-reassembly) - [πŸ” **Advanced Features**](#-advanced-features) - [πŸš€ Getting Started](#-getting-started) +- [πŸ“‘ Packet Capture Backends](#-packet-capture-backends) + - [πŸ”§ **libpcap**](#-libpcap) + - [πŸͺŸ **WinPcap/Npcap**](#-winpcapnpcap) + - [🌐 **Remote Capture (rpcapd)**](#-remote-capture-rpcapd) + - [πŸš€ **DPDK KNI**](#-dpdk-kni) - [πŸ“– API Documentation](#-api-documentation) - [πŸ“¦ **Packet++**](#-packet) - [🌐 **Pcap++**](#-pcap) @@ -345,6 +350,67 @@ Visit our comprehensive [**πŸ“š Getting Started**](https://pcapplusplus.github.i
+## πŸ“‘ Packet Capture Backends + +
+ +**πŸ”§ Multiple Capture Engines Supported! πŸ”§** + +
+ +PcapPlusPlus provides a **unified C++ interface** for multiple packet capture backends, making it easy to switch between different capture engines based on your platform and requirements. + + + + + + + + +
+ +### πŸ”§ **libpcap** +libpcap + +**🐧 Universal Packet Capture** + +The standard packet capture library for **Unix-like systems**. Cross-platform support for Linux, macOS, and BSD. + + + +### πŸͺŸ **WinPcap/Npcap** +WinPcap/Npcap + +**πŸ–₯️ Windows Packet Capture** + +**WinPcap** and **Npcap** provide packet capture capabilities on Windows systems with advanced filtering. + + + +### 🌐 **Remote Capture (rpcapd)** +rpcapd + +**πŸ“‘ Network-Based Capture** + +**Remote packet capture** using rpcapd daemon for capturing packets from remote machines over the network. + + + +### πŸš€ **DPDK KNI** +KNI + +**πŸŒ‰ Kernel Network Interface** + +DPDK's **Kernel Network Interface** for seamless integration between kernel space and DPDK userspace applications. + +
+ +> πŸ’‘ **Why multiple backends?** +> +> Different capture backends are optimized for different use cases. **libpcap** provides broad compatibility, **WinPcap/Npcap** offers Windows integration, **rpcapd** enables remote monitoring, and **DPDK KNI** bridges high-performance DPDK with kernel networking. +> +> **PcapPlusPlus** abstracts these differences, providing a **consistent API** regardless of the underlying capture engine! + ## πŸ“– API Documentation
From 7438df5f8c481bdf0ffd2c0c08be7d33dbe76e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 16:36:28 +0300 Subject: [PATCH 13/16] add space --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0579280d1..e4ff1e0464 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ Extensive Documentation - [πŸš€ Getting Started](#-getting-started) - [πŸ“‘ Packet Capture Backends](#-packet-capture-backends) - [πŸ”§ **libpcap**](#-libpcap) - - [πŸͺŸ **WinPcap/Npcap**](#-winpcapnpcap) + - [πŸͺŸ **WinPcap / Npcap**](#-winpcap--npcap) - [🌐 **Remote Capture (rpcapd)**](#-remote-capture-rpcapd) - [πŸš€ **DPDK KNI**](#-dpdk-kni) - [πŸ“– API Documentation](#-api-documentation) @@ -374,7 +374,7 @@ The standard packet capture library for **Unix-like systems**. Cross-platform su -### πŸͺŸ **WinPcap/Npcap** +### πŸͺŸ **WinPcap / Npcap** WinPcap/Npcap **πŸ–₯️ Windows Packet Capture** From f31c85ba9f2d8cb84159d05d8c23aec438168be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 16:46:29 +0300 Subject: [PATCH 14/16] add missing newline --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e4ff1e0464..a90c69e7d5 100644 --- a/README.md +++ b/README.md @@ -723,7 +723,9 @@ Linux kernel's **ultra-fast** packet processing framework using eBPF for **zero- - > πŸ’‘ **Why use these high-performance frameworks?** + + +> πŸ’‘ **Why use these high-performance frameworks?** > > All these frameworks provide **very fast packet processing** (up to **line speed**) and are used in many network applications such as **routers**, **firewalls**, **load balancers**, etc. > From e05e191ed7d477dcafeb771c89335b805d5266e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Fri, 25 Jul 2025 16:48:30 +0300 Subject: [PATCH 15/16] match headers --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a90c69e7d5..e2cc473984 100644 --- a/README.md +++ b/README.md @@ -117,8 +117,8 @@ Extensive Documentation - [🎨 Presentation Layer (L6)](#-presentation-layer-l6) - [πŸ“± Application Layer (L7)](#-application-layer-l7) - [⚑ High-Performance Packet Processing Support](#-high-performance-packet-processing-support) - - [⚑ **DPDK**](#-dpdk) - - [πŸ”₯ **PF\_RINGβ„’**](#-pf_ring) + - [**DPDK**](#dpdk) + - [**PF\_RINGβ„’**](#pf_ring) - [**eBPF XDP**](#ebpf-xdp) - [πŸ“Š Benchmarks](#-benchmarks) - [πŸ’¬ Provide Feedback](#-provide-feedback) @@ -688,10 +688,10 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt -### ⚑ **DPDK** +### **DPDK** DPDK -**πŸ”₯ Data Plane Development Kit** +**⚑ Data Plane Development Kit** Set of data plane libraries and drivers for **ultra-fast packet processing**. Perfect for routers, firewalls, and load balancers. @@ -700,7 +700,7 @@ Set of data plane libraries and drivers for **ultra-fast packet processing**. Pe -### πŸ”₯ **PF_RINGβ„’** +### **PF_RINGβ„’** PF_RING **⚑ High-Speed Network Socket** From bd718e6e658263fffd167b7ad4d71c79132b8ea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20=C3=87etin?= Date: Thu, 31 Jul 2025 09:06:49 +0300 Subject: [PATCH 16/16] use less emojis --- README.md | 376 +++++++++++++++++++++++++++--------------------------- 1 file changed, 188 insertions(+), 188 deletions(-) diff --git a/README.md b/README.md index e2cc473984..3985cc1b55 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Extensive Documentation --- -## 🎯 About PcapPlusPlus +## About PcapPlusPlus [**PcapPlusPlus**](https://pcapplusplus.github.io/) is a **multiplatform C++ library** for capturing, parsing and crafting of network packets. It is designed to be **efficient**, **powerful** and **easy to use**. @@ -80,68 +80,68 @@ Extensive Documentation
-## πŸ“‹ Table Of Contents - -- [🎯 About PcapPlusPlus](#-about-pcapplusplus) -- [πŸ“‹ Table Of Contents](#-table-of-contents) -- [πŸ“¦ Download](#-download) - - [🎯 GitHub Release Page](#-github-release-page) - - [🍺 Homebrew](#-homebrew) - - [πŸ“¦ Vcpkg](#-vcpkg) - - [πŸ”§ Conan](#-conan) - - [πŸ› οΈ Build It Yourself](#️-build-it-yourself) - - [βœ… Verify your packages](#-verify-your-packages) -- [✨ Feature Overview](#-feature-overview) - - [πŸ“‘ **Packet Capture**](#-packet-capture) - - [πŸ” **Packet Parsing \& Crafting**](#-packet-parsing--crafting) - - [πŸ“ **File I/O Operations**](#-file-io-operations) - - [⚑ **Line-Rate Processing**](#-line-rate-processing) - - [🧩 **Packet Reassembly**](#-packet-reassembly) - - [πŸ” **Advanced Features**](#-advanced-features) -- [πŸš€ Getting Started](#-getting-started) -- [πŸ“‘ Packet Capture Backends](#-packet-capture-backends) - - [πŸ”§ **libpcap**](#-libpcap) - - [πŸͺŸ **WinPcap / Npcap**](#-winpcap--npcap) - - [🌐 **Remote Capture (rpcapd)**](#-remote-capture-rpcapd) - - [πŸš€ **DPDK KNI**](#-dpdk-kni) -- [πŸ“– API Documentation](#-api-documentation) - - [πŸ“¦ **Packet++**](#-packet) - - [🌐 **Pcap++**](#-pcap) - - [πŸ› οΈ **Common++**](#️-common) -- [🌐 Multi Platform Support](#-multi-platform-support) -- [🌐 Supported Network Protocols](#-supported-network-protocols) - - [πŸ”— Data Link Layer (L2)](#-data-link-layer-l2) - - [🌍 Network Layer (L3)](#-network-layer-l3) - - [🚚 Transport Layer (L4)](#-transport-layer-l4) - - [🀝 Session Layer (L5)](#-session-layer-l5) - - [🎨 Presentation Layer (L6)](#-presentation-layer-l6) - - [πŸ“± Application Layer (L7)](#-application-layer-l7) -- [⚑ High-Performance Packet Processing Support](#-high-performance-packet-processing-support) +## Table Of Contents + +- [About PcapPlusPlus](#about-pcapplusplus) +- [Table Of Contents](#table-of-contents) +- [Download](#download) + - [GitHub Release Page](#github-release-page) + - [Homebrew](#homebrew) + - [Vcpkg](#vcpkg) + - [Conan](#conan) + - [Build It Yourself](#build-it-yourself) + - [Verify your packages](#verify-your-packages) +- [Feature Overview](#feature-overview) + - [**Packet Capture**](#packet-capture) + - [**Packet Parsing \& Crafting**](#packet-parsing--crafting) + - [**File I/O Operations**](#file-io-operations) + - [**Line-Rate Processing**](#line-rate-processing) + - [**Packet Reassembly**](#packet-reassembly) + - [**Advanced Features**](#advanced-features) +- [Getting Started](#getting-started) +- [Packet Capture Backends](#packet-capture-backends) + - [**libpcap**](#libpcap) + - [**WinPcap / Npcap**](#winpcap--npcap) + - [**Remote Capture (rpcapd)**](#remote-capture-rpcapd) + - [**DPDK KNI**](#dpdk-kni) +- [API Documentation](#api-documentation) + - [**Packet++**](#packet) + - [**Pcap++**](#pcap) + - [**Common++**](#common) +- [Multi Platform Support](#multi-platform-support) +- [Supported Network Protocols](#supported-network-protocols) + - [Data Link Layer (L2)](#data-link-layer-l2) + - [Network Layer (L3)](#network-layer-l3) + - [Transport Layer (L4)](#transport-layer-l4) + - [Session Layer (L5)](#session-layer-l5) + - [Presentation Layer (L6)](#presentation-layer-l6) + - [Application Layer (L7)](#application-layer-l7) +- [High-Performance Packet Processing Support](#high-performance-packet-processing-support) - [**DPDK**](#dpdk) - [**PF\_RINGβ„’**](#pf_ring) - [**eBPF XDP**](#ebpf-xdp) -- [πŸ“Š Benchmarks](#-benchmarks) -- [πŸ’¬ Provide Feedback](#-provide-feedback) -- [🀝 Contributing](#-contributing) -- [πŸ“„ License](#-license) +- [Benchmarks](#benchmarks) +- [Provide Feedback](#provide-feedback) +- [Contributing](#contributing) +- [License](#license) -## πŸ“¦ Download +## Download
-**πŸŽ‰ Choose Your Preferred Installation Method πŸŽ‰** +**Choose Your Preferred Installation Method**
You can choose between downloading from GitHub release page, use a package manager or build PcapPlusPlus yourself. For more details please visit the [**πŸ“– Download**](https://pcapplusplus.github.io/docs/install) page in PcapPlusPlus web-site. -### 🎯 GitHub Release Page +### GitHub Release Page ``` -πŸ”— https://github.com/seladb/PcapPlusPlus/releases/latest +https://github.com/seladb/PcapPlusPlus/releases/latest ``` -### 🍺 Homebrew +### Homebrew ```shell brew install pcapplusplus @@ -149,21 +149,21 @@ brew install pcapplusplus **πŸ“Ž Homebrew formulae:** -### πŸ“¦ Vcpkg +### Vcpkg -**πŸͺŸ Windows:** +**Windows:** ```cmd .\vcpkg install pcapplusplus ``` -**🐧 MacOS/Linux:** +**MacOS/Linux:** ```bash vcpkg install pcapplusplus ``` **πŸ“Ž Vcpkg port:** -### πŸ”§ Conan +### Conan ```bash conan install "pcapplusplus/[>0]@" -u @@ -171,16 +171,16 @@ conan install "pcapplusplus/[>0]@" -u **πŸ“Ž The package in ConanCenter:** -### πŸ› οΈ Build It Yourself +### Build It Yourself -**πŸ“₯ Clone the repository:** +**Clone the repository:** ```shell git clone https://github.com/seladb/PcapPlusPlus.git ``` -Follow the build instructions according to your platform in the [**πŸ—οΈ Build From Source**](https://pcapplusplus.github.io/docs/install#build-from-source) page in PcapPlusPlus web-site. +Follow the build instructions according to your platform in the [**πŸ› οΈ Build From Source**](https://pcapplusplus.github.io/docs/install#build-from-source) page in PcapPlusPlus web-site. -### βœ… Verify your packages +### Verify your packages PcapPlusPlus releases which newer than **v23.09** are signed with **GitHub attestation**. All of the attestations can be found [**here**](https://github.com/seladb/PcapPlusPlus/attestations). You can verify the attestation of these packages with GitHub CLI. To verify packages you can follow the most recent instructions from [**gh attestation verify**](https://cli.github.com/manual/gh_attestation_verify). For simple instructions you can use the following command: @@ -194,11 +194,11 @@ and you should see the following output in your terminal: βœ“ Verification succeeded! ``` -## ✨ Feature Overview +## Feature Overview
-**🎯 Everything You Need for Network Packet Processing 🎯** +**Everything You Need for Network Packet Processing**
@@ -206,27 +206,27 @@ and you should see the following output in your terminal: -### πŸ“‘ **Packet Capture** +### **Packet Capture** Easy-to-use C++ wrapper for popular engines: -- πŸ”§ **libpcap** - Universal packet capture -- πŸͺŸ **WinPcap/Npcap** - Windows packet capture -- ⚑ **Intel DPDK** - High-performance processing -- 🌐 **eBPF AF_XDP** - Kernel bypass networking -- πŸ”₯ **PF_RING** - High-speed packet processing -- πŸ”Œ **Raw sockets** - Low-level network access +- **libpcap** - Universal packet capture +- **WinPcap/Npcap** - Windows packet capture +- **Intel DPDK** - High-performance processing +- **eBPF AF_XDP** - Kernel bypass networking +- **PF_RING** - High-speed packet processing +- **Raw sockets** - Low-level network access [**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#packet-capture) -### πŸ” **Packet Parsing & Crafting** +### **Packet Parsing & Crafting** Detailed protocol analysis and packet generation: -- πŸ•΅οΈ **Deep packet inspection** -- πŸ› οΈ **Packet creation and modification** -- πŸ“Š **Layer-by-layer analysis** -- 🌐 **50+ supported protocols** -- 🎯 **Protocol-specific handling** +- **Deep packet inspection** +- **Packet creation and modification** +- **Layer-by-layer analysis** +- **50+ supported protocols** +- **Protocol-specific handling** [**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#packet-parsing-and-crafting) @@ -235,25 +235,25 @@ Detailed protocol analysis and packet generation: -### πŸ“ **File I/O Operations** +### **File I/O Operations** Read and write packets from/to files: -- πŸ“„ **PCAP format support** -- πŸ“Š **PCAPNG format support** -- πŸ”„ **Format conversion** -- πŸ’Ύ **Efficient file handling** +- **PCAP format support** +- **PCAPNG format support** +- **Format conversion** +- **Efficient file handling** [**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#read-and-write-packets-fromto-files) -### ⚑ **Line-Rate Processing** +### **Line-Rate Processing** High-performance packet processing: -- πŸš€ **DPDK integration** -- 🌊 **eBPF AF_XDP support** -- πŸ”₯ **PF_RING optimization** -- πŸ“ˆ **Scalable architecture** -- ⚑ **Zero-copy processing** +- **DPDK integration** +- **eBPF AF_XDP support** +- **PF_RING optimization** +- **Scalable architecture** +- **Zero-copy processing** [**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#dpdk-support) @@ -262,24 +262,24 @@ High-performance packet processing: -### 🧩 **Packet Reassembly** +### **Packet Reassembly** Advanced reconstruction capabilities: -- πŸ”— **TCP Reassembly** - Handle retransmissions & out-of-order -- 🧩 **IP Fragmentation/Defragmentation** - IPv4 & IPv6 -- πŸ”„ **Missing data handling** -- 🎯 **State management** +- **TCP Reassembly** - Handle retransmissions & out-of-order +- **IP Fragmentation/Defragmentation** - IPv4 & IPv6 +- **Missing data handling** +- **State management** [**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#packet-reassembly) -### πŸ” **Advanced Features** +### **Advanced Features** Specialized networking capabilities: -- πŸŽ›οΈ **BPF filters made easy** -- πŸ” **TLS Fingerprinting (JA3/JA3S)** -- 🌐 **Multi-platform support** -- 🎯 **User-friendly packet filtering** +- **BPF filters made easy** +- **TLS Fingerprinting (JA3/JA3S)** +- **Multi-platform support** +- **User-friendly packet filtering** [**πŸ“– Learn more**](https://pcapplusplus.github.io/docs/features#packet-filtering) @@ -287,7 +287,7 @@ Specialized networking capabilities: -## πŸš€ Getting Started +## Getting Started
@@ -305,37 +305,37 @@ Here's a **simple application** that shows how to read a packet from a PCAP file int main(int argc, char* argv[]) { - // πŸ“‚ open a pcap file for reading + // open a pcap file for reading pcpp::PcapFileReaderDevice reader("1_packet.pcap"); if (!reader.open()) { - std::cerr << "❌ Error opening the pcap file" << std::endl; + std::cerr << "Error opening the pcap file" << std::endl; return 1; } - // πŸ“¦ read the first (and only) packet from the file + // read the first (and only) packet from the file pcpp::RawPacket rawPacket; if (!reader.getNextPacket(rawPacket)) { - std::cerr << "❌ Couldn't read the first packet in the file" << std::endl; + std::cerr << "Couldn't read the first packet in the file" << std::endl; return 1; } - // πŸ” parse the raw packet into a parsed packet + // parse the raw packet into a parsed packet pcpp::Packet parsedPacket(&rawPacket); - // βœ… verify the packet is IPv4 + // verify the packet is IPv4 if (parsedPacket.isPacketOfType(pcpp::IPv4)) { - // 🎯 extract source and dest IPs + // extract source and dest IPs pcpp::IPv4Address srcIP = parsedPacket.getLayerOfType()->getSrcIPv4Address(); pcpp::IPv4Address destIP = parsedPacket.getLayerOfType()->getDstIPv4Address(); - // πŸ“€ print source and dest IPs - std::cout << "🌐 Source IP is '" << srcIP << "'; Dest IP is '" << destIP << "'" << std::endl; + // print source and dest IPs + std::cout << "Source IP is '" << srcIP << "'; Dest IP is '" << destIP << "'" << std::endl; } - // πŸ”’ close the file + // close the file reader.close(); return 0; @@ -344,17 +344,17 @@ int main(int argc, char* argv[])
-**πŸŽ“ Want to learn more?** +**Want to learn more?** Visit our comprehensive [**πŸ“š Getting Started**](https://pcapplusplus.github.io/docs/quickstart) guide! This page will walk you through **few easy steps** to have an app up and running.
-## πŸ“‘ Packet Capture Backends +## Packet Capture Backends
-**πŸ”§ Multiple Capture Engines Supported! πŸ”§** +**Multiple Capture Engines Supported!**
@@ -364,7 +364,7 @@ PcapPlusPlus provides a **unified C++ interface** for multiple packet capture ba -### πŸ”§ **libpcap** +### **libpcap** libpcap **🐧 Universal Packet Capture** @@ -374,7 +374,7 @@ The standard packet capture library for **Unix-like systems**. Cross-platform su -### πŸͺŸ **WinPcap / Npcap** +### **WinPcap / Npcap** WinPcap/Npcap **πŸ–₯️ Windows Packet Capture** @@ -384,7 +384,7 @@ The standard packet capture library for **Unix-like systems**. Cross-platform su -### 🌐 **Remote Capture (rpcapd)** +### **Remote Capture (rpcapd)** rpcapd **πŸ“‘ Network-Based Capture** @@ -394,7 +394,7 @@ The standard packet capture library for **Unix-like systems**. Cross-platform su -### πŸš€ **DPDK KNI** +### **DPDK KNI** KNI **πŸŒ‰ Kernel Network Interface** @@ -411,11 +411,11 @@ DPDK's **Kernel Network Interface** for seamless integration between kernel spac > > **PcapPlusPlus** abstracts these differences, providing a **consistent API** regardless of the underlying capture engine! -## πŸ“– API Documentation +## API Documentation
-**πŸ—οΈ PcapPlusPlus Architecture Overview πŸ—οΈ** +**PcapPlusPlus Architecture Overview**
@@ -425,7 +425,7 @@ PcapPlusPlus consists of **3 powerful libraries**: -### πŸ“¦ **Packet++** +### **Packet++** Packet++ **πŸ” Packet Processing Engine** @@ -435,7 +435,7 @@ A library for **parsing**, **creating** and **editing** network packets with sup -### 🌐 **Pcap++** +### **Pcap++** Pcap++ **πŸ“‘ Capture & Send Engine** @@ -445,7 +445,7 @@ C++ wrapper for packet engines like **libpcap**, **WinPcap**, **Npcap**, **DPDK* -### πŸ› οΈ **Common++** +### **Common++** Common++ **βš™οΈ Utilities Library** @@ -464,11 +464,11 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt
-## 🌐 Multi Platform Support +## Multi Platform Support
-**Runs Everywhere You Need It! πŸš€** +**Runs Everywhere You Need It!**
@@ -572,115 +572,115 @@ You can find extensive API documentation in the [**πŸ“– API Documentation**](htt -## 🌐 Supported Network Protocols +## Supported Network Protocols
-**🎯 50+ Network Protocols Supported! 🎯** +**50+ Network Protocols Supported!** *PcapPlusPlus supports **parsing**, **editing** and **creation** of packets for the following protocols:*
-### πŸ”— Data Link Layer (L2) +### Data Link Layer (L2)
-- 🌐 **Cisco HDLC** -- πŸ”Œ **Ethernet II** -- πŸ“‘ **IEEE 802.3 Ethernet** -- πŸ”§ **LLC** (BPDU supported) -- πŸ”„ **Null/Loopback** -- πŸ“¦ **Packet trailer** (footer/padding) -- 🌐 **PPPoE** -- 🐧 **SLL** (Linux cooked capture) -- 🐧 **SLL2** (Linux cooked capture v2) -- 🌳 **STP** -- 🏷️ **VLAN** -- 🌊 **VXLAN** -- πŸ’€ **Wake on LAN (WoL)** -- πŸ”₯ **NFLOG** *(parsing only)* +- **Cisco HDLC** +- **Ethernet II** +- **IEEE 802.3 Ethernet** +- **LLC** (BPDU supported) +- **Null/Loopback** +- **Packet trailer** (footer/padding) +- **PPPoE** +- **SLL** (Linux cooked capture) +- **SLL2** (Linux cooked capture v2) +- **STP** +- **VLAN** +- **VXLAN** +- **Wake on LAN (WoL)** +- **NFLOG** *(parsing only)*
-### 🌍 Network Layer (L3) +### Network Layer (L3)
-- πŸ—ΊοΈ **ARP** -- πŸš‡ **GRE** -- πŸ“‘ **ICMP** -- πŸ“‘ **ICMPv6** -- πŸ“Š **IGMP** (v1, v2, v3) -- 🌍 **IPv4** -- 🌐 **IPv6** -- 🏷️ **MPLS** -- πŸ” **NDP** -- πŸ“¦ **Raw IP** (IPv4 & IPv6) -- πŸ”„ **VRRP** (IPv4 & IPv6) -- πŸ”’ **WireGuard** +- **ARP** +- **GRE** +- **ICMP** +- **ICMPv6** +- **IGMP** (v1, v2, v3) +- **IPv4** +- **IPv6** +- **MPLS** +- **NDP** +- **Raw IP** (IPv4 & IPv6) +- **VRRP** (IPv4 & IPv6) +- **WireGuard**
-### 🚚 Transport Layer (L4) +### Transport Layer (L4)
-- πŸ”— **COTP** -- πŸ“± **GTP** (v1 & v2) -- πŸ”’ **IPSec AH & ESP** *(parsing only)* -- 🚚 **TCP** -- πŸ“¦ **TPKT** -- πŸ“‘ **UDP** +- **COTP** +- **GTP** (v1 & v2) +- **IPSec AH & ESP** *(parsing only)* +- **TCP** +- **TPKT** +- **UDP**
-### 🀝 Session Layer (L5) +### Session Layer (L5)
-- πŸ“ž **SDP** -- πŸ“ž **SIP** +- **SDP** +- **SIP**
-### 🎨 Presentation Layer (L6) +### Presentation Layer (L6)
-- πŸ”’ **SSL/TLS** *(parsing only)* +- **SSL/TLS** *(parsing only)*
-### πŸ“± Application Layer (L7) +### Application Layer (L7)
-- πŸ”§ **ASN.1** decoder/encoder -- 🌐 **BGP** (v4) -- πŸ”§ **DHCP** -- πŸ”§ **DHCPv6** -- 🌐 **DNS** -- πŸ“ **FTP** -- 🌐 **HTTP** headers -- πŸ“‚ **LDAP** -- ⏰ **NTP** (v3, v4) -- πŸ” **Radius** -- 🏭 **S7 Communication** -- πŸ“§ **SMTP** -- πŸš— **SOME/IP** -- πŸ” **SSH** *(parsing only)* -- πŸ“Ÿ **Telnet** *(parsing only)* -- πŸ“œ **X509 certificates** *(parsing only)* -- πŸ“¦ **Generic payload** +- **ASN.1** decoder/encoder +- **BGP** (v4) +- **DHCP** +- **DHCPv6** +- **DNS** +- **FTP** +- **HTTP** headers +- **LDAP** +- **NTP** (v3, v4) +- **Radius** +- **S7 Communication** +- **SMTP** +- **SOME/IP** +- **SSH** *(parsing only)* +- **Telnet** *(parsing only)* +- **X509 certificates** *(parsing only)* +- **Generic payload**
-## ⚑ High-Performance Packet Processing Support +## High-Performance Packet Processing Support
-**πŸš€ Unleash Line-Rate Performance! πŸš€** +**Unleash Line-Rate Performance!**
@@ -731,11 +731,11 @@ Linux kernel's **ultra-fast** packet processing framework using eBPF for **zero- > > **PcapPlusPlus** provides a **C++ abstraction layer** over DPDK, PF_RING & XDP that removes the boilerplate and makes these powerful frameworks **easy to use**! -## πŸ“Š Benchmarks +## Benchmarks
-**πŸ† Performance Matters! πŸ†** +**Performance Matters!**
@@ -743,17 +743,17 @@ We used **Matias Fontanini's** [**packet-capture-benchmarks**](https://github.co
-**πŸ“ˆ See The Results** +**See The Results** Check out our comprehensive [**πŸ“Š Benchmarks**](https://pcapplusplus.github.io/docs/benchmark) page to see how **PcapPlusPlus** performs!
-## πŸ’¬ Provide Feedback +## Provide Feedback
-**🀝 We'd Love to Hear From You! 🀝** +**We'd Love to Hear From You!**
@@ -827,11 +827,11 @@ Visit the [**PcapPlusPlus Community**](https://pcapplusplus.github.io/community) -## 🀝 Contributing +## Contributing
-**πŸŽ‰ Join Our Community of Contributors! πŸŽ‰** +**Join Our Community of Contributors!**
@@ -878,17 +878,17 @@ Testing enthusiast?
-**πŸš€ Get Started Contributing** +**Get Started Contributing** Visit our [**🀝 Contributing Guide**](https://pcapplusplus.github.io/community#contribute) to learn how you can help make PcapPlusPlus even better!
-## πŸ“„ License +## License
-**πŸ†“ Free and Open Source πŸ†“** +**Free and Open Source**