v4.0
For a deeper look into all major changes in this version, please check this blog post.
New features/additions:
-
Add parent PDU to each PDU.
-
Removed parent PDU parameter on
PDU::write_serialization
. -
Split
utils.h
into multiple files under theutils
directory. -
Split
internals.h
into multiple files under thedetail
directory. -
Improve compilation times by removing useless include directives.
-
Refactor
PDUOption
conversions so that heavy headers are not included in source file. -
Use
std::vector
instead ofstd::list
inTCP
,IP
,IPv6
,DHCP
,DHCPv6
,DNS
,LLC
,Dot11
andPPPoE
. -
Improve performance on
IP
,IPv6
andTCP
by compiting option sizes during serialization. -
Minor performance improvements in
DNS
. -
Refactor
RadioTap
parsing and serialization using a generic parser/writer. -
Add
BaseSniffer::set_pcap_sniffing_method
to specify whetherpcap_loop
orpcap_dispatch
should be used when sniffing. -
Added cipher and akm suites from 802.11-2016.
-
Add IPv6 layer parsing on
Loopback
packets. -
Allow serializing
Loopback
on Windows. -
Restructure CMake files removing useless
CMakeLists.txt
ininclude
paths. -
Add getter/setter for "more data" field in
Dot11Base
. -
Implemented matching for ND protocol related ICMPv6 messages.
-
Add header files into CMake sources so IDE can pick them up.
-
Add MPLS "experimental" field.
Fixes
-
Fix
IPv6
next header handling. Now each one contains its own type and the next type is only set during serialization for ease of use. -
Fix dhcpv6::duid_type constructor from duid_ll.
-
Use
IFF_POINTOPOINT
on BSD when getting broadcast address for an interface. -
Ensure TCP::OptionTypes has 8-bit range.
-
Use the first fragment as a base when reassembling
IP
packets inIPv4Reassembler
. -
Use the right flag on
Loopback
forIPv6
.