Sha256: e8037c2cafbc3738d405b49d0a842abd91d5c163d86815430368a0ae460f98a0
Contents?: true
Size: 1.45 KB
Versions: 4
Compression:
Stored size: 1.45 KB
Contents
require 'bindata' require 'pio/ethernet_header' require 'pio/type/ip_address' require 'pio/type/mac_address' module Pio # ARP parser and generator. class Arp # ARP parser. class Format < BinData::Record include EthernetHeader endian :big ethernet_header ether_type: EtherType::ARP uint16 :hardware_type, value: 1 uint16 :protocol_type, value: 0x0800 uint8 :hardware_length, value: 6 uint8 :protocol_length, value: 4 uint16 :operation mac_address :sender_hardware_address ip_address :sender_protocol_address mac_address :target_hardware_address ip_address :target_protocol_address def message_type operation end # rubocop:disable MethodLength def to_exact_match(in_port) match_options = { in_port: in_port, source_mac_address: source_mac, destination_mac_address: destination_mac, vlan_vid: vlan_vid, vlan_priority: vlan_pcp, ether_type: ether_type, tos: 0, ip_protocol: operation, source_ip_address: sender_protocol_address, destination_ip_address: target_protocol_address, transport_source_port: 0, transport_destination_port: 0 } Pio::OpenFlow10::Match.new(match_options) end # rubocop:enable MethodLength def to_binary to_binary_s + "\000" * (64 - num_bytes) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
pio-0.30.0 | lib/pio/arp/format.rb |
pio-0.29.0 | lib/pio/arp/format.rb |
pio-0.28.1 | lib/pio/arp/format.rb |
pio-0.28.0 | lib/pio/arp/format.rb |