tres/lib/openflow/actions/group.ex
2019-03-28 18:17:01 +09:00

39 lines
646 B
Elixir

defmodule Openflow.Action.Group do
@moduledoc """
Apply Group
"""
defstruct(id: 0)
alias __MODULE__
@type t :: %Group{id: 0..0xFFFFFFFF}
@spec ofpat() :: 22
def ofpat, do: 22
@doc """
Create a new group action struct
## Options
- id: Group identifier
```elixir
iex> %Group{id: 10} = Group.new(10)
```
"""
@spec new(0..0xFFFFFFFF) :: t()
def new(id) do
%Group{id: id}
end
@spec to_binary(t()) :: <<_::16, _::_*8>>
def to_binary(%Group{id: id}) do
<<22::16, 8::16, id::32>>
end
@spec read(<<_::16, _::_*8>>) :: t()
def read(<<22::16, 8::16, id::32>>) do
%Group{id: id}
end
end