Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/87519/?format=api
http://patches.dpdk.org/api/patches/87519/?format=api", "web_url": "http://patches.dpdk.org/project/dts/patch/1611893385-14392-1-git-send-email-zhiminx.huang@intel.com/", "project": { "id": 3, "url": "http://patches.dpdk.org/api/projects/3/?format=api", "name": "DTS", "link_name": "dts", "list_id": "dts.dpdk.org", "list_email": "dts@dpdk.org", "web_url": "", "scm_url": "git://dpdk.org/tools/dts", "webscm_url": "http://git.dpdk.org/tools/dts/", "list_archive_url": "https://inbox.dpdk.org/dts", "list_archive_url_format": "https://inbox.dpdk.org/dts/{}", "commit_url_format": "" }, "msgid": "<1611893385-14392-1-git-send-email-zhiminx.huang@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/1611893385-14392-1-git-send-email-zhiminx.huang@intel.com", "date": "2021-01-29T04:09:45", "name": "[V1] tests/cvl_advanced_rss_gtpu:add subcase and optimized code", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "785657c2a5c79b95032e57dfde1bf0a33ad48a4c", "submitter": { "id": 1685, "url": "http://patches.dpdk.org/api/people/1685/?format=api", "name": "Huang, ZhiminX", "email": "zhiminx.huang@intel.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dts/patch/1611893385-14392-1-git-send-email-zhiminx.huang@intel.com/mbox/", "series": [ { "id": 15025, "url": "http://patches.dpdk.org/api/series/15025/?format=api", "web_url": "http://patches.dpdk.org/project/dts/list/?series=15025", "date": "2021-01-29T04:09:45", "name": "[V1] tests/cvl_advanced_rss_gtpu:add subcase and optimized code", "version": 1, "mbox": "http://patches.dpdk.org/series/15025/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/87519/comments/", "check": "pending", "checks": "http://patches.dpdk.org/api/patches/87519/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dts-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id ABCE5A09E4;\n\tFri, 29 Jan 2021 05:20:07 +0100 (CET)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 87EA64067B;\n\tFri, 29 Jan 2021 05:20:07 +0100 (CET)", "from mga17.intel.com (mga17.intel.com [192.55.52.151])\n by mails.dpdk.org (Postfix) with ESMTP id DCDDF40395\n for <dts@dpdk.org>; Fri, 29 Jan 2021 05:20:05 +0100 (CET)", "from orsmga008.jf.intel.com ([10.7.209.65])\n by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 Jan 2021 20:20:04 -0800", "from unknown (HELO dpdk-huangzm-d.sh.intel.com) ([10.240.183.72])\n by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 Jan 2021 20:20:02 -0800" ], "IronPort-SDR": [ "\n SCNHtc/QB60Mj+Zz0nynmbTjCtDqvra0o4S2gy4llXPvmvTNOY6cXlX+bdDzaDNoEJ/dsaWd8K\n lgFKsWzfchTQ==", "\n Uy+wE5YmIeqi1Y01dTF/47QCbIR6yXzAo0i21erm8dsNrFg2E4ZAEHXYeE2+W8dwXlYPgVZA6Y\n UmGEGlEUt9TQ==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9878\"; a=\"160134262\"", "E=Sophos;i=\"5.79,384,1602572400\"; d=\"scan'208\";a=\"160134262\"", "E=Sophos;i=\"5.79,384,1602572400\"; d=\"scan'208\";a=\"389136148\"" ], "From": "Zhimin Huang <zhiminx.huang@intel.com>", "To": "dts@dpdk.org", "Cc": "yuan.peng@intel.com,\n\tZhimin Huang <zhiminx.huang@intel.com>", "Date": "Fri, 29 Jan 2021 12:09:45 +0800", "Message-Id": "<1611893385-14392-1-git-send-email-zhiminx.huang@intel.com>", "X-Mailer": "git-send-email 1.8.3.1", "Subject": "[dts] [PATCH V1] tests/cvl_advanced_rss_gtpu:add subcase and\n optimized code", "X-BeenThere": "dts@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "test suite reviews and discussions <dts.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dts/>", "List-Post": "<mailto:dts@dpdk.org>", "List-Help": "<mailto:dts-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>", "Errors-To": "dts-bounces@dpdk.org", "Sender": "\"dts\" <dts-bounces@dpdk.org>" }, "content": "add subcase:\nMAC_IPV4_GTPU_IPV4_UDP:MAC_IPV4_GTPU_IPV4_UDP_IPV4\nsame as above,replace ipv4 to ipv6, udp tp tcp.\n\nMAC_IPV4_GTPU_EH_IPV4_UDP:MAC_IPV4_GTPU_EH_DL_IPV4_UDP_IPV4\nsame as above,replace ipv4 to ipv6, udp tp tcp.\n\nMAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL:MAC_IPV4_GTPU_EH_IPV4_UDP_IPV4\nsame as above,replace ipv4 to ipv6, udp tp tcp.\n\noptimized code:\nmodified symmetric case:optimized after destroy rule action.\n\nmodified negative rule.\n\nSigned-off-by: Zhimin Huang <zhiminx.huang@intel.com>\n---\n tests/TestSuite_cvl_advanced_rss_gtpu.py | 270 ++++++++++++++++++++++++++-----\n 1 file changed, 226 insertions(+), 44 deletions(-)", "diff": "diff --git a/tests/TestSuite_cvl_advanced_rss_gtpu.py b/tests/TestSuite_cvl_advanced_rss_gtpu.py\nindex b41a5d4..1c79068 100755\n--- a/tests/TestSuite_cvl_advanced_rss_gtpu.py\n+++ b/tests/TestSuite_cvl_advanced_rss_gtpu.py\n@@ -365,27 +365,27 @@ mac_ipv4_gtpu_ipv4_symmetric = {\n 'post-test': [\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/(\"X\"*480)',\n- 'action': {'check_no_hash_or_different': 'nonfrag'},\n+ 'action': {'save_hash': 'nonfrag'},\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/(\"X\"*480)',\n- 'action': {'check_no_hash_or_different': 'nonfrag'},\n+ 'action': {'check_hash_different': 'nonfrag'},\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\", frag=6)/(\"X\"*480)',\n- 'action': {'check_no_hash_or_different': 'frag'},\n+ 'action': {'save_hash': 'frag'},\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\", frag=6)/(\"X\"*480)',\n- 'action': {'check_no_hash_or_different': 'frag'},\n+ 'action': {'check_hash_different': 'frag'},\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/ICMP()/(\"X\"*480)',\n- 'action': {'check_no_hash_or_different': 'icmp'},\n+ 'action': {'save_hash': 'icmp'},\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/ICMP()/(\"X\"*480)',\n- 'action': {'check_no_hash_or_different': 'icmp'},\n+ 'action': {'check_hash_different': 'icmp'},\n },\n ],\n }\n@@ -466,7 +466,7 @@ mac_ipv4_gtpu_ipv4_udp_symmetric = {\n 'post-test': [\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)',\n- 'action': {'check_hash_different': 'basic_with_rule'},\n+ 'action': {'save_hash': 'basic_with_rule'},\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=23, dport=22)/(\"X\"*480)',\n@@ -474,7 +474,7 @@ mac_ipv4_gtpu_ipv4_udp_symmetric = {\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)',\n- 'action': {'check_hash_different': 'basic_with_rule'},\n+ 'action': {'save_hash': 'basic_with_rule'},\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=23, dport=22)/(\"X\"*480)',\n@@ -611,35 +611,35 @@ mac_ipv4_gtpu_eh_dl_ipv4_symmetric = {\n 'post-test': [\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/(\"X\"*480)',\n- 'action': 'save_or_no_hash',\n+ 'action': 'save_hash',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/(\"X\"*480)',\n- 'action': 'check_no_hash_or_different',\n+ 'action': 'check_hash_different',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\", frag=6)/(\"X\"*480)',\n- 'action': 'save_or_no_hash',\n+ 'action': 'save_hash',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\", frag=6)/(\"X\"*480)',\n- 'action': 'check_no_hash_or_different',\n+ 'action': 'check_hash_different',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/ICMP()/(\"X\"*480)',\n- 'action': 'save_or_no_hash',\n+ 'action': 'save_hash',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/ICMP()/(\"X\"*480)',\n- 'action': 'check_no_hash_or_different',\n+ 'action': 'check_hash_different',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP()/(\"X\"*480)',\n- 'action': 'save_or_no_hash',\n+ 'action': 'save_hash',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP()/(\"X\"*480)',\n- 'action': 'check_no_hash_or_different',\n+ 'action': 'check_hash_different',\n },\n ],\n }\n@@ -723,16 +723,8 @@ mac_ipv4_gtpu_eh_dl_ipv4_udp_symmetric = {\n 'action': 'save_hash',\n },\n {\n- 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=23, dport=22)/(\"X\"*480)',\n- 'action': 'check_no_hash_or_different',\n- },\n- {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)',\n- 'action': 'check_no_hash_or_different',\n- },\n- {\n- 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=23, dport=22)/(\"X\"*480)',\n- 'action': 'check_no_hash_or_different',\n+ 'action': 'check_hash_different',\n },\n ],\n }\n@@ -1091,12 +1083,43 @@ mac_ipv4_gtpu_ipv4_udp_gtpu = {\n ]\n }\n \n+mac_ipv4_gtpu_ipv4_udp_ipv4 = {\n+ 'sub_casename': 'mac_ipv4_gtpu_ipv4_udp_ipv4',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv4_udp_basic,\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv4_udp_basic.replace('192.168.0.1', '192.168.1.1'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv4_udp_basic.replace('192.168.0.2', '192.168.1.2'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv4_udp_basic.replace('sport=22', 'sport=32')\n+ .replace('dport=23', 'dport=33'),\n+ 'action': 'check_hash_same',\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv4_udp_basic,\n+ 'action': 'check_no_hash',\n+ },\n+ ]\n+}\n+\n \n mac_ipv4_gtpu_ipv4_udp_toeplitz = [mac_ipv4_gtpu_ipv4_udp_l3dst, mac_ipv4_gtpu_ipv4_udp_l3src,\n mac_ipv4_gtpu_ipv4_udp_l3dst_l4src, mac_ipv4_gtpu_ipv4_udp_l3dst_l4dst,\n mac_ipv4_gtpu_ipv4_udp_l3src_l4src, mac_ipv4_gtpu_ipv4_udp_l3src_l4dst,\n mac_ipv4_gtpu_ipv4_udp_l4src, mac_ipv4_gtpu_ipv4_udp_l4dst,\n- mac_ipv4_gtpu_ipv4_udp_all, mac_ipv4_gtpu_ipv4_udp_gtpu]\n+ mac_ipv4_gtpu_ipv4_udp_all, mac_ipv4_gtpu_ipv4_udp_gtpu, mac_ipv4_gtpu_ipv4_udp_ipv4]\n \n mac_ipv4_gtpu_ipv4_tcp_toeplitz = [eval(str(element).replace('TCP', 'TCP1').replace('udp', 'tcp')\n .replace('UDP(sport', 'TCP(sport').replace('TCP1', 'UDP')\n@@ -1667,11 +1690,42 @@ mac_ipv4_gtpu_ipv6_udp_gtpu = {\n ]\n }\n \n+mac_ipv4_gtpu_ipv6_udp_ipv6 = {\n+ 'sub_casename': 'mac_ipv4_gtpu_ipv6_udp_ipv6',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp / end actions rss types ipv6 end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv6_udp_basic,\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv6_udp_basic.replace('CDCD', '3434'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv6_udp_basic.replace('ABAB', '1212'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv6_udp_basic.replace('sport=22', 'sport=32')\n+ .replace('dport=23', 'dport=33'),\n+ 'action': 'check_hash_same',\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_gtpu_ipv6_udp_basic,\n+ 'action': 'check_no_hash',\n+ },\n+ ]\n+}\n+\n mac_ipv4_gtpu_ipv6_udp_toeplitz = [mac_ipv4_gtpu_ipv6_udp_l3dst, mac_ipv4_gtpu_ipv6_udp_l3src,\n mac_ipv4_gtpu_ipv6_udp_l3dst_l4src, mac_ipv4_gtpu_ipv6_udp_l3dst_l4dst,\n mac_ipv4_gtpu_ipv6_udp_l3src_l4src, mac_ipv4_gtpu_ipv6_udp_l3src_l4dst,\n mac_ipv4_gtpu_ipv6_udp_l4src, mac_ipv4_gtpu_ipv6_udp_l4dst,\n- mac_ipv4_gtpu_ipv6_udp_all, mac_ipv4_gtpu_ipv6_udp_gtpu]\n+ mac_ipv4_gtpu_ipv6_udp_all, mac_ipv4_gtpu_ipv6_udp_gtpu, mac_ipv4_gtpu_ipv6_udp_ipv6]\n \n mac_ipv4_gtpu_ipv6_tcp_toeplitz = [eval(str(element).replace('TCP', 'TCP1').replace('udp', 'tcp')\n .replace('UDP(sport', 'TCP(sport').replace('TCP1', 'UDP')\n@@ -2574,6 +2628,46 @@ mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_gtpu = {\n },\n ]\n }\n+\n+mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_ipv4_6 = {\n+ 'sub_casename': 'mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_ipv4_6',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_basic['dl'],\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_basic['dl'].replace('192.168.0.1', '192.168.1.1'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_basic['dl'].replace('192.168.0.2', '192.168.1.2'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_basic['dl'].replace('sport=22', 'sport=32')\n+ .replace('dport=23', 'dport=33'),\n+ 'action': 'check_hash_same',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_basic['ul'].replace('sport=22', 'sport=32')\n+ .replace('dport=23', 'dport=33'),\n+ 'action': 'check_hash_same',\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': [\n+ mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_basic['dl'],\n+ mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_basic['ul'],\n+ ],\n+ 'action': 'check_no_hash',\n+ },\n+ ]\n+}\n+\n mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_toeplitz = [\n mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_l3src_only,\n mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_l3dst_only,\n@@ -2584,6 +2678,7 @@ mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_toeplitz = [\n mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_l4dst_only,\n mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp,\n mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_gtpu,\n+ mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_ipv4_6,\n ]\n \n mac_ipv4_gtpu_eh_without_ul_dl_ipv4_tcp_toeplitz = [eval(str(element).replace('TCP', 'TCP1').replace('udp', 'tcp')\n@@ -2609,7 +2704,8 @@ mac_ipv4_gtpu_eh_without_ul_dl_ipv6_udp_toeplitz = [eval(str(element).replace('g\n .replace('IP(dst=\"192.168.0.1\",src=\"192.168.0.2\"', 'IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\"')\n .replace('IP(dst=\"192.168.1.1\",src=\"192.168.0.2\"', 'IPv6(dst=\"1212:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\"')\n .replace('IP(dst=\"192.168.0.1\",src=\"192.168.1.2\"', 'IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"3434:910A:2222:5498:8475:1111:3900:2020\"')\n- .replace('IP(dst=\"192.168.1.1\",src=\"192.168.1.2\"', 'IPv6(dst=\"1212:910B:6666:3457:8295:3333:1800:2929\",src=\"3434:910A:2222:5498:8475:1111:3900:2020\"'))\n+ .replace('IP(dst=\"192.168.1.1\",src=\"192.168.1.2\"', 'IPv6(dst=\"1212:910B:6666:3457:8295:3333:1800:2929\",src=\"3434:910A:2222:5498:8475:1111:3900:2020\"')\n+ .replace('rss types ipv4', 'rss types ipv6'))\n for element in mac_ipv4_gtpu_eh_without_ul_dl_ipv4_udp_toeplitz]\n \n mac_ipv4_gtpu_eh_without_ul_dl_ipv6_tcp_toeplitz = [eval(str(element).replace('gtp_psc / ipv4', 'gtp_psc / ipv6')\n@@ -2619,7 +2715,8 @@ mac_ipv4_gtpu_eh_without_ul_dl_ipv6_tcp_toeplitz = [eval(str(element).replace('g\n .replace('IP(dst=\"192.168.0.1\",src=\"192.168.0.2\"', 'IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\"')\n .replace('IP(dst=\"192.168.1.1\",src=\"192.168.0.2\"', 'IPv6(dst=\"1212:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\"')\n .replace('IP(dst=\"192.168.0.1\",src=\"192.168.1.2\"', 'IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"3434:910A:2222:5498:8475:1111:3900:2020\"')\n- .replace('IP(dst=\"192.168.1.1\",src=\"192.168.1.2\"', 'IPv6(dst=\"1212:910B:6666:3457:8295:3333:1800:2929\",src=\"3434:910A:2222:5498:8475:1111:3900:2020\"'))\n+ .replace('IP(dst=\"192.168.1.1\",src=\"192.168.1.2\"', 'IPv6(dst=\"1212:910B:6666:3457:8295:3333:1800:2929\",src=\"3434:910A:2222:5498:8475:1111:3900:2020\"')\n+ .replace('rss types ipv4', 'rss types ipv6'))\n for element in mac_ipv4_gtpu_eh_without_ul_dl_ipv4_tcp_toeplitz]\n \n mac_ipv4_gtpu_eh_dl_ipv4_udp_basic = 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)'\n@@ -2935,11 +3032,42 @@ mac_ipv4_gtpu_eh_dl_ipv4_udp_gtpu = {\n ]\n }\n \n+mac_ipv4_gtpu_eh_dl_ipv4_udp_ipv4 = {\n+ 'sub_casename': 'mac_ipv4_gtpu_eh_dl_ipv4_udp_ipv4',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv4_udp_basic,\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv4_udp_basic.replace('192.168.0.1', '192.168.1.1'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv4_udp_basic.replace('192.168.0.2', '192.168.1.2'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv4_udp_basic.replace('sport=22', 'sport=32')\n+ .replace('dport=23', 'dport=33'),\n+ 'action': 'check_hash_same',\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv4_udp_basic,\n+ 'action': 'check_no_hash',\n+ },\n+ ]\n+}\n+\n mac_ipv4_gtpu_eh_dl_ipv4_udp_toeplitz = [mac_ipv4_gtpu_eh_dl_ipv4_udp_l3dst, mac_ipv4_gtpu_eh_dl_ipv4_udp_l3src,\n mac_ipv4_gtpu_eh_dl_ipv4_udp_l3dst_l4src, mac_ipv4_gtpu_eh_dl_ipv4_udp_l3dst_l4dst,\n mac_ipv4_gtpu_eh_dl_ipv4_udp_l3src_l4src, mac_ipv4_gtpu_eh_dl_ipv4_udp_l3src_l4dst,\n mac_ipv4_gtpu_eh_dl_ipv4_udp_l4src, mac_ipv4_gtpu_eh_dl_ipv4_udp_l4dst,\n- mac_ipv4_gtpu_eh_dl_ipv4_udp_all, mac_ipv4_gtpu_eh_dl_ipv4_udp_gtpu]\n+ mac_ipv4_gtpu_eh_dl_ipv4_udp_all, mac_ipv4_gtpu_eh_dl_ipv4_udp_gtpu, mac_ipv4_gtpu_eh_dl_ipv4_udp_ipv4]\n \n mac_ipv4_gtpu_eh_ul_ipv4_udp_toeplitz = [eval(str(element).replace('(type=1', '(type=2')\n .replace('(type=0', '(type=1').replace('(type=2', '(type=0')\n@@ -3589,11 +3717,42 @@ mac_ipv4_gtpu_eh_dl_ipv6_udp_gtpu = {\n ]\n }\n \n+mac_ipv4_gtpu_eh_dl_ipv6_udp_ipv6 = {\n+ 'sub_casename': 'mac_ipv4_gtpu_eh_dl_ipv6_udp_ipv6',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp / end actions rss types ipv6 end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv6_udp_basic,\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv6_udp_basic.replace('CDCD', '3434'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv6_udp_basic.replace('ABAB', '1212'),\n+ 'action': 'check_hash_different',\n+ },\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv6_udp_basic.replace('sport=22', 'sport=32')\n+ .replace('dport=23', 'dport=33'),\n+ 'action': 'check_hash_same',\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_gtpu_eh_dl_ipv6_udp_basic,\n+ 'action': 'check_no_hash',\n+ },\n+ ]\n+}\n+\n mac_ipv4_gtpu_eh_dl_ipv6_udp_toeplitz = [mac_ipv4_gtpu_eh_dl_ipv6_udp_l3dst, mac_ipv4_gtpu_eh_dl_ipv6_udp_l3src,\n mac_ipv4_gtpu_eh_dl_ipv6_udp_l3dst_l4src, mac_ipv4_gtpu_eh_dl_ipv6_udp_l3dst_l4dst,\n mac_ipv4_gtpu_eh_dl_ipv6_udp_l3src_l4src, mac_ipv4_gtpu_eh_dl_ipv6_udp_l3src_l4dst,\n mac_ipv4_gtpu_eh_dl_ipv6_udp_l4src, mac_ipv4_gtpu_eh_dl_ipv6_udp_l4dst,\n- mac_ipv4_gtpu_eh_dl_ipv6_udp_all, mac_ipv4_gtpu_eh_dl_ipv6_udp_gtpu]\n+ mac_ipv4_gtpu_eh_dl_ipv6_udp_all, mac_ipv4_gtpu_eh_dl_ipv6_udp_gtpu, mac_ipv4_gtpu_eh_dl_ipv6_udp_ipv6]\n mac_ipv4_gtpu_eh_ul_ipv6_udp_toeplitz = [eval(str(element).replace('(type=1', '(type=2')\n .replace('(type=0', '(type=1').replace('(type=2', '(type=0')\n .replace('gtp_psc pdu_t is 0', 'gtp_psc pdu_t is 1')\n@@ -3944,15 +4103,27 @@ mac_ipv4_gtpu_eh_ipv4_without_ul_dl_symmetric = {\n 'post-test': [\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/(\"X\"*480)',\n- 'action': {'check_no_hash_or_different': 'ipv4-nonfrag'},\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/(\"X\"*480)',\n+ 'action': 'check_hash_different',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\",frag=6)/(\"X\"*480)',\n- 'action': {'check_no_hash_or_different': 'ipv4-frag'},\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\",frag=6)/(\"X\"*480)',\n+ 'action': 'check_hash_different',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/ICMP()/(\"X\"*480)',\n- 'action': {'check_no_hash_or_different': 'ipv4-icmp'},\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/ICMP()/(\"X\"*480)',\n+ 'action': 'check_hash_different',\n },\n ],\n }\n@@ -4067,11 +4238,19 @@ mac_ipv4_gtpu_eh_ipv4_udp_without_ul_dl_symmetric = {\n 'post-test': [\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)',\n- 'action': {'check_hash_different', 'udp-dl'},\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)',\n+ 'action': 'check_hash_different',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)',\n- 'action': {'check_hash_different', 'udp-ul'},\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)',\n+ 'action': 'check_hash_different',\n },\n ],\n }\n@@ -4184,11 +4363,19 @@ mac_ipv4_gtpu_eh_ipv4_tcp_without_ul_dl_symmetric = {\n 'post-test': [\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)',\n- 'action': {'check_hash_different', 'udp-dl'},\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/TCP(sport=22, dport=23)/(\"X\"*480)',\n+ 'action': 'check_hash_different',\n },\n {\n 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34) /IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)',\n- 'action': {'check_hash_different', 'udp-ul'},\n+ 'action': 'save_hash',\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34) /IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/TCP(sport=22, dport=23)/(\"X\"*480)',\n+ 'action': 'check_hash_different',\n },\n ],\n }\n@@ -4602,22 +4789,17 @@ class TestCVLAdvancedRSSGTPU(TestCase):\n negative_rules = [\n 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-tcp end key_len 0 queues end / end',\n 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end',\n- 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end',\n 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types udp end key_len 0 queues end / end']\n self.rssprocess.create_rule(rule=negative_rules, check_stats=False, msg=\"Invalid input pattern: Invalid argument\")\n \n def test_symmetric_negative_cases(self):\n rules = [\n- 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types gtpu end key_len 0 queues end / end',\n 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types ipv4 l3-dst-only end key_len 0 queues end / end',\n 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end',\n 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end',\n- 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end',\n 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv6-tcp end key_len 0 queues end / end',\n 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types tcp end key_len 0 queues end / end',\n- 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-tcp l3-src-only end key_len 0 queues end / end',\n- 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-tcp l4-dst-only end key_len 0 queues end / end',\n- 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues end / end']\n+ 'flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-tcp l3-src-only end key_len 0 queues end / end',]\n self.rssprocess.create_rule(rule=rules, check_stats=False)\n \n def test_global_simple_xor(self):\n", "prefixes": [ "V1" ] }{ "id": 87519, "url": "