[ANN] packetgen 3.1.0 released


(Sylvain Daubert) #1

packetgen 3.1.0 has been released.

* home: <https://github.com/sdaubert/packetgen>
* bugs: <https://github.com/sdaubert/packetgen/issues>
* doc: <https://github.com/sdaubert/packetgen/wiki>

PacketGen provides simple ways to generate, send and capture network
packets.

Supported protocols are: Ethernet, Dot11, Dot1x, ARP, IP, IPv6, GRE,
ICMP, IGMP, ICMPv6, MLD, MLDv2, OSPFv2, OSPFv3, UDP, TCP, SNMP, DNS,
EAP, BOOTP, DHCP, TFTP, HTTP and MDNS.

Changes:

### 3.1.0 / 2018-11-28

* Add Types::Fields.field_defs to get field definitions for a Fields
subclass.
* Deprecate Types::TLV in favor of Types::AbstractTLV. This new class is
a class generator to generate TLV classes with given class for type,
length and value attribute. It also defines as expected accessors.

* Fixes:
** Fix Packet#calc_length. Compute length from inner most packet to
outer most.
** Fix Types::Fields.define_field. This should not overwrite attribute
accessor if it is already defined by a class. This was not the case...
** Rename Header::HTTP::Request#method into #verb to not mask Object#method.

### 3.0.2 / 2018-11-05

* Add Headerable module to specify minimal API for a class to act as a
header in PacketGen::Packet.
* Types::Array#from_hash now uses #real_type to infer object from hash.

* Fixes:
** Header::DNS::Question is now a subclass of Types::Fields instead of
Header::Base.
** Fix a typo in Header::TCP::Options#real_type: replace OPtion by Option.

### 3.0.1 / 2018-10-31

* Fix Header::DNS: use of PacketGen.force_binary instead of #force_binary