get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 17079,
    "url": "http://patches.dpdk.org/api/patches/17079/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1479403997-15437-2-git-send-email-fiona.trahe@intel.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": "<1479403997-15437-2-git-send-email-fiona.trahe@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1479403997-15437-2-git-send-email-fiona.trahe@intel.com",
    "date": "2016-11-17T17:33:17",
    "name": "[dpdk-dev] crypto: remove unused digest-appended feature",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "a8c3b2bee22f75bccefce61d2e0c2b7e3b8d2b46",
    "submitter": {
        "id": 423,
        "url": "http://patches.dpdk.org/api/people/423/?format=api",
        "name": "Fiona Trahe",
        "email": "fiona.trahe@intel.com"
    },
    "delegate": {
        "id": 22,
        "url": "http://patches.dpdk.org/api/users/22/?format=api",
        "username": "pdelarag",
        "first_name": "Pablo",
        "last_name": "de Lara Guarch",
        "email": "pablo.de.lara.guarch@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1479403997-15437-2-git-send-email-fiona.trahe@intel.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/17079/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/17079/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 E0C095684;\n\tThu, 17 Nov 2016 18:33:38 +0100 (CET)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n\tby dpdk.org (Postfix) with ESMTP id BFB9A5680\n\tfor <dev@dpdk.org>; Thu, 17 Nov 2016 18:33:33 +0100 (CET)",
            "from orsmga003.jf.intel.com ([10.7.209.27])\n\tby fmsmga102.fm.intel.com with ESMTP; 17 Nov 2016 09:33:32 -0800",
            "from sivswdev01.ir.intel.com (HELO localhost.localdomain)\n\t([10.237.217.45])\n\tby orsmga003.jf.intel.com with ESMTP; 17 Nov 2016 09:33:30 -0800"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.31,506,1473145200\"; d=\"scan'208\";a=\"902574407\"",
        "From": "Fiona Trahe <fiona.trahe@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "pablo.de.lara.guarch@intel.com, fiona.trahe@intel.com,\n\tjohn.griffin@intel.com, michalx.k.jastrzebski@intel.com,\n\tarkadiuszx.kusztal@intel.com",
        "Date": "Thu, 17 Nov 2016 17:33:17 +0000",
        "Message-Id": "<1479403997-15437-2-git-send-email-fiona.trahe@intel.com>",
        "X-Mailer": "git-send-email 1.7.0.7",
        "In-Reply-To": "<1479403997-15437-1-git-send-email-fiona.trahe@intel.com>",
        "References": "<1479403997-15437-1-git-send-email-fiona.trahe@intel.com>",
        "Subject": "[dpdk-dev] [PATCH] crypto: remove unused digest-appended feature",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <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": "The cryptodev API had specified that if the digest address field was\nleft empty on an authentication operation, then the PMD would assume\nthe digest was appended to the source or destination data.\nThis case was not handled at all by most PMDs and incorrectly handled\nby the QAT PMD.\nAs no bugs were raised, it is assumed to be not needed, so this patch\nremoves it, rather than add handling for the case on all PMDs.\nThe digest can still be appended to the data, but its\naddress must now be provided in the op.\n\nSigned-off-by: Fiona Trahe <fiona.trahe@intel.com>\n---\n drivers/crypto/qat/qat_adf/qat_algs_build_desc.c |  2 ++\n drivers/crypto/qat/qat_crypto.c                  | 18 +-----------------\n lib/librte_cryptodev/rte_crypto_sym.h            | 10 +---------\n 3 files changed, 4 insertions(+), 26 deletions(-)",
    "diff": "diff --git a/drivers/crypto/qat/qat_adf/qat_algs_build_desc.c b/drivers/crypto/qat/qat_adf/qat_algs_build_desc.c\nindex 8900668..f4e24b3 100644\n--- a/drivers/crypto/qat/qat_adf/qat_algs_build_desc.c\n+++ b/drivers/crypto/qat/qat_adf/qat_algs_build_desc.c\n@@ -439,6 +439,8 @@ void qat_alg_init_common_hdr(struct icp_qat_fw_comn_req_hdr *header,\n \t\t\t\tproto);\n \tICP_QAT_FW_LA_UPDATE_STATE_SET(header->serv_specif_flags,\n \t\t\t\t\t   ICP_QAT_FW_LA_NO_UPDATE_STATE);\n+\tICP_QAT_FW_LA_DIGEST_IN_BUFFER_SET(header->serv_specif_flags,\n+\t\t\t\t\tICP_QAT_FW_LA_NO_DIGEST_IN_BUFFER);\n }\n \n int qat_alg_aead_session_create_content_desc_cipher(struct qat_session *cdesc,\ndiff --git a/drivers/crypto/qat/qat_crypto.c b/drivers/crypto/qat/qat_crypto.c\nindex 798cd98..6a6bd2e 100644\n--- a/drivers/crypto/qat/qat_crypto.c\n+++ b/drivers/crypto/qat/qat_crypto.c\n@@ -955,7 +955,6 @@ qat_write_hw_desc_entry(struct rte_crypto_op *op, uint8_t *out_msg)\n \tuint32_t cipher_len = 0, cipher_ofs = 0;\n \tuint32_t auth_len = 0, auth_ofs = 0;\n \tuint32_t min_ofs = 0;\n-\tuint32_t digest_appended = 1;\n \tuint64_t buf_start = 0;\n \n \n@@ -1068,14 +1067,7 @@ qat_write_hw_desc_entry(struct rte_crypto_op *op, uint8_t *out_msg)\n \t\t}\n \t\tmin_ofs = auth_ofs;\n \n-\t\tif (op->sym->auth.digest.phys_addr) {\n-\t\t\tICP_QAT_FW_LA_DIGEST_IN_BUFFER_SET(\n-\t\t\t\t\tqat_req->comn_hdr.serv_specif_flags,\n-\t\t\t\t\tICP_QAT_FW_LA_NO_DIGEST_IN_BUFFER);\n-\t\t\tauth_param->auth_res_addr =\n-\t\t\t\t\top->sym->auth.digest.phys_addr;\n-\t\t\tdigest_appended = 0;\n-\t\t}\n+\t\tauth_param->auth_res_addr = op->sym->auth.digest.phys_addr;\n \n \t\tauth_param->u1.aad_adr = op->sym->auth.aad.phys_addr;\n \n@@ -1126,14 +1118,6 @@ qat_write_hw_desc_entry(struct rte_crypto_op *op, uint8_t *out_msg)\n \t\t(cipher_param->cipher_offset + cipher_param->cipher_length)\n \t\t: (auth_param->auth_off + auth_param->auth_len);\n \n-\tif (do_auth && digest_appended) {\n-\t\tif (ctx->auth_op == ICP_QAT_HW_AUTH_GENERATE)\n-\t\t\tqat_req->comn_mid.dst_length\n-\t\t\t\t\t+= op->sym->auth.digest.length;\n-\t\telse\n-\t\t\tqat_req->comn_mid.src_length\n-\t\t\t\t+= op->sym->auth.digest.length;\n-\t}\n \n \t/* out-of-place operation (OOP) */\n \tif (unlikely(op->sym->m_dst != NULL)) {\ndiff --git a/lib/librte_cryptodev/rte_crypto_sym.h b/lib/librte_cryptodev/rte_crypto_sym.h\nindex d3d38e4..d694723 100644\n--- a/lib/librte_cryptodev/rte_crypto_sym.h\n+++ b/lib/librte_cryptodev/rte_crypto_sym.h\n@@ -541,8 +541,7 @@ struct rte_crypto_sym_op {\n \n \t\tstruct {\n \t\t\tuint8_t *data;\n-\t\t\t/**< If this member of this structure is set this is a\n-\t\t\t * pointer to the location where the digest result\n+\t\t\t/**< This points to the location where the digest result\n \t\t\t * should be inserted (in the case of digest generation)\n \t\t\t * or where the purported digest exists (in the case of\n \t\t\t * digest verification).\n@@ -560,13 +559,6 @@ struct rte_crypto_sym_op {\n \t\t\t * @note\n \t\t\t * For GCM (@ref RTE_CRYPTO_AUTH_AES_GCM), for\n \t\t\t * \"digest result\" read \"authentication tag T\".\n-\t\t\t *\n-\t\t\t * If this member is not set the digest result is\n-\t\t\t * understood to be in the destination buffer for\n-\t\t\t * digest generation, and in the source buffer for\n-\t\t\t * digest verification. The location of the digest\n-\t\t\t * result in this case is immediately following the\n-\t\t\t * region over which the digest is computed.\n \t\t\t */\n \t\t\tphys_addr_t phys_addr;\n \t\t\t/**< Physical address of digest */\n",
    "prefixes": [
        "dpdk-dev"
    ]
}