47 lines
1.7 KiB
Elixir
47 lines
1.7 KiB
Elixir
defmodule OfpPacketIn2Test do
|
|
use ExUnit.Case
|
|
doctest Openflow
|
|
|
|
describe "Openflow.read/1" do
|
|
test "with NX_PACKET_IN2 packet(without continuations)" do
|
|
{:ok, pktin, ""} =
|
|
"test/packet_data/nx_packet_in2.raw"
|
|
|> File.read!()
|
|
|> Openflow.read()
|
|
|
|
assert pktin.version == 1
|
|
assert pktin.xid == 0
|
|
assert pktin.full_len == 64
|
|
assert pktin.table_id == 7
|
|
assert pktin.buffer_id == 0x114
|
|
assert pktin.cookie == 0xFEDCBA9876543210
|
|
assert pktin.reason == :action
|
|
assert pktin.metadata == [metadata: 0x5A5A5A5A5A5A5A5A]
|
|
assert pktin.userdata == <<1, 2, 3, 4, 5>>
|
|
end
|
|
|
|
test "with NX_PACKET_IN2 packet(with continuations)" do
|
|
pktin =
|
|
"test/packet_data/4-64-ofp_nx_packet_in2.packet"
|
|
|> File.read!()
|
|
|> Openflow.read()
|
|
|> Kernel.elem(1)
|
|
|
|
assert pktin.continuation_action_set == nil
|
|
assert pktin.continuation_actions == [%Openflow.Action.NxResubmitTable{in_port: :in_port, table_id: 5}]
|
|
assert pktin.continuation_bridge == <<8, 137, 105, 58, 5, 77, 183, 237, 163, 58, 25, 166, 212, 167, 209, 11>>
|
|
assert pktin.continuation_conntracked == nil
|
|
assert pktin.continuation_cookie == nil
|
|
assert pktin.continuation_mirrors == nil
|
|
assert pktin.continuation_stack == nil
|
|
assert pktin.continuation_table_id == nil
|
|
assert pktin.cookie == 0
|
|
assert pktin.full_len == nil
|
|
assert pktin.metadata == [in_port: 2, reg0: 3_232_235_778, reg1: 1]
|
|
assert byte_size(pktin.packet) == 98
|
|
assert pktin.reason == :action
|
|
assert pktin.table_id == 0
|
|
assert byte_size(pktin.userdata) == 49
|
|
end
|
|
end
|
|
end
|