From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id C4456A0679
	for <public@inbox.dpdk.org>; Tue,  2 Apr 2019 09:23:29 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 8DA1034F3;
	Tue,  2 Apr 2019 09:23:29 +0200 (CEST)
Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com
 [209.85.215.180]) by dpdk.org (Postfix) with ESMTP id C6D995A
 for <dev@dpdk.org>; Tue,  2 Apr 2019 09:23:28 +0200 (CEST)
Received: by mail-pg1-f180.google.com with SMTP id q1so6077954pgv.13
 for <dev@dpdk.org>; Tue, 02 Apr 2019 00:23:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:content-transfer-encoding:mime-version:subject:message-id:date
 :to; bh=lyjzzUj1VXqO2gWJzS+f3YZ1l50y9d8ejQUV+DI7/DI=;
 b=Kpu9tyXohGzFGUc2dwUAS/KgLBQ/Yg+UvbLs8vuXJ9ALJA36xIJZ0cklkgNH8UPdoN
 vdrWr/2+ArI9eEqm6aCpYd5VjDrvpGNgubnRXNwKJTrwKnV1Q05Zhj/rpi+pMfITj9bB
 F+jDAe+0L2PB/wMb6cO9QOjmCzycRggyTq5MsRXH5FA9kHfSFV8MFNVegGctKAai1SWG
 bj0n/AAGQJ21n8TbdO/ObgM5YCmQuEk5I+H1V/Patercb+HlagNgtAxARfRBR5S5MGEZ
 yC7TmxmOk2ManOSj58F2rSF82wwQrketCsY2S0m2sSuGEsBQFl9EyQsREma0LGqtGaA+
 a44A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:content-transfer-encoding:mime-version
 :subject:message-id:date:to;
 bh=lyjzzUj1VXqO2gWJzS+f3YZ1l50y9d8ejQUV+DI7/DI=;
 b=pXTn66RwCB8mksb6p7VYEEgTmwLiVJj6Y6haKodc1MlgpLfij8K+r4DdbkrPDel84M
 jvybztBhfgHGpuM6Dd6YblQAE6/xIhbEdOPlnrGuPtSu8pxSag0UoUHZTUS1AwRWPdFx
 EKAmfGSs9Mn52CLRiVBXfOE2zwEf3Z1+MMOlk1jF8j1wRf6tPU6/JhVp2wfB7XR6sEJh
 iOSiOcpgZ1j+dS7t8dsfKzawWvhAWJLlhllyHD8prZ2ALuOCtuS9MVpRdlY8u7hM+1Ia
 WzfOZFlnibLBHxy/LOFZSH84qekxPxm+nnBDOf/2EWtqW54kdBRxHqZCFfRtHbelWfvb
 LaRg==
X-Gm-Message-State: APjAAAWvoKWYoJ2ewx0m7xxrbzM431VLqYDKziBDXLT43FiY3hEm5dDi
 9vwnG0Fy96TfWrhlL8D3356ywazw
X-Google-Smtp-Source: APXvYqyzkxW/ZtMy9+I/6nyUPMtIUMdiKgjGQacCk6MoFeZbslvaVEFKkXvnMwq9DX8y/kaVxvsWXQ==
X-Received: by 2002:a63:fc43:: with SMTP id r3mr47225418pgk.44.1554189807871; 
 Tue, 02 Apr 2019 00:23:27 -0700 (PDT)
Received: from [10.2.211.140] ([61.120.150.70])
 by smtp.gmail.com with ESMTPSA id o89sm21352006pfi.178.2019.04.02.00.23.26
 for <dev@dpdk.org>
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 02 Apr 2019 00:23:27 -0700 (PDT)
From: benli ye <danielbenliye@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\))
Message-Id: <2D0CB568-B970-408A-9463-5D05D201370A@gmail.com>
Date: Tue, 2 Apr 2019 15:23:22 +0800
To: dev@dpdk.org
X-Mailer: Apple Mail (2.3445.102.3)
Subject: [dpdk-dev] mlx5 FDIR rule comparison issue
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <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>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Message-ID: <20190402072322.Iswwe__tYYpmozD_boVbMStVeRrBKy5iae0OqecAMdA@z>

Hi Developers,

I am adding two FDIR rule (one is for UDP and the other is for TCP) for =
mlx5 pmd driver. The rules are listed below.
    struct rte_eth_fdir_filter filt[MAX_FDIR_PROTO] =3D {
        {
            .input.flow_type =3D RTE_ETH_FLOW_NONFRAG_IPV4_TCP,
            .input.flow.tcp4_flow.ip.dst_ip =3D dip,
            .input.flow.tcp4_flow.dst_port =3D dport,

            .action.behavior =3D RTE_ETH_FDIR_ACCEPT,
            .action.report_status =3D RTE_ETH_FDIR_REPORT_ID,
            .soft_id =3D 0,
        },
        {
            .input.flow_type =3D RTE_ETH_FLOW_NONFRAG_IPV4_UDP,
            .input.flow.udp4_flow.ip.dst_ip =3D dip,
            .input.flow.udp4_flow.dst_port =3D dport,

            .action.behavior =3D RTE_ETH_FDIR_ACCEPT,
            .action.report_status =3D RTE_ETH_FDIR_REPORT_ID,
            .soft_id =3D 1,
        },
    };

However, mlx5 lib prevent me to doing this as when it treats the two =
rules are the same.

I debugged for a while and found flow_fdir_cmp() didn=E2=80=99t compare =
the protocol type in field items of struct mlx5_fdir. So should this be =
a bug for mlx5?

flow_fdir_cmp(const struct mlx5_fdir *f1, const struct mlx5_fdir *f2)
{
	if (FLOW_FDIR_CMP(f1, f2, attr) ||
	    FLOW_FDIR_CMP(f1, f2, l2) ||
	    FLOW_FDIR_CMP(f1, f2, l2_mask) ||
	    FLOW_FDIR_CMP(f1, f2, l3) ||
	    FLOW_FDIR_CMP(f1, f2, l3_mask) ||
	    FLOW_FDIR_CMP(f1, f2, l4) ||
	    FLOW_FDIR_CMP(f1, f2, l4_mask) ||
	    FLOW_FDIR_CMP(f1, f2, actions[0].type))
		return 1;
	if (f1->actions[0].type =3D=3D RTE_FLOW_ACTION_TYPE_QUEUE &&
	    FLOW_FDIR_CMP(f1, f2, queue))
		return 1;
	return 0;
}

Thanks,
Daniel=