lib/pio/open_flow/buffer_id.rb

Summary

Maintainability
A
25 mins
Test Coverage
# frozen_string_literal: true

module Pio
  module OpenFlow
    # Buffered packet to apply to, or :no_buffer.
    class BufferId < BinData::Primitive
      NO_BUFFER = 0xffffffff

      endian :big
      uint32 :buffer_id, initial_value: NO_BUFFER

      def get
        buffer_id == NO_BUFFER ? :no_buffer : buffer_id
      end

      def set(value)
        self.buffer_id = (value == :no_buffer ? NO_BUFFER : value)
      end
    end
  end
end