From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C058FA0350; Sun, 28 Jun 2020 15:38:12 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 563311C23E; Sun, 28 Jun 2020 15:38:11 +0200 (CEST) Received: from mail-io1-f67.google.com (mail-io1-f67.google.com [209.85.166.67]) by dpdk.org (Postfix) with ESMTP id B16E61C031 for ; Sun, 28 Jun 2020 15:38:09 +0200 (CEST) Received: by mail-io1-f67.google.com with SMTP id v6so756661iob.4 for ; Sun, 28 Jun 2020 06:38:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=SgUebBVerP2iZVt9UBiiycBJYIvyv2zz9yj3ZfL7/6U=; b=MPMlL1oa0PT+p9eFrRmtGVN6hVNI3sqzceqbNPeq9LwgYgiyIV0JJ5I1sCfgwXualW my6fU+4lCoHy33pj+N25y/qymevDPq2cHAjzNn2Ux3fsP8+3jfaxNgGn6fnIx0hU0EOm 6zYgjd6WMsZN24tHbc1/1LAaNCQN7/lZTM9YksvSHHd+kGDNd+QMhKxvKbb/AeExsjBU 2WaoL90IkACBaPsC6NonCfSRA5n9C2SkLL4uJRvqFIkNVoGIt8dqWA9jYE7N6TjhkJdJ Mlf4IMmxuvPSe6R4qPPRholMa+T3hE6jzvplY4QojnF62LUpyTkmTdBaAoJRrX5JreCp kn/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=SgUebBVerP2iZVt9UBiiycBJYIvyv2zz9yj3ZfL7/6U=; b=m9WPIo8zXI/up889AAaHOlqFfZc1z9RXQQXiyIaRU+hk73cUQhWA+4B3SApGWIkp5r T1GmzLcECJT91Jn/rMgJN842JDZ4JeXKTBOGR+KfyrMEa/kOiEFg6iITP7tTYUqCCGtH 3juMcEyOLgWthGqQ/qAIG5pYVsMc8jw2hr1o4Udu6M1Qv8s8zrAtzRb2kYqh5BqIOJ5G qXI7nR7Sf/AYYIqMW8O2OYAi8d4HzEyL8IvTYZMJe9Kw6H76szHNp84tZYJE2JSJ9YcP E2zm6R4urbVCcDOdj3CSf9jPh3oRCKuq52MUaBcugW8ZfV2hfvOlAXOirSA9HZlERR33 1ozg== X-Gm-Message-State: AOAM530QFrI8iOfIZj0JZFJE/B1gww5wvosiKQggoF7O4QVTqWGqGhSa exO6u8vdffm6QeZkIbe3O81G7Qb9NbReQbwYluc= X-Google-Smtp-Source: ABdhPJy97c+PzE9+BrC3FqtxPNKmxFXy00A4etbLIuXa7waBVMu06Bhtq3fKkAtuiMIZuruikRVNt5zEpOegVgq6OjI= X-Received: by 2002:a02:cb59:: with SMTP id k25mr13124888jap.112.1593351488758; Sun, 28 Jun 2020 06:38:08 -0700 (PDT) MIME-Version: 1.0 References: <1593102379-400132-1-git-send-email-jiaweiw@mellanox.com> <17660414.AQMWyGVKyv@thomas> <7719744.nB5e5IOROX@thomas> In-Reply-To: From: Jerin Jacob Date: Sun, 28 Jun 2020 19:07:52 +0530 Message-ID: To: "Jiawei(Jonny) Wang" Cc: Thomas Monjalon , Ori Kam , Slava Ovsiienko , Matan Azrad , dpdk-dev , Raslan Darawsheh , "ian.stokes@intel.com" , "fbl@redhat.com" , Ferruh Yigit , Andrew Rybchenko Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [dpdk-dev] [PATCH 1/8] ethdev: introduce sample action for rte flow 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" On Sun, Jun 28, 2020 at 6:46 PM Jiawei(Jonny) Wang w= rote: > > > On Friday, June 26, 2020 7:10 PM Jerin Jacob Wrot= e: > > > > On Fri, Jun 26, 2020 at 4:16 PM Thomas Monjalon > > wrote: > > > > > > 26/06/2020 12:35, Jerin Jacob: > > > > On Fri, Jun 26, 2020 at 12:59 AM Thomas Monjalon > > wrote: > > > > > > > > > > 25/06/2020 19:55, Jerin Jacob: > > > > > > On Thu, Jun 25, 2020 at 10:20 PM Jiawei Wang > > wrote: > > > > > > > > > > > > > > When using full offload, all traffic will be handled by the > > > > > > > HW, and directed to the requested vf or wire, the control > > > > > > > application loses visibility on the traffic. > > > > > > > So there's a need for an action that will enable the control > > > > > > > application some visibility. > > > > > > > > > > > > > > The solution is introduced a new action that will sample the > > > > > > > incoming traffic and send a duplicated traffic in some > > > > > > > predefined ratio to the application, while the original packe= t > > > > > > > will continue to the target destination. > > > > > > > > > > > > > > The packets sampled equals is '1/ratio', if the ratio value b= e > > > > > > > set to 1 , means that the packets would be completely > > > > > > > mirrored. The sample packet can be assigned with different se= t of > > actions from the original packet. > > > > > > > > > > > > > > In order to support the sample packet in rte_flow, new > > > > > > > rte_flow action definition RTE_FLOW_ACTION_TYPE_SAMPLE and > > > > > > > structure rte_flow_action_sample > > > > > > > > > > > > Isn't mirroring the packet? How about, > > > > > > RTE_FLOW_ACTION_TYPE_MIRROR I am not able to understand, Why > > it is called sample. > > > > > > > > > > Sampling is a partial mirroring. > > > > > > > > I think, By definition, _sampling_ is the _selection_ of items from > > > > a specific group. > > > > I think, _sampling_ is not dictating, what is the real action for > > > > the "selected" items. > > > > One can get confused with the selected ones can be for forward, dro= p > > > > any other action. > > > > > > I see. Good design question (I will let others reply). > > > > > > > So IMO, explicit mirror keyword usage makes it is clear. > > Sampled packet is duplicated from incoming traffic at specific ratio and = will go to different sample actions; > ratio=3D1 is 100% duplication or mirroring. > All packets will continue to go to default flow actions. Functionality is clear from the git commit log(Not from action name). The only question is what would be the appropriate name for this action. RTE_FLOW_ACTION_TYPE_SAMPLE vs RTE_FLOW_ACTION_TYPE_MIRROR > > > > > > > > > Some more related questions: > > > > 1) What is the real use case for ratio? I am not against adding a > > > > ratio attribute if the MLX hardware supports it. It will be good to > > > > know the use case from the application perspective? And what basics > > > > application set ratio !=3D 1? > > > > > > If I understand well, some applications want to check, by picking > > > random packets, that the processing is not failing. > > > > Not clear to me. I will wait for another explanation if any. > > In what basics application set .1 vs .8? > > The real case is like monitor the traffic with full-offload. > While packet hit the sample flow, the matching packets will be sampled an= d sent to specific Queue, > align with OVS sflow probability, user application can set it different v= alue. I understand the use case for mirror and supported in a lot of HW. What I would like to understand is the use case for "ratio"? Is the "ratio" part of OpenFlow spec? Or Is it an MLX hardware feature? > > > > > > > > > > 2) If it is for "rate-limiting" or "policing", why not use rte_mtr > > > > object (rte_mtr.h) via rte_flow action. > > The sample ratio isn=E2=80=99t the same as =E2=80=9Cmeter=E2=80=99, the r= atio of sampling will be calculated with incoming packets mask (every some = packets sampled 1). Then the packets will be duplicated and go to do the ot= her sample actions. What I meant here is , If the ratio is used for rate-limiting then having a cascade rule like RTE_FLOW_ACTION_TYPE_MIRROR, RTE_FLOW_ACTION_TYPE_MTR will do the job. > > > > > > 3) One of the issue for driver developers and application writers > > > > are overlapping APIs. This would overlap with > > > > rte_eth_mirror_rule_set() API. > > > > > > > > Can we deprecate rte_eth_mirror_rule_set() API? It will be a pain > > > > for all to have overlapping APIs. We have not fixed the VLAN filter > > > > API overlap with rte_flow in ethdev. Its being TODO for multiple > > > > releases now. > > > > > > Ooooooooh yes! > > > I think flow-based API is more powerful, and should deprecate old > > > port-based API. > > > > +1 from me. > > > > it is taking too much effort and time to make support duplicate APIs. > > > > > I want to help deprecating such API in 20.11 if possible. > > > > Please start that discussion. In this case, it is clear API overlap wit= h > > rte_eth_mirror_rule_set(). > > We should not have two separate paths for the same function in the same > > ethdev library. > > > > > > > > > > > > > > Full mirroring is sampling 100% packets (ratio =3D 1). > > > > > That's why only one action is enough. > > > > > > > > >