Class: Pio::PacketIn::DataParser

Inherits:
Object
  • Object
show all
Defined in:
lib/pio/packet_in.rb

Overview

Pio::PacketIn#raw_data parser

Defined Under Namespace

Classes: EtherTypeParser, IPv4Packet

Class Method Summary collapse

Class Method Details

.read(raw_data) ⇒ Object

rubocop:disable MethodLength



75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/pio/packet_in.rb', line 75

def self.read(raw_data)
  ethernet_header = EtherTypeParser.read(raw_data)
  case ethernet_header.ether_type
  when EthernetHeader::EtherType::IPV4
    IPv4Packet.read raw_data
  when EthernetHeader::EtherType::ARP
    Pio::Arp.read raw_data
  when EthernetHeader::EtherType::LLDP
    Pio::Lldp.read raw_data
  else
    fail 'Failed to parse packet_in data.'
  end
end