# Changelog ## develop (unreleased) ## 0.24.2 (8/4/2015) ### Bugs fixed * [#209](https://github.com/trema/pio/issues/209): `Pio::OpenFlow.read` cannot parse Barrier messages. ## 0.24.1 (8/4/2015) ### Bugs fixed * [#208](https://github.com/trema/pio/issues/208): `Pio::FlowMod.new` doesn't allow `:idle_timeout` and `:hard_timeout` options. ## 0.24.0 (8/1/2015) ### New features * [#201](https://github.com/trema/pio/pull/201): Add oxm experimenter support (OpenFlow1.3). * [#202](https://github.com/trema/pio/pull/202): Add `Pio::OpenFlow.switch_version` method. * [#205](https://github.com/trema/pio/pull/205): Add new classes `Pio::OpenFlow10::Barrier::Request`, `Pio::OpenFlow10::Barrier::Reply`. * [#207](https://github.com/trema/pio/pull/207): Add new method `Pio::OpenFlow.read` ### Bugs fixed * [#188](https://github.com/trema/pio/pull/188): Add PacketIn#in_port (OpenFlow1.3). * [#189](https://github.com/trema/pio/pull/189): Add PacketIn#datapath_id= (OpenFlow1.3). * [#190](https://github.com/trema/pio/pull/190): Add PacketOut#to_binary (OpenFlow1.3). * [#191](https://github.com/trema/pio/pull/191): Add GotoTable#to_binary_s. * [#192](https://github.com/trema/pio/pull/192): Add Meter#to_binary_s. * [#193](https://github.com/trema/pio/pull/193): Add WriteMetadata#to_binary_s. ## 0.23.1 (6/30/2015) ### Bugs fixed * [#186](https://github.com/trema/pio/issues/186): Add the missing `FlowMod#to_binary` method. ## 0.23.0 (6/29/2015) ### New features * [#183](https://github.com/trema/pio/pull/183): Add new class `Pio::PacketIn` (OpenFlow1.3). * [#185](https://github.com/trema/pio/pull/185): Add new classes `Pio::Match::TunnelId` and `Pio::Match::MaskedTunnelId` * [#184](https://github.com/trema/pio/pull/184): Add new classes `Pio::Match::ArpOp`, `Pio::Match::ArpSenderProtocolAddress`, `Pio::Match::ArpTargetProtocolAddress`, `Pio::Match::ArpSenderHardwareAddress`, `Pio::Match::ArpTargetHardwareAddress`, `Pio::Match::MaskedArpSenderProtocolAddress`,`Pio::Match::MaskedArpTargetProtocolAddress`, `Pio::Match::MaskedArpSenderHardwareAddress` and `Pio::Match::MaskedArpTargetHardwareAddress` ## 0.22.0 (6/25/2015) ### New features * [#177](https://github.com/trema/pio/pull/177): Add new class `Pio::PacketIn` (OpenFlow1.3). * [#173](https://github.com/trema/pio/pull/173): Add new classes `Pio::Match::VlanVid`, `Pio::Match::VlanPcp`. * [#174](https://github.com/trema/pio/pull/174): Add new classes `Pio::Match::IpDscp`, `Pio::Match::IpEcn`. * [#178](https://github.com/trema/pio/pull/178): Add new classes `Pio::Match::SctpSourcePort`, `Pio::Match::SctpDestinationPort`. * [#180](https://github.com/trema/pio/pull/180): Add new classes `Pio::Match::Icmpv4Type`, `Pio::Match::Icmpv4Code`. ## 0.21.1 (6/24/2015) ### Bugs fixed * [#179](https://github.com/trema/pio/pull/179): Fix wrong OXM length. ## 0.21.0 (6/19/2015) ### New features * [#164](https://github.com/trema/pio/pull/164): Add new classes `Pio::FlowMod`, `Pio::Apply`, `Pio::GotoTable`, `Pio::WriteMetadata`, `Pio::Meter` and `Pio::SendOutPort`. ## 0.20.1 (6/10/2015) ### Bugs fixed * [#167](https://github.com/trema/pio/pull/167): Fix PacketIn accessor methods (raw_data = VLAN tagged UDP). ## 0.20.0 (4/22/2015) ### New features * [#138](https://github.com/trema/pio/pull/138): Add new class `Pio::Features::Request`. * [#153](https://github.com/trema/pio/pull/153): Add new class `Pio::Features::Reply`. ## 0.19.0 (4/9/2015) ### New features * [#132](https://github.com/trema/pio/pull/132): Add new class `Pio::Hello13`. * [#136](https://github.com/trema/pio/pull/136): Add new class `Pio::Echo13::Request` and `Pio::Echo13::Reply`. ## 0.18.2 (3/12/2015) ### New features * Add attr writers to `Pio::Match` and `Pio::ExactMatch`. ## 0.18.1 (3/11/2015) ### Changes * `Lldp#port_number` returns primitive Ruby objects. ## 0.18.0 (3/9/2015) ### Changes * Deprecated `Pio::Mac#== Integer`. * `Pio::PacketIn#source_mac` and `Pio::PacketIn#destination_mac` returns `Pio::Mac`. ## 0.17.0 (3/6/2015) ### Changes * Renamed `Pio::PacketIn#data` => `Pio::PacketIn#raw_data`. * Renamed `Pio::PacketOut#data` => `Pio::PacketOut#raw_data`. * Fix behavior of `IPv4Address#eql?` and `IPv4Address#hash`. ## 0.16.0 (3/2/2015) ### New features * [#129](https://github.com/trema/pio/pull/129): Add new class `Pio::Udp`. ## 0.15.2 (2/18/2015) ### Changes * [#128](https://github.com/trema/pio/pull/128): Field accessors return Ruby primitives (Fixnum, Symbol, etc.). ## 0.15.1 (2/17/2015) ### Bugs fixed * [#127](https://github.com/trema/pio/pull/127): Make OpenFlow classes thread safe. ## 0.15.0 (2/12/2015) ### New features * [#126](https://github.com/trema/pio/pull/126): Add new class `Pio::PortStatus`. * [#126](https://github.com/trema/pio/pull/126): Add new methods `Pio::Type::OpenFlow::PhyPort#up?`, `Pio::Type::OpenFlow::PhyPort#down?`, `Pio::Type::OpenFlow::PhyPort#local?`, `Pio::Type::OpenFlow::PhyPort#datapath_id` and `Pio::Type::OpenFlow::PhyPort#dpid`. * [#126](https://github.com/trema/pio/pull/126): Add new methods `Pio::PacketIn#lldp?`. * [#126](https://github.com/trema/pio/pull/126): Add new methods `Pio::Features::Reply#physical_ports`. ## 0.14.0 (2/9/2015) ### New features * [#125](https://github.com/trema/pio/pull/125): Add new accessor methods `Pio::PacketIn#datapath_id` and `Pio::PacketIn#dpid`. ## 0.13.0 (2/6/2015) ### New features * [#124](https://github.com/trema/pio/pull/124): Add new methods `Pio::PacketIn#source_mac` and `Pio::PacketIn#destination_mac`. ## 0.12.0 (2/5/2015) ### New features * [#123](https://github.com/trema/pio/pull/123): Add new class `Pio::ExactMatch`. ## 0.11.2 (1/29/2015) ### Bugs fixed * [#121](https://github.com/trema/pio/pull/121): Fix behavior of `Pio::Match#==` and `Pio::SendOutPort#==`. ## 0.11.1 (1/15/2015) ### New features * [#116](https://github.com/trema/pio/issues/116): Support Cisco-style MAC addresses. ## 0.11.0 (1/15/2015) ### New features * [#108](https://github.com/trema/pio/pull/108): Added new class `Pio::FlowMod` and `Pio::Match`. ## 0.10.1 (1/6/2015) ### Bugs fixed * [#104](https://github.com/trema/pio/issues/104): Fix bug when parsing `Pio::PacketOut` with `Pio::StripVlanHeader` action. ## 0.10.0 (1/6/2015) ### New features * [#103](https://github.com/trema/pio/pull/103): Added new class `Pio::PacketOut`. ## 0.9.0 (12/22/2014) ### New features * [#102](https://github.com/trema/pio/pull/102): Added new class `Pio::PacketIn`. ## 0.8.2 (12/18/2014) ### Bugs fixed * [#100](https://github.com/trema/pio/pull/100): Fix bug when passing `ports:` option to `Pio::Features::Request.new`. ## 0.8.1 (6/5/2014) ### Misc * Updated bundled gems. * Modernized Gemfile and .gemspec. ## 0.8.0 (5/26/2014) ### Changes * Renamed `version` => `ofp_version` ## 0.7.0 (4/22/2014) ### New features * Added new class `Pio::Features`, `Pio::Features::Request` and `Pio::Features::Reply` ### Changes * Renamed `rake PCAP='foo.pcap' dump_pcap` => `rake PACKET_FILE='foo.pcap' dump` ## 0.6.0 (4/15/2014) ### New features * Added new class `Pio::Echo`, `Pio::Echo::Request` and `Pio::Echo::Reply`. ## 0.5.1 (4/15/2014) ### Bugs fixed * Set hello message type = 0. ## 0.5.0 (4/14/2014) ### New features * Added new class `Pio::Hello`. ### Misc * Added new rake task `cucumber`. * Added new rake task `dump_pcap`. ## 0.4.0 (3/31/2014) ### New features * Added new classes `Pio::Dhcp`, `Pio::Dhcp::Discover`, `Pio::Dhcp::Offer`, `Pio::Dhcp::Request` and `Pio::Dhcp::Ack`. ### Changes * Added new class alias `Pio::ICMP` => `Pio::Icmp`. * Added new class alias `Pio::ARP` => `Pio::Arp`. * Added new class alias `Pio::LLDP` => `Pio::Lldp`. * Added new class alias `Pio::DHCP` => `Pio::Dhcp`.