From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DBB27A0C53; Mon, 23 Aug 2021 21:02:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A1B924014D; Mon, 23 Aug 2021 21:02:14 +0200 (CEST) Received: from mail-ot1-f100.google.com (mail-ot1-f100.google.com [209.85.210.100]) by mails.dpdk.org (Postfix) with ESMTP id BA37C40142 for ; Mon, 23 Aug 2021 21:02:13 +0200 (CEST) Received: by mail-ot1-f100.google.com with SMTP id g66-20020a9d12c8000000b0051aeba607f1so30576457otg.11 for ; Mon, 23 Aug 2021 12:02:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=YZNEwDZx5tgXSw2I+vXZGNmmSCisKMGA90IAv96kTZs=; b=VrUAHX0GLQqBzB+D4Z6Sd4GbnFcWAHXBXoB8ZfPa21xYMKFxNHlKo9eDmR70CqaPjc WCg6HbMZpCERX8Eq0xRvw8GsRYIK+6PKsGhAgCvpYM2vsaHaaz3+GXbg8ZzyYomoJBua 6qB2NDgZFGUNsGxPdkNbkli+DJWRLKGqcx7W8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=YZNEwDZx5tgXSw2I+vXZGNmmSCisKMGA90IAv96kTZs=; b=NT7Pg/C0vX9ZxugOmYYqwAEyA1coZQcXYkkY27Hng1Y1c1SjTyC2BzqPKfvaEYqeHd ypCCI84Bw9i0MFyenn9j/kA6ql3dha1ZTvc+0c9eXWEIe+eYHGMX+gryFoXBzJCLtpxa hKyvMmcEtvCviLsEg58nxDmyaNt6swFhbyCyOGchMkb0EAIHplyGysmrRmgwB4Oa33NP 8J1RC2GNLFmtWHfGFD1uLzu9yfYIdlzFG1G5B0Iei2dLgIrKmUXcAezfnvD+hOTpvtCc jqec/dzVA+4iQz6m8V8dNOeFkVxs/Q+rZjf9JKYRrGY2cTwwLL8/0c3WTa92bWQmIbmi CZ5g== X-Gm-Message-State: AOAM530LgPZNs51oebpUFBab65rrJxLMUDvdTYKj9JdmimNSFRRNsREc avgi9TEehDIWYdjD2ngePnsmRpazq1FZQCtJ1LaYoxpJaFJov10WD4v0LbNbYqbb5XSrqeZIddU LR+7GzwJsUeQ63/ljH2bXCWC5svr62/0E5Ep//Kte2qKw0p3IFcCU0glQAbHEFHPwLwyWnQISlQ == X-Google-Smtp-Source: ABdhPJwiSktCQcyfRMwCnWSrhn9wkoQA3JO2afwS1dyM4YyEaghS1V7ealTqtbvvWvXOcrAOFy2wkk12EyKR X-Received: by 2002:aca:f203:: with SMTP id q3mr9987oih.143.1629745332773; Mon, 23 Aug 2021 12:02:12 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84]) by smtp-relay.gmail.com with ESMTPS id h24sm3707441oov.25.2021.08.23.12.02.12 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Aug 2021 12:02:12 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from iol.unh.edu (unknown [IPv6:2606:4100:3880:1220:7ad1:84b3:3126:7506]) by postal.iol.unh.edu (Postfix) with ESMTP id E9C19605248B; Mon, 23 Aug 2021 15:02:11 -0400 (EDT) From: ohilyard@iol.unh.edu To: dts@dpdk.org Cc: lijuan.tu@intel.com, Owen Hilyard Date: Mon, 23 Aug 2021 15:02:09 -0400 Message-Id: <20210823190209.62859-1-ohilyard@iol.unh.edu> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dts] [PATCH] framework/flow: Update rteflow for new scapy versions X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" From: Owen Hilyard Scapy changed some behavior which broke the test suite. This should fix that. Signed-off-by: Owen Hilyard --- framework/flow/flow.py | 3 +- framework/flow/flow_action_items.py | 670 +++++++++++++-------------- framework/flow/flow_pattern_items.py | 630 ++++++++++++------------- framework/flow/generator.py | 11 +- tests/TestSuite_rte_flow.py | 42 +- 5 files changed, 677 insertions(+), 679 deletions(-) diff --git a/framework/flow/flow.py b/framework/flow/flow.py index 2cce0796..24ed2d7d 100644 --- a/framework/flow/flow.py +++ b/framework/flow/flow.py @@ -39,6 +39,7 @@ from functools import reduce from typing import List, FrozenSet, Union, Iterable, Tuple from scapy.layers.l2 import Ether +from scapy.packet import Raw from flow.enums import FlowItemType, FlowActionType from flow.exceptions import InvalidFlowItemException @@ -47,7 +48,7 @@ from flow.flow_items import FlowItem from flow.flow_pattern_items import PatternFlowItem, TUNNELING_PROTOCOLS # Get reserved mac addresses -NEVER_MATCH_PACKET = Ether(src="", dst="") / ('\x00' * 64) +NEVER_MATCH_PACKET = Ether(src="", dst="") / Raw('\x00' * 64) def _iterable_deep_compare(i1, i2): diff --git a/framework/flow/flow_action_items.py b/framework/flow/flow_action_items.py index b08272f9..7130f846 100644 --- a/framework/flow/flow_action_items.py +++ b/framework/flow/flow_action_items.py @@ -107,11 +107,11 @@ class FlowActionVoid(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions void / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -119,11 +119,11 @@ class FlowActionPassthru(ActionFlowItem): type = FlowActionType.PASSTHRU test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions passthru / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -131,11 +131,11 @@ class FlowActionFlag(ActionFlowItem): type = FlowActionType.FLAG test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions flag / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -143,11 +143,11 @@ class FlowActionDrop(ActionFlowItem): type = FlowActionType.DROP test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions drop / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -156,17 +156,17 @@ class FlowActionCount(ActionFlowItem): test_case = { 'test_shared': ('ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions count shared 0 id 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), 'test_id': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions count id 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -176,15 +176,15 @@ class FlowActionMac_swap(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions mac_swap / end', frozenset({"Ether(src=\"90:61:ae:fd:41:43\", dst = \"ab:cd:ef:12:34:56\") " - "/ IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), + "/ IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), frozenset({"Ether(src=\"90:61:ae:fd:41:43\", dst = \"ab:cd:ef:12:34:56\") " - "/ IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", + "/ IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", "Ether(src=\"90:61:ae:fd:41:43\", dst = \"ab:cd:ef:12:34:56\") " - "/ IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", + "/ IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", "Ether(src=\"90:61:ae:fd:41:43\", dst = \"ab:cd:ef:12:34:56\") " - "/ IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", + "/ IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", "Ether(src=\"90:61:ae:fd:41:43\", dst = \"ab:cd:ef:12:34:56\") " - "/ IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + "/ IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -193,11 +193,11 @@ class FlowActionDec_ttl(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions dec_ttl / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\", ttl = 128) / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\", ttl = 128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\", ttl = 128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\", ttl = 128 ) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\", ttl = 128) / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\", ttl = 128) / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\", ttl = 128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\", ttl = 128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\", ttl = 128 ) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\", ttl = 128) / UDP() / Raw('\\x00' * 64)"})), } @@ -206,11 +206,11 @@ class FlowActionJump(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions jump group 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -219,11 +219,11 @@ class FlowActionMark(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions mark id 0xABCDEF / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -231,11 +231,11 @@ class FlowActionQueue(ActionFlowItem): type = FlowActionType.QUEUE test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions queue index 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -246,11 +246,11 @@ class FlowActionRss(ActionFlowItem): ''' test_case = { 'case1': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } ''' @@ -259,11 +259,11 @@ class FlowActionPf(ActionFlowItem): type = FlowActionType.PF test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions pf / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -272,17 +272,17 @@ class FlowActionVf(ActionFlowItem): test_case = { 'test_original': ('ingress pattern eth / ipv4 src is 192.168.0.1 /' ' udp / end actions vf original 1/ end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), 'test_id': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions vf id 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -293,19 +293,19 @@ class FlowActionPhy_port(ActionFlowItem): # original port index 'test_original': ('ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions phy_port original / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), # physical port index 'test_index': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions phy_port index 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -316,19 +316,19 @@ class FlowActionPort_id(ActionFlowItem): # original DPDK port ID 'test_original': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions port_id original / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), # DPDK port ID 'test_id': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions port_id id 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -336,11 +336,11 @@ class FlowActionMeter(ActionFlowItem): type = FlowActionType.METER test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions meter mtr_id 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -349,11 +349,11 @@ class FlowActionSecurity(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions security security_session 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -364,12 +364,12 @@ class FlowActionOf_set_mpls_ttl(ActionFlowItem): 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions of_set_mpls_ttl mpls_ttl 64 / end', frozenset({"Ether() / IP(src=\"192.168.0.1\") / MPLS(label = 0xab, ttl=128)" - " / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)", + " / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)", "Ether() / IP(src=\"132.177.0.99\") / MPLS(label = 0xab, ttl=128)" - " / UDP() / ('\\x00' * 64)"})), + " / UDP() / Raw('\\x00' * 64)"})), } @@ -379,11 +379,11 @@ class FlowActionOf_dec_mpls_ttl(ActionFlowItem): test_case = { 'test': ( 'ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions of_dec_mpls_ttl / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)"})), } @@ -393,11 +393,11 @@ class FlowActionOf_set_nw_ttl(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions of_set_nw_ttl nw_ttl 64 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\", ttl=128) / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\", ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\", ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\", ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\", ttl=128) / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\", ttl=128) / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\", ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\", ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\", ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\", ttl=128) / UDP() / Raw('\\x00' * 64)"})), } @@ -406,11 +406,11 @@ class FlowActionOf_dec_nw_ttl(ActionFlowItem): test_case = { 'test': ( 'ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions of_dec_nw_ttl / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\", ttl=128) / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\", ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\", ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\", ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\", ttl=128) / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\", ttl=128) / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\", ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\", ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\", ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\", ttl=128) / UDP() / Raw('\\x00' * 64)"})), } @@ -420,11 +420,11 @@ class FlowActionOf_copy_ttl_out(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions of_copy_ttl_out / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -434,11 +434,11 @@ class FlowActionOf_copy_ttl_in(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions of_copy_ttl_out / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -448,15 +448,15 @@ class FlowActionOf_pop_vlan(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions of_pop_vlan / end', frozenset({"Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"192.168.0.1\") " - "/ UDP() / ('\\x00' * 64)"}), + "/ UDP() / Raw('\\x00' * 64)"}), frozenset({"Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"192.168.0.2\") " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"10.0.30.99\") " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"8.8.8.8\") " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"132.177.0.99\")" - " / UDP() / ('\\x00' * 64)"})), + " / UDP() / Raw('\\x00' * 64)"})), } @@ -466,15 +466,15 @@ class FlowActionOf_push_vlan(ActionFlowItem): 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions of_push_vlan ethertype 0x8100 / end', frozenset({"Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"192.168.0.1\") " - "/ UDP() / ('\\x00' * 64)"}), + "/ UDP() / Raw('\\x00' * 64)"}), frozenset({"Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"192.168.0.2\") " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"10.0.30.99\") " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"8.8.8.8\") " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"132.177.0.99\")" - " / UDP() / ('\\x00' * 64)"})), + " / UDP() / Raw('\\x00' * 64)"})), } @@ -486,16 +486,16 @@ class FlowActionOf_set_vlan_vid(ActionFlowItem): '/ udp / end actions of_set_vlan_vid vlan_vid 0xbbb / end', frozenset({ "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"192.168.0.1\")" - " / UDP() / ('\\x00' * 64)"}), + " / UDP() / Raw('\\x00' * 64)"}), frozenset({ "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"192.168.0.2\") " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"10.0.30.99\") " - "/ UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"8.8.8.8\") " - "/ UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"132.177.0.99\") " - "/ UDP() / ('\\x00' * 64)"})), + "/ UDP() / Raw('\\x00' * 64)"})), } @@ -506,16 +506,16 @@ class FlowActionOf_set_vlan_pcp(ActionFlowItem): ' / udp / end actions of_set_vlan_vid vlan_pcp 0x7 / end', frozenset({ "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"192.168.0.1\") " - "/ UDP() / ('\\x00' * 64)"}), + "/ UDP() / Raw('\\x00' * 64)"}), frozenset({ "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"192.168.0.2\") " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"10.0.30.99\") " - "/ UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"8.8.8.8\") " - "/ UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / IP(src=\"132.177.0.99\") " - "/ UDP() / ('\\x00' * 64)"})), + "/ UDP() / Raw('\\x00' * 64)"})), } @@ -525,11 +525,11 @@ class FlowActionOf_pop_mpls(ActionFlowItem): 'test': ( 'ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions of_pop_mpls ethertype 0x0806 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)"})), } @@ -540,11 +540,11 @@ class FlowActionOf_push_mpls(ActionFlowItem): 'test': ( 'ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions of_push_mpls ethertype 0x0806 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / MPLS(label = 0xab, ttl=128) / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / MPLS(label = 0xab, ttl=128) / UDP() / Raw('\\x00' * 64)"})), } @@ -555,11 +555,11 @@ class FlowActionVxlan_encap(ActionFlowItem): # VXLAN encap definition is the VNI? 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions vxlan_encap definition 0x112233 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -568,11 +568,11 @@ class FlowActionVxlan_decap(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions vxlan_decap / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / VXLAN() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / VXLAN() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / VXLAN() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / VXLAN() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / VXLAN() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / VXLAN() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / VXLAN() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / VXLAN() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / VXLAN() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / VXLAN() / Raw('\\x00' * 64)"})), } @@ -583,11 +583,11 @@ class FlowActionNvgre_encap(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions nvgre_encap definition 0x112233 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / NVGRE() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / NVGRE() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / NVGRE() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / NVGRE() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / NVGRE() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / NVGRE() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / NVGRE() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / NVGRE() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / NVGRE() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / NVGRE() / Raw('\\x00' * 64)"})), } ''' @@ -598,11 +598,11 @@ class FlowActionNvgre_decap(ActionFlowItem): ''' test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions nvgre_decap / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / NVGRE() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / NVGRE() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / NVGRE() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / NVGRE() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / NVGRE() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / NVGRE() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / NVGRE() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / NVGRE() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / NVGRE() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / NVGRE() / Raw('\\x00' * 64)"})), } ''' @@ -618,27 +618,27 @@ class FlowActionRaw_encap(ActionFlowItem): test_case = { 'test_data': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions raw_encap data 0x8100aaaa / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), 'test_preserve': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions raw_encap data 0x8100aaaa preserve 0xffffffff / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), # Is "size" in bits or bytes? Unclear in documentation, defaulting to bits. 'test_size': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions raw_encap data 0x8100aaaa size 32 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -648,30 +648,30 @@ class FlowActionRaw_decap(ActionFlowItem): 'test_data': ( 'ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions raw_decap data 0x8100aaaa / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), frozenset({"Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xbbb) / IP(src=\"192.168.0.2\")" - " / UDP() / ('\\x00' * 64)", + " / UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xbbb) / IP(src=\"10.0.30.99\") " - "/ UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xbbb) / IP(src=\"8.8.8.8\")" - " / UDP() / ('\x00' * 64)", + " / UDP() / Raw('\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xbbb) / IP(src=\"132.177.0.99\") " - "/ UDP() / ('\\x00' * 64)"})), + "/ UDP() / Raw('\\x00' * 64)"})), # Is "size" in bits or bytes? Unclear in documentation, defaulting to bits. 'test_size': ( 'ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions raw_decap data 0x8100aaaa size 32 / end', frozenset({"Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xbbb) / IP(src=\"192.168.0.1\") " - "/ UDP() / ('\\x00' * 64)"}), + "/ UDP() / Raw('\\x00' * 64)"}), frozenset({"Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xbbb) / IP(src=\"192.168.0.2\") " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xbbb) / IP(src=\"10.0.30.99\")" - " / UDP() / ('\x00' * 64)", + " / UDP() / Raw('\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xbbb) / IP(src=\"8.8.8.8\") " - "/ UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\x00' * 64)", "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xbbb) / IP(src=\"132.177.0.99\") " - "/ UDP() / ('\\x00' * 64)"})), + "/ UDP() / Raw('\\x00' * 64)"})), } @@ -681,11 +681,11 @@ class FlowActionSet_ipv4_src(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions set_ipv4_src ipv4_addr 172.16.0.10 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -695,11 +695,11 @@ class FlowActionSet_ipv4_dst(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 dst is 192.168.0.1' ' / udp / end actions set_ipv4_dst ipv4_addr 172.16.0.10 / end', - frozenset({"Ether() / IP(dst=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(dst=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(dst=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(dst=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(dst=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(dst=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(dst=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(dst=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(dst=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(dst=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -710,12 +710,12 @@ class FlowActionSet_ipv6_src(ActionFlowItem): 'test': ('ingress pattern eth / ipv6 src is 2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2 ' '/ udp / end actions set_ipv6_src ipv6_addr 2001:0000:9d38:6ab8:1c48:9999:aaaa:bbbb', frozenset({"Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2\") " - "/ UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c3\") / UDP() / ('\\x00' * 64)", - "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c4\") / UDP() / ('\x00' * 64)", - "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c5\") / UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c3\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c4\") / UDP() / Raw('\x00' * 64)", + "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c5\") / UDP() / Raw('\x00' * 64)", "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c6\") " - "/ UDP() / ('\\x00' * 64)"})), + "/ UDP() / Raw('\\x00' * 64)"})), } @@ -726,12 +726,12 @@ class FlowActionSet_ipv6_dst(ActionFlowItem): 'test': ('ingress pattern eth / ipv6 dst is 2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2 ' '/ udp / end actions set_ipv6_dst ipv6_addr 2001:0000:9d38:6ab8:1c48:9999:aaaa:bbbb', frozenset({"Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2\")" - " / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c3\") / UDP() / ('\\x00' * 64)", - "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c4\") / UDP() / ('\x00' * 64)", - "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c5\") / UDP() / ('\x00' * 64)", + " / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c3\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c4\") / UDP() / Raw('\x00' * 64)", + "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c5\") / UDP() / Raw('\x00' * 64)", "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c6\") " - "/ UDP() / ('\\x00' * 64)"})), + "/ UDP() / Raw('\\x00' * 64)"})), } @@ -742,20 +742,20 @@ class FlowActionSet_tp_src(ActionFlowItem): # UDP 'test_udp': ('ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions set_tp_src port 1998 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") UDP(sport=3838) / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") UDP(sport=3838) / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") UDP(sport=3838) / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") UDP(sport=3838) / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") UDP(sport=3838) / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") UDP(sport=3838) / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") UDP(sport=3838) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") UDP(sport=3838) / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") UDP(sport=3838) / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") UDP(sport=3838) / Raw('\\x00' * 64)"})), # TCP 'test_tcp': ( 'ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions set_tp_src port 1998 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") TCP(sport=3838) / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") TCP(sport=3838) / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") TCP(sport=3838) / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") TCP(sport=3838) / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") TCP(sport=3838) / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") TCP(sport=3838) / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") TCP(sport=3838) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") TCP(sport=3838) / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") TCP(sport=3838) / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") TCP(sport=3838) / Raw('\\x00' * 64)"})), } @@ -766,20 +766,20 @@ class FlowActionSet_tp_dst(ActionFlowItem): # UDP 'test_udp': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions set_tp_dst port 1998 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") UDP(dport=3838) / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") UDP(dport=3838) / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") UDP(dport=3838) / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") UDP(dport=3838) / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") UDP(dport=3838) / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") UDP(dport=3838) / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") UDP(dport=3838) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") UDP(dport=3838) / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") UDP(dport=3838) / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") UDP(dport=3838) / Raw('\\x00' * 64)"})), # TCP 'test_tcp': ( 'ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions set_tp_dst port 1998 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") TCP(dport=3838) / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") TCP(dport=3838) / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") TCP(dport=3838) / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") TCP(dport=3838) / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") TCP(dport=3838) / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") TCP(dport=3838) / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") TCP(dport=3838) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") TCP(dport=3838) / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") TCP(dport=3838) / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") TCP(dport=3838) / Raw('\\x00' * 64)"})), } @@ -790,11 +790,11 @@ class FlowActionSet_ttl(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions set_ttl ttl_value 64 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\" , ttl=128 ) / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\" , ttl=128 ) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\" , ttl=128 ) / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\", ttl=128 ) / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\", ttl=128 ) / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\" , ttl=128 ) / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\" , ttl=128 ) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\" , ttl=128 ) / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\", ttl=128 ) / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\", ttl=128 ) / UDP() / Raw('\\x00' * 64)"})), } @@ -804,11 +804,11 @@ class FlowActionSet_mac_src(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions set_mac_src mac_addr 10:20:30:40:50:60 / end', - frozenset({"Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether(src=\"90:61:ae:fd:41:43\") / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -818,12 +818,12 @@ class FlowActionSet_mac_dst(ActionFlowItem): 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1' ' / udp / end actions set_mac_dst mac_addr 10:20:30:40:50:60 / end', frozenset({"Ether(dst=\"90:61:ae:fd:41:43\") / IP(src=\"192.168.0.1\") " - "/ UDP() / ('\\x00' * 64)"}), - frozenset({"Ether(dst=\"90:61:ae:fd:41:43\") / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether(dst=\"90:61:ae:fd:41:43\") / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether(dst=\"90:61:ae:fd:41:43\") / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether(dst=\"90:61:ae:fd:41:43\") / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether(dst=\"90:61:ae:fd:41:43\") / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether(dst=\"90:61:ae:fd:41:43\") / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", "Ether(dst=\"90:61:ae:fd:41:43\") / IP(src=\"132.177.0.99\") " - "/ UDP() / ('\\x00' * 64)"})), + "/ UDP() / Raw('\\x00' * 64)"})), } @@ -832,11 +832,11 @@ class FlowActionInc_tcp_seq(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions inc_tcp_seq / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / TCP(seq=2) / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / TCP(seq=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / TCP(seq=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / TCP(seq=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / TCP(seq=2) / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / TCP(seq=2) / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / TCP(seq=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / TCP(seq=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / TCP(seq=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / TCP(seq=2) / Raw('\\x00' * 64)"})), } @@ -845,11 +845,11 @@ class FlowActionDec_tcp_seq(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions dec_tcp_seq / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / TCP(seq=2) / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / TCP(seq=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / TCP(seq=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / TCP(seq=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / TCP(seq=2) / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / TCP(seq=2) / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / TCP(seq=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / TCP(seq=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / TCP(seq=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / TCP(seq=2) / Raw('\\x00' * 64)"})), } @@ -858,11 +858,11 @@ class FlowActionInc_tcp_ack(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions inc_tcp_ack / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / TCP(ack=2) / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / TCP(ack=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / TCP(ack=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / TCP(ack=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / TCP(ack=2) / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / TCP(ack=2) / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / TCP(ack=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / TCP(ack=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / TCP(ack=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / TCP(ack=2) / Raw('\\x00' * 64)"})), } @@ -871,11 +871,11 @@ class FlowActionDec_tcp_ack(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions dec_tcp_ack / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / TCP(ack=2) / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / TCP(ack=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / TCP(ack=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / TCP(ack=2) / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / TCP(ack=2) / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / TCP(ack=2) / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / TCP(ack=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / TCP(ack=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / TCP(ack=2) / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / TCP(ack=2) / Raw('\\x00' * 64)"})), } @@ -885,26 +885,26 @@ class FlowActionSet_tag(ActionFlowItem): test_case = { 'test_data': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions set_tag data 0xabc / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), # bit-mask applies to "data" 'test_mask': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions set_tag data 0xabc mask 0xcba / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), 'test_index': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions set_tag data 0xabc index 1 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -914,19 +914,19 @@ class FlowActionSet_meta(ActionFlowItem): test_case = { 'test_data': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions set_meta data 0xabc / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), # bit-mask applies to "data" 'test_mask': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions set_meta data 0xabc mask 0xcb / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } @@ -936,11 +936,11 @@ class FlowActionSet_ipv4_dscp(ActionFlowItem): test_case = { 'test': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions set_ipv4_dscp dscp 2 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\", tos = 0) / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\", tos = 0) / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\", tos = 0) / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\", tos = 0) / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\", tos = 0) / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\", tos = 0) / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\", tos = 0) / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\", tos = 0) / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\", tos = 0) / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\", tos = 0) / UDP() / Raw('\\x00' * 64)"})), } @@ -951,15 +951,15 @@ class FlowActionSet_ipv6_dscp(ActionFlowItem): 'test': ('ingress pattern eth / ipv6 src is 2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2 ' '/ udp / end actions set_ipv6_dscp dscp 0x30', frozenset({"Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2\", tc = 0) " - "/ UDP() / ('\\x00' * 64)"}), + "/ UDP() / Raw('\\x00' * 64)"}), frozenset({"Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c3\", tc = 0) " - "/ UDP() / ('\\x00' * 64)", + "/ UDP() / Raw('\\x00' * 64)", "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c4\", tc = 0) " - "/ UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\x00' * 64)", "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c5\", tc = 0) " - "/ UDP() / ('\x00' * 64)", + "/ UDP() / Raw('\x00' * 64)", "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c6\", tc = 0) " - "/ UDP() / ('\\x00' * 64)"})), + "/ UDP() / Raw('\\x00' * 64)"})), } @@ -969,27 +969,27 @@ class FlowActionAge(ActionFlowItem): test_case = { 'test_timeout': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions age timeout 128 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), # 8 bits reserved, must be zero 'test_reserved': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions age timeout 128 reserved 0 / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), # The user flow context, NULL means the rte_flow pointer. 'test_context': ('ingress pattern eth / ipv4 src is 192.168.0.1 ' '/ udp / end actions age timeout 128 context NULL / end', - frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / ('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"10.0.30.99\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"8.8.8.8\") / UDP() / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.0.99\") / UDP() / ('\\x00' * 64)"})), + frozenset({"Ether() / IP(src=\"192.168.0.1\") / UDP() / Raw('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.2\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"10.0.30.99\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"8.8.8.8\") / UDP() / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.0.99\") / UDP() / Raw('\\x00' * 64)"})), } diff --git a/framework/flow/flow_pattern_items.py b/framework/flow/flow_pattern_items.py index bb143067..965d8cd2 100644 --- a/framework/flow/flow_pattern_items.py +++ b/framework/flow/flow_pattern_items.py @@ -138,90 +138,90 @@ class FlowItemArp_eth_ipv4(PatternFlowItem): possible_properties = { 'hdr': ('arp_eth_ipv4 hdr is 1', - frozenset({"Ether() / ARP(hwtype=1) / ('\\x00' * 64)"}), + frozenset({"Ether() / ARP(hwtype=1) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ARP(hwtype=2) / ('\\x00' * 64)", - "Ether() / ARP(hwtype=3) / ('\\x00' * 64)", - "Ether() / ARP(hwtype=6) / ('\\x00' * 64)", - "Ether() / ARP(hwtype-15) / ('\\x00' * 64)" + frozenset({"Ether() / ARP(hwtype=2) / Raw('\\x00' * 64)", + "Ether() / ARP(hwtype=3) / Raw('\\x00' * 64)", + "Ether() / ARP(hwtype=6) / Raw('\\x00' * 64)", + "Ether() / ARP(hwtype-15) / Raw('\\x00' * 64)" })), 'pro': ('arp_eth_ipv4 pro is 0x0800', - frozenset({"Ether() / ARP(ptype=0x0800) / ('\\x00' * 64)"}), + frozenset({"Ether() / ARP(ptype=0x0800) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ARP(ptype=0x0800) / ('\\x00' * 64)", - "Ether() / ARP(ptype=0x0842) / ('\\x00' * 64)", - "Ether() / ARP(ptype=0x6004) / ('\\x00' * 64)", - "Ether() / ARP(ptype=0x809b) / ('\\x00' * 64)" + frozenset({"Ether() / ARP(ptype=0x0800) / Raw('\\x00' * 64)", + "Ether() / ARP(ptype=0x0842) / Raw('\\x00' * 64)", + "Ether() / ARP(ptype=0x6004) / Raw('\\x00' * 64)", + "Ether() / ARP(ptype=0x809b) / Raw('\\x00' * 64)" })), 'hln': ('arp_eth_ipv4 hln is 6', - frozenset({"Ether() / ARP(hwlen=6) / ('\\x00' * 64)"}), + frozenset({"Ether() / ARP(hwlen=6) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ARP(hwlen=12) / ('\\x00' * 64)", - "Ether() / ARP(hwlen=2) / ('\\x00' * 64)", - "Ether() / ARP(hwlen=8) / ('\\x00' * 64)", - "Ether() / ARP(hwlen=4) / ('\\x00' * 64)" + frozenset({"Ether() / ARP(hwlen=12) / Raw('\\x00' * 64)", + "Ether() / ARP(hwlen=2) / Raw('\\x00' * 64)", + "Ether() / ARP(hwlen=8) / Raw('\\x00' * 64)", + "Ether() / ARP(hwlen=4) / Raw('\\x00' * 64)" })), 'pln': ('arp_eth_ipv4 pln is 4', - frozenset({"Ether() / ARP(plen=4) / ('\\x00' * 64)"}), + frozenset({"Ether() / ARP(plen=4) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ARP(plen=6) / ('\\x00' * 64)", - "Ether() / ARP(plen=2) / ('\\x00' * 64)", - "Ether() / ARP(plen=8) / ('\\x00' * 64)", - "Ether() / ARP(plen=12) / ('\\x00' * 64)" + frozenset({"Ether() / ARP(plen=6) / Raw('\\x00' * 64)", + "Ether() / ARP(plen=2) / Raw('\\x00' * 64)", + "Ether() / ARP(plen=8) / Raw('\\x00' * 64)", + "Ether() / ARP(plen=12) / Raw('\\x00' * 64)" })), 'op': ('arp_eth_ipv4 op is 1', - frozenset({"Ether() / ARP(op=1) / ('\\x00' * 64)"}), + frozenset({"Ether() / ARP(op=1) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ARP(op=2) / ('\\x00' * 64)", - "Ether() / ARP(op=3) / ('\\x00' * 64)", - "Ether() / ARP(op=4) / ('\\x00' * 64)", - "Ether() / ARP(op=5) / ('\\x00' * 64)" + frozenset({"Ether() / ARP(op=2) / Raw('\\x00' * 64)", + "Ether() / ARP(op=3) / Raw('\\x00' * 64)", + "Ether() / ARP(op=4) / Raw('\\x00' * 64)", + "Ether() / ARP(op=5) / Raw('\\x00' * 64)" })), 'sha': ('arp_eth_ipv4 sha is 90:61:ae:fd:41:43', - frozenset({"Ether() / ARP(hwsrc=\"90:61:ae:fd:41:43\") / ('\\x00' * 64)"}), + frozenset({"Ether() / ARP(hwsrc=\"90:61:ae:fd:41:43\") / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ARP(hwsrc=\"90:61:ae:fd:41:44\") / ('\\x00' * 64)", - "Ether() / ARP(hwsrc=\"90:61:ae:fd:41:45\") / ('\\x00' * 64)", - "Ether() / ARP(hwsrc=\"90:61:ae:fd:41:46\") / ('\\x00' * 64)", - "Ether() / ARP(hwsrc=\"90:61:ae:fd:41:47\") / ('\\x00' * 64)" + frozenset({"Ether() / ARP(hwsrc=\"90:61:ae:fd:41:44\") / Raw('\\x00' * 64)", + "Ether() / ARP(hwsrc=\"90:61:ae:fd:41:45\") / Raw('\\x00' * 64)", + "Ether() / ARP(hwsrc=\"90:61:ae:fd:41:46\") / Raw('\\x00' * 64)", + "Ether() / ARP(hwsrc=\"90:61:ae:fd:41:47\") / Raw('\\x00' * 64)" })), 'spa': ('arp_eth_ipv4 spa is 192.168.0.80', - frozenset({"Ether() / ARP(psrc=\"192.168.0.80\") / ('\\x00' * 64)"}), + frozenset({"Ether() / ARP(psrc=\"192.168.0.80\") / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ARP(psrc=\"10.0.30.10\") / ('\\x00' * 64)", - "Ether() / ARP(psrc=\"8.8.8.8\") / ('\\x00' * 64)", - "Ether() / ARP(psrc=\"132.177.0.5\") / ('\\x00' * 64)", - "Ether() / ARP(psrc=\"123.4.5.6\") / ('\\x00' * 64)" + frozenset({"Ether() / ARP(psrc=\"10.0.30.10\") / Raw('\\x00' * 64)", + "Ether() / ARP(psrc=\"8.8.8.8\") / Raw('\\x00' * 64)", + "Ether() / ARP(psrc=\"132.177.0.5\") / Raw('\\x00' * 64)", + "Ether() / ARP(psrc=\"123.4.5.6\") / Raw('\\x00' * 64)" })), 'tha': ('arp_eth_ipv4 tha is 00:00:00:00:00:00', - frozenset({"Ether() / ARP(hwdst=00:00:00:00:00:00) / ('\\x00' * 64)"}), + frozenset({"Ether() / ARP(hwdst=00:00:00:00:00:00) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ARP(hwdst=90:61:ae:fd:41:45) / ('\\x00' * 64)", - "Ether() / ARP(hwdst=90:61:ae:fd:41:46) / ('\\x00' * 64)", - "Ether() / ARP(hwdst=90:61:ae:fd:41:47) / ('\\x00' * 64)", - "Ether() / ARP(hwdst=90:61:ae:fd:41:48) / ('\\x00' * 64)" + frozenset({"Ether() / ARP(hwdst=90:61:ae:fd:41:45) / Raw('\\x00' * 64)", + "Ether() / ARP(hwdst=90:61:ae:fd:41:46) / Raw('\\x00' * 64)", + "Ether() / ARP(hwdst=90:61:ae:fd:41:47) / Raw('\\x00' * 64)", + "Ether() / ARP(hwdst=90:61:ae:fd:41:48) / Raw('\\x00' * 64)" })), 'tpa': ('arp_eth_ipv4 tpa is 192.168.0.1', - frozenset({"Ether() / ARP(pdst=192.168.0.1) / ('\\x00' * 64)"}), + frozenset({"Ether() / ARP(pdst=192.168.0.1) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ARP(pdst=10.0.30.10) / ('\\x00' * 64)", - "Ether() / ARP(pdst=8.8.8.8) / ('\\x00' * 64)", - "Ether() / ARP(pdst=132.177.0.5) / ('\\x00' * 64)", - "Ether() / ARP(pdst=123.4.5.6) / ('\\x00' * 64)" + frozenset({"Ether() / ARP(pdst=10.0.30.10) / Raw('\\x00' * 64)", + "Ether() / ARP(pdst=8.8.8.8) / Raw('\\x00' * 64)", + "Ether() / ARP(pdst=132.177.0.5) / Raw('\\x00' * 64)", + "Ether() / ARP(pdst=123.4.5.6) / Raw('\\x00' * 64)" })), } @@ -242,31 +242,31 @@ class FlowItemEth(PatternFlowItem): possible_properties = { 'dst': ('eth dst is 90:61:ae:fd:41:43', - frozenset({"Ether(dst=\"90:61:ae:fd:41:43\") / ('\\x00' * 64)"}), + frozenset({"Ether(dst=\"90:61:ae:fd:41:43\") / Raw('\\x00' * 64)"}), - frozenset({"Ether(dst=\"90:61:ae:fd:41:44\") / ('\\x00' * 64)", - "Ether(dst=\"90:61:ae:fd:41:45\") / ('\\x00' * 64)", - "Ether(dst=\"90:61:ae:fd:41:46\") / ('\\x00' * 64)", - "Ether(dst=\"91:61:ae:fd:41:43\") / ('\\x00' * 64)" + frozenset({"Ether(dst=\"90:61:ae:fd:41:44\") / Raw('\\x00' * 64)", + "Ether(dst=\"90:61:ae:fd:41:45\") / Raw('\\x00' * 64)", + "Ether(dst=\"90:61:ae:fd:41:46\") / Raw('\\x00' * 64)", + "Ether(dst=\"91:61:ae:fd:41:43\") / Raw('\\x00' * 64)" })), 'src': ('eth src is 90:61:ae:fd:41:43', - frozenset({"Ether(src=\"90:61:ae:fd:41:43\") / ('\\x00' * 64)"}), + frozenset({"Ether(src=\"90:61:ae:fd:41:43\") / Raw('\\x00' * 64)"}), - frozenset({"Ether(src=\"90:61:ae:fd:41:44\") / ('\\x00' * 64)", - "Ether(src=\"90:61:ae:fd:41:45\") / ('\\x00' * 64)", - "Ether(src=\"90:61:ae:fd:41:46\") / ('\\x00' * 64)", - "Ether(src=\"91:61:ae:fd:41:43\") / ('\\x00' * 64)" + frozenset({"Ether(src=\"90:61:ae:fd:41:44\") / Raw('\\x00' * 64)", + "Ether(src=\"90:61:ae:fd:41:45\") / Raw('\\x00' * 64)", + "Ether(src=\"90:61:ae:fd:41:46\") / Raw('\\x00' * 64)", + "Ether(src=\"91:61:ae:fd:41:43\") / Raw('\\x00' * 64)" })), 'type': ('eth type is 0x0800', # IPv4 EtherType - frozenset({"Ether(type=0x0800) / ('\\x00' * 64)"}), + frozenset({"Ether(type=0x0800) / Raw('\\x00' * 64)"}), - frozenset({"Ether(type=0x0842) / ('\\x00' * 64)", - "Ether(type=0x8100) / ('\\x00' * 64)", # Possibly a special case? TPID/VLAN - "Ether(type=0x9100) / ('\\x00' * 64)", # Possibly special, VLAN double tagging - "Ether(type=0x8863) / ('\\x00' * 64)", - "Ether(type=0x9000) / ('\\x00' * 64)" + frozenset({"Ether(type=0x0842) / Raw('\\x00' * 64)", + "Ether(type=0x8100) / Raw('\\x00' * 64)", # Possibly a special case? TPID/VLAN + "Ether(type=0x9100) / Raw('\\x00' * 64)", # Possibly special, VLAN double tagging + "Ether(type=0x8863) / Raw('\\x00' * 64)", + "Ether(type=0x9000) / Raw('\\x00' * 64)" })), } @@ -283,18 +283,18 @@ class FlowItemGre(PatternFlowItem): possible_properties = { 'c_rsvd0_ver': ('gre c_rsvd0_ver is 0', - frozenset({"Ether() / GRE(chksum_present=0, version=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / GRE(chksum_present=0, version=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / GRE(chksum_present=1, version=0)) / ('\\x00' * 64)", #this is the only other option + frozenset({"Ether() / GRE(chksum_present=1, version=0)) / Raw('\\x00' * 64)", #this is the only other option })), 'protocol': ('gre protocol is 0x0800', - frozenset({"Ether() / GRE(proto=0x0800) / ('\\x00' * 64)"}), + frozenset({"Ether() / GRE(proto=0x0800) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / GRE(proto=0x0842) / ('\\x00' * 64)", - "Ether() / GRE(proto=0x8100) / ('\\x00' * 64)", - "Ether() / GRE(proto=0x0806) / ('\\x00' * 64)", - "Ether() / GRE(proto=0x809B) / ('\\x00' * 64)" + frozenset({"Ether() / GRE(proto=0x0842) / Raw('\\x00' * 64)", + "Ether() / GRE(proto=0x8100) / Raw('\\x00' * 64)", + "Ether() / GRE(proto=0x0806) / Raw('\\x00' * 64)", + "Ether() / GRE(proto=0x809B) / Raw('\\x00' * 64)" })) } @@ -318,49 +318,49 @@ class FlowItemIcmp(PatternFlowItem): 'icmp_type': ('icmp type is 3', - frozenset({"Ether() / ICMP(type=3) / ('\\x00' * 64)"}), + frozenset({"Ether() / ICMP(type=3) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ICMP(type=3) / ('\\x00' * 64)", - "Ether() / ICMP(type=11) / ('\\x00' * 64)", - "Ether() / ICMP(type=13) / ('\\x00' * 64)", - "Ether() / ICMP(type=0) / ('\\x00' * 64)" + frozenset({"Ether() / ICMP(type=3) / Raw('\\x00' * 64)", + "Ether() / ICMP(type=11) / Raw('\\x00' * 64)", + "Ether() / ICMP(type=13) / Raw('\\x00' * 64)", + "Ether() / ICMP(type=0) / Raw('\\x00' * 64)" })), 'icmp_code': ('icmp type is 3 code is 3', # Assume type 3 code 3; code meanings/options are dependent on type. - frozenset({"Ether() / ICMP(type=3, code=3) / ('\\x00' * 64)"}), + frozenset({"Ether() / ICMP(type=3, code=3) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ICMP(type=3, code=0) / ('\\x00' * 64)", - "Ether() / ICMP(type=3, code=2) / ('\\x00' * 64)", - "Ether() / ICMP(type=11, code=1) / ('\\x00' * 64)", - "Ether() / ICMP(type=12, code=2) / ('\\x00' * 64)" + frozenset({"Ether() / ICMP(type=3, code=0) / Raw('\\x00' * 64)", + "Ether() / ICMP(type=3, code=2) / Raw('\\x00' * 64)", + "Ether() / ICMP(type=11, code=1) / Raw('\\x00' * 64)", + "Ether() / ICMP(type=12, code=2) / Raw('\\x00' * 64)" })), 'icmp_cksum': ('icmp cksum is 0x0800', - frozenset({"Ether() / ICMP() / UDP() / ('\x00' * 64)"}), + frozenset({"Ether() / ICMP() / UDP() / Raw('\x00' * 64)"}), - frozenset({"Ether() / ICMP() / UDP() / ('\x00' * 64)", - "Ether() / ICMP() / UDP() / ('\x00' * 64)", - "Ether() / ICMP() / UDP() / ('\x00' * 64)", - "Ether() / ICMP() / UDP() / ('\x00' * 64)" + frozenset({"Ether() / ICMP() / UDP() / Raw('\x00' * 64)", + "Ether() / ICMP() / UDP() / Raw('\x00' * 64)", + "Ether() / ICMP() / UDP() / Raw('\x00' * 64)", + "Ether() / ICMP() / UDP() / Raw('\x00' * 64)" })), 'icmp_ident': ('icmp ident is 0x0800', - frozenset({"Ether() / ICMP() / UDP() / ('\x00' * 64)"}), + frozenset({"Ether() / ICMP() / UDP() / Raw('\x00' * 64)"}), - frozenset({"Ether() / ICMP() / UDP() / ('\x00' * 64)", - "Ether() / ICMP() / UDP() / ('\x00' * 64)", - "Ether() / ICMP() / UDP() / ('\x00' * 64)", - "Ether() / ICMP() / UDP() / ('\x00' * 64)" + frozenset({"Ether() / ICMP() / UDP() / Raw('\x00' * 64)", + "Ether() / ICMP() / UDP() / Raw('\x00' * 64)", + "Ether() / ICMP() / UDP() / Raw('\x00' * 64)", + "Ether() / ICMP() / UDP() / Raw('\x00' * 64)" })), 'icmp_seq_nb': ('icmp seq_nb is 0x0800', - frozenset({"Ether() / ICMP(proto=0x0800) / UDP() / ('\x00' * 64)"}), + frozenset({"Ether() / ICMP(proto=0x0800) / UDP() / Raw('\x00' * 64)"}), - frozenset({"Ether() / ICMP() / UDP() / ('\x00' * 64)", - "Ether() / ICMP() / UDP() / ('\x00' * 64)", - "Ether() / ICMP() / UDP() / ('\x00' * 64)", - "Ether() / ICMP() / UDP() / ('\x00' * 64)" + frozenset({"Ether() / ICMP() / UDP() / Raw('\x00' * 64)", + "Ether() / ICMP() / UDP() / Raw('\x00' * 64)", + "Ether() / ICMP() / UDP() / Raw('\x00' * 64)", + "Ether() / ICMP() / UDP() / Raw('\x00' * 64)" })), } @@ -380,31 +380,31 @@ class FlowItemIcmp6(PatternFlowItem): possible_properties = { 'type': ('icmp6 type is 1', # Destination Unreachable - frozenset({"Ether() / ICMPv6DestUnreach(type=1) / ('\\x00' * 64)"}), + frozenset({"Ether() / ICMPv6DestUnreach(type=1) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ICMPv6DestUnreach(type=128) / ('\\x00' * 64)", - "Ether() / ICMPv6DestUnreach(type=129) / ('\\x00' * 64)", - "Ether() / ICMPv6DestUnreach(type=3) / ('\\x00' * 64)", - "Ether() / ICMPv6DestUnreach(type=135) / ('\\x00' * 64)" + frozenset({"Ether() / ICMPv6DestUnreach(type=128) / Raw('\\x00' * 64)", + "Ether() / ICMPv6DestUnreach(type=129) / Raw('\\x00' * 64)", + "Ether() / ICMPv6DestUnreach(type=3) / Raw('\\x00' * 64)", + "Ether() / ICMPv6DestUnreach(type=135) / Raw('\\x00' * 64)" })), 'code': # ICMP code is dependent on type; these are possible Destination Unreachable codes ('icmp6 code is 0', - frozenset({"Ether() / ICMPv6DestUnreach(code=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / ICMPv6DestUnreach(code=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ICMPv6DestUnreach(code=1) / ('\\x00' * 64)", - "Ether() / ICMPv6DestUnreach(code=2) / ('\\x00' * 64)", - "Ether() / ICMPv6DestUnreach(code=3) / ('\\x00' * 64)", - "Ether() / ICMPv6DestUnreach(code=4) / ('\\x00' * 64)" + frozenset({"Ether() / ICMPv6DestUnreach(code=1) / Raw('\\x00' * 64)", + "Ether() / ICMPv6DestUnreach(code=2) / Raw('\\x00' * 64)", + "Ether() / ICMPv6DestUnreach(code=3) / Raw('\\x00' * 64)", + "Ether() / ICMPv6DestUnreach(code=4) / Raw('\\x00' * 64)" })), 'checksum': ('icmp6 cksum is 0x1234', - frozenset({"Ether() / ICMPv6DestUnreach(cksum=0x1234) / ('\\x00' * 64)"}), + frozenset({"Ether() / ICMPv6DestUnreach(cksum=0x1234) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / ICMPv6DestUnreach(cksum=0x4321) / ('\\x00' * 64)", - "Ether() / ICMPv6DestUnreach(cksum=0xffff) / ('\\x00' * 64)", - "Ether() / ICMPv6DestUnreach(cksum=0x1233) / ('\\x00' * 64)", - "Ether() / ICMPv6DestUnreach(cksum=0x1010) / ('\\x00' * 64)" + frozenset({"Ether() / ICMPv6DestUnreach(cksum=0x4321) / Raw('\\x00' * 64)", + "Ether() / ICMPv6DestUnreach(cksum=0xffff) / Raw('\\x00' * 64)", + "Ether() / ICMPv6DestUnreach(cksum=0x1233) / Raw('\\x00' * 64)", + "Ether() / ICMPv6DestUnreach(cksum=0x1010) / Raw('\\x00' * 64)" })), } @@ -424,58 +424,58 @@ class FlowItemIpv4(PatternFlowItem): 'tos': ('ipv4 tos is 0', - frozenset({"Ether() / IP(tos=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP(tos=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP(tos=2) / ('\\x00' * 64)", - "Ether() / IP(tos=4) / ('\\x00' * 64)", - "Ether() / IP(tos=8) / ('\\x00' * 64)", - "Ether() / IP(tos=16) / ('\\x00' * 64)" + frozenset({"Ether() / IP(tos=2) / Raw('\\x00' * 64)", + "Ether() / IP(tos=4) / Raw('\\x00' * 64)", + "Ether() / IP(tos=8) / Raw('\\x00' * 64)", + "Ether() / IP(tos=16) / Raw('\\x00' * 64)" })), 'ttl': ('ipv4 ttl is 64', - frozenset({"Ether() / IP(ttl=64) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP(ttl=64) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP(ttl=128) / ('\\x00' * 64)", - "Ether() / IP(ttl=255) / ('\\x00' * 64)", - "Ether() / IP(ttl=32) / ('\\x00' * 64)", - "Ether() / IP(ttl=100) / ('\\x00' * 64)" + frozenset({"Ether() / IP(ttl=128) / Raw('\\x00' * 64)", + "Ether() / IP(ttl=255) / Raw('\\x00' * 64)", + "Ether() / IP(ttl=32) / Raw('\\x00' * 64)", + "Ether() / IP(ttl=100) / Raw('\\x00' * 64)" })), 'proto': ('ipv4 proto is 0x06', # TCP - frozenset({"Ether() / IP(proto=0x06) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP(proto=0x06) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP(proto=0x01) / ('\\x00' * 64)", - "Ether() / IP(proto=0x11) / ('\\x00' * 64)", - "Ether() / IP(proto=0x12) / ('\\x00' * 64)", - "Ether() / IP(proto=0x58) / ('\\x00' * 64)" + frozenset({"Ether() / IP(proto=0x01) / Raw('\\x00' * 64)", + "Ether() / IP(proto=0x11) / Raw('\\x00' * 64)", + "Ether() / IP(proto=0x12) / Raw('\\x00' * 64)", + "Ether() / IP(proto=0x58) / Raw('\\x00' * 64)" })), 'src': ('ipv4 src is 192.168.0.5', - frozenset({"Ether() / IP(src=\"192.168.0.5\") / ('\\x00' * 64)"}), + frozenset({"Ether() / IP(src=\"192.168.0.5\") / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP(src=\"10.10.10.10\") / ('\\x00' * 64)", - "Ether() / IP(src=\"132.177.127.6\") / ('\\x00' * 64)", - "Ether() / IP(src=\"192.168.0.4\") / ('\\x00' * 64)", - "Ether() / IP(src=\"192.168.0.250\") / ('\\x00' * 64)" + frozenset({"Ether() / IP(src=\"10.10.10.10\") / Raw('\\x00' * 64)", + "Ether() / IP(src=\"132.177.127.6\") / Raw('\\x00' * 64)", + "Ether() / IP(src=\"192.168.0.4\") / Raw('\\x00' * 64)", + "Ether() / IP(src=\"192.168.0.250\") / Raw('\\x00' * 64)" })), 'dst': ('ipv4 dst is 192.168.0.5', - frozenset({"Ether() / IP(dst=\"192.168.0.5\") / ('\\x00' * 64)"}), + frozenset({"Ether() / IP(dst=\"192.168.0.5\") / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP(dst=\"10.10.10.10\") / ('\\x00' * 64)", - "Ether() / IP(dst=\"132.177.127.6\") / ('\\x00' * 64)", - "Ether() / IP(dst=\"192.168.0.4\") / ('\\x00' * 64)", - "Ether() / IP(dst=\"192.168.0.250\") / ('\\x00' * 64)" + frozenset({"Ether() / IP(dst=\"10.10.10.10\") / Raw('\\x00' * 64)", + "Ether() / IP(dst=\"132.177.127.6\") / Raw('\\x00' * 64)", + "Ether() / IP(dst=\"192.168.0.4\") / Raw('\\x00' * 64)", + "Ether() / IP(dst=\"192.168.0.250\") / Raw('\\x00' * 64)" })), # CHECKSUM PROPERTY NOT SUPPORTED BY TESTPMD; DO NOT UNCOMMENT UNTIL SUPPORTED # 'checksum': # ('ipv4 chksum is 0x1234', - # frozenset({"Ether() / ICMPv6DestUnreach(cksum=0x1234) / ('\\x00' * 64)"}), + # frozenset({"Ether() / ICMPv6DestUnreach(cksum=0x1234) / Raw('\\x00' * 64)"}), - # frozenset({"Ether() / ICMPv6DestUnreach(cksum=0x4321) / ('\\x00' * 64)", - # "Ether() / ICMPv6DestUnreach(cksum=0xffff) / ('\\x00' * 64)", - # "Ether() / ICMPv6DestUnreach(cksum=0x1233) / ('\\x00' * 64)", - # "Ether() / ICMPv6DestUnreach(cksum=0x1010) / ('\\x00' * 64)" + # frozenset({"Ether() / ICMPv6DestUnreach(cksum=0x4321) / Raw('\\x00' * 64)", + # "Ether() / ICMPv6DestUnreach(cksum=0xffff) / Raw('\\x00' * 64)", + # "Ether() / ICMPv6DestUnreach(cksum=0x1233) / Raw('\\x00' * 64)", + # "Ether() / ICMPv6DestUnreach(cksum=0x1010) / Raw('\\x00' * 64)" # })), ########################################################################## @@ -499,76 +499,76 @@ class FlowItemIpv6(PatternFlowItem): # They are still tested to future proof this test suite. 'vtc_flow': ('ipv6 vtc_flow is 0x0', - frozenset({"Ether() / IPv6(tc=0, fl=0, version=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(tc=0, fl=0, version=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(tc=1, fl=0, version=0) / ('\\x00' * 64)", - "Ether() / IPv6(tc=0, fl=0xABCD, version=0) / ('\\x00' * 64)", - "Ether() / IPv6(tc=0, fl=0, version=1) / ('\\x00' * 64)", - "Ether() / IPv6(tc=6, fl=0x9999, version=1) / ('\\x00' * 64)" + frozenset({"Ether() / IPv6(tc=1, fl=0, version=0) / Raw('\\x00' * 64)", + "Ether() / IPv6(tc=0, fl=0xABCD, version=0) / Raw('\\x00' * 64)", + "Ether() / IPv6(tc=0, fl=0, version=1) / Raw('\\x00' * 64)", + "Ether() / IPv6(tc=6, fl=0x9999, version=1) / Raw('\\x00' * 64)" })), 'payload_len': ('ipv6 payload_len is 64', - frozenset({"Ether() / IPv6(plen=64) / ('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(plen=64) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(plen=32) / ('\\x00' * 64)", - "Ether() / IPv6(plen=128) / ('\\x00' * 64)", - "Ether() / IPv6(plen=5000) / ('\\x00' * 64)", - "Ether() / IPv6(plen=4) / ('\\x00' * 64)" + frozenset({"Ether() / IPv6(plen=32) / Raw('\\x00' * 64)", + "Ether() / IPv6(plen=128) / Raw('\\x00' * 64)", + "Ether() / IPv6(plen=5000) / Raw('\\x00' * 64)", + "Ether() / IPv6(plen=4) / Raw('\\x00' * 64)" })), # END UNSUPPORTED PROPERTIES 'tc': ('ipv6 tc is 0', - frozenset({"Ether() / IPv6(tc=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(tc=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(tc=1) / ('\\x00' * 64)", - "Ether() / IPv6(tc=2) / ('\\x00' * 64)", - "Ether() / IPv6(tc=4) / ('\\x00' * 64)", - "Ether() / IPv6(tc=6) / ('\\x00' * 64)" + frozenset({"Ether() / IPv6(tc=1) / Raw('\\x00' * 64)", + "Ether() / IPv6(tc=2) / Raw('\\x00' * 64)", + "Ether() / IPv6(tc=4) / Raw('\\x00' * 64)", + "Ether() / IPv6(tc=6) / Raw('\\x00' * 64)" })), 'flow': ('ipv6 flow is 0xABCD', - frozenset({"Ether() / IPv6(fl=0xABCD) / ('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(fl=0xABCD) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(fl=0xABCE) / ('\\x00' * 64)", - "Ether() / IPv6(fl=0x0001) / ('\\x00' * 64)", - "Ether() / IPv6(fl=0xFFFF) / ('\\x00' * 64)", - "Ether() / IPv6(fl=0x1234) / ('\\x00' * 64)" + frozenset({"Ether() / IPv6(fl=0xABCE) / Raw('\\x00' * 64)", + "Ether() / IPv6(fl=0x0001) / Raw('\\x00' * 64)", + "Ether() / IPv6(fl=0xFFFF) / Raw('\\x00' * 64)", + "Ether() / IPv6(fl=0x1234) / Raw('\\x00' * 64)" })), 'proto': # next header (nh) ('ipv6 proto is 6', # TCP - frozenset({"Ether() / IPv6(nh=6) / ('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(nh=6) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(nh=17) / ('\\x00' * 64)", - "Ether() / IPv6(nh=41) / ('\\x00' * 64)", - "Ether() / IPv6(nh=0) / ('\\x00' * 64)", - "Ether() / IPv6(nh=60) / ('\\x00' * 64)" + frozenset({"Ether() / IPv6(nh=17) / Raw('\\x00' * 64)", + "Ether() / IPv6(nh=41) / Raw('\\x00' * 64)", + "Ether() / IPv6(nh=0) / Raw('\\x00' * 64)", + "Ether() / IPv6(nh=60) / Raw('\\x00' * 64)" })), 'hop': # hop limit ('ipv6 hop is 64', - frozenset({"Ether() / IPv6(hlim=64) / ('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(hlim=64) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(hlim=128) / ('\\x00' * 64)", - "Ether() / IPv6(hlim=32) / ('\\x00' * 64)", - "Ether() / IPv6(hlim=255) / ('\\x00' * 64)", - "Ether() / IPv6(hlim=100) / ('\\x00' * 64)" + frozenset({"Ether() / IPv6(hlim=128) / Raw('\\x00' * 64)", + "Ether() / IPv6(hlim=32) / Raw('\\x00' * 64)", + "Ether() / IPv6(hlim=255) / Raw('\\x00' * 64)", + "Ether() / IPv6(hlim=100) / Raw('\\x00' * 64)" })), 'dst': ('ipv6 dst is 2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2', - frozenset({"Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2\") / ('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2\") / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c3\") / ('\\x00' * 64)", - "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c4\") / ('\\x00' * 64)", - "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c5\") / ('\\x00' * 64)", - "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c6\") / ('\\x00' * 64)" + frozenset({"Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c3\") / Raw('\\x00' * 64)", + "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c4\") / Raw('\\x00' * 64)", + "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c5\") / Raw('\\x00' * 64)", + "Ether() / IPv6(dst=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c6\") / Raw('\\x00' * 64)" })), 'src': ('ipv6 src is 2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2', - frozenset({"Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2\") / ('\\x00' * 64)"}), + frozenset({"Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c2\") / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c3\") / ('\\x00' * 64)", - "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c4\") / ('\\x00' * 64)", - "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c5\") / ('\\x00' * 64)", - "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c6\") / ('\\x00' * 64)" + frozenset({"Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c3\") / Raw('\\x00' * 64)", + "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c4\") / Raw('\\x00' * 64)", + "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c5\") / Raw('\\x00' * 64)", + "Ether() / IPv6(src=\"2001:0000:9d38:6ab8:1c48:3a1c:a95a:b1c6\") / Raw('\\x00' * 64)" })), } @@ -587,41 +587,41 @@ class FlowItemSctp(PatternFlowItem): 'src': ('sctp src is 3838', - frozenset({"Ether() / IP() / SCTP(sport=3838) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / SCTP(sport=3838) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / SCTP(sport=3939) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(sport=5000) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(sport=1998) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(sport=1028) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / SCTP(sport=3939) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(sport=5000) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(sport=1998) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(sport=1028) / Raw('\\x00' * 64)" })), 'dst': ('sctp dst is 3838', - frozenset({"Ether() / IP() / SCTP(dport=3838) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / SCTP(dport=3838) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / SCTP(dport=3939) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(dport=5000) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(dport=1998) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(dport=1028) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / SCTP(dport=3939) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(dport=5000) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(dport=1998) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(dport=1028) / Raw('\\x00' * 64)" })), 'tag': ('sctp tag is 12345', - frozenset({"Ether() / IP() / SCTP(tag=12345) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / SCTP(tag=12345) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / SCTP(tag=12346) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(tag=12) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(tag=9999) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(tag=42) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / SCTP(tag=12346) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(tag=12) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(tag=9999) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(tag=42) / Raw('\\x00' * 64)" })), 'cksum': ('sctp cksum is 0x01535b67', - frozenset({"Ether() / IP() / SCTP(chksum=0x01535b67) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / SCTP(chksum=0x01535b67) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / SCTP(chksum=0x01535b68) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(chksum=0xdeadbeef) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(chksum=0x12345678) / ('\\x00' * 64)", - "Ether() / IP() / SCTP(chksum=0x385030fe) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / SCTP(chksum=0x01535b68) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(chksum=0xdeadbeef) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(chksum=0x12345678) / Raw('\\x00' * 64)", + "Ether() / IP() / SCTP(chksum=0x385030fe) / Raw('\\x00' * 64)" })) } @@ -658,59 +658,59 @@ class FlowItemTcp(PatternFlowItem): # They are still tested to future proof this test suite. 'data_off': ('tcp data_off is 0', - frozenset({"Ether() / IP() / TCP(dataofs=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / TCP(dataofs=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / TCP(dataofs=1) / ('\\x00' * 64)", - "Ether() / IP() / TCP(dataofs=2) / ('\\x00' * 64)", - "Ether() / IP() / TCP(dataofs=3) / ('\\x00' * 64)", - "Ether() / IP() / TCP(dataofs=4) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / TCP(dataofs=1) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(dataofs=2) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(dataofs=3) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(dataofs=4) / Raw('\\x00' * 64)" })), 'rx_win': ('tcp rx_win is 64', - frozenset({"Ether() / IP() / TCP(window=64)/ ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / TCP(window=64)/ Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / TCP(window=16)/ ('\\x00' * 64)", - "Ether() / IP() / TCP(window=128) / ('\\x00' * 64)", - "Ether() / IP() / TCP(window=32) / ('\\x00' * 64)", - "Ether() / IP() / TCP(window=255) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / TCP(window=16)/ Raw('\\x00' * 64)", + "Ether() / IP() / TCP(window=128) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(window=32) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(window=255) / Raw('\\x00' * 64)" })), 'cksum': ('tcp cksum is 0x1234', - frozenset({"Ether() / IP() / TCP(chksum=0x1234) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / TCP(chksum=0x1234) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / TCP(chksum=0x4321) / ('\\x00' * 64)", - "Ether() / IP() / TCP(chksum=0xffff) / ('\\x00' * 64)", - "Ether() / IP() / TCP(chksum=0x9999) / ('\\x00' * 64)", - "Ether() / IP() / TCP(chksum=0x1233) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / TCP(chksum=0x4321) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(chksum=0xffff) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(chksum=0x9999) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(chksum=0x1233) / Raw('\\x00' * 64)" })), # END UNSUPPORTED PROPERTIES 'src': ('tcp src is 3838', - frozenset({"Ether() / IP() / TCP(sport=3838) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / TCP(sport=3838) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / TCP(sport=3939) / ('\\x00' * 64)", - "Ether() / IP() / TCP(sport=5000) / ('\\x00' * 64)", - "Ether() / IP() / TCP(sport=1998) / ('\\x00' * 64)", - "Ether() / IP() / TCP(sport=1028) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / TCP(sport=3939) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(sport=5000) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(sport=1998) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(sport=1028) / Raw('\\x00' * 64)" })), 'dst': ('tcp dst is 3838', - frozenset({"Ether() / IP() / TCP(dport=3838) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / TCP(dport=3838) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / TCP(dport=3939) / ('\\x00' * 64)", - "Ether() / IP() / TCP(dport=5000) / ('\\x00' * 64)", - "Ether() / IP() / TCP(dport=1998) / ('\\x00' * 64)", - "Ether() / IP() / TCP(dport=1028) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / TCP(dport=3939) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(dport=5000) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(dport=1998) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(dport=1028) / Raw('\\x00' * 64)" })), 'flags': ('tcp flags is 0x02', - frozenset({"Ether() / IP() / TCP(flags=0x02) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / TCP(flags=0x02) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / TCP(flags=0x01) / ('\\x00' * 64)", - "Ether() / IP() / TCP(flags=0x04) / ('\\x00' * 64)", - "Ether() / IP() / TCP(flags=0x08) / ('\\x00' * 64)", - "Ether() / IP() / TCP(flags=0x10) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / TCP(flags=0x01) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(flags=0x04) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(flags=0x08) / Raw('\\x00' * 64)", + "Ether() / IP() / TCP(flags=0x10) / Raw('\\x00' * 64)" })) } @@ -730,42 +730,42 @@ class FlowItemUdp(PatternFlowItem): # They are still tested to future proof this test suite. 'dgram_len': ('udp dgram_len is 64', - frozenset({"Ether() / IP() / UDP(len=64) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / UDP(len=64) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / UDP(len=128) / ('\\x00' * 64)", - "Ether() / IP() / UDP(len=32) / ('\\x00' * 64)", - "Ether() / IP() / UDP(len=16) / ('\\x00' * 64)", - "Ether() / IP() / UDP(len=255) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / UDP(len=128) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(len=32) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(len=16) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(len=255) / Raw('\\x00' * 64)" })), 'dgram_cksum': ('udp dgram_cksum is 0x1234', - frozenset({"Ether() / IP() / UDP(chksum=0x1234) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / UDP(chksum=0x1234) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / UDP(chksum=0x4321) / ('\\x00' * 64)", - "Ether() / IP() / UDP(chksum=0xffff) / ('\\x00' * 64)", - "Ether() / IP() / UDP(chksum=0x9999) / ('\\x00' * 64)", - "Ether() / IP() / UDP(chksum=0x1233) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / UDP(chksum=0x4321) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(chksum=0xffff) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(chksum=0x9999) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(chksum=0x1233) / Raw('\\x00' * 64)" })), # END UNSUPPORTED PROPERTIES 'src': ('udp src is 3838', - frozenset({"Ether() / IP() / UDP(sport=3838) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / UDP(sport=3838) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / UDP(sport=3939) / ('\\x00' * 64)", - "Ether() / IP() / UDP(sport=5000) / ('\\x00' * 64)", - "Ether() / IP() / UDP(sport=1998) / ('\\x00' * 64)", - "Ether() / IP() / UDP(sport=1028) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / UDP(sport=3939) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(sport=5000) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(sport=1998) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(sport=1028) / Raw('\\x00' * 64)" })), 'dst': ('udp dst is 3838', - frozenset({"Ether() / IP() / UDP(dport=3838) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / UDP(dport=3838) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / UDP(dport=3939) / ('\\x00' * 64)", - "Ether() / IP() / UDP(dport=5000) / ('\\x00' * 64)", - "Ether() / IP() / UDP(dport=1998) / ('\\x00' * 64)", - "Ether() / IP() / UDP(dport=1028) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / UDP(dport=3939) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(dport=5000) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(dport=1998) / Raw('\\x00' * 64)", + "Ether() / IP() / UDP(dport=1028) / Raw('\\x00' * 64)" })), } @@ -798,48 +798,48 @@ class FlowItemVlan(PatternFlowItem): 'tci': ('vlan tci is 0xaaaa', - frozenset({"Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / ('\\x00' * 64)"}), + frozenset({"Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xaaa) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / Dot1Q(prio = 0x0, id = 0x1, vlan = 0xbbb) / ('\\x00' * 64)", - "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xccc) / ('\\x00' * 64)", - "Ether() / Dot1Q(prio = 0x5, id = 0x1, vlan = 0xaaa) / ('\\x00' * 64)", - "Ether() / Dot1Q(prio = 0x4, id = 0x0, vlan = 0xaaa) / ('\\x00' * 64)" + frozenset({"Ether() / Dot1Q(prio = 0x0, id = 0x1, vlan = 0xbbb) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(prio = 0x5, id = 0x0, vlan = 0xccc) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(prio = 0x5, id = 0x1, vlan = 0xaaa) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(prio = 0x4, id = 0x0, vlan = 0xaaa) / Raw('\\x00' * 64)" })), 'pcp': ('vlan pcp is 0x0', - frozenset({"Ether() / Dot1Q(prio=0x0) / ('\\x00' * 64)"}), + frozenset({"Ether() / Dot1Q(prio=0x0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / Dot1Q(prio=0x1) / ('\\x00' * 64)", - "Ether() / Dot1Q(prio=0x2) / ('\\x00' * 64)", - "Ether() / Dot1Q(prio=0x3) / ('\\x00' * 64)", - "Ether() / Dot1Q(prio=0x7) / ('\\x00' * 64)" + frozenset({"Ether() / Dot1Q(prio=0x1) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(prio=0x2) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(prio=0x3) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(prio=0x7) / Raw('\\x00' * 64)" })), 'dei': ('vlan dei is 0', - frozenset({"Ether() / Dot1Q(id=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / Dot1Q(id=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / Dot1Q(id=1) / ('\\x00' * 64)" + frozenset({"Ether() / Dot1Q(id=1) / Raw('\\x00' * 64)" })), 'vid': ('vlan vid is 0xabc', - frozenset({"Ether() / Dot1Q(vlan=0xabc) / ('\\x00' * 64)"}), + frozenset({"Ether() / Dot1Q(vlan=0xabc) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / Dot1Q(vlan=0xaaa) / ('\\x00' * 64)", - "Ether() / Dot1Q(vlan=0x123) / ('\\x00' * 64)", - "Ether() / Dot1Q(vlan=0x1f5) / ('\\x00' * 64)", - "Ether() / Dot1Q(vlan=0x999) / ('\\x00' * 64)" + frozenset({"Ether() / Dot1Q(vlan=0xaaa) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(vlan=0x123) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(vlan=0x1f5) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(vlan=0x999) / Raw('\\x00' * 64)" })), 'tpid': ('vlan tpid is 0x8100', # standard value - frozenset({"Ether() / Dot1Q(type=0x8100) / ('\\x00' * 64)"}), + frozenset({"Ether() / Dot1Q(type=0x8100) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / Dot1Q(type=0x0800) / ('\\x00' * 64)", - "Ether() / Dot1Q(type=0x0842) / ('\\x00' * 64)", - "Ether() / Dot1Q(type=0x809b) / ('\\x00' * 64)", - "Ether() / Dot1Q(type=0x86dd) / ('\\x00' * 64)" + frozenset({"Ether() / Dot1Q(type=0x0800) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(type=0x0842) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(type=0x809b) / Raw('\\x00' * 64)", + "Ether() / Dot1Q(type=0x86dd) / Raw('\\x00' * 64)" })), } @@ -864,40 +864,40 @@ possible_properties = { # They are still tested to future proof this test suite. 'rsvd0': ('vxlan rsvd0 is 0x000000', - frozenset({"Ether() / IP() / VXLAN(reserved0=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / VXLAN(reserved0=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / VXLAN(reserved0=1) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=2) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=3) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=4) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / VXLAN(reserved0=1) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=2) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=3) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=4) / Raw('\\x00' * 64)" })), 'rsvd1': ('vxlan rsvd1 is 0x00', - frozenset({"Ether() / IP() / VXLAN(reserved0=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / VXLAN(reserved0=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / VXLAN(reserved0=1) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=2) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=3) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=4) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / VXLAN(reserved0=1) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=2) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=3) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=4) / Raw('\\x00' * 64)" })), 'flags': ('vxlan flags is 0x08', - frozenset({"Ether() / IP() / VXLAN(flags=0x08) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / VXLAN(flags=0x08) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / VXLAN(flags=0x80) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(flags=0x00) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(flags=0x99) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(flags=0x01) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / VXLAN(flags=0x80) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(flags=0x00) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(flags=0x99) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(flags=0x01) / Raw('\\x00' * 64)" })), # END UNSUPPORTED PROPERTIES 'vni': # a 3-byte value ('vxlan vni is 0x112233', - frozenset({"Ether() / IP() / VXLAN(vni=0x112233) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / VXLAN(vni=0x112233) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / VXLAN(vni=0x112234) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(vni=0x123456) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(vni=0xaabbcc) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(vni=0x999999) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / VXLAN(vni=0x112234) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(vni=0x123456) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(vni=0xaabbcc) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(vni=0x999999) / Raw('\\x00' * 64)" })), } @@ -923,49 +923,49 @@ class FlowItemVxlan_gpe(PatternFlowItem): 'rsvd0': ('vxlan rsvd0 is 0x000000', - frozenset({"Ether() / IP() / VXLAN(reserved0=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / VXLAN(reserved0=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / VXLAN(reserved0=1) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=2) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=3) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=4) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / VXLAN(reserved0=1) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=2) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=3) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=4) / Raw('\\x00' * 64)" })), 'rsvd1': ('vxlan rsvd1 is 0x00', - frozenset({"Ether() / IP() / VXLAN(reserved0=0) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / VXLAN(reserved0=0) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / VXLAN(reserved0=1) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=2) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=3) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(reserved0=4) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / VXLAN(reserved0=1) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=2) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=3) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(reserved0=4) / Raw('\\x00' * 64)" })), 'flags': ('vxlan flags is 0x08', - frozenset({"Ether() / IP() / VXLAN(flags=0x08) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / VXLAN(flags=0x08) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / VXLAN(flags=0x80) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(flags=0x00) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(flags=0x99) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(flags=0x01) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / VXLAN(flags=0x80) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(flags=0x00) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(flags=0x99) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(flags=0x01) / Raw('\\x00' * 64)" })), 'vni': # a 3-byte value ('vxlan vni is 0x112233', - frozenset({"Ether() / IP() / VXLAN(vni=0x112233) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / VXLAN(vni=0x112233) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / VXLAN(vni=0x112234) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(vni=0x123456) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(vni=0xaabbcc) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(vni=0x999999) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / VXLAN(vni=0x112234) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(vni=0x123456) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(vni=0xaabbcc) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(vni=0x999999) / Raw('\\x00' * 64)" })), 'protocol': ('vxlan protocol is 0x01', - frozenset({"Ether() / IP() / VXLAN(NextProtocol=0x01) / ('\\x00' * 64)"}), + frozenset({"Ether() / IP() / VXLAN(NextProtocol=0x01) / Raw('\\x00' * 64)"}), - frozenset({"Ether() / IP() / VXLAN(NextProtocol=0x01) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(NextProtocol=0x11) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(NextProtocol=0x22) / ('\\x00' * 64)", - "Ether() / IP() / VXLAN(NextProtocol=0x33) / ('\\x00' * 64)" + frozenset({"Ether() / IP() / VXLAN(NextProtocol=0x01) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(NextProtocol=0x11) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(NextProtocol=0x22) / Raw('\\x00' * 64)", + "Ether() / IP() / VXLAN(NextProtocol=0x33) / Raw('\\x00' * 64)" })), } diff --git a/framework/flow/generator.py b/framework/flow/generator.py index 0fe52b2b..c4633a4a 100644 --- a/framework/flow/generator.py +++ b/framework/flow/generator.py @@ -31,19 +31,18 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. from __future__ import annotations -import copy -import itertools import os import sys -import time from typing import List, Set, Generator, Iterable, FrozenSet, Tuple -import numpy as np +path = os.path.dirname(os.path.dirname(__file__)) +if path not in sys.path: + sys.path.append(path) from flow.flow import Flow from flow.flow_pattern_items import PATTERN_ITEMS_TYPE_CLASS_MAPPING, PatternFlowItem, \ - PATTERN_OPERATION_TYPES, TUNNELING_PROTOCOL_TYPES, ALWAYS_ALLOWED_ITEMS, FlowItemEnd, FlowItemVxlan, FlowItemIpv4, \ - FlowItemEth, FlowItemGre, L3_FLOW_TYPES, FlowItemVlan, FlowItemUdp + PATTERN_OPERATION_TYPES, ALWAYS_ALLOWED_ITEMS, FlowItemVxlan, FlowItemIpv4, \ + FlowItemEth, FlowItemGre, L3_FLOW_TYPES, FlowItemUdp from flow.flow_rule import FlowItemType diff --git a/tests/TestSuite_rte_flow.py b/tests/TestSuite_rte_flow.py index 0cc9830f..d9bcff8a 100644 --- a/tests/TestSuite_rte_flow.py +++ b/tests/TestSuite_rte_flow.py @@ -44,7 +44,7 @@ from test_case import TestCase from test_case import TestCase -from framework.flow import generator +from flow import generator class RteFlow(TestCase): @@ -95,9 +95,7 @@ class RteFlow(TestCase): def send_packets(self, packets, pass_fail_function: Callable[[str], bool], error_message: str): for packet in packets: - output = self.send_scapy_packet(0, packet) - time.sleep(5) # Allow the packet to be processed - self.verify("Sent" in output, "Broken scapy packet definition: " + packet) + output = self.send_scapy_packet(self.dut_ports[1], packet) output = self.pmdout.get_output() self.verify(pass_fail_function(output), error_message + "\r\n" + output) @@ -164,22 +162,22 @@ class RteFlow(TestCase): self.do_test_with_queue_action( "ingress pattern eth / ipv4 / " + ( "void / " * 200) + "udp / end actions queue index 1 / end", - frozenset({'Ether() / IP() / UDP() / (\'\\x00\' * 64)'}), + frozenset({'Ether() / IP() / UDP() / Raw(\'\\x00\' * 64)'}), frozenset({ - 'Ether() / IP() / TCP() / (\'\\x00\' * 64)', - 'Ether() / IP() / SCTP() / (\'\\x00\' * 64)', - 'Ether() / IPv6() / UDP() / (\'\\x00\' * 64)', + 'Ether() / IP() / TCP() / Raw(\'\\x00\' * 64)', + 'Ether() / IP() / SCTP() / Raw(\'\\x00\' * 64)', + 'Ether() / IPv6() / UDP() / Raw(\'\\x00\' * 64)', }) ) def test_excessive_tunneling(self): self.do_test_with_queue_action( "ingress pattern " + ("eth / gre / " * 20) + "eth / ipv4 / udp / end actions queue index 1 / end", - frozenset({'Ether() / IP() / UDP() / (\'\\x00\' * 64)'}), + frozenset({'Ether() / IP() / UDP() / Raw(\'\\x00\' * 64)'}), frozenset({ - 'Ether() / IP() / TCP() / (\'\\x00\' * 64)', - 'Ether() / IP() / SCTP() / (\'\\x00\' * 64)', - 'Ether() / IPv6() / UDP() / (\'\\x00\' * 64)', + 'Ether() / IP() / TCP() / Raw(\'\\x00\' * 64)', + 'Ether() / IP() / SCTP() / Raw(\'\\x00\' * 64)', + 'Ether() / IPv6() / UDP() / Raw(\'\\x00\' * 64)', }) ) @@ -192,11 +190,11 @@ class RteFlow(TestCase): def test_drop_case1(self): self.do_test_with_callable_tests_for_pass_fail( "ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions drop / end", - frozenset({'Ether() / IP(src="192.168.0.1") / UDP() / (\'\\x00\' * 64)'}), - frozenset({'Ether() / IP(src="10.0.30.99") / UDP() / (\'\\x00\' * 64)', - 'Ether() / IP(src="132.177.0.99") / UDP() / (\'\\x00\' * 64)', - 'Ether() / IP(src="192.168.0.2") / UDP() / (\'\\x00\' * 64)', - 'Ether() / IP(src="8.8.8.8") / UDP() / (\'\\x00\' * 64)'}), + frozenset({'Ether() / IP(src="192.168.0.1") / UDP() / Raw(\'\\x00\' * 64)'}), + frozenset({'Ether() / IP(src="10.0.30.99") / UDP() / Raw(\'\\x00\' * 64)', + 'Ether() / IP(src="132.177.0.99") / UDP() / Raw(\'\\x00\' * 64)', + 'Ether() / IP(src="192.168.0.2") / UDP() / Raw(\'\\x00\' * 64)', + 'Ether() / IP(src="8.8.8.8") / UDP() / Raw(\'\\x00\' * 64)'}), lambda output: "port" not in output, lambda output: "port" in output, "Drop function was not correctly applied") @@ -204,11 +202,11 @@ class RteFlow(TestCase): def test_queue_case1(self): self.do_test_with_queue_action( "ingress pattern eth / ipv4 src is 192.168.0.1 / udp / end actions queue index 1 / end", - frozenset({'Ether() / IP(src="192.168.0.1") / UDP() / (\'\\x00\' * 64)'}), frozenset( - {'Ether() / IP(src="10.0.30.99") / UDP() / (\'\\x00\' * 64)', - 'Ether() / IP(src="132.177.0.99") / UDP() / (\'\\x00\' * 64)', - 'Ether() / IP(src="192.168.0.2") / UDP() / (\'\\x00\' * 64)', - 'Ether() / IP(src="8.8.8.8") / UDP() / (\'\\x00\' * 64)'})) + frozenset({'Ether() / IP(src="192.168.0.1") / UDP() / Raw(\'\\x00\' * 64)'}), frozenset( + {'Ether() / IP(src="10.0.30.99") / UDP() / Raw(\'\\x00\' * 64)', + 'Ether() / IP(src="132.177.0.99") / UDP() / Raw(\'\\x00\' * 64)', + 'Ether() / IP(src="192.168.0.2") / UDP() / Raw(\'\\x00\' * 64)', + 'Ether() / IP(src="8.8.8.8") / UDP() / Raw(\'\\x00\' * 64)'})) def do_runtime_test_generation(): -- 2.30.2