lib/pio/open_flow10/phy_port16.rb in pio-0.30.0 vs lib/pio/open_flow10/phy_port16.rb in pio-0.30.1
- old
+ new
@@ -1,90 +1,68 @@
require 'bindata'
+require 'pio/open_flow/flags'
require 'pio/type/mac_address'
module Pio
module OpenFlow10
# Description of a physical port
class PhyPort16 < BinData::Record
extend OpenFlow::Flags
- # enum ofp_port_config
- flags_32bit :port_config,
+ endian :big
+
+ uint16 :number
+ mac_address :mac_address
+ string :name, length: 16, trim_padding: true
+ flags_32bit :config,
[:port_down,
:no_stp,
- :no_recv,
- :no_recv_stp,
+ :no_receive,
+ :no_receive_stp,
:no_flood,
- :no_fwd,
+ :no_forward,
:no_packet_in]
-
- # enum ofp_port_state
- flags_32bit :port_state,
+ flags_32bit :state,
link_down: 1 << 0,
stp_listen: 0 << 8,
stp_learn: 1 << 8,
stp_forward: 2 << 8,
stp_block: 3 << 8
- # enum ofp_port_features
- flags_32bit :port_feature,
- [:port_10mb_hd,
- :port_10mb_fd,
- :port_100mb_hd,
- :port_100mb_fd,
- :port_1gb_hd,
- :port_1gb_fd,
- :port_10gb_fd,
- :port_copper,
- :port_fiber,
- :port_autoneg,
- :port_pause,
- :port_pause_asym]
-
- endian :big
-
- uint16 :port_no
- mac_address :hardware_address
- string :name, length: 16, trim_padding: true
- port_config :config
- port_state :state
+ define_flags_32bit :port_feature,
+ [:port_10mb_hd,
+ :port_10mb_fd,
+ :port_100mb_hd,
+ :port_100mb_fd,
+ :port_1gb_hd,
+ :port_1gb_fd,
+ :port_10gb_fd,
+ :port_copper,
+ :port_fiber,
+ :port_autoneg,
+ :port_pause,
+ :port_pause_asym]
port_feature :curr
port_feature :advertised
port_feature :supported
port_feature :peer
- # rubocop:disable MethodLength
- def snapshot
- super.tap do |ss|
- def ss.datapath_id
- @datapath_id || fail
- end
+ cattr_reader(:length) { 48 }
- def ss.dpid
- @datapath_id || fail
- end
+ attr_accessor :datapath_id
+ alias dpid datapath_id
+ alias dpid= datapath_id=
- def ss.number
- port_no
- end
+ def up?
+ !down?
+ end
- def ss.mac_address
- hardware_address
- end
+ def down?
+ config.include?(:port_down) || state.include?(:link_down)
+ end
- def ss.up?
- !down?
- end
-
- def ss.down?
- config.include?(:port_down) || state.include?(:link_down)
- end
-
- def ss.local?
- port_no == OpenFlow10::Port16.reserved_port_number(:local)
- end
- end
+ def local?
+ number == OpenFlow10::Port16.reserved_port_number(:local)
end
- # rubocop:enable MethodLength
end
end
end