From patchwork Tue Jun 26 07:59:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 934710 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="rF5Cbp+x"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41FJQk3LY3z9ryk for ; Tue, 26 Jun 2018 18:01:34 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932129AbeFZIBb (ORCPT ); Tue, 26 Jun 2018 04:01:31 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:55562 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752708AbeFZIB1 (ORCPT ); Tue, 26 Jun 2018 04:01:27 -0400 Received: by mail-wm0-f67.google.com with SMTP id v16-v6so732741wmv.5 for ; Tue, 26 Jun 2018 01:01:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=y/iHoil75MHSH4mA2Vs4N7xjVU5nluizKlyYDs2nZ9k=; b=rF5Cbp+xCjU1nuRGoYcBOZ5ri7wkqSRNQctFAh9AZFymfJQahlbD8Ef1+V6fjYLnIw BRWOsAUYD7N9kgQTaJA66Tig2dQ7XXydqwma7g91U95TbXVqdFTL1TRzRQ0X4DOfbe5R ODsQVo64rOmMBMZnu/GBYtwYg4JsZTyPnVuVvVrhS4IPl8sblLt6TzgGyZxR1OYlQZkc mtKYaXw9DATrBh8MDPzwQnws4OcqJkg1+5ZMdanGgxZCF8dfA4s9GSzgv3JvxXv0plVm HIQpxhf9FGtVjYZxQ41Qj0C75zi7gRA76WFUfCtzlOeDCYleZxkcPWss6KvZo7EhfUT5 jpTA== 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:in-reply-to :references; bh=y/iHoil75MHSH4mA2Vs4N7xjVU5nluizKlyYDs2nZ9k=; b=pDTV+eF0gkaswpODh8m3YxnWoicHu1bmZmefhXUtFQVQuR1GwrYoHmKiEYdWitns7m iOhj+X4p6TeQwN9I2mzL3ED4CJHLYV8zYfJQCOYrVahZJ81r3ERlwoA2xOQeLwbMM897 jbFIWTOQkXCAryvxXdWaiZk2UYKjcUL/6Z53F45zQ02sduaP8mDK+lSW+qLGU+zaDzW3 6ozVPIE57ZAwcGiwprJhgGnIti6SRjeICJX7Fd/Jd0rMbBMjuKpVeO3TVn7AU/6mOzpW R6H/nRROxW+piMI/xtZ000Js6Jb1lv5DSb7KO5YTJYcmgiZRifoCyHRiORnP6v1KJFqw 7biA== X-Gm-Message-State: APt69E1Y7ylkdQeY7593C95G9UqPMtesw7MNZoRqueg+3mdAYFQ7sbKN iF7xppbQDSFAATNK2qzF94DwL4wE X-Google-Smtp-Source: AAOMgpf4m/FIpXED2MxV3wmtBbxP/P4P8PRpBJp/SwEnIGTpGPG9eLRta/tJPEEtw9n5+Fyn/LhuIw== X-Received: by 2002:a1c:d8:: with SMTP id 207-v6mr650849wma.99.1530000086332; Tue, 26 Jun 2018 01:01:26 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id l78-v6sm1856544wmb.39.2018.06.26.01.01.25 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 26 Jun 2018 01:01:25 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, jhs@mojatatu.com, xiyou.wangcong@gmail.com, jakub.kicinski@netronome.com, simon.horman@netronome.com, john.hurley@netronome.com, dsahern@gmail.com, mlxsw@mellanox.com Subject: [patch net-next v2 4/9] net: sched: cls_flower: change fl_init_dissector to accept mask and dissector Date: Tue, 26 Jun 2018 09:59:55 +0200 Message-Id: <20180626080000.12964-5-jiri@resnulli.us> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20180626080000.12964-1-jiri@resnulli.us> References: <20180626080000.12964-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko This function is going to be used for templates as well, so we need to pass the pointer separately. Signed-off-by: Jiri Pirko --- net/sched/cls_flower.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 76c5516357d5..9ce4375b3252 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -793,47 +793,48 @@ static int fl_init_mask_hashtable(struct fl_flow_mask *mask) FL_KEY_SET(keys, cnt, id, member); \ } while(0); -static void fl_init_dissector(struct fl_flow_mask *mask) +static void fl_init_dissector(struct flow_dissector *dissector, + struct fl_flow_key *mask) { struct flow_dissector_key keys[FLOW_DISSECTOR_KEY_MAX]; size_t cnt = 0; FL_KEY_SET(keys, cnt, FLOW_DISSECTOR_KEY_CONTROL, control); FL_KEY_SET(keys, cnt, FLOW_DISSECTOR_KEY_BASIC, basic); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_ETH_ADDRS, eth); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_IPV4_ADDRS, ipv4); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_IPV6_ADDRS, ipv6); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_PORTS, tp); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_IP, ip); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_TCP, tcp); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_ICMP, icmp); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_ARP, arp); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_MPLS, mpls); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_VLAN, vlan); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_ENC_KEYID, enc_key_id); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS, enc_ipv4); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS, enc_ipv6); - if (FL_KEY_IS_MASKED(&mask->key, enc_ipv4) || - FL_KEY_IS_MASKED(&mask->key, enc_ipv6)) + if (FL_KEY_IS_MASKED(mask, enc_ipv4) || + FL_KEY_IS_MASKED(mask, enc_ipv6)) FL_KEY_SET(keys, cnt, FLOW_DISSECTOR_KEY_ENC_CONTROL, enc_control); - FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt, + FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_ENC_PORTS, enc_tp); - skb_flow_dissector_init(&mask->dissector, keys, cnt); + skb_flow_dissector_init(dissector, keys, cnt); } static struct fl_flow_mask *fl_create_new_mask(struct cls_fl_head *head, @@ -852,7 +853,7 @@ static struct fl_flow_mask *fl_create_new_mask(struct cls_fl_head *head, if (err) goto errout_free; - fl_init_dissector(newmask); + fl_init_dissector(&newmask->dissector, &newmask->key); INIT_LIST_HEAD_RCU(&newmask->filters);