Add send_meter_mod_{add,modify,delete} helpers
This commit is contained in:
parent
7295fa00c9
commit
2c4d247a2f
3 changed files with 46 additions and 0 deletions
BIN
bin/enum_gen
BIN
bin/enum_gen
Binary file not shown.
|
|
@ -14,6 +14,15 @@ defmodule Openflow.MeterMod do
|
||||||
|
|
||||||
def ofp_type, do: 29
|
def ofp_type, do: 29
|
||||||
|
|
||||||
|
def new(options \\ []) do
|
||||||
|
%MeterMod{
|
||||||
|
command: options[:command] || :add,
|
||||||
|
flags: options[:flags] || [],
|
||||||
|
meter_id: options[:meter_id] || 0,
|
||||||
|
bands: options[:bands] || []
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def read(<<command_int::16, flags_int::16, meter_id_int::32, bands_bin::bytes>>) do
|
def read(<<command_int::16, flags_int::16, meter_id_int::32, bands_bin::bytes>>) do
|
||||||
command = Openflow.Enums.to_atom(command_int, :meter_mod_command)
|
command = Openflow.Enums.to_atom(command_int, :meter_mod_command)
|
||||||
flags = Openflow.Enums.int_to_flags(flags_int, :meter_flags)
|
flags = Openflow.Enums.int_to_flags(flags_int, :meter_flags)
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,43 @@ defmodule Tres.MessageHelper do
|
||||||
|
|
||||||
send_message(role_request, datapath_id, Keyword.get(options, :blocking, false))
|
send_message(role_request, datapath_id, Keyword.get(options, :blocking, false))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp send_meter_mod_add(datapath_id, options \\ []) do
|
||||||
|
meter_mod =
|
||||||
|
Openflow.MeterMod.new(
|
||||||
|
xid: options[:xid] || 0,
|
||||||
|
command: :add,
|
||||||
|
flags: options[:flags] || [],
|
||||||
|
meter_id: options[:meter_id] || 0,
|
||||||
|
bands: options[:bands] || []
|
||||||
|
)
|
||||||
|
|
||||||
|
send_message(meter_mod, datapath_id, options[:blocking] || false)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp send_meter_mod_modify(datapath_id, options \\ []) do
|
||||||
|
meter_mod =
|
||||||
|
Openflow.MeterMod.new(
|
||||||
|
xid: options[:xid] || 0,
|
||||||
|
command: :modify,
|
||||||
|
flags: options[:flags] || [],
|
||||||
|
meter_id: options[:meter_id] || 0,
|
||||||
|
bands: options[:bands] || []
|
||||||
|
)
|
||||||
|
|
||||||
|
send_message(meter_mod, datapath_id, options[:blocking] || false)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp send_meter_mod_delete(datapath_id, options \\ []) do
|
||||||
|
meter_mod =
|
||||||
|
Openflow.MeterMod.new(
|
||||||
|
xid: options[:xid] || 0,
|
||||||
|
command: :delete,
|
||||||
|
meter_id: options[:meter_id] || 0,
|
||||||
|
)
|
||||||
|
|
||||||
|
send_message(meter_mod, datapath_id, options[:blocking] || false)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue