get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 348,
    "url": "https://patches.dpdk.org/api/patches/348/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1410441347-22840-4-git-send-email-bruce.richardson@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": "<1410441347-22840-4-git-send-email-bruce.richardson@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1410441347-22840-4-git-send-email-bruce.richardson@intel.com",
    "date": "2014-09-11T13:15:37",
    "name": "[dpdk-dev,v2,03/13] mbuf: expand ol_flags field to 64-bits",
    "commit_ref": "",
    "pull_url": "",
    "state": "accepted",
    "archived": true,
    "hash": "321e1fab8d852a368a50503b64d150c46e0ae717",
    "submitter": {
        "id": 20,
        "url": "https://patches.dpdk.org/api/people/20/?format=api",
        "name": "Bruce Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1410441347-22840-4-git-send-email-bruce.richardson@intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/348/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/348/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])\r\n\tby dpdk.org (Postfix) with ESMTP id E6EC7B3B2;\r\n\tThu, 11 Sep 2014 15:11:31 +0200 (CEST)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\r\n\tby dpdk.org (Postfix) with ESMTP id BA5F35909\r\n\tfor <dev@dpdk.org>; Thu, 11 Sep 2014 15:11:23 +0200 (CEST)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\r\n\tby orsmga102.jf.intel.com with ESMTP; 11 Sep 2014 06:09:44 -0700",
            "from irvmail001.ir.intel.com ([163.33.26.43])\r\n\tby orsmga002.jf.intel.com with ESMTP; 11 Sep 2014 06:15:49 -0700",
            "from sivswdev02.ir.intel.com (sivswdev02.ir.intel.com\r\n\t[10.237.217.46])\r\n\tby irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id\r\n\ts8BDFmti002140; Thu, 11 Sep 2014 14:15:48 +0100",
            "from sivswdev02.ir.intel.com (localhost [127.0.0.1])\r\n\tby sivswdev02.ir.intel.com with ESMTP id s8BDFmLU023620;\r\n\tThu, 11 Sep 2014 14:15:48 +0100",
            "(from bricha3@localhost)\r\n\tby sivswdev02.ir.intel.com with  id s8BDFmLW023616;\r\n\tThu, 11 Sep 2014 14:15:48 +0100"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.04,505,1406617200\"; d=\"scan'208\";a=\"601443221\"",
        "From": "Bruce Richardson <bruce.richardson@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Thu, 11 Sep 2014 14:15:37 +0100",
        "Message-Id": "<1410441347-22840-4-git-send-email-bruce.richardson@intel.com>",
        "X-Mailer": "git-send-email 1.7.4.1",
        "In-Reply-To": "<1410441347-22840-1-git-send-email-bruce.richardson@intel.com>",
        "References": "<1409759378-10113-1-git-send-email-bruce.richardson@intel.com>\r\n\t<1410441347-22840-1-git-send-email-bruce.richardson@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2 03/13] mbuf: expand ol_flags field to 64-bits",
        "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>,\r\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>,\r\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "The offload flags field (ol_flags) was 16-bits and had no further room\nfor expansion. This patch increases the field size to 64-bits, using up\nthe remaining reserved space in the single-cache-line mbuf.\n\nNOTE: none of the values for existing flags have been changed, i.e. no\nnew numbers have been explicitly reserved between existing flag\ndefinitions.\n\nUpdates in V2:\n* Modified ol_flags field in kni mbuf structure\n\nSigned-off-by: Bruce Richardson <bruce.richardson@intel.com>\n\nUpdated kni data structure\n---\n app/test-pmd/config.c                              |  8 +--\n app/test-pmd/csumonly.c                            |  8 +--\n app/test-pmd/rxonly.c                              |  2 +-\n app/test-pmd/testpmd.h                             |  4 +-\n app/test-pmd/txonly.c                              |  2 +-\n .../linuxapp/eal/include/exec-env/rte_kni_common.h |  4 +-\n lib/librte_mbuf/rte_mbuf.c                         |  2 +-\n lib/librte_mbuf/rte_mbuf.h                         |  4 +-\n lib/librte_pmd_e1000/em_rxtx.c                     | 34 ++++++------\n lib/librte_pmd_e1000/igb_rxtx.c                    | 62 ++++++++++------------\n lib/librte_pmd_i40e/i40e_rxtx.c                    | 31 +++++------\n lib/librte_pmd_ixgbe/ixgbe_rxtx.c                  | 61 ++++++++++-----------\n lib/librte_pmd_ixgbe/ixgbe_rxtx.h                  |  2 +-\n 13 files changed, 106 insertions(+), 118 deletions(-)",
    "diff": "diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c\r\nindex 606e34a..adfa9a8 100644\r\n--- a/app/test-pmd/config.c\r\n+++ b/app/test-pmd/config.c\r\n@@ -1714,14 +1714,14 @@ set_qmap(portid_t port_id, uint8_t is_rx, uint16_t queue_id, uint8_t map_value)\r\n }\r\n \r\n void\r\n-tx_cksum_set(portid_t port_id, uint8_t cksum_mask)\r\n+tx_cksum_set(portid_t port_id, uint64_t ol_flags)\r\n {\r\n-\tuint16_t tx_ol_flags;\r\n+\tuint64_t tx_ol_flags;\r\n \tif (port_id_is_invalid(port_id))\r\n \t\treturn;\r\n \t/* Clear last 4 bits and then set L3/4 checksum mask again */\r\n-\ttx_ol_flags = (uint16_t) (ports[port_id].tx_ol_flags & 0xFFF0);\r\n-\tports[port_id].tx_ol_flags = (uint16_t) ((cksum_mask & 0xf) | tx_ol_flags);\r\n+\ttx_ol_flags = ports[port_id].tx_ol_flags & (~0x0Full);\r\n+\tports[port_id].tx_ol_flags = ((ol_flags & 0xf) | tx_ol_flags);\r\n }\r\n \r\n void\r\ndiff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c\r\nindex 2ce4c42..fcc4876 100644\r\n--- a/app/test-pmd/csumonly.c\r\n+++ b/app/test-pmd/csumonly.c\r\n@@ -217,9 +217,9 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)\r\n \tuint16_t nb_rx;\r\n \tuint16_t nb_tx;\r\n \tuint16_t i;\r\n-\tuint16_t ol_flags;\r\n-\tuint16_t pkt_ol_flags;\r\n-\tuint16_t tx_ol_flags;\r\n+\tuint64_t ol_flags;\r\n+\tuint64_t pkt_ol_flags;\r\n+\tuint64_t tx_ol_flags;\r\n \tuint16_t l4_proto;\r\n \tuint16_t eth_type;\r\n \tuint8_t  l2_len;\r\n@@ -261,7 +261,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)\r\n \t\tmb = pkts_burst[i];\r\n \t\tl2_len  = sizeof(struct ether_hdr);\r\n \t\tpkt_ol_flags = mb->ol_flags;\r\n-\t\tol_flags = (uint16_t) (pkt_ol_flags & (~PKT_TX_L4_MASK));\r\n+\t\tol_flags = (pkt_ol_flags & (~PKT_TX_L4_MASK));\r\n \r\n \t\teth_hdr = rte_pktmbuf_mtod(mb, struct ether_hdr *);\r\n \t\teth_type = rte_be_to_cpu_16(eth_hdr->ether_type);\r\ndiff --git a/app/test-pmd/rxonly.c b/app/test-pmd/rxonly.c\r\nindex 7ba36a1..98c788b 100644\r\n--- a/app/test-pmd/rxonly.c\r\n+++ b/app/test-pmd/rxonly.c\r\n@@ -109,7 +109,7 @@ pkt_burst_receive(struct fwd_stream *fs)\r\n \tstruct rte_mbuf  *mb;\r\n \tstruct ether_hdr *eth_hdr;\r\n \tuint16_t eth_type;\r\n-\tuint16_t ol_flags;\r\n+\tuint64_t ol_flags;\r\n \tuint16_t nb_rx;\r\n \tuint16_t i;\r\n #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES\r\ndiff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h\r\nindex 09923a8..142091d 100644\r\n--- a/app/test-pmd/testpmd.h\r\n+++ b/app/test-pmd/testpmd.h\r\n@@ -141,7 +141,7 @@ struct rte_port {\r\n \tstruct fwd_stream       *rx_stream; /**< Port RX stream, if unique */\r\n \tstruct fwd_stream       *tx_stream; /**< Port TX stream, if unique */\r\n \tunsigned int            socket_id;  /**< For NUMA support */\r\n-\tuint16_t                tx_ol_flags;/**< Offload Flags of TX packets. */\r\n+\tuint64_t                tx_ol_flags;/**< Offload Flags of TX packets. */\r\n \tuint16_t                tx_vlan_id; /**< Tag Id. in TX VLAN packets. */\r\n \tvoid                    *fwd_ctx;   /**< Forwarding mode context */\r\n \tuint64_t                rx_bad_ip_csum; /**< rx pkts with bad ip checksum  */\r\n@@ -494,7 +494,7 @@ void tx_vlan_pvid_set(portid_t port_id, uint16_t vlan_id, int on);\r\n \r\n void set_qmap(portid_t port_id, uint8_t is_rx, uint16_t queue_id, uint8_t map_value);\r\n \r\n-void tx_cksum_set(portid_t port_id, uint8_t cksum_mask);\r\n+void tx_cksum_set(portid_t port_id, uint64_t ol_flags);\r\n \r\n void set_verbose_level(uint16_t vb_level);\r\n void set_tx_pkt_segments(unsigned *seg_lengths, unsigned nb_segs);\r\ndiff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c\r\nindex 2b3f0b9..3d08005 100644\r\n--- a/app/test-pmd/txonly.c\r\n+++ b/app/test-pmd/txonly.c\r\n@@ -203,7 +203,7 @@ pkt_burst_transmit(struct fwd_stream *fs)\r\n \tuint16_t nb_tx;\r\n \tuint16_t nb_pkt;\r\n \tuint16_t vlan_tci;\r\n-\tuint16_t ol_flags;\r\n+\tuint64_t ol_flags;\r\n \tuint8_t  i;\r\n #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES\r\n \tuint64_t start_tsc;\r\ndiff --git a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h\r\nindex f2b502c..ab022bd 100644\r\n--- a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h\r\n+++ b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h\r\n@@ -112,8 +112,8 @@ struct rte_kni_mbuf {\r\n \tchar pad0[10];\r\n \tuint16_t data_off;      /**< Start address of data in segment buffer. */\r\n \tchar pad1[4];\r\n-\tuint16_t ol_flags;      /**< Offload features. */\r\n-\tchar pad2[8];\r\n+\tuint64_t ol_flags;      /**< Offload features. */\r\n+\tchar pad2[2];\r\n \tuint16_t data_len;      /**< Amount of data in segment buffer. */\r\n \tuint32_t pkt_len;       /**< Total pkt len: sum of all segment data_len. */\r\n \tchar pad3[8];\r\ndiff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c\r\nindex 26e36eb..9dfcac3 100644\r\n--- a/lib/librte_mbuf/rte_mbuf.c\r\n+++ b/lib/librte_mbuf/rte_mbuf.c\r\n@@ -174,7 +174,7 @@ rte_pktmbuf_dump(FILE *f, const struct rte_mbuf *m, unsigned dump_len)\r\n \r\n \tfprintf(f, \"dump mbuf at 0x%p, phys=%\"PRIx64\", buf_len=%u\\n\",\r\n \t       m, (uint64_t)m->buf_physaddr, (unsigned)m->buf_len);\r\n-\tfprintf(f, \"  pkt_len=%\"PRIu32\", ol_flags=%\"PRIx16\", nb_segs=%u, \"\r\n+\tfprintf(f, \"  pkt_len=%\"PRIu32\", ol_flags=%\"PRIx64\", nb_segs=%u, \"\r\n \t       \"in_port=%u\\n\", m->pkt_len, m->ol_flags,\r\n \t       (unsigned)m->nb_segs, (unsigned)m->port);\r\n \tnb_segs = m->nb_segs;\r\ndiff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h\r\nindex 413a5a1..0e20e31 100644\r\n--- a/lib/librte_mbuf/rte_mbuf.h\r\n+++ b/lib/librte_mbuf/rte_mbuf.h\r\n@@ -141,9 +141,7 @@ struct rte_mbuf {\r\n \tuint8_t nb_segs;        /**< Number of segments. */\r\n \tuint8_t port;           /**< Input port. */\r\n \r\n-\tuint16_t ol_flags;      /**< Offload features. */\r\n-\tuint16_t reserved0;     /**< Unused field. Required for padding */\r\n-\tuint32_t reserved1;     /**< Unused field. Required for padding */\r\n+\tuint64_t ol_flags;      /**< Offload features. */\r\n \r\n \t/* remaining bytes are set on RX when pulling packet from descriptor */\r\n \tuint16_t reserved2;     /**< Unused field. Required for padding */\r\ndiff --git a/lib/librte_pmd_e1000/em_rxtx.c b/lib/librte_pmd_e1000/em_rxtx.c\r\nindex ed3a6fc..b8423b4 100644\r\n--- a/lib/librte_pmd_e1000/em_rxtx.c\r\n+++ b/lib/librte_pmd_e1000/em_rxtx.c\r\n@@ -168,7 +168,7 @@ union em_vlan_macip {\r\n  * Structure to check if new context need be built\r\n  */\r\n struct em_ctx_info {\r\n-\tuint16_t flags;              /**< ol_flags related to context build. */\r\n+\tuint64_t flags;              /**< ol_flags related to context build. */\r\n \tuint32_t cmp_mask;           /**< compare mask */\r\n \tunion em_vlan_macip hdrlen;  /**< L2 and L3 header lenghts */\r\n };\r\n@@ -238,7 +238,7 @@ struct em_tx_queue {\r\n static inline void\r\n em_set_xmit_ctx(struct em_tx_queue* txq,\r\n \t\tvolatile struct e1000_context_desc *ctx_txd,\r\n-\t\tuint16_t flags,\r\n+\t\tuint64_t flags,\r\n \t\tunion em_vlan_macip hdrlen)\r\n {\r\n \tuint32_t cmp_mask, cmd_len;\r\n@@ -304,7 +304,7 @@ em_set_xmit_ctx(struct em_tx_queue* txq,\r\n  * or create a new context descriptor.\r\n  */\r\n static inline uint32_t\r\n-what_ctx_update(struct em_tx_queue *txq, uint16_t flags,\r\n+what_ctx_update(struct em_tx_queue *txq, uint64_t flags,\r\n \t\tunion em_vlan_macip hdrlen)\r\n {\r\n \t/* If match with the current context */\r\n@@ -377,7 +377,7 @@ em_xmit_cleanup(struct em_tx_queue *txq)\r\n }\r\n \r\n static inline uint32_t\r\n-tx_desc_cksum_flags_to_upper(uint16_t ol_flags)\r\n+tx_desc_cksum_flags_to_upper(uint64_t ol_flags)\r\n {\r\n \tstatic const uint32_t l4_olinfo[2] = {0, E1000_TXD_POPTS_TXSM << 8};\r\n \tstatic const uint32_t l3_olinfo[2] = {0, E1000_TXD_POPTS_IXSM << 8};\r\n@@ -403,12 +403,12 @@ eth_em_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,\r\n \tuint32_t popts_spec;\r\n \tuint32_t cmd_type_len;\r\n \tuint16_t slen;\r\n-\tuint16_t ol_flags;\r\n+\tuint64_t ol_flags;\r\n \tuint16_t tx_id;\r\n \tuint16_t tx_last;\r\n \tuint16_t nb_tx;\r\n \tuint16_t nb_used;\r\n-\tuint16_t tx_ol_req;\r\n+\tuint64_t tx_ol_req;\r\n \tuint32_t ctx;\r\n \tuint32_t new_ctx;\r\n \tunion em_vlan_macip hdrlen;\r\n@@ -438,8 +438,7 @@ eth_em_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,\r\n \t\tol_flags = tx_pkt->ol_flags;\r\n \r\n \t\t/* If hardware offload required */\r\n-\t\ttx_ol_req = (uint16_t)(ol_flags & (PKT_TX_IP_CKSUM |\r\n-\t\t\t\t\t\t\tPKT_TX_L4_MASK));\r\n+\t\ttx_ol_req = (ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_L4_MASK));\r\n \t\tif (tx_ol_req) {\r\n \t\t\thdrlen.f.vlan_tci = tx_pkt->vlan_tci;\r\n \t\t\thdrlen.f.l2_len = tx_pkt->l2_len;\r\n@@ -642,22 +641,21 @@ end_of_tx:\r\n  *\r\n  **********************************************************************/\r\n \r\n-static inline uint16_t\r\n+static inline uint64_t\r\n rx_desc_status_to_pkt_flags(uint32_t rx_status)\r\n {\r\n-\tuint16_t pkt_flags;\r\n+\tuint64_t pkt_flags;\r\n \r\n \t/* Check if VLAN present */\r\n-\tpkt_flags = (uint16_t)((rx_status & E1000_RXD_STAT_VP) ?\r\n-\t\t\t\t\t\tPKT_RX_VLAN_PKT : 0);\r\n+\tpkt_flags = ((rx_status & E1000_RXD_STAT_VP) ?  PKT_RX_VLAN_PKT : 0);\r\n \r\n \treturn pkt_flags;\r\n }\r\n \r\n-static inline uint16_t\r\n+static inline uint64_t\r\n rx_desc_error_to_pkt_flags(uint32_t rx_error)\r\n {\r\n-\tuint16_t pkt_flags = 0;\r\n+\tuint64_t pkt_flags = 0;\r\n \r\n \tif (rx_error & E1000_RXD_ERR_IPE)\r\n \t\tpkt_flags |= PKT_RX_IP_CKSUM_BAD;\r\n@@ -801,8 +799,8 @@ eth_em_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\r\n \t\trxm->port = rxq->port_id;\r\n \r\n \t\trxm->ol_flags = rx_desc_status_to_pkt_flags(status);\r\n-\t\trxm->ol_flags = (uint16_t)(rxm->ol_flags |\r\n-\t\t\t\trx_desc_error_to_pkt_flags(rxd.errors));\r\n+\t\trxm->ol_flags = rxm->ol_flags |\r\n+\t\t\t\trx_desc_error_to_pkt_flags(rxd.errors);\r\n \r\n \t\t/* Only valid if PKT_RX_VLAN_PKT set in pkt_flags */\r\n \t\trxm->vlan_tci = rte_le_to_cpu_16(rxd.special);\r\n@@ -1027,8 +1025,8 @@ eth_em_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\r\n \t\tfirst_seg->port = rxq->port_id;\r\n \r\n \t\tfirst_seg->ol_flags = rx_desc_status_to_pkt_flags(status);\r\n-\t\tfirst_seg->ol_flags = (uint16_t)(first_seg->ol_flags |\r\n-\t\t\t\t\trx_desc_error_to_pkt_flags(rxd.errors));\r\n+\t\tfirst_seg->ol_flags = first_seg->ol_flags |\r\n+\t\t\t\t\trx_desc_error_to_pkt_flags(rxd.errors);\r\n \r\n \t\t/* Only valid if PKT_RX_VLAN_PKT set in pkt_flags */\r\n \t\trxm->vlan_tci = rte_le_to_cpu_16(rxd.special);\r\ndiff --git a/lib/librte_pmd_e1000/igb_rxtx.c b/lib/librte_pmd_e1000/igb_rxtx.c\r\nindex 41727e7..56d1dfc 100644\r\n--- a/lib/librte_pmd_e1000/igb_rxtx.c\r\n+++ b/lib/librte_pmd_e1000/igb_rxtx.c\r\n@@ -175,7 +175,7 @@ union igb_vlan_macip {\r\n  * Strucutre to check if new context need be built\r\n  */\r\n struct igb_advctx_info {\r\n-\tuint16_t flags;           /**< ol_flags related to context build. */\r\n+\tuint64_t flags;           /**< ol_flags related to context build. */\r\n \tuint32_t cmp_mask;        /**< compare mask for vlan_macip_lens */\r\n \tunion igb_vlan_macip vlan_macip_lens; /**< vlan, mac & ip length. */\r\n };\r\n@@ -243,7 +243,7 @@ struct igb_tx_queue {\r\n static inline void\r\n igbe_set_xmit_ctx(struct igb_tx_queue* txq,\r\n \t\tvolatile struct e1000_adv_tx_context_desc *ctx_txd,\r\n-\t\tuint16_t ol_flags, uint32_t vlan_macip_lens)\r\n+\t\tuint64_t ol_flags, uint32_t vlan_macip_lens)\r\n {\r\n \tuint32_t type_tucmd_mlhl;\r\n \tuint32_t mss_l4len_idx;\r\n@@ -308,7 +308,7 @@ igbe_set_xmit_ctx(struct igb_tx_queue* txq,\r\n  * or create a new context descriptor.\r\n  */\r\n static inline uint32_t\r\n-what_advctx_update(struct igb_tx_queue *txq, uint16_t flags,\r\n+what_advctx_update(struct igb_tx_queue *txq, uint64_t flags,\r\n \t\tuint32_t vlan_macip_lens)\r\n {\r\n \t/* If match with the current context */\r\n@@ -331,7 +331,7 @@ what_advctx_update(struct igb_tx_queue *txq, uint16_t flags,\r\n }\r\n \r\n static inline uint32_t\r\n-tx_desc_cksum_flags_to_olinfo(uint16_t ol_flags)\r\n+tx_desc_cksum_flags_to_olinfo(uint64_t ol_flags)\r\n {\r\n \tstatic const uint32_t l4_olinfo[2] = {0, E1000_ADVTXD_POPTS_TXSM};\r\n \tstatic const uint32_t l3_olinfo[2] = {0, E1000_ADVTXD_POPTS_IXSM};\r\n@@ -343,7 +343,7 @@ tx_desc_cksum_flags_to_olinfo(uint16_t ol_flags)\r\n }\r\n \r\n static inline uint32_t\r\n-tx_desc_vlan_flags_to_cmdtype(uint16_t ol_flags)\r\n+tx_desc_vlan_flags_to_cmdtype(uint64_t ol_flags)\r\n {\r\n \tstatic uint32_t vlan_cmd[2] = {0, E1000_ADVTXD_DCMD_VLE};\r\n \treturn vlan_cmd[(ol_flags & PKT_TX_VLAN_PKT) != 0];\r\n@@ -366,12 +366,12 @@ eth_igb_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,\r\n \tuint32_t cmd_type_len;\r\n \tuint32_t pkt_len;\r\n \tuint16_t slen;\r\n-\tuint16_t ol_flags;\r\n+\tuint64_t ol_flags;\r\n \tuint16_t tx_end;\r\n \tuint16_t tx_id;\r\n \tuint16_t tx_last;\r\n \tuint16_t nb_tx;\r\n-\tuint16_t tx_ol_req;\r\n+\tuint64_t tx_ol_req;\r\n \tuint32_t new_ctx = 0;\r\n \tuint32_t ctx = 0;\r\n \r\n@@ -400,7 +400,7 @@ eth_igb_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,\r\n \t\tol_flags = tx_pkt->ol_flags;\r\n \t\tvlan_macip_lens.f.vlan_tci = tx_pkt->vlan_tci;\r\n \t\tvlan_macip_lens.f.l2_l3_len = tx_pkt->l2_l3_len;\r\n-\t\ttx_ol_req = (uint16_t)(ol_flags & PKT_TX_OFFLOAD_MASK);\r\n+\t\ttx_ol_req = ol_flags & PKT_TX_OFFLOAD_MASK;\r\n \r\n \t\t/* If a Context Descriptor need be built . */\r\n \t\tif (tx_ol_req) {\r\n@@ -587,12 +587,12 @@ eth_igb_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,\r\n  *  RX functions\r\n  *\r\n  **********************************************************************/\r\n-static inline uint16_t\r\n+static inline uint64_t\r\n rx_desc_hlen_type_rss_to_pkt_flags(uint32_t hl_tp_rs)\r\n {\r\n-\tuint16_t pkt_flags;\r\n+\tuint64_t pkt_flags;\r\n \r\n-\tstatic uint16_t ip_pkt_types_map[16] = {\r\n+\tstatic uint64_t ip_pkt_types_map[16] = {\r\n \t\t0, PKT_RX_IPV4_HDR, PKT_RX_IPV4_HDR_EXT, PKT_RX_IPV4_HDR_EXT,\r\n \t\tPKT_RX_IPV6_HDR, 0, 0, 0,\r\n \t\tPKT_RX_IPV6_HDR_EXT, 0, 0, 0,\r\n@@ -605,34 +605,32 @@ rx_desc_hlen_type_rss_to_pkt_flags(uint32_t hl_tp_rs)\r\n \t\t0, 0, 0, 0,\r\n \t};\r\n \r\n-\tpkt_flags = (uint16_t)((hl_tp_rs & E1000_RXDADV_PKTTYPE_ETQF) ?\r\n+\tpkt_flags = (hl_tp_rs & E1000_RXDADV_PKTTYPE_ETQF) ?\r\n \t\t\t\tip_pkt_etqf_map[(hl_tp_rs >> 4) & 0x07] :\r\n-\t\t\t\tip_pkt_types_map[(hl_tp_rs >> 4) & 0x0F]);\r\n+\t\t\t\tip_pkt_types_map[(hl_tp_rs >> 4) & 0x0F];\r\n #else\r\n-\tpkt_flags = (uint16_t)((hl_tp_rs & E1000_RXDADV_PKTTYPE_ETQF) ? 0 :\r\n-\t\t\t\tip_pkt_types_map[(hl_tp_rs >> 4) & 0x0F]);\r\n+\tpkt_flags = (hl_tp_rs & E1000_RXDADV_PKTTYPE_ETQF) ? 0 :\r\n+\t\t\t\tip_pkt_types_map[(hl_tp_rs >> 4) & 0x0F];\r\n #endif\r\n-\treturn (uint16_t)(pkt_flags | (((hl_tp_rs & 0x0F) == 0) ?\r\n-\t\t\t\t\t\t0 : PKT_RX_RSS_HASH));\r\n+\treturn pkt_flags | (((hl_tp_rs & 0x0F) == 0) ?  0 : PKT_RX_RSS_HASH);\r\n }\r\n \r\n-static inline uint16_t\r\n+static inline uint64_t\r\n rx_desc_status_to_pkt_flags(uint32_t rx_status)\r\n {\r\n-\tuint16_t pkt_flags;\r\n+\tuint64_t pkt_flags;\r\n \r\n \t/* Check if VLAN present */\r\n-\tpkt_flags = (uint16_t)((rx_status & E1000_RXD_STAT_VP) ?\r\n-\t\t\t\t\t\tPKT_RX_VLAN_PKT : 0);\r\n+\tpkt_flags = (rx_status & E1000_RXD_STAT_VP) ?  PKT_RX_VLAN_PKT : 0;\r\n \r\n #if defined(RTE_LIBRTE_IEEE1588)\r\n \tif (rx_status & E1000_RXD_STAT_TMST)\r\n-\t\tpkt_flags = (uint16_t)(pkt_flags | PKT_RX_IEEE1588_TMST);\r\n+\t\tpkt_flags = pkt_flags | PKT_RX_IEEE1588_TMST;\r\n #endif\r\n \treturn pkt_flags;\r\n }\r\n \r\n-static inline uint16_t\r\n+static inline uint64_t\r\n rx_desc_error_to_pkt_flags(uint32_t rx_status)\r\n {\r\n \t/*\r\n@@ -640,7 +638,7 @@ rx_desc_error_to_pkt_flags(uint32_t rx_status)\r\n \t * Bit 29: L4I, L4I integrity error\r\n \t */\r\n \r\n-\tstatic uint16_t error_to_pkt_flags_map[4] = {\r\n+\tstatic uint64_t error_to_pkt_flags_map[4] = {\r\n \t\t0,  PKT_RX_L4_CKSUM_BAD, PKT_RX_IP_CKSUM_BAD,\r\n \t\tPKT_RX_IP_CKSUM_BAD | PKT_RX_L4_CKSUM_BAD\r\n \t};\r\n@@ -667,7 +665,7 @@ eth_igb_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\r\n \tuint16_t rx_id;\r\n \tuint16_t nb_rx;\r\n \tuint16_t nb_hold;\r\n-\tuint16_t pkt_flags;\r\n+\tuint64_t pkt_flags;\r\n \r\n \tnb_rx = 0;\r\n \tnb_hold = 0;\r\n@@ -786,10 +784,8 @@ eth_igb_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\r\n \t\trxm->vlan_tci = rte_le_to_cpu_16(rxd.wb.upper.vlan);\r\n \r\n \t\tpkt_flags = rx_desc_hlen_type_rss_to_pkt_flags(hlen_type_rss);\r\n-\t\tpkt_flags = (uint16_t)(pkt_flags |\r\n-\t\t\t\trx_desc_status_to_pkt_flags(staterr));\r\n-\t\tpkt_flags = (uint16_t)(pkt_flags |\r\n-\t\t\t\trx_desc_error_to_pkt_flags(staterr));\r\n+\t\tpkt_flags = pkt_flags | rx_desc_status_to_pkt_flags(staterr);\r\n+\t\tpkt_flags = pkt_flags | rx_desc_error_to_pkt_flags(staterr);\r\n \t\trxm->ol_flags = pkt_flags;\r\n \r\n \t\t/*\r\n@@ -846,7 +842,7 @@ eth_igb_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\r\n \tuint16_t nb_rx;\r\n \tuint16_t nb_hold;\r\n \tuint16_t data_len;\r\n-\tuint16_t pkt_flags;\r\n+\tuint64_t pkt_flags;\r\n \r\n \tnb_rx = 0;\r\n \tnb_hold = 0;\r\n@@ -1022,10 +1018,8 @@ eth_igb_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\r\n \t\tfirst_seg->vlan_tci = rte_le_to_cpu_16(rxd.wb.upper.vlan);\r\n \t\thlen_type_rss = rte_le_to_cpu_32(rxd.wb.lower.lo_dword.data);\r\n \t\tpkt_flags = rx_desc_hlen_type_rss_to_pkt_flags(hlen_type_rss);\r\n-\t\tpkt_flags = (uint16_t)(pkt_flags |\r\n-\t\t\t\trx_desc_status_to_pkt_flags(staterr));\r\n-\t\tpkt_flags = (uint16_t)(pkt_flags |\r\n-\t\t\t\trx_desc_error_to_pkt_flags(staterr));\r\n+\t\tpkt_flags = pkt_flags | rx_desc_status_to_pkt_flags(staterr);\r\n+\t\tpkt_flags = pkt_flags | rx_desc_error_to_pkt_flags(staterr);\r\n \t\tfirst_seg->ol_flags = pkt_flags;\r\n \r\n \t\t/* Prefetch data of first segment, if configured to do so. */\r\ndiff --git a/lib/librte_pmd_i40e/i40e_rxtx.c b/lib/librte_pmd_i40e/i40e_rxtx.c\r\nindex 25a5f6f..cd05654 100644\r\n--- a/lib/librte_pmd_i40e/i40e_rxtx.c\r\n+++ b/lib/librte_pmd_i40e/i40e_rxtx.c\r\n@@ -91,27 +91,27 @@ static uint16_t i40e_xmit_pkts_simple(void *tx_queue,\r\n \t\t\t\t      uint16_t nb_pkts);\r\n \r\n /* Translate the rx descriptor status to pkt flags */\r\n-static inline uint16_t\r\n+static inline uint64_t\r\n i40e_rxd_status_to_pkt_flags(uint64_t qword)\r\n {\r\n-\tuint16_t flags;\r\n+\tuint64_t flags;\r\n \r\n \t/* Check if VLAN packet */\r\n-\tflags = (uint16_t)(qword & (1 << I40E_RX_DESC_STATUS_L2TAG1P_SHIFT) ?\r\n-\t\t\t\t\t\t\tPKT_RX_VLAN_PKT : 0);\r\n+\tflags = qword & (1 << I40E_RX_DESC_STATUS_L2TAG1P_SHIFT) ?\r\n+\t\t\t\t\t\t\tPKT_RX_VLAN_PKT : 0;\r\n \r\n \t/* Check if RSS_HASH */\r\n-\tflags |= (uint16_t)((((qword >> I40E_RX_DESC_STATUS_FLTSTAT_SHIFT) &\r\n+\tflags |= (((qword >> I40E_RX_DESC_STATUS_FLTSTAT_SHIFT) &\r\n \t\t\t\t\tI40E_RX_DESC_FLTSTAT_RSS_HASH) ==\r\n-\t\t\tI40E_RX_DESC_FLTSTAT_RSS_HASH) ? PKT_RX_RSS_HASH : 0);\r\n+\t\t\tI40E_RX_DESC_FLTSTAT_RSS_HASH) ? PKT_RX_RSS_HASH : 0;\r\n \r\n \treturn flags;\r\n }\r\n \r\n-static inline uint16_t\r\n+static inline uint64_t\r\n i40e_rxd_error_to_pkt_flags(uint64_t qword)\r\n {\r\n-\tuint16_t flags = 0;\r\n+\tuint64_t flags = 0;\r\n \tuint64_t error_bits = (qword >> I40E_RXD_QW1_ERROR_SHIFT);\r\n \r\n #define I40E_RX_ERR_BITS 0x3f\r\n@@ -143,12 +143,12 @@ i40e_rxd_error_to_pkt_flags(uint64_t qword)\r\n }\r\n \r\n /* Translate pkt types to pkt flags */\r\n-static inline uint16_t\r\n+static inline uint64_t\r\n i40e_rxd_ptype_to_pkt_flags(uint64_t qword)\r\n {\r\n \tuint8_t ptype = (uint8_t)((qword & I40E_RXD_QW1_PTYPE_MASK) >>\r\n \t\t\t\t\tI40E_RXD_QW1_PTYPE_SHIFT);\r\n-\tstatic const uint16_t ip_ptype_map[I40E_MAX_PKT_TYPE] = {\r\n+\tstatic const uint64_t ip_ptype_map[I40E_MAX_PKT_TYPE] = {\r\n \t\t0, /* PTYPE 0 */\r\n \t\t0, /* PTYPE 1 */\r\n \t\t0, /* PTYPE 2 */\r\n@@ -567,7 +567,7 @@ i40e_rx_scan_hw_ring(struct i40e_rx_queue *rxq)\r\n \tuint32_t rx_status;\r\n \tint32_t s[I40E_LOOK_AHEAD], nb_dd;\r\n \tint32_t i, j, nb_rx = 0;\r\n-\tuint16_t pkt_flags;\r\n+\tuint64_t pkt_flags;\r\n \r\n \trxdp = &rxq->rx_ring[rxq->rx_tail];\r\n \trxep = &rxq->sw_ring[rxq->rx_tail];\r\n@@ -789,7 +789,7 @@ i40e_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)\r\n \tuint16_t rx_packet_len;\r\n \tuint16_t rx_id, nb_hold;\r\n \tuint64_t dma_addr;\r\n-\tuint16_t pkt_flags;\r\n+\tuint64_t pkt_flags;\r\n \r\n \tnb_rx = 0;\r\n \tnb_hold = 0;\r\n@@ -896,10 +896,11 @@ i40e_recv_scattered_pkts(void *rx_queue,\r\n \tstruct rte_mbuf *last_seg = rxq->pkt_last_seg;\r\n \tstruct rte_mbuf *nmb, *rxm;\r\n \tuint16_t rx_id = rxq->rx_tail;\r\n-\tuint16_t nb_rx = 0, nb_hold = 0, rx_packet_len, pkt_flags;\r\n+\tuint16_t nb_rx = 0, nb_hold = 0, rx_packet_len;\r\n \tuint32_t rx_status;\r\n \tuint64_t qword1;\r\n \tuint64_t dma_addr;\r\n+\tuint64_t pkt_flags;\r\n \r\n \twhile (nb_rx < nb_pkts) {\r\n \t\trxdp = &rx_ring[rx_id];\r\n@@ -1046,7 +1047,7 @@ i40e_recv_scattered_pkts(void *rx_queue,\r\n \r\n /* Check if the context descriptor is needed for TX offloading */\r\n static inline uint16_t\r\n-i40e_calc_context_desc(uint16_t flags)\r\n+i40e_calc_context_desc(uint64_t flags)\r\n {\r\n \tuint16_t mask = 0;\r\n \r\n@@ -1075,7 +1076,7 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)\r\n \tuint32_t td_offset;\r\n \tuint32_t tx_flags;\r\n \tuint32_t td_tag;\r\n-\tuint16_t ol_flags;\r\n+\tuint64_t ol_flags;\r\n \tuint8_t l2_len;\r\n \tuint8_t l3_len;\r\n \tuint16_t nb_used;\r\ndiff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c\r\nindex c661335..26cb176 100644\r\n--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c\r\n+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c\r\n@@ -358,7 +358,7 @@ ixgbe_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts,\r\n static inline void\r\n ixgbe_set_xmit_ctx(struct igb_tx_queue* txq,\r\n \t\tvolatile struct ixgbe_adv_tx_context_desc *ctx_txd,\r\n-\t\tuint16_t ol_flags, uint32_t vlan_macip_lens)\r\n+\t\tuint64_t ol_flags, uint32_t vlan_macip_lens)\r\n {\r\n \tuint32_t type_tucmd_mlhl;\r\n \tuint32_t mss_l4len_idx;\r\n@@ -421,7 +421,7 @@ ixgbe_set_xmit_ctx(struct igb_tx_queue* txq,\r\n  * or create a new context descriptor.\r\n  */\r\n static inline uint32_t\r\n-what_advctx_update(struct igb_tx_queue *txq, uint16_t flags,\r\n+what_advctx_update(struct igb_tx_queue *txq, uint64_t flags,\r\n \t\tuint32_t vlan_macip_lens)\r\n {\r\n \t/* If match with the current used context */\r\n@@ -444,7 +444,7 @@ what_advctx_update(struct igb_tx_queue *txq, uint16_t flags,\r\n }\r\n \r\n static inline uint32_t\r\n-tx_desc_cksum_flags_to_olinfo(uint16_t ol_flags)\r\n+tx_desc_cksum_flags_to_olinfo(uint64_t ol_flags)\r\n {\r\n \tstatic const uint32_t l4_olinfo[2] = {0, IXGBE_ADVTXD_POPTS_TXSM};\r\n \tstatic const uint32_t l3_olinfo[2] = {0, IXGBE_ADVTXD_POPTS_IXSM};\r\n@@ -456,7 +456,7 @@ tx_desc_cksum_flags_to_olinfo(uint16_t ol_flags)\r\n }\r\n \r\n static inline uint32_t\r\n-tx_desc_vlan_flags_to_cmdtype(uint16_t ol_flags)\r\n+tx_desc_vlan_flags_to_cmdtype(uint64_t ol_flags)\r\n {\r\n \tstatic const uint32_t vlan_cmd[2] = {0, IXGBE_ADVTXD_DCMD_VLE};\r\n \treturn vlan_cmd[(ol_flags & PKT_TX_VLAN_PKT) != 0];\r\n@@ -546,12 +546,12 @@ ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,\r\n \tuint32_t cmd_type_len;\r\n \tuint32_t pkt_len;\r\n \tuint16_t slen;\r\n-\tuint16_t ol_flags;\r\n+\tuint64_t ol_flags;\r\n \tuint16_t tx_id;\r\n \tuint16_t tx_last;\r\n \tuint16_t nb_tx;\r\n \tuint16_t nb_used;\r\n-\tuint16_t tx_ol_req;\r\n+\tuint64_t tx_ol_req;\r\n \tuint32_t ctx = 0;\r\n \tuint32_t new_ctx;\r\n \r\n@@ -583,7 +583,7 @@ ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,\r\n \t\tvlan_macip_lens.f.l2_l3_len = tx_pkt->l2_l3_len;\r\n \r\n \t\t/* If hardware offload required */\r\n-\t\ttx_ol_req = (uint16_t)(ol_flags & PKT_TX_OFFLOAD_MASK);\r\n+\t\ttx_ol_req = ol_flags & PKT_TX_OFFLOAD_MASK;\r\n \t\tif (tx_ol_req) {\r\n \t\t\t/* If new context need be built or reuse the exist ctx. */\r\n \t\t\tctx = what_advctx_update(txq, tx_ol_req,\r\n@@ -813,19 +813,19 @@ end_of_tx:\r\n  *  RX functions\r\n  *\r\n  **********************************************************************/\r\n-static inline uint16_t\r\n+static inline uint64_t\r\n rx_desc_hlen_type_rss_to_pkt_flags(uint32_t hl_tp_rs)\r\n {\r\n \tuint16_t pkt_flags;\r\n \r\n-\tstatic uint16_t ip_pkt_types_map[16] = {\r\n+\tstatic uint64_t ip_pkt_types_map[16] = {\r\n \t\t0, PKT_RX_IPV4_HDR, PKT_RX_IPV4_HDR_EXT, PKT_RX_IPV4_HDR_EXT,\r\n \t\tPKT_RX_IPV6_HDR, 0, 0, 0,\r\n \t\tPKT_RX_IPV6_HDR_EXT, 0, 0, 0,\r\n \t\tPKT_RX_IPV6_HDR_EXT, 0, 0, 0,\r\n \t};\r\n \r\n-\tstatic uint16_t ip_rss_types_map[16] = {\r\n+\tstatic uint64_t ip_rss_types_map[16] = {\r\n \t\t0, PKT_RX_RSS_HASH, PKT_RX_RSS_HASH, PKT_RX_RSS_HASH,\r\n \t\t0, PKT_RX_RSS_HASH, 0, PKT_RX_RSS_HASH,\r\n \t\tPKT_RX_RSS_HASH, 0, 0, 0,\r\n@@ -838,45 +838,44 @@ rx_desc_hlen_type_rss_to_pkt_flags(uint32_t hl_tp_rs)\r\n \t\t0, 0, 0, 0,\r\n \t};\r\n \r\n-\tpkt_flags = (uint16_t) ((hl_tp_rs & IXGBE_RXDADV_PKTTYPE_ETQF) ?\r\n-\t\t\t\tip_pkt_etqf_map[(hl_tp_rs >> 4) & 0x07] :\r\n-\t\t\t\tip_pkt_types_map[(hl_tp_rs >> 4) & 0x0F]);\r\n+\tpkt_flags = (hl_tp_rs & IXGBE_RXDADV_PKTTYPE_ETQF) ?\r\n+\t\t\tip_pkt_etqf_map[(hl_tp_rs >> 4) & 0x07] :\r\n+\t\t\tip_pkt_types_map[(hl_tp_rs >> 4) & 0x0F];\r\n #else\r\n-\tpkt_flags = (uint16_t) ((hl_tp_rs & IXGBE_RXDADV_PKTTYPE_ETQF) ? 0 :\r\n-\t\t\t\tip_pkt_types_map[(hl_tp_rs >> 4) & 0x0F]);\r\n+\tpkt_flags = (hl_tp_rs & IXGBE_RXDADV_PKTTYPE_ETQF) ? 0 :\r\n+\t\t\tip_pkt_types_map[(hl_tp_rs >> 4) & 0x0F];\r\n \r\n #endif\r\n-\treturn (uint16_t)(pkt_flags | ip_rss_types_map[hl_tp_rs & 0xF]);\r\n+\treturn pkt_flags | ip_rss_types_map[hl_tp_rs & 0xF];\r\n }\r\n \r\n-static inline uint16_t\r\n+static inline uint64_t\r\n rx_desc_status_to_pkt_flags(uint32_t rx_status)\r\n {\r\n-\tuint16_t pkt_flags;\r\n+\tuint64_t pkt_flags;\r\n \r\n \t/*\r\n \t * Check if VLAN present only.\r\n \t * Do not check whether L3/L4 rx checksum done by NIC or not,\r\n \t * That can be found from rte_eth_rxmode.hw_ip_checksum flag\r\n \t */\r\n-\tpkt_flags = (uint16_t)((rx_status & IXGBE_RXD_STAT_VP) ?\r\n-\t\t\t\t\t\tPKT_RX_VLAN_PKT : 0);\r\n+\tpkt_flags = (rx_status & IXGBE_RXD_STAT_VP) ?  PKT_RX_VLAN_PKT : 0;\r\n \r\n #ifdef RTE_LIBRTE_IEEE1588\r\n \tif (rx_status & IXGBE_RXD_STAT_TMST)\r\n-\t\tpkt_flags = (uint16_t)(pkt_flags | PKT_RX_IEEE1588_TMST);\r\n+\t\tpkt_flags = pkt_flags | PKT_RX_IEEE1588_TMST;\r\n #endif\r\n \treturn pkt_flags;\r\n }\r\n \r\n-static inline uint16_t\r\n+static inline uint64_t\r\n rx_desc_error_to_pkt_flags(uint32_t rx_status)\r\n {\r\n \t/*\r\n \t * Bit 31: IPE, IPv4 checksum error\r\n \t * Bit 30: L4I, L4I integrity error\r\n \t */\r\n-\tstatic uint16_t error_to_pkt_flags_map[4] = {\r\n+\tstatic uint64_t error_to_pkt_flags_map[4] = {\r\n \t\t0,  PKT_RX_L4_CKSUM_BAD, PKT_RX_IP_CKSUM_BAD,\r\n \t\tPKT_RX_IP_CKSUM_BAD | PKT_RX_L4_CKSUM_BAD\r\n \t};\r\n@@ -947,10 +946,10 @@ ixgbe_rx_scan_hw_ring(struct igb_rx_queue *rxq)\r\n \t\t\tmb->ol_flags  = rx_desc_hlen_type_rss_to_pkt_flags(\r\n \t\t\t\t\trxdp[j].wb.lower.lo_dword.data);\r\n \t\t\t/* reuse status field from scan list */\r\n-\t\t\tmb->ol_flags = (uint16_t)(mb->ol_flags |\r\n-\t\t\t\t\trx_desc_status_to_pkt_flags(s[j]));\r\n-\t\t\tmb->ol_flags = (uint16_t)(mb->ol_flags |\r\n-\t\t\t\t\trx_desc_error_to_pkt_flags(s[j]));\r\n+\t\t\tmb->ol_flags = mb->ol_flags |\r\n+\t\t\t\t\trx_desc_status_to_pkt_flags(s[j]);\r\n+\t\t\tmb->ol_flags = mb->ol_flags |\r\n+\t\t\t\t\trx_desc_error_to_pkt_flags(s[j]);\r\n \t\t}\r\n \r\n \t\t/* Move mbuf pointers from the S/W ring to the stage */\r\n@@ -1143,7 +1142,7 @@ ixgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\r\n \tuint16_t rx_id;\r\n \tuint16_t nb_rx;\r\n \tuint16_t nb_hold;\r\n-\tuint16_t pkt_flags;\r\n+\tuint64_t pkt_flags;\r\n \r\n \tnb_rx = 0;\r\n \tnb_hold = 0;\r\n@@ -1261,10 +1260,8 @@ ixgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\r\n \t\trxm->vlan_tci = rte_le_to_cpu_16(rxd.wb.upper.vlan);\r\n \r\n \t\tpkt_flags = rx_desc_hlen_type_rss_to_pkt_flags(hlen_type_rss);\r\n-\t\tpkt_flags = (uint16_t)(pkt_flags |\r\n-\t\t\t\trx_desc_status_to_pkt_flags(staterr));\r\n-\t\tpkt_flags = (uint16_t)(pkt_flags |\r\n-\t\t\t\trx_desc_error_to_pkt_flags(staterr));\r\n+\t\tpkt_flags = pkt_flags | rx_desc_status_to_pkt_flags(staterr);\r\n+\t\tpkt_flags = pkt_flags | rx_desc_error_to_pkt_flags(staterr);\r\n \t\trxm->ol_flags = pkt_flags;\r\n \r\n \t\tif (likely(pkt_flags & PKT_RX_RSS_HASH))\r\ndiff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.h b/lib/librte_pmd_ixgbe/ixgbe_rxtx.h\r\nindex fd0023e..0d633d6 100644\r\n--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.h\r\n+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.h\r\n@@ -177,7 +177,7 @@ union ixgbe_vlan_macip {\r\n  */\r\n \r\n struct ixgbe_advctx_info {\r\n-\tuint16_t flags;           /**< ol_flags for context build. */\r\n+\tuint64_t flags;           /**< ol_flags for context build. */\r\n \tuint32_t cmp_mask;        /**< compare mask for vlan_macip_lens */\r\n \tunion ixgbe_vlan_macip vlan_macip_lens; /**< vlan, mac ip length. */\r\n };\r\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "03/13"
    ]
}