Fix to accept transaction_id to all message structs

This commit is contained in:
Eishun Kondoh 2018-03-22 23:49:03 +09:00
parent bb74f3d8c4
commit 4803c61061
29 changed files with 118 additions and 34 deletions

View file

@ -18,6 +18,7 @@ defmodule Openflow.Multipart.Aggregate.Request do
def ofp_type, do: 18
def new(options) do
xid = Keyword.get(options, :xid, 0)
table_id = Keyword.get(options, :table_id, :all)
out_port = Keyword.get(options, :out_port, :any)
out_group = Keyword.get(options, :out_group, :any)
@ -26,6 +27,7 @@ defmodule Openflow.Multipart.Aggregate.Request do
match = Keyword.get(options, :match, [])
%Request{
xid: xid,
table_id: table_id,
out_port: out_port,
out_group: out_group,

View file

@ -11,8 +11,8 @@ defmodule Openflow.Multipart.Desc.Request do
def ofp_type, do: 18
def new do
%Request{}
def new(xid \\ 0) do
%Request{xid: xid}
end
def read("") do

View file

@ -18,6 +18,7 @@ defmodule Openflow.Multipart.Flow.Request do
def ofp_type, do: 18
def new(options \\ []) do
xid = Keyword.get(options, :xid, 0)
table_id = Keyword.get(options, :table_id, :all)
out_port = Keyword.get(options, :out_port, :any)
out_group = Keyword.get(options, :out_group, :any)
@ -26,6 +27,7 @@ defmodule Openflow.Multipart.Flow.Request do
match = Keyword.get(options, :match, Openflow.Match.new())
%Request{
xid: xid,
table_id: table_id,
out_port: out_port,
out_group: out_group,

View file

@ -1 +0,0 @@
Replace regexp Queue with: Group

View file

@ -1 +0,0 @@
shun159@shun159.8967:1509553730

View file

@ -12,7 +12,14 @@ defmodule Openflow.Multipart.Group.Request do
def ofp_type, do: 18
def new(group_id \\ :all) do
def new(options) when is_list(options) do
%Request{
xid: options[:xid] || 0,
group_id: options[:group_id] || :all
}
end
def new(group_id) when is_integer(group_id) or is_atom(group_id) do
%Request{group_id: group_id}
end

View file

@ -11,8 +11,8 @@ defmodule Openflow.Multipart.GroupDesc.Request do
def ofp_type, do: 18
def new do
%Request{}
def new(xid \\ 0) do
%Request{xid: xid}
end
def read("") do

View file

@ -11,8 +11,8 @@ defmodule Openflow.Multipart.GroupFeatures.Request do
def ofp_type, do: 18
def new do
%Request{}
def new(xid \\ 0) do
%Request{xid: xid}
end
def read("") do

View file

@ -12,10 +12,17 @@ defmodule Openflow.Multipart.Meter.Request do
def ofp_type, do: 18
def new(meter_id \\ :all) do
def new(meter_id) when is_integer(meter_id) or is_atom(meter_id) do
%Request{meter_id: meter_id}
end
def new(options) when is_list(options) do
%Request{
xid: options[:xid] || 0,
meter_id: options[:meter_id] || :all
}
end
def read(<<meter_id_int::32, _::size(4)-unit(8)>>) do
meter_id = Openflow.Utils.get_enum(meter_id_int, :meter_id)
%Request{meter_id: meter_id}

View file

@ -12,10 +12,17 @@ defmodule Openflow.Multipart.MeterConfig.Request do
def ofp_type, do: 18
def new(meter_id \\ :all) do
def new(meter_id) when is_integer(meter_id) or is_atom(meter_id) do
%Request{meter_id: meter_id}
end
def new(options) when is_list(options) do
%Request{
xid: options[:xid] || 0,
meter_id: options[:meter_id] || :all
}
end
def read(<<meter_id_int::32, _::size(4)-unit(8)>>) do
meter_id = Openflow.Utils.get_enum(meter_id_int, :meter_id)
%Request{meter_id: meter_id}

View file

@ -11,8 +11,8 @@ defmodule Openflow.Multipart.PortDesc.Request do
def ofp_type, do: 18
def new do
%Request{}
def new(xid \\ 0) do
%Request{xid: xid}
end
def read("") do

View file

@ -12,10 +12,17 @@ defmodule Openflow.Multipart.PortStats.Request do
def ofp_type, do: 18
def new(port_no \\ :any) do
def new(port_no) when is_integer(port_no) or is_atom(port_no) do
%Request{port_number: port_no}
end
def new(options) when is_list(options) do
%Request{
xid: options[:xid] || 0,
port_number: options[:port_no] || :any
}
end
def read(<<port_no_int::32, _::size(4)-unit(8)>>) do
port_no = Openflow.Utils.get_enum(port_no_int, :openflow13_port_no)
%Request{port_number: port_no}

View file

@ -14,9 +14,10 @@ defmodule Openflow.Multipart.Queue.Request do
def ofp_type, do: 18
def new(options) do
xid = Keyword.get(options, :xid, 0)
port_no = Keyword.get(options, :port_number, :any)
queue_id = Keyword.get(options, :queue_id, :all)
%Request{port_number: port_no, queue_id: queue_id}
%Request{xid: xid, port_number: port_no, queue_id: queue_id}
end
def read(<<port_no_int::32, queue_id_int::32>>) do

View file

@ -11,8 +11,8 @@ defmodule Openflow.Multipart.Table.Request do
def ofp_type, do: 18
def new do
%Request{}
def new(xid \\ 0) do
%Request{xid: xid}
end
def read("") do

View file

@ -14,8 +14,11 @@ defmodule Openflow.Multipart.TableFeatures.Request do
def ofp_type, do: 18
def new(tables \\ []) do
%Request{tables: tables}
def new(options \\ []) do
%Request{
xid: options[:xid] || 0,
tables: options[:tables] || []
}
end
def read(<<tables_bin::bytes>>) do