|
1 |
| -Release notes (changes from v22.11) |
| 1 | +Release notes (changes from v23.09) |
2 | 2 | -----------------------------------
|
3 | 3 |
|
4 |
| - - PcapPlusPlus moved from a custom build system to CMake! (thanks @clementperon !) |
5 |
| - - Added IP/IPv4/IPv6 network classes to better support netmask and subnets |
6 |
| - - Add support for opening NFLOG live device (thanks @MrPeck !) |
7 |
| - - MAC address OUI Lookup (thanks @egecetin !) |
8 |
| - - Intel oneAPI compiler support (icpx) (thanks @egecetin !) |
9 |
| - - DPDK improvements: |
10 |
| - - Properly support no RSS mode in `DpdkDevice` |
11 |
| - - Make DPDK app name configurable (thanks @szokovacs !) |
12 |
| - - More generic search of DPDK KNI kernel module in `setup_dpdk.py` |
13 |
| - - New protocols: |
14 |
| - - NFLOG (Linux Netfilter NFLOG) (thanks @jafar75 !) |
15 |
| - - SLL2 (Linux cooked capture v2) (thanks @jiangjiongyu !) |
16 |
| - - TPKT (thanks @wivien19 !) |
17 |
| - - COTP (thanks @wivien19 !) |
18 |
| - - VRRP (thanks @wangchong2023 !) |
19 |
| - - Existing protocols improvements: |
20 |
| - - HTTP - refactor and improve `HttpResponseStatusCode` (thanks @tigercosmos !) |
21 |
| - - SSL/TLS - better detection of possible encrypted handshake messages (thanks @axmahr !) |
22 |
| - - DNS - support parsing of resources with larger data (thanks @aengusjiang !) |
23 |
| - - STP - add editing/crafting support (thanks @egecetin !) |
24 |
| - - ARP - add `isRequest` and `isReply` methods (thanks @tigercosmos !) |
25 |
| - - FTP-DATA support (thanks @egecetin !) |
26 |
| - - NTP - support Kiss of Death (thanks @egecetin !) |
27 |
| - - SIP - refactor status codes + add a few missing ones |
28 |
| - - Modernize the codebase to use `nullptr` instead of `NULL` (thanks @clementperon !) |
29 |
| - - Remove usage of unsupported `pcap_compile_nopcap()` (thanks @yushijinhun !) |
30 |
| - - Internal tools: |
31 |
| - - Codecov integration for coverage reports (thanks @egecetin !) |
32 |
| - - Enable Clang-Tidy (thanks @clementperon !) |
33 |
| - - Enable `cppcheck` (thanks @egecetin !) |
34 |
| - - Improve the test framework |
35 |
| - - Increase test coverage |
36 |
| - - Remove deprecated methods (due to typos): |
37 |
| - - `DhcpLayer::getMesageType()` -> replaced by `DhcpLayer::getMessageType()` |
38 |
| - - `DhcpLayer::setMesageType()` -> replaced by `DhcpLayer::setMessageType()` |
39 |
| - - `SSLHandshakeMessage::createHandhakeMessage()` -> replaced by `SSLHandshakeMessage::createHandshakeMessage()` |
40 |
| - - `SSLClientHelloMessage::getExtensionsLenth()` -> replaced by `SSLClientHelloMessage::getExtensionsLength()` |
41 |
| - - `SSLServerHelloMessage::getExtensionsLenth()` -> replaced by `SSLServerHelloMessage::getExtensionsLength()` |
42 |
| - - Tons of bug fixes, security fixes, major and minor improvements (thanks @egecetin, @clementperon, @sashashura, @tigercosmos, @kolbex, @traversebitree, @JasMetzger, @tbhaxor, @yishai1999, @aengusjiang, @Heysunk, @jpcofr !) |
| 4 | +- Added support for eBPF AF_XDP |
| 5 | +- New protocols: |
| 6 | + - SMTP (thanks @egecetin !) |
| 7 | + - ASN.1 encoding and decoding |
| 8 | + - Enabled ASN.1 root record parsing in x509 certificates |
| 9 | + - LDAP |
| 10 | + - S7COMM (thanks @wivien19 !) |
| 11 | +- DPDK improvements: |
| 12 | + - DPDK 22.11 support (thanks @clementperon !) |
| 13 | + - Jumbo frames support (thanks @gyl30 !) |
| 14 | + - Added an option to disable hugepages and driver verification on initialization (thanks @MatteO-Matic !) |
| 15 | + - NUMA awareness (thanks @SesomB !) |
| 16 | +- Examples and utils: |
| 17 | + - Added `XdpExample-FilterTraffic` to demonstrate `XdpDevice` usage |
| 18 | + - `PcapSplitter`: updated output filenames with 5-tuple information (thanks @hidd3ncod3s !) |
| 19 | +- Added support for nanosecond precision in reading and writing pcap files (thanks @egecetin !) |
| 20 | +- Blocking mode packet capture now uses `poll()` (thanks @tigercosmos !) |
| 21 | +- Added millisecond precision timeout in `RawSocketDevice` (thanks @tigercosmos !) |
| 22 | +- Extended `IPFilter` to support IPv6 where possible (thanks @Dimi1010 !) |
| 23 | +- Boosted build time with Ccache (thanks @clementperon !) |
| 24 | +- Fixed precision issue in pcapng file reader (thanks @mserdarsanli !) |
| 25 | +- Improved method for retrieving the default gateway on macOS (thanks @zhengfeihe !) |
| 26 | +- Added security and code of conduct guidelines (thanks @egecetin !) |
| 27 | +- Refactoring and modernization of the code base: |
| 28 | + - Refactored and cleaned up live devices (thanks @Dimi1010 !) |
| 29 | + - Added a getter for fetching all IP addresses as `IPAddress` objects. |
| 30 | + - Refactored IP address classes `IPv4Address`, `IPv6Address`, `IPAddress` (thanks @tigercosmos , @Dimi1010 !) |
| 31 | + - Added equality operators between `IPAddress` and `in_addr` types |
| 32 | + - Refactored the MAC address class `MacAddress` (thanks @tigercosmos !) |
| 33 | + - Ported PcapPlusPlus libraries to C++11 (thanks @Dimi1010 , @tigercosmos , @egecetin , @WojtekMs , @rtmeng !) |
| 34 | + - Ported most of the examples and tutorials to C++11 (thanks @jpcofr , @merttozer !) |
| 35 | + - Refactored and cleaned up PF_RING devices (thanks @Dimi1010 !) |
| 36 | + - Refactored and cleaned up the `PointerVector` class (thanks @Dimi1010 !) |
| 37 | + - Converted Macro Guard to `pragma once` (thanks @clementperon !) |
| 38 | + - Replaced `std::map` with `std::unordered_map` (thanks @tigercosmos !) |
| 39 | + - Refactored large parts of the packet filtering code (thanks @Dimi1010 !) |
| 40 | +- Supported platforms update: |
| 41 | + - Ubuntu: added 24.04 LTS and dropped 18.04 LTS (thanks @tigercosmos !) |
| 42 | + - Added support for RHEL 9.4 (thanks @clementperon !) |
| 43 | + - Fedora: added support for 39 and removed 37 (thanks @clementperon !) |
| 44 | + - Removed support for CentOS 7 |
| 45 | + - FreeBSD: added support for 14.0 and dropped 12 (thanks @clementperon !) |
| 46 | +- Internal tools: |
| 47 | + - Reformatted the entire code base using `clang-format` (thanks @tigercosmos , @Dimi1010 !) |
| 48 | + - Added `dependabot` to keep GitHub Actions and Python packages up-to-date (thanks @egecetin !) |
| 49 | + - Added OpenSSF Scorecard automation to monitor and enhance security (thanks @egecetin !) |
| 50 | + - Transitioned from CirrusCI to GitHub Actions for all workflows (thanks @tigercosmos !) |
| 51 | + - Scheduled regular CI builds (thanks @tigercosmos !) |
| 52 | + - Replaced deprecated `netifaces` by `scapy` (thanks @zhengfeihe !) |
| 53 | + - Improved fuzzing coverage and added Fuzz CI (thanks @sashashura !) |
| 54 | + - Added a template for opening GitHub issues (thanks @tigercosmos !) |
| 55 | + - Upgraded `LightPcapNg` to the latest from `master` (thanks @tigercosmos !) |
| 56 | + - Fixed unhandled exceptions crashing the entire test suite (thanks @Dimi1010 !) |
| 57 | +- Tons of bug fixes, security fixes and small improvements (thanks @sashashura , @tigercosmos , @clementperon , @egecetin , @kraj , @liu0hy , @lucashc , @axmahr, @Double0101, @prudens , @MCredbear, @rahagal, @nadongjun !) |
| 58 | + |
| 59 | + |
| 60 | +Breaking changes |
| 61 | +---------------- |
| 62 | + |
| 63 | +This version includes a small number of breaking changes: |
| 64 | +- Removed `isValid()` from `MacAddress,` `IPAddress`, `IPv4Address`, `IPv6Address`, instead they throw an exception if the input argument is invalid |
| 65 | +- Introduced a new `TcpOptionEnumType` |
| 66 | +- Removed the `dummy` argument in `PayloadLayer`'s constructor |
| 67 | + |
| 68 | + |
| 69 | +Deprecation list |
| 70 | +---------------- |
| 71 | + |
| 72 | +The following methods that were marked as deprecated in previous versions were removed: |
| 73 | +- `IPv4Address::matchSubnet()` |
| 74 | + |
| 75 | +The following methods are now marked as deprecated and will be removed in future versions: |
| 76 | +- `PointerVector::getAndRemoveFromVector()` -> replaced by `PointerVector::getAndDetach()` |
| 77 | +- `HttpResponseLayer::HttpResponseLayer(version, statusCode, statusCodeString)` -> use other constructors |
| 78 | +- `HttpResponseLayer::setStatusCode(newStatusCode, statusCodeString)` -> use the other overload |
| 79 | +- `TcpOptionType` enum -> replaced by `TcpOptionEnumType` |
| 80 | +- `TcpOption::getTcpOptionType()` -> replaced by `TcpOption::getTcpOptionEnumType()` |
| 81 | +- `TcpOptionBuilder::TcpOptionBuilder()` -> use other constructors |
| 82 | +- `TcpLayer::getTcpOption(TcpOptionType option)` -> use the other overload |
| 83 | +- `TcpLayer::addTcpOptionAfter()` -> replaced by `TcpLayer::insertTcpOptionAfter()` |
| 84 | +- `TcpLayer::removeTcpOption()` -> use the other overload |
| 85 | +- `PcapLiveDevice::getAddresses()` -> replaced by `PcapLiveDevice::getIPAddresses()` |
| 86 | +- `PcapRemoteDeviceList::getRemoteDeviceList()` -> replaced by `PcapRemoteDeviceList::createRemoteDeviceList()` |
43 | 87 |
|
44 | 88 |
|
45 | 89 | Collaborators
|
46 | 90 | -------------
|
47 | 91 |
|
48 |
| - - @clementperon |
| 92 | + - @tigercosmos |
| 93 | + - @Dimi1010 |
49 | 94 | - @egecetin
|
| 95 | + - @clementperon |
| 96 | + - @seladb |
50 | 97 |
|
51 | 98 |
|
52 | 99 | Contributors
|
53 | 100 | ------------
|
54 | 101 |
|
55 |
| - - @sashashura |
56 |
| - - @tigercosmos |
57 |
| - - @wivien19 |
58 |
| - - @jafar75 |
59 |
| - - @MrPeck |
60 |
| - - @szokovacs |
61 |
| - - @axmahr |
62 |
| - - @yishai1999 |
63 |
| - - @traversebitree |
64 |
| - - @jiangjiongyu |
65 |
| - - @wangchong2023 |
66 |
| - - @kolbex |
67 |
| - - @JasMetzger |
68 |
| - - @yushijinhun |
69 |
| - - @aengusjiang |
70 |
| - - @tbhaxor |
71 |
| - - @Heysunk |
72 |
| - - @jpcofr |
73 |
| - |
74 |
| -**Full Changelog**: https://github.com/seladb/PcapPlusPlus/compare/v22.11...v23.09 |
| 102 | +- @sashashura |
| 103 | +- @zhengfeihe |
| 104 | +- @wivien19 |
| 105 | +- @gyl30 |
| 106 | +- @MatteO-Matic |
| 107 | +- @SesomB |
| 108 | +- @jpcofr |
| 109 | +- @liu0hy |
| 110 | +- @merttozer |
| 111 | +- @lucashc |
| 112 | +- @axmahr |
| 113 | +- @Double0101 |
| 114 | +- @prudens |
| 115 | +- @rtmeng |
| 116 | +- @hidd3ncod3s |
| 117 | +- @WojtekMs |
| 118 | +- @mserdarsanli |
| 119 | +- @MCredbear |
| 120 | +- @rahagal |
| 121 | + |
| 122 | + |
| 123 | +**Full Changelog**: https://github.com/seladb/PcapPlusPlus/compare/v23.09...v24.09 |
0 commit comments