Refactored nicira extended actions

This commit is contained in:
Eishun Kondoh 2019-03-18 13:31:36 +09:00
parent efd08cf6dd
commit ffcba91395
51 changed files with 1015 additions and 819 deletions

View file

@ -9,18 +9,27 @@ defmodule Openflow.Action.NxConjunction do
@nxast 34
alias __MODULE__
alias Openflow.Action.Experimenter
def new(options \\ []) do
n_clauses = options[:n_clauses] || raise "n_clauses must be specified"
n_clauses >= 2 || raise "n_clauses must be greater than 1"
def new(options) do
%NxConjunction{
clause: options[:clause] || 0,
n_clauses: options[:n_clauses] || 0,
clause: (options[:clause] || 0) + 1,
n_clauses: n_clauses,
id: options[:id] || 0
}
end
def to_binary(%NxConjunction{clause: clause, n_clauses: n_clauses, id: id}) do
exp_body = <<@experimenter::32, @nxast::16, clause::8, n_clauses::8, id::32>>
<<0xFFFF::16, 16::16, exp_body::bytes>>
Experimenter.pack_exp_header(<<
@experimenter::32,
@nxast::16,
clause::8,
n_clauses::8,
id::32
>>)
end
def read(<<@experimenter::32, @nxast::16, clause::8, n_clauses::8, id::32>>) do