Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/110375/?format=api
http://patches.dpdk.org/api/patches/110375/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220427151054.2536675-6-gakhil@marvell.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20220427151054.2536675-6-gakhil@marvell.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20220427151054.2536675-6-gakhil@marvell.com", "date": "2022-04-27T15:10:52", "name": "[v5,5/7] test/security: add more inline IPsec functional cases", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "95778b64c3ad3f57c512f8906a45e71fdb6643d4", "submitter": { "id": 2094, "url": "http://patches.dpdk.org/api/people/2094/?format=api", "name": "Akhil Goyal", "email": "gakhil@marvell.com" }, "delegate": { "id": 6690, "url": "http://patches.dpdk.org/api/users/6690/?format=api", "username": "akhil", "first_name": "akhil", "last_name": "goyal", "email": "gakhil@marvell.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220427151054.2536675-6-gakhil@marvell.com/mbox/", "series": [ { "id": 22697, "url": "http://patches.dpdk.org/api/series/22697/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=22697", "date": "2022-04-27T15:10:47", "name": "app/test: add inline IPsec and reassembly cases", "version": 5, "mbox": "http://patches.dpdk.org/series/22697/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/110375/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/110375/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-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 AB97DA034C;\n\tWed, 27 Apr 2022 17:11:44 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B833D42809;\n\tWed, 27 Apr 2022 17:11:25 +0200 (CEST)", "from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com\n [67.231.148.174])\n by mails.dpdk.org (Postfix) with ESMTP id C947A42809\n for <dev@dpdk.org>; Wed, 27 Apr 2022 17:11:23 +0200 (CEST)", "from pps.filterd (m0045849.ppops.net [127.0.0.1])\n by mx0a-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id\n 23R8jpgP029645;\n Wed, 27 Apr 2022 08:11:22 -0700", "from dc5-exch01.marvell.com ([199.233.59.181])\n by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3fprsqub7b-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Wed, 27 Apr 2022 08:11:22 -0700", "from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Wed, 27 Apr 2022 08:11:20 -0700", "from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend\n Transport; Wed, 27 Apr 2022 08:11:20 -0700", "from localhost.localdomain (unknown [10.28.48.55])\n by maili.marvell.com (Postfix) with ESMTP id 862CF5B694D;\n Wed, 27 Apr 2022 08:11:17 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-transfer-encoding : content-type; s=pfpt0220;\n bh=vZgzobrfT1gdwsQjC2F8VZDP6Xc+UXrM0Jc9mrLmDUk=;\n b=R+H/GZI+WayaebAcd6ujT7nRU42YJvQOfCs4oL9HcFnHHmAwEXmeZPOF/Ph6n6z/F1gY\n eAJmzld4+wzZCcY+LiGO6teLpUIT64989NBHONMmOlZnEayuBUuMUjuG/+bIwfC/kaJv\n z+RUQQXnaLELcPOt6OieZp8PBzlk2xt4mXITn7++rmzOdjIZNc6E9v9uyHTPIcDG7PIG\n mlGoturqabk/OZaPlVJsgJHaMUQGeJTGJIfowB5SWDnVN1ZGLIajNZlTCcY3wxHKLjcL\n En3NuDShfeodxu7cSDxqGFwNjrtLA5esYdC8hIJfhXwoi7BcxmxXQxYQ5bCP6kqS9uad HA==", "From": "Akhil Goyal <gakhil@marvell.com>", "To": "<dev@dpdk.org>", "CC": "<thomas@monjalon.net>, <david.marchand@redhat.com>,\n <hemant.agrawal@nxp.com>, <anoobj@marvell.com>,\n <konstantin.ananyev@intel.com>, <ciara.power@intel.com>,\n <ferruh.yigit@intel.com>, <andrew.rybchenko@oktetlabs.ru>,\n <ndabilpuram@marvell.com>, <vattunuru@marvell.com>, Akhil Goyal\n <gakhil@marvell.com>", "Subject": "[PATCH v5 5/7] test/security: add more inline IPsec functional cases", "Date": "Wed, 27 Apr 2022 20:40:52 +0530", "Message-ID": "<20220427151054.2536675-6-gakhil@marvell.com>", "X-Mailer": "git-send-email 2.25.1", "In-Reply-To": "<20220427151054.2536675-1-gakhil@marvell.com>", "References": "<20220416192530.173895-1-gakhil@marvell.com>\n <20220427151054.2536675-1-gakhil@marvell.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-Proofpoint-ORIG-GUID": "G2hjoupt8hLIAda0PgSbFU-eQKzvbATl", "X-Proofpoint-GUID": "G2hjoupt8hLIAda0PgSbFU-eQKzvbATl", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514\n definitions=2022-04-27_04,2022-04-27_01,2022-02-23_01", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "Added more inline IPsec functional verification cases.\nThese cases do not have known vectors but are verified\nusing encap + decap test for all the algo combinations.\n\nSigned-off-by: Akhil Goyal <gakhil@marvell.com>\n---\n app/test/test_security_inline_proto.c | 517 ++++++++++++++++++++++++++\n 1 file changed, 517 insertions(+)", "diff": "diff --git a/app/test/test_security_inline_proto.c b/app/test/test_security_inline_proto.c\nindex 46636af072..055b753634 100644\n--- a/app/test/test_security_inline_proto.c\n+++ b/app/test/test_security_inline_proto.c\n@@ -1314,6 +1314,394 @@ test_ipsec_inline_proto_display_list(const void *data __rte_unused)\n \treturn test_ipsec_inline_proto_all(&flags);\n }\n \n+static int\n+test_ipsec_inline_proto_udp_encap(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.udp_encap = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_udp_ports_verify(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.udp_encap = true;\n+\tflags.udp_ports_verify = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_err_icv_corrupt(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.icv_corrupt = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_tunnel_dst_addr_verify(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.tunnel_hdr_verify = RTE_SECURITY_IPSEC_TUNNEL_VERIFY_DST_ADDR;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_tunnel_src_dst_addr_verify(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.tunnel_hdr_verify = RTE_SECURITY_IPSEC_TUNNEL_VERIFY_SRC_DST_ADDR;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_inner_ip_csum(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ip_csum = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_inner_l4_csum(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.l4_csum = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_tunnel_v4_in_v4(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ipv6 = false;\n+\tflags.tunnel_ipv6 = false;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_tunnel_v6_in_v6(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ipv6 = true;\n+\tflags.tunnel_ipv6 = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_tunnel_v4_in_v6(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ipv6 = false;\n+\tflags.tunnel_ipv6 = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_tunnel_v6_in_v4(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ipv6 = true;\n+\tflags.tunnel_ipv6 = false;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_transport_v4(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ipv6 = false;\n+\tflags.transport = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_transport_l4_csum(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags = {\n+\t\t.l4_csum = true,\n+\t\t.transport = true,\n+\t};\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_stats(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.stats_success = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_pkt_fragment(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.fragment = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+\n+}\n+\n+static int\n+test_ipsec_inline_proto_copy_df_inner_0(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.df = TEST_IPSEC_COPY_DF_INNER_0;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_copy_df_inner_1(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.df = TEST_IPSEC_COPY_DF_INNER_1;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_set_df_0_inner_1(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.df = TEST_IPSEC_SET_DF_0_INNER_1;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_set_df_1_inner_0(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.df = TEST_IPSEC_SET_DF_1_INNER_0;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv4_copy_dscp_inner_0(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.dscp = TEST_IPSEC_COPY_DSCP_INNER_0;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv4_copy_dscp_inner_1(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.dscp = TEST_IPSEC_COPY_DSCP_INNER_1;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv4_set_dscp_0_inner_1(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.dscp = TEST_IPSEC_SET_DSCP_0_INNER_1;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv4_set_dscp_1_inner_0(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.dscp = TEST_IPSEC_SET_DSCP_1_INNER_0;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv6_copy_dscp_inner_0(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ipv6 = true;\n+\tflags.tunnel_ipv6 = true;\n+\tflags.dscp = TEST_IPSEC_COPY_DSCP_INNER_0;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv6_copy_dscp_inner_1(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ipv6 = true;\n+\tflags.tunnel_ipv6 = true;\n+\tflags.dscp = TEST_IPSEC_COPY_DSCP_INNER_1;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv6_set_dscp_0_inner_1(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ipv6 = true;\n+\tflags.tunnel_ipv6 = true;\n+\tflags.dscp = TEST_IPSEC_SET_DSCP_0_INNER_1;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv6_set_dscp_1_inner_0(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.ipv6 = true;\n+\tflags.tunnel_ipv6 = true;\n+\tflags.dscp = TEST_IPSEC_SET_DSCP_1_INNER_0;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv4_ttl_decrement(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags = {\n+\t\t.dec_ttl_or_hop_limit = true\n+\t};\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_ipv6_hop_limit_decrement(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags = {\n+\t\t.ipv6 = true,\n+\t\t.dec_ttl_or_hop_limit = true\n+\t};\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_iv_gen(const void *data __rte_unused)\n+{\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\n+\tflags.iv_gen = true;\n+\n+\treturn test_ipsec_inline_proto_all(&flags);\n+}\n+\n+static int\n+test_ipsec_inline_proto_known_vec_fragmented(const void *test_data)\n+{\n+\tstruct ipsec_test_data td_outb;\n+\tstruct ipsec_test_flags flags;\n+\n+\tmemset(&flags, 0, sizeof(flags));\n+\tflags.fragment = true;\n+\n+\tmemcpy(&td_outb, test_data, sizeof(td_outb));\n+\n+\t/* Disable IV gen to be able to test with known vectors */\n+\ttd_outb.ipsec_xform.options.iv_gen_disable = 1;\n+\n+\treturn test_ipsec_inline_proto_process(&td_outb, NULL, 1, false,\n+\t\t\t\t\t\t&flags);\n+}\n static struct unit_test_suite inline_ipsec_testsuite = {\n \t.suite_name = \"Inline IPsec Ethernet Device Unit Test Suite\",\n \t.setup = inline_ipsec_testsuite_setup,\n@@ -1360,6 +1748,13 @@ static struct unit_test_suite inline_ipsec_testsuite = {\n \t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n \t\t\ttest_ipsec_inline_proto_known_vec,\n \t\t\t&pkt_null_aes_xcbc),\n+\n+\t\tTEST_CASE_NAMED_WITH_DATA(\n+\t\t\t\"Outbound fragmented packet\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_known_vec_fragmented,\n+\t\t\t&pkt_aes_128_gcm_frag),\n+\n \t\tTEST_CASE_NAMED_WITH_DATA(\n \t\t\t\"Inbound known vector (ESP tunnel mode IPv4 AES-GCM 128)\",\n \t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n@@ -1411,6 +1806,128 @@ static struct unit_test_suite inline_ipsec_testsuite = {\n \t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n \t\t\ttest_ipsec_inline_proto_display_list),\n \n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"UDP encapsulation\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_udp_encap),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"UDP encapsulation ports verification test\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_udp_ports_verify),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Negative test: ICV corruption\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_err_icv_corrupt),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel dst addr verification\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_tunnel_dst_addr_verify),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel src and dst addr verification\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_tunnel_src_dst_addr_verify),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Inner IP checksum\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_inner_ip_csum),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Inner L4 checksum\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_inner_l4_csum),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel IPv4 in IPv4\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_tunnel_v4_in_v4),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel IPv6 in IPv6\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_tunnel_v6_in_v6),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel IPv4 in IPv6\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_tunnel_v4_in_v6),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel IPv6 in IPv4\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_tunnel_v6_in_v4),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Transport IPv4\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_transport_v4),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Transport l4 checksum\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_transport_l4_csum),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Statistics: success\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_stats),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Fragmented packet\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_pkt_fragment),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header copy DF (inner 0)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_copy_df_inner_0),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header copy DF (inner 1)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_copy_df_inner_1),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header set DF 0 (inner 1)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_set_df_0_inner_1),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header set DF 1 (inner 0)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_set_df_1_inner_0),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv4 copy DSCP (inner 0)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv4_copy_dscp_inner_0),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv4 copy DSCP (inner 1)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv4_copy_dscp_inner_1),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv4 set DSCP 0 (inner 1)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv4_set_dscp_0_inner_1),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv4 set DSCP 1 (inner 0)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv4_set_dscp_1_inner_0),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv6 copy DSCP (inner 0)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv6_copy_dscp_inner_0),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv6 copy DSCP (inner 1)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv6_copy_dscp_inner_1),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv6 set DSCP 0 (inner 1)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv6_set_dscp_0_inner_1),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv6 set DSCP 1 (inner 0)\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv6_set_dscp_1_inner_0),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv4 decrement inner TTL\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv4_ttl_decrement),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"Tunnel header IPv6 decrement inner hop limit\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_ipv6_hop_limit_decrement),\n+\t\tTEST_CASE_NAMED_ST(\n+\t\t\t\"IV generation\",\n+\t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n+\t\t\ttest_ipsec_inline_proto_iv_gen),\n+\n+\n \t\tTEST_CASE_NAMED_WITH_DATA(\n \t\t\t\"IPv4 Reassembly with 2 fragments\",\n \t\t\tut_setup_inline_ipsec, ut_teardown_inline_ipsec,\n", "prefixes": [ "v5", "5/7" ] }{ "id": 110375, "url": "