From patchwork Thu Mar 30 12:45:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?N=C3=A9lio_Laranjeiro?= X-Patchwork-Id: 22897 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 1F637FB83; Thu, 30 Mar 2017 14:46:00 +0200 (CEST) Received: from mail-wr0-f172.google.com (mail-wr0-f172.google.com [209.85.128.172]) by dpdk.org (Postfix) with ESMTP id AD1E8FB79 for ; Thu, 30 Mar 2017 14:45:58 +0200 (CEST) Received: by mail-wr0-f172.google.com with SMTP id w43so59193175wrb.0 for ; Thu, 30 Mar 2017 05:45:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=M1DiPEttPw9OM6eVQubzYInySvCpLZnewZb9fLzQcxw=; b=AscTO3pP7L3Z1UmUL30LfyDDHAiWNuWywNglYF25SMb6CYV36YfaxnRBuSD9m7R71u g5Ez25P5ojkmZUC1aTmxKsWXprKTgu7QtUnaChlFjdZDc42NhtFd//U8E+A5TI2Sti6+ 4L6N1LB4vNKT8IiwJ69HcThSigjsI3JfrTDONHFU9JxSmQuP1bIUKBUMrJWTl6LVD8j5 GNeVyy1tXrsEofPEQSHNG8f4ndwFf9Z0iwwViLkYaC6zNBvSdfq66J7N+rsu2IuyC/1y DKla5pkQvYiGGyeiEKwIuKhCDmX4zzyr+RKf5nZwXLTTR8So0c4+SGBnPLzWd0bZkhgU DuYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=M1DiPEttPw9OM6eVQubzYInySvCpLZnewZb9fLzQcxw=; b=KX+O95jcQwgx5xB3ToorZE3cNxnjzaAMu7UB/9xHstl2L6iB2TEJYQOGwCqoMmm4J2 ejbJi+hLVPvNhDB4OSszv4uo9V/+lPnRUP4kc150ZtOmcj9bNL9NYqqp669UHcpf42PE THCPZBr8sEPgnOhHWrOp1RYulCN1OuDssxYzn5X3Azy+yqUJLuuQiokm1CaiCSvLO5l8 SVvhU0LP7ajL80lK/aWhjsRcY9ObIuYbp6QbKeevSZYIdUfm4SDy99JY7dhN2XOQoz1x QgJurJRreIqoTuGuk0hpbJzTgd57XQU57ytGjdX+75Vgt182k4v2KRWNPWn9wVe9pHTW 1TEw== X-Gm-Message-State: AFeK/H3uBnwA0AWvaod0uFnqoKvIp6Pc6AxQnHwo5awooyssvyqeWft0BUKb4AL9L5n8Smw+ X-Received: by 10.223.139.5 with SMTP id n5mr5639498wra.200.1490877958115; Thu, 30 Mar 2017 05:45:58 -0700 (PDT) Received: from ping.vm.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id t85sm3124632wmt.23.2017.03.30.05.45.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 30 Mar 2017 05:45:57 -0700 (PDT) From: Nelio Laranjeiro To: dev@dpdk.org Cc: Adrien Mazarguil , stable@dpdk.org Date: Thu, 30 Mar 2017 14:45:37 +0200 Message-Id: <8c418fadb50791eecab5f3613b3a7c4920158875.1490877879.git.nelio.laranjeiro@6wind.com> X-Mailer: git-send-email 2.1.4 Subject: [dpdk-dev] [PATCH] net/mlx5: fix mark id retrieval X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Mark ID in the completion queue entry is 24 bits, the remaining 8 bits are reserved and may be nonzero. Do not take them into account when looking for marked packets. CC: stable@dpdk.org Fixes: ea3bc3b1df94 ("net/mlx5: support mark flow action") Signed-off-by: Nelio Laranjeiro Acked-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_prm.h | 7 +++++++ drivers/net/mlx5/mlx5_rxtx.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_prm.h b/drivers/net/mlx5/mlx5_prm.h index 155bdba..608072f 100644 --- a/drivers/net/mlx5/mlx5_prm.h +++ b/drivers/net/mlx5/mlx5_prm.h @@ -138,6 +138,13 @@ /* Inner L4 checksum offload (Tunneled packets only). */ #define MLX5_ETH_WQE_L4_INNER_CSUM (1u << 5) +/* Is flow mark valid. */ +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN +#define MLX5_FLOW_MARK_IS_VALID(val) ((val) & 0xffffff00) +#else +#define MLX5_FLOW_MARK_IS_VALID(val) ((val) & 0xffffff) +#endif + /* INVALID is used by packets matching no flow rules. */ #define MLX5_FLOW_MARK_INVALID 0 diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index a1dd84a..1c5311c 100644 --- a/drivers/net/mlx5/mlx5_rxtx.c +++ b/drivers/net/mlx5/mlx5_rxtx.c @@ -1953,8 +1953,8 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n) pkt->hash.rss = rss_hash_res; pkt->ol_flags = PKT_RX_RSS_HASH; } - if (rxq->mark && (cqe->sop_drop_qpn != - htonl(MLX5_FLOW_MARK_INVALID))) { + if (rxq->mark && + MLX5_FLOW_MARK_IS_VALID(cqe->sop_drop_qpn)) { pkt->ol_flags |= PKT_RX_FDIR; if (cqe->sop_drop_qpn != htonl(MLX5_FLOW_MARK_DEFAULT)) {