tests/integrated: Do not verify buffer_id of packet_in resulting from packet_out

When a packet_in message results from a packet_out message
there is no particular relationship between the buffer_ids of
the two messages.

I noticed this when using Open vSwitch's "make ryu-check".

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
tests/integrated: Match on IP dl_type for flows with dec NW TTL actions

OpenFlow 1.2 section 6.7 describes inconsistent action in a flow
as an action whose operation is inconsistent with the flows match.

In terms of the above the dec NW TTL action is inconsistent if
it the flow does not match on the IPv4 or IPv6 dl_type because
the action manipulates either the IPv4 TTL or the IPv6 hop limit.

This patch splits the testing of the dec NW TTL action into two tests,
one for each of IPv4 and IPv6, including a match on the corresponding
dl_type in the flow.

I noticed this when using Open vSwitch's "make ryu-check" as
Open vSwitch enforces action consistency for the dec NW TTL action.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
tests/integrated: Match on VLAN tag for flows with pop VLAN TTL actions

OpenFlow 1.2 section 6.7 describes inconsistent action in a flow
as an action whose operation is inconsistent with the flows match.

In terms of the above the pop ttl action is considered inconsistent if
it the flow does not match on a VLAN tag.

This patch add such a match for the flow that has a pop VLAN action.

I noticed this when using Open vSwitch's "make ryu-check" as
Open vSwitch enforces action consistency for the pop VLAN TTL action.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
tests/integrated: Match on VLAN tag for flows which set VLAN tags

OpenFlow 1.2 section 6.7 describes inconsistent action in a flow
as an action whose operation is inconsistent with the flows match.

In terms of the above a set-field action for a VLAN tag is considered
inconsistent if it the flow does not match on a VLAN tag.

This patch add such a match for the flow that has a set-field action
for a VLAN tag.

I noticed this when using Open vSwitch's "make ryu-check" as
Open vSwitch enforces action consistency for set-field actions for
VLAN tags.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
tests/integrated: Match on IP dl_type for flows with set NW TTL actions

OpenFlow 1.2 section 6.7 describes inconsistent action in a flow
as an action whose operation is inconsistent with the flows match.

In terms of the above the set NW TTL action is inconsistent if
it the flow does not match on the IPv4 or IPv6 dl_type because
the action manipulates either the IPv4 TTL or the IPv6 hop limit.

This patch splits the testing of the set NW TTL action into two tests,
one for each of IPv4 and IPv6, including a match on the corresponding
dl_type in the flow.

Also enable these tests, they appear to be supported by Open vSwitch.

I noticed this when using Open vSwitch's "make ryu-check" as
Open vSwitch enforces action consistency for the set NW TTL action.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
tests/integrated: Enable ARP tests

Enable ARP tests, they appear to be supported by Open vSwitch.

I noticed this when using Open vSwitch's "make ryu-check" as
Open vSwitch enforces action consistency for the set NW TTL action.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
tests/integrated: Match on IP dl_type for flows with set IPv6 addresses

OpenFlow 1.2 section 6.7 describes inconsistent action in a flow
as an action whose operation is inconsistent with the flows match.

In terms of the above the set-field actions for IPv6 addresses are
inconsistent if it the flow does not match on the IPv6 dl_type.

This patch add such a match for those that have set-field actions
for IPv6 addresses.

Also enable these tests, they appear to be supported by Open vSwitch.

I noticed this when using Open vSwitch's "make ryu-check" as
Open vSwitch enforces action consistency for the set NW TTL action.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
tests/integrated: Match on MPLS dl_type for flows with pop MPLS actions

OpenFlow 1.2 section 6.7 describes inconsistent action in a flow
as an action whose operation is inconsistent with the flows match.

In terms of the above pop MPLS actions are inconsistent if the flow
does not match on one of the MPLS dl_types.

This patch add such a match for the flow that has a pop MPLS action.

Also enable the pop MPLS test, it appears to be supported by Open vSwitch.

I noticed this when using Open vSwitch's "make ryu-check" as
Open vSwitch enforces action consistency for the set NW TTL action.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
tests/integrated: Match on MPLS dl_type for flows with MPLS TTL actions

OpenFlow 1.2 section 6.7 describes inconsistent action in a flow
as an action whose operation is inconsistent with the flows match.

In terms of the above MPLS TTL actions are inconsistent if the flow
does not match on one of the MPLS dl_types.

This patch add such a match for the flows that have MPLS TTL actions.

Also enable these tests, they appear to be supported by Open vSwitch.

I noticed this when using Open vSwitch's "make ryu-check" as
Open vSwitch enforces action consistency for the set NW TTL action.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
tests/integrated: Enable MPLS set-field and push MPLS tests

Enable disabled MPLS tests, they appear to be supported by Open vSwitch.

I noticed this when using Open vSwitch's "make ryu-check" as
Open vSwitch enforces action consistency for the set NW TTL action.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
sw test tool: Revert changes of test files

This reverts commit d1b9e371dbfd130cf6685046de287bfd79d8a164.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
sw test tool: Modify lengths of pad fields for ARP

Wireshark may misunderstand a MAC frame (including ARP) whose length is 64 bytes or more, as a frame with the FCS field.
This patch fixes the issue by modifying lengths of pad fields for ARP.

This patch modifies lengths of pad fields as follows:

 - Add 18 bytes for MAC frames (including ARP, without VLAN/MPLS/PBB).
 - Add 18 bytes for MAC frames related to POP_MPLS/POP_PBB.

Reported-by: Arne Goetje <arne_goetje@accton.com>
Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Ryu 3.9

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
sw test tool: Add a link between switches

This change is for tests that use group_table.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
sw test tool: Add support for initialization of group tables

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
sw test tool: Add support for installation of group tables

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
sw test tool: Add support for confirmation of installed group entries

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
sw test tool: Enable parsing OFPGroupMod messages in 'prerequisite'

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
sw test tool: Enable sending packets using random values

The switch test tool is now enabled to send packets using random values as follows:

        "tests":[
            {
                "ingress":{
                    "packets":{
                        "data":[
                            "ethernet(dst=netaddr.EUI(randint(0, 2 ** 48 - 1)), ethertype=2048)",
                            "ipv4(proto=6, src=netaddr.IPAddress(randint(0, 2 ** 32 - 1)))",
                            "tcp(dst_port=http://goo.gl/2gWwFs)",
                            "str(\"\\x11\" * (1500 - 54))"
                        ],
                        "pktps":1000,
                        "duration_time":30
                    }
                },
                "egress":[
                    "ethernet(ethertype=2048)",
                    "ipv4(proto=6)",
                    "tcp()",
                    "str(\"\\x11\" * (1500 - 54))"
                ]
            }
        ]

When ingress.packets.data includes 'randint', the switch test tool will send each packet using random values.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
sw test tool: Optimize similar methods

 - _test_flow_install()
 - _test_meter_install()
 - _test_group_install()

are merged as

 - _test_msg_install()

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>