get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/21178/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 21178,
    "url": "https://patches.dpdk.org/api/patches/21178/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/BD6A1439499EDC42898C5257367F506233D91911@SHSMSX101.ccr.corp.intel.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<BD6A1439499EDC42898C5257367F506233D91911@SHSMSX101.ccr.corp.intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/BD6A1439499EDC42898C5257367F506233D91911@SHSMSX101.ccr.corp.intel.com",
    "date": "2017-03-03T06:08:33",
    "name": "[dpdk-dev] crypto/aesni_mb: add AES DOCSIS BPI support",
    "commit_ref": null,
    "pull_url": null,
    "state": "not-applicable",
    "archived": true,
    "hash": "5bf088fb1aa699d61f834f7c9093a2f3ae369995",
    "submitter": {
        "id": 631,
        "url": "https://patches.dpdk.org/api/people/631/?format=api",
        "name": "yang yang",
        "email": "gangx.yang@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/BD6A1439499EDC42898C5257367F506233D91911@SHSMSX101.ccr.corp.intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/21178/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/21178/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 60EE92B93;\n\tFri,  3 Mar 2017 07:08:40 +0100 (CET)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby dpdk.org (Postfix) with ESMTP id DF4352952\n\tfor <dev@dpdk.org>; Fri,  3 Mar 2017 07:08:37 +0100 (CET)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n\tby orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t02 Mar 2017 22:08:36 -0800",
            "from fmsmsx107.amr.corp.intel.com ([10.18.124.205])\n\tby orsmga004.jf.intel.com with ESMTP; 02 Mar 2017 22:08:36 -0800",
            "from fmsmsx154.amr.corp.intel.com (10.18.116.70) by\n\tfmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP\n\tServer (TLS) id 14.3.248.2; Thu, 2 Mar 2017 22:08:36 -0800",
            "from shsmsx103.ccr.corp.intel.com (10.239.4.69) by\n\tFMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP\n\tServer (TLS) id 14.3.248.2; Thu, 2 Mar 2017 22:08:35 -0800",
            "from shsmsx101.ccr.corp.intel.com ([169.254.1.177]) by\n\tSHSMSX103.ccr.corp.intel.com ([10.239.4.69]) with mapi id\n\t14.03.0248.002; Fri, 3 Mar 2017 14:08:33 +0800"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.35,235,1484035200\"; d=\"scan'208\";a=\"63830517\"",
        "From": "\"Yang, GangX\" <gangx.yang@intel.com>",
        "To": "\"dev@dpdk.org\" <dev@dpdk.org>",
        "CC": "\"De Lara Guarch, Pablo\" <pablo.de.lara.guarch@intel.com>, \"Trahe, Fiona\"\n\t<fiona.trahe@intel.com>, \"Doherty, Declan\" <declan.doherty@intel.com>",
        "Thread-Topic": "[dpdk-dev] [PATCH] crypto/aesni_mb: add AES DOCSIS BPI support",
        "Thread-Index": "AQHSfIMXzOac0rm8DkaDrVMGjlb7rqGCzT4A",
        "Date": "Fri, 3 Mar 2017 06:08:33 +0000",
        "Message-ID": "<BD6A1439499EDC42898C5257367F506233D91911@SHSMSX101.ccr.corp.intel.com>",
        "References": "<1485950646-116146-1-git-send-email-pablo.de.lara.guarch@intel.com>",
        "In-Reply-To": "<1485950646-116146-1-git-send-email-pablo.de.lara.guarch@intel.com>",
        "Accept-Language": "en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "x-originating-ip": "[10.239.127.40]",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "quoted-printable",
        "MIME-Version": "1.0",
        "Subject": "Re: [dpdk-dev] [PATCH] crypto/aesni_mb: add AES DOCSIS BPI support",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Tested-by: Yang Gang < gangx.yang@intel.com >\n- Check patch: success\n- Apply patch: success\n- compilation: success\n      OS: fedora23\n      GCC: gcc_x86-64, 5.3.1\n      Commit: dpdk-next-crypto(081fefb01748e7063b1b9692af89d8115ec64632)\n      x86_64-native-linuxapp-gcc: compile pass\n- dts validation:\n-- Test Commit: e5041333988936fdb09d578ec4fb7cb0ce796ecb\n-- OS/Kernel: Fedora23/4.2.3-300.fc23.x86_64\n-- GCC: gcc version 5.3.1\n-- CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 1.80GHz\n-- NIC: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572]\n-- total 2,failed 0 (case1: contain cryptodev_aesni_mb_autotest and all of others cryptodev cases on unit test .\n\t\t case 2: all of the related cases about AES DOCSIS BPI cipher only on l2fwd-crypto test)\n\n-----Original Message-----\nFrom: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Pablo de Lara\nSent: Wednesday, February 01, 2017 8:04 PM\nTo: Doherty, Declan <declan.doherty@intel.com>\nCc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>\nSubject: [dpdk-dev] [PATCH] crypto/aesni_mb: add AES DOCSIS BPI support\n\nUnderlying IPSec Multi buffer library implements DOCSIS specification, so this commit adds support for this new feature.\n\nSigned-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>\n---\nThis patch depends on following patch and it is targetting 17.05 release:\n\nhttp://dpdk.org/dev/patchwork/patch/19732/\n\n\n app/test-crypto-perf/cperf_options_parsing.c   |   5 +\n app/test/test_cryptodev.c                      |  17 +++\n app/test/test_cryptodev_aes_test_vectors.h     | 142 +++++++++++++++++++++++++\n app/test/test_cryptodev_blockcipher.c          |   5 +\n app/test/test_cryptodev_blockcipher.h          |   1 +\n doc/guides/cryptodevs/aesni_mb.rst             |   1 +\n drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c     |   3 +\n drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c |  21 ++++\n examples/l2fwd-crypto/main.c                   |   1 +\n lib/librte_cryptodev/rte_cryptodev.c           |   3 +-\n 10 files changed, 198 insertions(+), 1 deletion(-)\n\n--\n2.7.4",
    "diff": "diff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c\nindex 3b7342d..becc013 100644\n--- a/app/test-crypto-perf/cperf_options_parsing.c\n+++ b/app/test-crypto-perf/cperf_options_parsing.c\n@@ -335,6 +335,11 @@ parse_cipher_algo(struct cperf_options *opts, const char *arg)\n \t\t},\n \t\t{\n \t\t\trte_crypto_cipher_algorithm_strings\n+\t\t\t[RTE_CRYPTO_CIPHER_AES_DOCSISBPI],\n+\t\t\tRTE_CRYPTO_CIPHER_AES_DOCSISBPI\n+\t\t},\n+\t\t{\n+\t\t\trte_crypto_cipher_algorithm_strings\n \t\t\t[RTE_CRYPTO_CIPHER_AES_ECB],\n \t\t\tRTE_CRYPTO_CIPHER_AES_ECB\n \t\t},\ndiff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index 357a92e..377e713 100644\n--- a/app/test/test_cryptodev.c\n+++ b/app/test/test_cryptodev.c\n@@ -1532,6 +1532,22 @@ test_AES_cipheronly_mb_all(void)  }\n \n static int\n+test_AES_docsis_mb_all(void)\n+{\n+\tstruct crypto_testsuite_params *ts_params = &testsuite_params;\n+\tint status;\n+\n+\tstatus = test_blockcipher_all_tests(ts_params->mbuf_pool,\n+\t\tts_params->op_mpool, ts_params->valid_devs[0],\n+\t\tRTE_CRYPTODEV_AESNI_MB_PMD,\n+\t\tBLKCIPHER_AES_DOCSIS_TYPE);\n+\n+\tTEST_ASSERT_EQUAL(status, 0, \"Test failed\");\n+\n+\treturn TEST_SUCCESS;\n+}\n+\n+static int\n test_authonly_mb_all(void)\n {\n \tstruct crypto_testsuite_params *ts_params = &testsuite_params; @@ -7695,6 +7711,7 @@ static struct unit_test_suite cryptodev_aesni_mb_testsuite  = {\n \t.unit_test_cases = {\n \t\tTEST_CASE_ST(ut_setup, ut_teardown, test_AES_chain_mb_all),\n \t\tTEST_CASE_ST(ut_setup, ut_teardown, test_AES_cipheronly_mb_all),\n+\t\tTEST_CASE_ST(ut_setup, ut_teardown, test_AES_docsis_mb_all),\n \t\tTEST_CASE_ST(ut_setup, ut_teardown, test_authonly_mb_all),\n \n \t\tTEST_CASES_END() /**< NULL terminate unit test array */ diff --git a/app/test/test_cryptodev_aes_test_vectors.h b/app/test/test_cryptodev_aes_test_vectors.h\nindex f3fbef1..aacabab 100644\n--- a/app/test/test_cryptodev_aes_test_vectors.h\n+++ b/app/test/test_cryptodev_aes_test_vectors.h\n@@ -56,6 +56,26 @@ static const uint8_t ciphertext64_aes128ctr[] = {\n \t0x79, 0x21, 0x70, 0xA0, 0xF3, 0x00, 0x9C, 0xEE  };\n \n+static const uint8_t plaintext_aes_docsis_bpi_cfb[] = {\n+\t0x00, 0x01, 0x02, 0x88, 0xEE, 0x59, 0x7E };\n+\n+static const uint8_t ciphertext_aes_docsis_bpi_cfb[] = {\n+\t0xFC, 0x68, 0xA3, 0x55, 0x60, 0x37, 0xDC };\n+\n+static const uint8_t plaintext_aes_docsis_bpi_cbc_cfb[] = {\n+\t0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\n+\t0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x91,\n+\t0xD2, 0xD1, 0x9F\n+};\n+\n+static const uint8_t ciphertext_aes_docsis_bpi_cbc_cfb[] = {\n+\t0x9D, 0xD1, 0x67, 0x4B, 0xBA, 0x61, 0x10, 0x1B,\n+\t0x56, 0x75, 0x64, 0x74, 0x36, 0x4F, 0x10, 0x1D,\n+\t0x44, 0xD4, 0x73\n+};\n+\n static const uint8_t plaintext_aes192ctr[] = {\n \t0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8,\n \t0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B, @@ -917,6 +937,89 @@ static const struct blockcipher_test_data aes_test_data_13 = {\n \t}\n };\n \n+/* AES-DOCSIS-BPI test vectors */\n+\n+/* Multiple of AES block size */\n+static const struct blockcipher_test_data aes_test_data_docsis_1 = {\n+\t.crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,\n+\t.cipher_key = {\n+\t\t.data = {\n+\t\t\t0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,\n+\t\t\t0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A\n+\t\t},\n+\t\t.len = 16\n+\t},\n+\t.iv = {\n+\t\t.data = {\n+\t\t\t0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\n+\t\t\t0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F\n+\t\t},\n+\t\t.len = 16\n+\t},\n+\t.plaintext = {\n+\t\t.data = plaintext_aes_common,\n+\t\t.len = 512\n+\t},\n+\t.ciphertext = {\n+\t\t.data = ciphertext512_aes128cbc,\n+\t\t.len = 512\n+\t}\n+};\n+\n+/* Less than AES block size */\n+static const struct blockcipher_test_data aes_test_data_docsis_2 = {\n+\t.crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,\n+\t.cipher_key = {\n+\t\t.data = {\n+\t\t\t0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,\n+\t\t\t0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB\n+\t\t},\n+\t\t.len = 16\n+\t},\n+\t.iv = {\n+\t\t.data = {\n+\t\t\t0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,\n+\t\t\t0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A\n+\t\t},\n+\t\t.len = 16\n+\t},\n+\t.plaintext = {\n+\t\t.data = plaintext_aes_docsis_bpi_cfb,\n+\t\t.len = 7\n+\t},\n+\t.ciphertext = {\n+\t\t.data = ciphertext_aes_docsis_bpi_cfb,\n+\t\t.len = 7\n+\t}\n+};\n+\n+/* Not multiple of AES block size */\n+static const struct blockcipher_test_data aes_test_data_docsis_3 = {\n+\t.crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,\n+\t.cipher_key = {\n+\t\t.data = {\n+\t\t\t0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,\n+\t\t\t0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB\n+\t\t},\n+\t\t.len = 16\n+\t},\n+\t.iv = {\n+\t\t.data = {\n+\t\t\t0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,\n+\t\t\t0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A\n+\t\t},\n+\t\t.len = 16\n+\t},\n+\t.plaintext = {\n+\t\t.data = plaintext_aes_docsis_bpi_cbc_cfb,\n+\t\t.len = 19\n+\t},\n+\t.ciphertext = {\n+\t\t.data = ciphertext_aes_docsis_bpi_cbc_cfb,\n+\t\t.len = 19\n+\t}\n+};\n+\n static const struct blockcipher_test_case aes_chain_test_cases[] = {\n \t{\n \t\t.test_descr = \"AES-128-CTR HMAC-SHA1 Encryption Digest\", @@ -1330,4 +1433,43 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {\n \t},\n };\n \n+static const struct blockcipher_test_case aes_docsis_test_cases[] = {\n+\n+\t{\n+\t\t.test_descr = \"AES-DOCSIS-BPI Full Block Encryption\",\n+\t\t.test_data = &aes_test_data_docsis_1,\n+\t\t.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,\n+\t\t.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB\n+\t},\n+\t{\n+\t\t.test_descr = \"AES-DOCSIS-BPI Runt Block Encryption\",\n+\t\t.test_data = &aes_test_data_docsis_2,\n+\t\t.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,\n+\t\t.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB\n+\t},\n+\t{\n+\t\t.test_descr = \"AES-DOCSIS-BPI Uneven Encryption\",\n+\t\t.test_data = &aes_test_data_docsis_3,\n+\t\t.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,\n+\t\t.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB\n+\t},\n+\t{\n+\t\t.test_descr = \"AES-DOCSIS-BPI Full Block Decryption\",\n+\t\t.test_data = &aes_test_data_docsis_1,\n+\t\t.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,\n+\t\t.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB\n+\t},\n+\t{\n+\t\t.test_descr = \"AES-DOCSIS-BPI Runt Block Decryption\",\n+\t\t.test_data = &aes_test_data_docsis_2,\n+\t\t.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,\n+\t\t.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB\n+\t},\n+\t{\n+\t\t.test_descr = \"AES-DOCSIS-BPI Uneven Decryption\",\n+\t\t.test_data = &aes_test_data_docsis_3,\n+\t\t.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,\n+\t\t.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB\n+\t}\n+};\n #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */ diff --git a/app/test/test_cryptodev_blockcipher.c b/app/test/test_cryptodev_blockcipher.c\nindex da87368..9d39b7d 100644\n--- a/app/test/test_cryptodev_blockcipher.c\n+++ b/app/test/test_cryptodev_blockcipher.c\n@@ -613,6 +613,11 @@ test_blockcipher_all_tests(struct rte_mempool *mbuf_pool,\n \t\tsizeof(aes_cipheronly_test_cases[0]);\n \t\ttcs = aes_cipheronly_test_cases;\n \t\tbreak;\n+\tcase BLKCIPHER_AES_DOCSIS_TYPE:\n+\t\tn_test_cases = sizeof(aes_docsis_test_cases) /\n+\t\tsizeof(aes_docsis_test_cases[0]);\n+\t\ttcs = aes_docsis_test_cases;\n+\t\tbreak;\n \tcase BLKCIPHER_3DES_CHAIN_TYPE:\n \t\tn_test_cases = sizeof(triple_des_chain_test_cases) /\n \t\tsizeof(triple_des_chain_test_cases[0]);\ndiff --git a/app/test/test_cryptodev_blockcipher.h b/app/test/test_cryptodev_blockcipher.h\nindex 053aaa1..6e37121 100644\n--- a/app/test/test_cryptodev_blockcipher.h\n+++ b/app/test/test_cryptodev_blockcipher.h\n@@ -68,6 +68,7 @@\n enum blockcipher_test_type {\n \tBLKCIPHER_AES_CHAIN_TYPE,\t/* use aes_chain_test_cases[] */\n \tBLKCIPHER_AES_CIPHERONLY_TYPE,\t/* use aes_cipheronly_test_cases[] */\n+\tBLKCIPHER_AES_DOCSIS_TYPE,\t/* use aes_docsis_test_cases[] */\n \tBLKCIPHER_3DES_CHAIN_TYPE,\t/* use triple_des_chain_test_cases[] */\n \tBLKCIPHER_3DES_CIPHERONLY_TYPE,\t/* triple_des_cipheronly_test_cases[] */\n \tBLKCIPHER_AUTHONLY_TYPE,\t/* use hash_test_cases[] */\ndiff --git a/doc/guides/cryptodevs/aesni_mb.rst b/doc/guides/cryptodevs/aesni_mb.rst\nindex 8b18eba..3427e41 100644\n--- a/doc/guides/cryptodevs/aesni_mb.rst\n+++ b/doc/guides/cryptodevs/aesni_mb.rst\n@@ -51,6 +51,7 @@ Cipher algorithms:\n * RTE_CRYPTO_CIPHER_AES128_CTR\n * RTE_CRYPTO_CIPHER_AES192_CTR\n * RTE_CRYPTO_CIPHER_AES256_CTR\n+* RTE_CRYPTO_CIPHER_AES_DOCSISBPI\n \n Hash algorithms:\n \ndiff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c\nindex 432d239..15c445f 100644\n--- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c\n+++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c\n@@ -218,6 +218,9 @@ aesni_mb_set_session_cipher_parameters(const struct aesni_mb_ops *mb_ops,\n \tcase RTE_CRYPTO_CIPHER_AES_CTR:\n \t\tsess->cipher.mode = CNTR;\n \t\tbreak;\n+\tcase RTE_CRYPTO_CIPHER_AES_DOCSISBPI:\n+\t\tsess->cipher.mode = DOCSIS_SEC_BPI;\n+\t\tbreak;\n \tdefault:\n \t\tMB_LOG_ERR(\"Unsupported cipher mode parameter\");\n \t\treturn -1;\ndiff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c\nindex 3d49e2a..9c1b826 100644\n--- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c\n+++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c\n@@ -227,6 +227,27 @@ static const struct rte_cryptodev_capabilities aesni_mb_pmd_capabilities[] = {\n \t\t\t}, }\n \t\t}, }\n \t},\n+\t{\t/* AES DOCSIS BPI */\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t{.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,\n+\t\t\t{.cipher = {\n+\t\t\t\t.algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,\n+\t\t\t\t.block_size = 16,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 16,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t},\n+\t\t\t\t.iv_size = {\n+\t\t\t\t\t.min = 16,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t}\n+\t\t\t}, }\n+\t\t}, }\n+\t},\n+\n \tRTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()\n };\n \ndiff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index 43fef59..b592f57 100644\n--- a/examples/l2fwd-crypto/main.c\n+++ b/examples/l2fwd-crypto/main.c\n@@ -365,6 +365,7 @@ fill_supported_algorithm_tables(void)\n \n \tstrcpy(supported_cipher_algo[RTE_CRYPTO_CIPHER_AES_CBC], \"AES_CBC\");\n \tstrcpy(supported_cipher_algo[RTE_CRYPTO_CIPHER_AES_CTR], \"AES_CTR\");\n+\tstrcpy(supported_cipher_algo[RTE_CRYPTO_CIPHER_AES_DOCSISBPI], \n+\"AES_DOCSISBPI\");\n \tstrcpy(supported_cipher_algo[RTE_CRYPTO_CIPHER_AES_GCM], \"AES_GCM\");\n \tstrcpy(supported_cipher_algo[RTE_CRYPTO_CIPHER_NULL], \"NULL\");\n \tstrcpy(supported_cipher_algo[RTE_CRYPTO_CIPHER_SNOW3G_UEA2], \"SNOW3G_UEA2\"); diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c\nindex e557e77..5af7080 100644\n--- a/lib/librte_cryptodev/rte_cryptodev.c\n+++ b/lib/librte_cryptodev/rte_cryptodev.c\n@@ -137,7 +137,8 @@ rte_crypto_cipher_algorithm_strings[] = {\n \n \t[RTE_CRYPTO_CIPHER_KASUMI_F8]\t= \"kasumi-f8\",\n \t[RTE_CRYPTO_CIPHER_SNOW3G_UEA2]\t= \"snow3g-uea2\",\n-\t[RTE_CRYPTO_CIPHER_ZUC_EEA3]\t= \"zuc-eea3\"\n+\t[RTE_CRYPTO_CIPHER_ZUC_EEA3]\t= \"zuc-eea3\",\n+\t[RTE_CRYPTO_CIPHER_AES_DOCSISBPI]\t= \"aes-docsisbpi\"\n };\n \n /**\n",
    "prefixes": [
        "dpdk-dev"
    ]
}