From patchwork Fri Feb 20 16:25:05 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?0JjQu9GM0LTQsNGAINCc0YPRgdGC0LDRhNC40L0=?= X-Patchwork-Id: 3563 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 2D21EB783; Fri, 20 Feb 2015 17:25:08 +0100 (CET) Received: from f327.i.mail.ru (f327.i.mail.ru [217.69.140.223]) by dpdk.org (Postfix) with ESMTP id 98111B75D for ; Fri, 20 Feb 2015 17:25:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bk.ru; s=mail; h=Content-Type:Message-ID:Reply-To:Date:MIME-Version:Subject:To:From; bh=0fxzP7UXy2IGuelSxkl20gIELUkk0uYM8ofC+lkXg8A=; b=nCIG44znu5ZWXPDfDiIomK8JDOnI9Hk362591uzOiARuITrgJre9nvjbuVmjMxQxuCqiVLKr7n6lSqcsdwx8lEOYQZgJI0jp0t/MRiqc6O/kVGsHCgD1+Uga8FQldAZHn0OwI/jfI3IhXs936uejiLcchxhvB6pJEGlVDauFiy4=; Received: from [91.246.83.84] (ident=mail) by f327.i.mail.ru with local (envelope-from ) id 1YOqO1-0002XT-AY for dev@dpdk.org; Fri, 20 Feb 2015 19:25:06 +0300 Received: from [91.246.83.84] by e.mail.ru with HTTP; Fri, 20 Feb 2015 19:25:05 +0300 From: =?UTF-8?B?0JjQu9GM0LTQsNGAINCc0YPRgdGC0LDRhNC40L0=?= To: dev@dpdk.org MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-Originating-IP: [91.246.83.84] Date: Fri, 20 Feb 2015 19:25:05 +0300 X-Priority: 3 (Normal) Message-ID: <1424449505.129655495@f327.i.mail.ru> X-Mras: Ok X-Spam: undefined X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] =?utf-8?q?RTE=5FPIPELINE=5FACTION=5FPORT=5FMETA_doesn?= =?utf-8?q?=27t_work_properly?= X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: =?UTF-8?B?0JjQu9GM0LTQsNGAINCc0YPRgdGC0LDRhNC40L0=?= List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi, list! RTE_PIPELINE_ACTION_PORT_META option in rte_pipeline library doesn't work for non-default table entries. Is this bug or correct behaviour? This is my patch, that changes this behaviour: Thanks, Ildar --- a/lib/librte_pipeline/rte_pipeline.c +++ b/lib/librte_pipeline/rte_pipeline.c @@ -999,8 +999,10 @@ rte_pipeline_compute_masks(struct rte_pipeline *p, uint64_t pkts_mask)  {         p->action_mask1[RTE_PIPELINE_ACTION_DROP] = 0;         p->action_mask1[RTE_PIPELINE_ACTION_PORT] = 0; +    p->action_mask1[RTE_PIPELINE_ACTION_PORT_META] = 0;         p->action_mask1[RTE_PIPELINE_ACTION_TABLE] = 0;   +         if ((pkts_mask & (pkts_mask + 1)) == 0) {                 uint64_t n_pkts = __builtin_popcountll(pkts_mask);                 uint32_t i; @@ -1224,6 +1226,7 @@ rte_pipeline_run(struct rte_pipeline *p)                 pkts_mask = RTE_LEN2MASK(n_pkts, uint64_t);                 p->action_mask0[RTE_PIPELINE_ACTION_DROP] = 0;                 p->action_mask0[RTE_PIPELINE_ACTION_PORT] = 0; +        p->action_mask0[RTE_PIPELINE_ACTION_PORT_META] = 0;                 p->action_mask0[RTE_PIPELINE_ACTION_TABLE] = 0;                   /* Input port user actions */ @@ -1300,6 +1303,9 @@ rte_pipeline_run(struct rte_pipeline *p)                                 p->action_mask0[RTE_PIPELINE_ACTION_PORT] |=                                         p->action_mask1[                                                 RTE_PIPELINE_ACTION_PORT]; +                p->action_mask0[RTE_PIPELINE_ACTION_PORT_META] |= +                    p->action_mask1[ +                        RTE_PIPELINE_ACTION_PORT_META];                                 p->action_mask0[RTE_PIPELINE_ACTION_TABLE] |=                                         p->action_mask1[                                                 RTE_PIPELINE_ACTION_TABLE];