Add send_meter_mod_{add,modify,delete} helpers

This commit is contained in:
Eishun Kondoh 2018-08-21 19:16:43 +09:00
parent 7295fa00c9
commit 2c4d247a2f
3 changed files with 46 additions and 0 deletions

Binary file not shown.

View file

@ -14,6 +14,15 @@ defmodule Openflow.MeterMod do
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
command = Openflow.Enums.to_atom(command_int, :meter_mod_command)
flags = Openflow.Enums.int_to_flags(flags_int, :meter_flags)

View file

@ -115,6 +115,43 @@ defmodule Tres.MessageHelper do
send_message(role_request, datapath_id, Keyword.get(options, :blocking, false))
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