From a3ec836e424f487b94e99f0010235ec70d9c5522 Mon Sep 17 00:00:00 2001 From: Eishun Kondoh Date: Wed, 29 Aug 2018 07:17:51 +0900 Subject: [PATCH] Add support NXT_RESUME (#9) --- bin/enum_gen | Bin 1460249 -> 1542091 bytes config/config.exs | 2 +- lib/openflow.ex | 23 +- lib/openflow/hello.ex | 4 +- lib/openflow/nx_packet_in2.ex | 220 +++++++++++++++- lib/openflow/nx_resume.ex | 431 ++++++++++++++++++++++++++++++++ lib/ovsdb/open_vswitch.ex | 54 ++-- lib/tres/controller.ex | 1 + lib/tres/message_handler_sup.ex | 1 + lib/tres/message_helper.ex | 7 +- lib/tres/secure_channel.ex | 31 +-- lib/tres/switch_registry.ex | 1 + lib/tres/utils.ex | 8 +- test/ofp_action_test.exs | 14 +- test/ofp_packet_in2_test.exs | 4 +- 15 files changed, 730 insertions(+), 71 deletions(-) create mode 100644 lib/openflow/nx_resume.ex diff --git a/bin/enum_gen b/bin/enum_gen index bf594917a60fbde2273419b8eb90aaceaa19a407..7390ec72b1b2500fc12aac2aba6f89a416b3d479 100755 GIT binary patch delta 131592 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

G(=I7h6$j^W9s4}JmjTDLc^XnoJlyWvCa0{zGz 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 do - try do - body_len = len - @ofp_header_size - <> = binary2 + try do + body_len = len - @ofp_header_size + <> = binary2 - result = type + result = + type |> Openflow.Enums.to_atom(:openflow_codec) |> do_read(body_bin) - case result do - {:ok, struct} -> {:ok, %{struct | version: ver, xid: xid}, rest} - {:error, reason} -> {:error, reason} - end - catch - _c, _e -> - {:error, :malformed_packet} + case result do + {:ok, struct} -> {:ok, %{struct | version: ver, xid: xid}, rest} + {:error, reason} -> {:error, reason} end + catch + _c, reason -> + {:error, {:malformed_packet, {reason, __STACKTRACE__}}} + end end def to_binary(messages) when is_list(messages) do diff --git a/lib/openflow/hello.ex b/lib/openflow/hello.ex index aa3da17..415ccc9 100644 --- a/lib/openflow/hello.ex +++ b/lib/openflow/hello.ex @@ -24,8 +24,8 @@ defmodule Openflow.Hello do def supported_version?(%Hello{elements: elements}) do elements - |> Enum.reduce([], fn({:versionbitmap, versions}, acc) -> acc ++ versions end) - |> Enum.any?(fn(version) -> version == 4 end) + |> Enum.reduce([], fn {:versionbitmap, versions}, acc -> acc ++ versions end) + |> Enum.any?(fn version -> version == 4 end) end def read(binary), do: %Hello{elements: decode([], binary)} diff --git a/lib/openflow/nx_packet_in2.ex b/lib/openflow/nx_packet_in2.ex index 77955be..02e2572 100644 --- a/lib/openflow/nx_packet_in2.ex +++ b/lib/openflow/nx_packet_in2.ex @@ -14,17 +14,40 @@ defmodule Openflow.NxPacketIn2 do metadata: nil, userdata: nil, # continuation properties: - continuation_bridge: "", - continuation_stack: [], - continuation_conntracked: false, + continuation_bridge: nil, + continuation_stack: nil, + continuation_conntracked: nil, + continuation_mirrors: nil, continuation_table_id: nil, continuation_cookie: nil, - continuation_actions: [], + continuation_actions: nil, continuation_action_set: nil ) alias __MODULE__ + @encode_keys ~w( + packet + full_len + buffer_id + table_id + cookie + reason + metadata + userdata + )a + + @continuation_keys ~w( + continuation_bridge + continuation_stack + continuation_conntracked + continuation_table_id + continuation_cookie + continuation_actions + continuation_mirrors + continuation_action_set + )a + @experimenter 0x00002320 @nx_type 30 @@ -51,6 +74,12 @@ defmodule Openflow.NxPacketIn2 do def ofp_type, do: 4 + def to_binary(%NxPacketIn2{} = pin) do + props_bin = encode_props("", pin, @encode_keys) + continuations_bin = encode_continuations("", pin, @continuation_keys) + <<@experimenter::32, @nx_type::32, props_bin::bytes, continuations_bin::bytes>> + end + def read(<<@experimenter::32, @nx_type::32, props_bin::bytes>>) do %NxPacketIn2{} |> decode_props(props_bin) @@ -58,6 +87,189 @@ defmodule Openflow.NxPacketIn2 do ## private functions + defp encode_props(acc, _pin, []), do: acc + + defp encode_props(acc, %NxPacketIn2{packet: packet} = pin, [:packet | rest]) + when not is_nil(packet) and is_binary(packet) do + length = @prop_header_length + byte_size(packet) + pad_length = Openflow.Utils.pad_length(length, 8) + binary = <<@packet::16, length::16, packet::bytes, 0::size(pad_length)-unit(8)>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxPacketIn2{full_len: full_len} = pin, [:full_len | rest]) + when not is_nil(full_len) and is_integer(full_len) do + length = @prop_header_length + 4 + binary = <<@full_len::16, length::16, full_len::32>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxPacketIn2{buffer_id: buffer_id} = pin, [:buffer_id | rest]) + when not is_nil(buffer_id) and is_integer(buffer_id) do + length = @prop_header_length + 4 + binary = <<@buffer_id::16, length::16, buffer_id::32>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxPacketIn2{table_id: table_id} = pin, [:table_id | rest]) + when not is_nil(table_id) and is_integer(table_id) do + length = @prop_header_length + 4 + binary = <<@table_id::16, length::16, table_id::8, 0::24>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxPacketIn2{cookie: cookie} = pin, [:cookie | rest]) + when not is_nil(cookie) and is_integer(cookie) do + length = @prop_header_length + 4 + binary = <<@cookie::16, length::16, 0::32, cookie::64>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxPacketIn2{metadata: metadata} = pin, [:metadata | rest]) + when not is_nil(metadata) and is_list(metadata) do + pad_match_bin = + metadata + |> Openflow.Match.new() + |> Openflow.Match.to_binary() + + <<1::16, match_len_with_header::16, padded_match_bin::bytes>> = pad_match_bin + match_len = match_len_with_header - 4 + <> = padded_match_bin + length = @prop_header_length + match_len + pad_length = Openflow.Utils.pad_length(length, 8) + binary = <<@metadata::16, length::16, match_bin::bytes, 0::size(pad_length)-unit(8)>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxPacketIn2{userdata: userdata} = pin, [:userdata | rest]) + when not is_nil(userdata) and is_binary(userdata) do + length = @prop_header_length + byte_size(userdata) + pad_length = Openflow.Utils.pad_length(length, 8) + binary = <<@userdata::16, length::16, userdata::bytes, 0::size(pad_length)-unit(8)>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, pin, [_ | rest]) do + encode_props(acc, pin, rest) + end + + defp encode_continuations(acc, _pin, []) do + if byte_size(acc) > 0 do + length = @prop_header_length + byte_size(acc) + pad_length = Openflow.Utils.pad_length(length, 8) + <<@continuation::16, acc::bytes, 0::size(pad_length)-unit(8)>> + else + <<>> + end + end + + defp encode_continuations( + acc, + %NxPacketIn2{continuation_bridge: br} = pin, + [:continuation_bridge | rest] + ) + when not is_nil(br) do + length = @prop_header_length + byte_size(br) + pad_length = Openflow.Utils.pad_length(length, 8) + bridge_bin = <> + binary = <<@nxcpt_bridge::16, length::16, bridge_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxPacketIn2{continuation_stack: stack} = pin, + [:continuation_stack | rest] + ) + when not is_nil(stack) do + length = @prop_header_length + byte_size(stack) + pad_length = Openflow.Utils.pad_length(length, 8) + stack_bin = <> + binary = <<@nxcpt_stack::16, length::16, stack_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxPacketIn2{continuation_mirrors: mirrors} = pin, + [:continuation_mirrors | rest] + ) + when not is_nil(mirrors) do + length = @prop_header_length + byte_size(mirrors) + pad_length = Openflow.Utils.pad_length(length, 8) + mirrors_bin = <> + binary = <<@nxcpt_mirrors::16, length::16, mirrors_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxPacketIn2{continuation_conntracked: true} = pin, + [:continuation_conntracked | rest] + ) do + length = @prop_header_length + 1 + pad_length = Openflow.Utils.pad_length(length, 8) + conntracked_bin = <<1::size(1)-unit(8), 0::size(pad_length)-unit(8), acc::bytes>> + binary = <<@nxcpt_conntracked::16, length::16, conntracked_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxPacketIn2{continuation_table_id: table_id} = pin, + [:continuation_table_id | rest] + ) + when not is_nil(table_id) do + length = @prop_header_length + 1 + pad_length = Openflow.Utils.pad_length(length, 8) + table_id_bin = <> + binary = <<@nxcpt_table_id::16, length::16, table_id_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxPacketIn2{continuation_cookie: cookie} = pin, + [:continuation_cookie | rest] + ) + when not is_nil(cookie) do + length = @prop_header_length + 8 + pad_length = Openflow.Utils.pad_length(length, 8) + cookie_bin = <> + binary = <<@nxcpt_cookie::16, length::16, cookie_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxPacketIn2{continuation_actions: actions} = pin, + [:continuation_actions | rest] + ) do + actions_bin = Openflow.Action.to_binary(actions) + length = @prop_header_length + byte_size(actions_bin) + pad_length = Openflow.Utils.pad_length(length, 8) + actions_bin = <> + binary = <<@nxcpt_actions::16, length::16, actions_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxPacketIn2{continuation_action_set: action_set} = pin, + [:continuation_action_set | rest] + ) + when not is_nil(action_set) do + length = @prop_header_length + byte_size(action_set) + pad_length = Openflow.Utils.pad_length(length, 8) + action_set_bin = <> + binary = <<@nxcpt_action_set::16, length::16, action_set_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations(acc, pin, [_ | rest]) do + encode_continuations(acc, pin, rest) + end + defp decode_props(pktin, ""), do: pktin defp decode_props(pktin, <<@packet::16, length::16, tail::bytes>>) do diff --git a/lib/openflow/nx_resume.ex b/lib/openflow/nx_resume.ex new file mode 100644 index 0000000..46e4530 --- /dev/null +++ b/lib/openflow/nx_resume.ex @@ -0,0 +1,431 @@ +defmodule Openflow.NxResume do + defstruct( + version: 4, + xid: 0, + datapath_id: "", + aux_id: 0, + # packet_in properties: + packet: nil, + full_len: nil, + buffer_id: nil, + table_id: nil, + cookie: nil, + reason: nil, + metadata: nil, + userdata: nil, + # continuation properties: + continuation_bridge: nil, + continuation_stack: nil, + continuation_conntracked: nil, + continuation_mirrors: nil, + continuation_table_id: nil, + continuation_cookie: nil, + continuation_actions: nil, + continuation_action_set: nil + ) + + alias __MODULE__ + + @encode_keys ~w( + packet + full_len + buffer_id + table_id + cookie + reason + metadata + userdata + )a + + @continuation_keys ~w( + continuation_bridge + continuation_stack + continuation_conntracked + continuation_table_id + continuation_cookie + continuation_actions + continuation_mirrors + continuation_action_set + )a + + @experimenter 0x00002320 + @nx_type 28 + + @packet 0 + @full_len 1 + @buffer_id 2 + @table_id 3 + @cookie 4 + @reason 5 + @metadata 6 + @userdata 7 + @continuation 8 + + @nxcpt_bridge 0x8000 + @nxcpt_stack 0x8001 + @nxcpt_mirrors 0x8002 + @nxcpt_conntracked 0x8003 + @nxcpt_table_id 0x8004 + @nxcpt_cookie 0x8005 + @nxcpt_actions 0x8006 + @nxcpt_action_set 0x8007 + + @prop_header_length 4 + + def ofp_type, do: 4 + + def new(options \\ []) do + packet_in = options[:packet_in] || %Openflow.NxPacketIn2{} + packet = options[:packet] || packet_in.packet + + %NxResume{ + packet: packet, + table_id: packet_in.table_id, + cookie: packet_in.cookie, + metadata: options[:metadata] || packet_in.metadata, + userdata: packet_in.userdata, + continuation_bridge: packet_in.continuation_bridge, + continuation_stack: packet_in.continuation_stack, + continuation_conntracked: packet_in.continuation_conntracked, + continuation_table_id: packet_in.continuation_table_id, + continuation_cookie: packet_in.continuation_cookie, + continuation_actions: packet_in.continuation_actions, + continuation_action_set: packet_in.continuation_action_set, + continuation_mirrors: packet_in.continuation_mirrors + } + end + + def to_binary(%NxResume{} = pin) do + props_bin = encode_props("", pin, @encode_keys) + continuations_bin = encode_continuations("", pin, @continuation_keys) + <<@experimenter::32, @nx_type::32, props_bin::bytes, continuations_bin::bytes>> + end + + def read(<<@experimenter::32, @nx_type::32, props_bin::bytes>>) do + %NxResume{} + |> decode_props(props_bin) + end + + ## private functions + + defp encode_props(acc, _pin, []), do: acc + + defp encode_props(acc, %NxResume{packet: packet} = pin, [:packet | rest]) + when not is_nil(packet) and is_binary(packet) do + length = @prop_header_length + byte_size(packet) + pad_length = Openflow.Utils.pad_length(length, 8) + binary = <<@packet::16, length::16, packet::bytes, 0::size(pad_length)-unit(8)>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxResume{full_len: full_len} = pin, [:full_len | rest]) + when not is_nil(full_len) and is_integer(full_len) do + length = @prop_header_length + 4 + binary = <<@full_len::16, length::16, full_len::32>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxResume{buffer_id: buffer_id} = pin, [:buffer_id | rest]) + when not is_nil(buffer_id) do + length = @prop_header_length + 4 + buffer_id_int = Openflow.Utils.get_enum(buffer_id, :buffer_id) + binary = <<@buffer_id::16, length::16, buffer_id_int::32>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxResume{table_id: table_id} = pin, [:table_id | rest]) + when not is_nil(table_id) and is_integer(table_id) do + length = @prop_header_length + 4 + binary = <<@table_id::16, length::16, table_id::8, 0::24>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxResume{cookie: cookie} = pin, [:cookie | rest]) + when not is_nil(cookie) and is_integer(cookie) do + length = @prop_header_length + 4 + 8 + pad_length = Openflow.Utils.pad_length(length, 8) + binary = <<@cookie::16, length::16, 0::32, cookie::64, 0::size(pad_length)-unit(8)>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxResume{metadata: metadata} = pin, [:metadata | rest]) + when not is_nil(metadata) and is_list(metadata) do + pad_match_bin = + metadata + |> Openflow.Match.new() + |> Openflow.Match.to_binary() + + <<1::16, match_len_with_header::16, padded_match_bin::bytes>> = pad_match_bin + match_len = match_len_with_header - 4 + <> = padded_match_bin + length = @prop_header_length + match_len + pad_length = Openflow.Utils.pad_length(length, 8) + binary = <<@metadata::16, length::16, match_bin::bytes, 0::size(pad_length)-unit(8)>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, %NxResume{userdata: userdata} = pin, [:userdata | rest]) + when not is_nil(userdata) and is_binary(userdata) do + length = @prop_header_length + byte_size(userdata) + pad_length = Openflow.Utils.pad_length(length, 8) + binary = <<@userdata::16, length::16, userdata::bytes, 0::size(pad_length)-unit(8)>> + encode_props(<>, pin, rest) + end + + defp encode_props(acc, pin, [_ | rest]) do + encode_props(acc, pin, rest) + end + + defp encode_continuations(acc, _pin, []) do + if byte_size(acc) > 0 do + length = @prop_header_length + byte_size(acc) + 4 + pad_length = Openflow.Utils.pad_length(length, 8) + <<@continuation::16, length::16, 0::32, acc::bytes, 0::size(pad_length)-unit(8)>> + else + <<>> + end + end + + defp encode_continuations( + acc, + %NxResume{continuation_bridge: br} = pin, + [:continuation_bridge | rest] + ) + when not is_nil(br) do + length = byte_size(br) + @prop_header_length + pad_length = Openflow.Utils.pad_length(length, 8) + br_bin = <> + binary = <<@nxcpt_bridge::16, length::16, br_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxResume{continuation_stack: stack} = pin, + [:continuation_stack | rest] + ) + when not is_nil(stack) do + length = @prop_header_length + byte_size(stack) + pad_length = Openflow.Utils.pad_length(length, 8) + stack_bin = <> + binary = <<@nxcpt_stack::16, length::16, stack_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxResume{continuation_mirrors: mirrors} = pin, + [:continuation_mirrors | rest] + ) + when not is_nil(mirrors) do + length = @prop_header_length + byte_size(mirrors) + pad_length = Openflow.Utils.pad_length(length, 8) + mirrors_bin = <> + binary = <<@nxcpt_mirrors::16, length::16, mirrors_bin::bytes, acc::bytes>> + + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxResume{continuation_conntracked: true} = pin, + [:continuation_conntracked | rest] + ) do + length = @prop_header_length + 1 + pad_length = Openflow.Utils.pad_length(length, 8) + conntracked_bin = <<1::size(1)-unit(8), 0::size(pad_length)-unit(8), acc::bytes>> + binary = <<@nxcpt_conntracked::16, length::16, conntracked_bin::bytes, acc::bytes>> + + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxResume{continuation_table_id: table_id} = pin, + [:continuation_table_id | rest] + ) + when not is_nil(table_id) do + length = @prop_header_length + 1 + pad_length = Openflow.Utils.pad_length(length, 8) + table_id_bin = <> + binary = <<@nxcpt_table_id::16, length::16, table_id_bin::bytes, acc::bytes>> + + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxResume{continuation_cookie: cookie} = pin, + [:continuation_cookie | rest] + ) + when not is_nil(cookie) do + length = @prop_header_length + 8 + pad_length = Openflow.Utils.pad_length(length, 8) + cookie_bin = <> + binary = <<@nxcpt_cookie::16, length::16, cookie_bin::bytes, acc::bytes>> + + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxResume{continuation_actions: actions} = pin, + [:continuation_actions | rest] + ) + when not is_nil(actions) do + actions_bin = Openflow.Action.to_binary(actions) + length = @prop_header_length + byte_size(actions_bin) + 4 + pad_length = Openflow.Utils.pad_length(length, 8) + padded_actions_bin = <<0::32, actions_bin::bytes, 0::size(pad_length)-unit(8)>> + binary = <<@nxcpt_actions::16, length::16, padded_actions_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations( + acc, + %NxResume{continuation_action_set: action_set} = pin, + [:continuation_action_set | rest] + ) + when not is_nil(action_set) do + length = @prop_header_length + byte_size(action_set) + pad_length = Openflow.Utils.pad_length(length, 8) + action_set_bin = <> + binary = <<@nxcpt_action_set::16, length::16, action_set_bin::bytes, acc::bytes>> + encode_continuations(binary, pin, rest) + end + + defp encode_continuations(acc, pin, [_ | rest]) do + encode_continuations(acc, pin, rest) + end + + defp decode_props(pktin, ""), do: pktin + + defp decode_props(pktin, <<@packet::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + packet_length = length - @prop_header_length + <> = tail + decode_props(%{pktin | packet: packet}, rest) + end + + defp decode_props(pktin, <<@full_len::16, _length::16, full_len::32, rest::bytes>>) do + decode_props(%{pktin | full_len: full_len}, rest) + end + + defp decode_props(pktin, <<@buffer_id::16, _length::16, buffer_id::32, rest::bytes>>) do + decode_props(%{pktin | buffer_id: buffer_id}, rest) + end + + defp decode_props(pktin, <<@table_id::16, _length::16, table_id::8, _::24, rest::bytes>>) do + decode_props(%{pktin | table_id: table_id}, rest) + end + + defp decode_props(pktin, <<@cookie::16, _length::16, _::32, cookie::64, rest::bytes>>) do + decode_props(%{pktin | cookie: cookie}, rest) + end + + defp decode_props(pktin, <<@reason::16, _length::16, reason_int::8, _::24, rest::bytes>>) do + reason = Openflow.Enums.to_atom(reason_int, :packet_in_reason) + decode_props(%{pktin | reason: reason}, rest) + end + + defp decode_props(pktin, <<@metadata::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + match_field_length = length - @prop_header_length + + <> = + tail + + match_len = 4 + byte_size(match_fields_bin) + padding = Openflow.Utils.pad_length(match_len, 8) + match_bin = <<1::16, match_len::16, match_fields_bin::bytes, 0::size(padding)-unit(8)>> + {fields, _rest} = Openflow.Match.read(match_bin) + decode_props(%{pktin | metadata: fields}, rest) + end + + defp decode_props(pktin, <<@userdata::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + userdata_length = length - @prop_header_length + <> = tail + decode_props(%{pktin | userdata: userdata}, rest) + end + + defp decode_props(pktin, <<@continuation::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + data_length = length - @prop_header_length - 4 + <<_pad::32, data::size(data_length)-bytes, _::size(pad_length)-unit(8), rest::bytes>> = tail + + pktin + |> decode_continuations(data) + |> decode_props(rest) + end + + defp decode_props(pktin, <<_::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + data_length = length - @prop_header_length + <<_data::size(data_length)-bytes, _::size(pad_length)-unit(8), rest::bytes>> = tail + decode_props(pktin, rest) + end + + defp decode_continuations(pktin, ""), do: pktin + + defp decode_continuations(pktin, <<@nxcpt_bridge::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + data_length = length - @prop_header_length + <> = tail + decode_continuations(%{pktin | continuation_bridge: bridge}, rest) + end + + defp decode_continuations(pktin, <<@nxcpt_stack::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + data_length = (length - @prop_header_length) * 8 + <> = tail + decode_continuations(%{pktin | continuation_stack: pktin.continuation_stack ++ [stack]}, rest) + end + + defp decode_continuations(pktin, <<@nxcpt_mirrors::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + data_length = length - @prop_header_length + <> = tail + decode_continuations(%{pktin | continuation_mirrors: mirrors}, rest) + end + + defp decode_continuations(pktin, <<@nxcpt_conntracked::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + data_length = length - @prop_header_length + <<_::size(data_length)-bytes, _::size(pad_length)-unit(8), rest::bytes>> = tail + decode_continuations(%{pktin | continuation_conntracked: true}, rest) + end + + defp decode_continuations(pktin, <<@nxcpt_table_id::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + <> = tail + decode_continuations(%{pktin | continuation_table_id: table_id}, rest) + end + + defp decode_continuations(pktin, <<@nxcpt_cookie::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + <> = tail + decode_continuations(%{pktin | continuation_cookie: cookie}, rest) + end + + defp decode_continuations(pktin, <<@nxcpt_actions::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + data_length = length - @prop_header_length - 4 + + <<_pad::32, actions::size(data_length)-bytes, _::size(pad_length)-unit(8), rest::bytes>> = + tail + + decode_continuations(%{pktin | continuation_actions: Openflow.Action.read(actions)}, rest) + end + + defp decode_continuations(pktin, <<@nxcpt_action_set::16, length::16, tail::bytes>>) do + pad_length = Openflow.Utils.pad_length(length, 8) + data_length = length - @prop_header_length + <> = tail + decode_continuations(%{pktin | continuation_action_set: action_set}, rest) + end + + defp decode_continuations(pktin, _) do + decode_continuations(pktin, "") + end +end diff --git a/lib/ovsdb/open_vswitch.ex b/lib/ovsdb/open_vswitch.ex index 3c7dbdf..530c670 100644 --- a/lib/ovsdb/open_vswitch.ex +++ b/lib/ovsdb/open_vswitch.ex @@ -34,12 +34,12 @@ defmodule OVSDB.OpenvSwitch do disable_in_band: "true" ) """ - def add_br(pid, [_|_] = options) do + def add_br(pid, [_ | _] = options) do br_uuids = GenServer.call(pid, {:sync_get, @open_vswitch, "bridges"}) add_br_options = [ bridge: options[:name], - fail_mode: options[:fail_mode] || "standalone", + fail_mode: options[:fail_mode] || "standalone", datapath_id: options[:datapath_id], disable_in_band: options[:disable_in_band], br_uuids: br_uuids @@ -83,10 +83,11 @@ defmodule OVSDB.OpenvSwitch do protocol: "OpenFlow13" ) """ - def set_controller(pid, [_|_] = options) do + def set_controller(pid, [_ | _] = options) do case find_by_name(pid, @bridge, options[:bridge]) do :not_found -> {:error, :not_found} + %{"_uuid" => _uuid} -> set_ctl_opts = [ bridge: options[:bridge], @@ -94,7 +95,7 @@ defmodule OVSDB.OpenvSwitch do connection_mode: options[:connection_mode] || "out-of-band", controller_rate_limit: options[:controller_rate_limit] || 1000, controller_burst_limit: options[:controller_burst_limit] || 100, - protocol: options[:protocol] || "OpenFlow13", + protocol: options[:protocol] || "OpenFlow13" ] GenServer.call(pid, {:set_controller, set_ctl_opts}) @@ -111,10 +112,11 @@ defmodule OVSDB.OpenvSwitch do ofport_request: 99 ) """ - def add_port(pid, [_|_] = options) do + def add_port(pid, [_ | _] = options) do case find_by_name(pid, @bridge, options[:bridge]) do :not_found -> {:error, :not_found} + %{"_uuid" => _uuid, "ports" => ports} -> port_opts = [ bridge: options[:bridge], @@ -146,14 +148,16 @@ defmodule OVSDB.OpenvSwitch do @doc """ iex> OpenvSwitch.del_port(client_pid, bridge: "br0", port: "vxlan5") """ - def del_port(pid, [_|_] = options) do + def del_port(pid, [_ | _] = options) do case find_by_name(pid, @bridge, options[:bridge]) do :not_found -> {:error, :not_found} + %{"_uuid" => _uuid, "ports" => ports} -> case find_by_name(pid, @port, options[:port]) do :not_found -> {:error, :not_found} + %{"_uuid" => port_uuid} -> new_ports = del_elem_from_set(ports, port_uuid) @@ -257,34 +261,41 @@ defmodule OVSDB.OpenvSwitch do bridge = %{ports: options[:ports]} replies = - xact([ - :eovsdb_op.update(@bridge, eq_br_name, bridge), - :eovsdb_op.mutate(@open_vswitch, eq_ovs_uuid, next_config) - ], pid) + xact( + [ + :eovsdb_op.update(@bridge, eq_br_name, bridge), + :eovsdb_op.mutate(@open_vswitch, eq_ovs_uuid, next_config) + ], + pid + ) {:reply, replies, state} end def handle_call({:set_controller, options}, _from, state) do %State{client_pid: pid, ovs_uuid: ovs} = state + controller = %{ target: options[:target], connection_mode: options[:connection_mode], controller_rate_limit: options[:controller_rate_limit], - controller_burst_limit: options[:controller_burst_limit], + controller_burst_limit: options[:controller_burst_limit] } bridge = %{ protocols: options[:protocol], - controller: ["named-uuid", "controller"], + controller: ["named-uuid", "controller"] } replies = - xact([ - :eovsdb_op.insert(@controller, controller, "controller"), - :eovsdb_op.update(@bridge, [{"name", "==", options[:bridge]}], bridge), - :eovsdb_op.mutate(@open_vswitch, [{"_uuid", "==", ovs}], [{"next_cfg", "+=", 1}]) - ], pid) + xact( + [ + :eovsdb_op.insert(@controller, controller, "controller"), + :eovsdb_op.update(@bridge, [{"name", "==", options[:bridge]}], bridge), + :eovsdb_op.mutate(@open_vswitch, [{"_uuid", "==", ovs}], [{"next_cfg", "+=", 1}]) + ], + pid + ) {:reply, replies, state} end @@ -294,7 +305,7 @@ defmodule OVSDB.OpenvSwitch do port = %{ name: options[:name], - interfaces: ["named-uuid", "interface"], + interfaces: ["named-uuid", "interface"] } iface_options = [ @@ -377,6 +388,7 @@ defmodule OVSDB.OpenvSwitch do defp do_find_by_name(pid, table, name) do query = :eovsdb_op.select('*', table, [{"name", "==", name}]) + case xact(query, pid) do [%{"rows" => []}] -> :not_found [%{"rows" => [row]}] -> row @@ -386,11 +398,11 @@ defmodule OVSDB.OpenvSwitch do defp make_ovsdb_map(map), do: make_ovsdb_map([], map) defp make_ovsdb_map(acc, []), do: ["map", Enum.reverse(acc)] - defp make_ovsdb_map(acc, [[_key, nil]|rest]), do: make_ovsdb_map(acc, rest) - defp make_ovsdb_map(acc, [attr|rest]), do: make_ovsdb_map([attr|acc], rest) + defp make_ovsdb_map(acc, [[_key, nil] | rest]), do: make_ovsdb_map(acc, rest) + defp make_ovsdb_map(acc, [attr | rest]), do: make_ovsdb_map([attr | acc], rest) defp make_ovsdb_set(nil), do: ["set", []] - defp make_ovsdb_set([_|_] = list), do: ["set", list] + defp make_ovsdb_set([_ | _] = list), do: ["set", list] defp make_ovsdb_set(value), do: value defp add_elem_to_set(["set", []], value), do: value diff --git a/lib/tres/controller.ex b/lib/tres/controller.ex index 62cd4ed..19abd7f 100644 --- a/lib/tres/controller.ex +++ b/lib/tres/controller.ex @@ -14,6 +14,7 @@ defmodule Tres.Controller do def handler_spec(dpid) do {cb_mod, cb_args} = Tres.Utils.get_callback_module() + %{ id: {__MODULE__, dpid}, start: {cb_mod, :start_link, [[dpid, cb_args]]}, diff --git a/lib/tres/message_handler_sup.ex b/lib/tres/message_handler_sup.ex index 562b476..24bb2f2 100644 --- a/lib/tres/message_handler_sup.ex +++ b/lib/tres/message_handler_sup.ex @@ -7,6 +7,7 @@ defmodule Tres.MessageHandlerSup do def init(_init_args) do children = [] + Supervisor.init( children, strategy: :one_for_one, diff --git a/lib/tres/message_helper.ex b/lib/tres/message_helper.ex index 70d911b..f9f8786 100644 --- a/lib/tres/message_helper.ex +++ b/lib/tres/message_helper.ex @@ -147,11 +147,16 @@ defmodule Tres.MessageHelper do Openflow.MeterMod.new( xid: options[:xid] || 0, command: :delete, - meter_id: options[:meter_id] || 0, + meter_id: options[:meter_id] || 0 ) send_message(meter_mod, datapath_id, options[:blocking] || false) end + + defp send_resume(datapath_id, options) do + resume = Openflow.NxResume.new(options) + send_message(resume, datapath_id, options[:blocking] || false) + end end end end diff --git a/lib/tres/secure_channel.ex b/lib/tres/secure_channel.ex index 05e723d..69a3cd3 100644 --- a/lib/tres/secure_channel.ex +++ b/lib/tres/secure_channel.ex @@ -50,7 +50,7 @@ defmodule Tres.SecureChannel do {:tcp, socket, packet}, state, %State{socket: socket, transport: transport} = state_data - ) do + ) do transport.setopts(socket, active: :once) handle_packet(packet, state_data, state, []) end @@ -137,9 +137,7 @@ defmodule Tres.SecureChannel do # INIT state defp handle_INIT(:enter, _old_state, state_data) do - debug( - "Initiate HELLO handshake: " <> "#{state_data.ip_addr}:#{state_data.port}" - ) + debug("Initiate HELLO handshake: " <> "#{state_data.ip_addr}:#{state_data.port}") initiate_hello_handshake(state_data) end @@ -153,19 +151,14 @@ defmodule Tres.SecureChannel do end defp handle_INIT(:internal, message, _state_data) do - debug( - "Hello handshake in progress, " <> "dropping message: #{inspect(message)}" - ) + debug("Hello handshake in progress, " <> "dropping message: #{inspect(message)}") :keep_state_and_data end # CONNECTING state defp handle_CONNECTING(:enter, :INIT, state_data) do - debug( - "Initiate FEATURES handshake:" <> - " #{state_data.ip_addr}:#{state_data.port}" - ) + debug("Initiate FEATURES handshake:" <> " #{state_data.ip_addr}:#{state_data.port}") initiate_features_handshake(state_data) end @@ -195,8 +188,7 @@ defmodule Tres.SecureChannel do defp handle_CONNECTING(:internal, {:openflow, message}, _state_data) do debug( - "Features handshake in progress," <> - " dropping message: #{inspect(message.__struct__)}" + "Features handshake in progress," <> " dropping message: #{inspect(message.__struct__)}" ) :keep_state_and_data @@ -209,6 +201,7 @@ defmodule Tres.SecureChannel do # CONNECTED state defp handle_CONNECTED(:enter, :CONNECTING, state_data) do _tref = schedule_xactdb_ageout() + case init_handler(state_data) do %State{} = new_state_data -> start_periodic_idle_check() @@ -340,10 +333,12 @@ defmodule Tres.SecureChannel do action = {:next_event, :internal, {:openflow, message}} new_state_data = %{state_data | buffer: "", last_received: :os.timestamp()} handle_packet(leftovers, new_state_data, state, [action | actions]) + {:error, :binary_too_small} -> handle_packet("", %{state_data | buffer: binary}, state, actions) - {:error, :malformed_packet} -> - :ok = debug("malformed packet received from #{state_data.datapath_id}") + + {:error, {:malformed_packet, {_reason, st}}} -> + :ok = debug("malformed packet received from #{state_data.datapath_id} stack_trace: #{st}") handle_packet("", %{state_data | buffer: ""}, state, actions) end end @@ -375,8 +370,9 @@ defmodule Tres.SecureChannel do unless is_nil(message), do: send(state_data.handler_pid, message) XACT_KV.delete(state_data.xact_kv_ref, xid) end + defp process_xact_entry({:xact_entry, xid, message, _orig, from, _inserted_at}, state_data) - when is_tuple(from) do + when is_tuple(from) do reply = if is_nil(message), do: :noreply, else: message :ok = :gen_statem.reply(from, {:ok, reply}) XACT_KV.delete(state_data.xact_kv_ref, xid) @@ -558,8 +554,7 @@ defmodule Tres.SecureChannel do defp send_message(message, %State{socket: socket, transport: transport}) do if is_list(message) do for message <- message, - do: - debug("Sending: #{inspect(message.__struct__)}(xid: #{message.xid})") + do: debug("Sending: #{inspect(message.__struct__)}(xid: #{message.xid})") else debug("Sending: #{inspect(message.__struct__)}(xid: #{message.xid})") end diff --git a/lib/tres/switch_registry.ex b/lib/tres/switch_registry.ex index cad2612..30fb857 100644 --- a/lib/tres/switch_registry.ex +++ b/lib/tres/switch_registry.ex @@ -25,6 +25,7 @@ defmodule Tres.SwitchRegistry do def send_message(message, dpid, _blocking = true) do blocking_send_message(message, dpid) end + def send_message(message, dpid, _blocking) do send_message(message, dpid) end diff --git a/lib/tres/utils.ex b/lib/tres/utils.ex index 21ed74e..75af3b9 100644 --- a/lib/tres/utils.ex +++ b/lib/tres/utils.ex @@ -14,11 +14,11 @@ defmodule Tres.Utils do def start_openflow_listener do :ranch.start_listener( - _ref = Tres, - _trasport = :ranch_tcp, + _ref = Tres, + _trasport = :ranch_tcp, _transport_opts = transport_options(), - _protocol = @connection_manager, - _protocol_opts = [] + _protocol = @connection_manager, + _protocol_opts = [] ) end diff --git a/test/ofp_action_test.exs b/test/ofp_action_test.exs index 616cfc8..5580700 100644 --- a/test/ofp_action_test.exs +++ b/test/ofp_action_test.exs @@ -631,14 +631,14 @@ defmodule OfpActionTest do test_file = "test/packet_data/nx_clone.raw" packet = File.read!(test_file) actions = Openflow.Action.read(packet) + clone = - Openflow.Action.NxClone.new( - [ - Openflow.Action.PushVlan.new(), - Openflow.Action.SetField.new({:vlan_vid, 5}), - Openflow.Action.Output.new(10) - ] - ) + Openflow.Action.NxClone.new([ + Openflow.Action.PushVlan.new(), + Openflow.Action.SetField.new({:vlan_vid, 5}), + Openflow.Action.Output.new(10) + ]) + actions_bin = Openflow.Action.to_binary(clone) assert actions_bin == packet assert actions == [clone] diff --git a/test/ofp_packet_in2_test.exs b/test/ofp_packet_in2_test.exs index e9b7ef7..45eff9c 100644 --- a/test/ofp_packet_in2_test.exs +++ b/test/ofp_packet_in2_test.exs @@ -14,9 +14,9 @@ defmodule OfpPacketIn2Test do assert pktin.full_len == 64 assert pktin.table_id == 7 assert pktin.buffer_id == 0x114 - assert pktin.cookie == 0xfedcba9876543210 + assert pktin.cookie == 0xFEDCBA9876543210 assert pktin.reason == :action - assert pktin.metadata == [metadata: 0x5a5a5a5a5a5a5a5a] + assert pktin.metadata == [metadata: 0x5A5A5A5A5A5A5A5A] assert pktin.userdata == <<1, 2, 3, 4, 5>> end end