From patchwork Thu Aug 31 15:59:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 808291 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="hY26vb9p"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjnB91p9Yz9sD9 for ; Fri, 1 Sep 2017 01:59:29 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751777AbdHaP71 (ORCPT ); Thu, 31 Aug 2017 11:59:27 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:38642 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751583AbdHaP7Y (ORCPT ); Thu, 31 Aug 2017 11:59:24 -0400 Received: by mail-wr0-f193.google.com with SMTP id j3so17183wrb.5 for ; Thu, 31 Aug 2017 08:59:24 -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=hLv6WNaxRF8sCgkIQrC2nvkXDa0yDQnFmuaODa3BW9o=; b=hY26vb9py9C8YMkwqUu6WdOW01TUctgkF7nPVtZ+gAFyCtZfYEQzd9Z65kUSC72rkb oUAkd3TMu7uOmnuGX5S3MINJI0hrHNTaOGgcAePQBxKbm5f79KxYUgnQ9Ls06VxY8Whk IIUfPsb+fAvEwvP/VP3HtIkVkyIQ1mQOjRNE1tKCwfWrxS/Tss247x4ctLXi7iiX6tg9 bnxlZHLjZAO+JoD/yFv5/UtbmTMJ6o+/lfDUiLTFp8QcKsjFZXW39zOgJ2aSqOu7bhGa JkzrMaBuMaVLktwEMLmq14XWlutoAF5BfHKNW0tdv1h0AfYMVIyuPPGXivhi5uyXoyi3 HN6A== 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=hLv6WNaxRF8sCgkIQrC2nvkXDa0yDQnFmuaODa3BW9o=; b=puEefrIaj8hmt8OsUfkRCW01QnCPsYxnNjOuYSRKA2TjxlTrf8hJYn3EFwhnbDDxTT 0svd+Ei4g1/sDTPvIPTpPbEQ/UNAGxRsvtO848B6SfuHkDMnsvHAB54+S2a3Gmi6qFfb JiJl7MW0WwWX6XFp1L2Vdgt2zglbIqHhTWAgsK3mtCtxQIJLuWW15zDPR0EpjnKLR9cL 5ESbjNazVIT7fCbWxPPMoiyit9PE0y2KxPbK6a6oQkuH913aGQfB9NgWo+GrPkBl+VNe b+oxSIKaqXJCxuInnWSzNGQutIApiwV3UChBTbRi6uBaTkP80aL4TiGVx1iWm2ZZCdGf I/KA== X-Gm-Message-State: AHYfb5grw57EfQhTVgfpZl1BV3grZdofeAhkhmt8CuMRgw97rxMwYgsC 4Lna1rYuNKcvR2H0iBM= X-Google-Smtp-Source: ADKCNb4l51Pu+/GW4Qx7Lf4i5i9BF6rFy/58E7gXY3pqPi0Bi/oTTXY+VPDo1RAL7kp+ZaSONR9LBg== X-Received: by 10.223.150.20 with SMTP id b20mr2632405wra.118.1504195163153; Thu, 31 Aug 2017 08:59:23 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id b125sm404874wma.28.2017.08.31.08.59.22 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Aug 2017 08:59:22 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, arkadis@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next repost 1/8] devlink: Add IPv6 header for dpipe Date: Thu, 31 Aug 2017 17:59:12 +0200 Message-Id: <20170831155919.1366-2-jiri@resnulli.us> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170831155919.1366-1-jiri@resnulli.us> References: <20170831155919.1366-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Arkadi Sharshevsky This will be used by the IPv6 host table which will be introduced in the following patches. The fields in the header are added per-use. This header is global and can be reused by many drivers. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Jiri Pirko --- include/net/devlink.h | 1 + include/uapi/linux/devlink.h | 5 +++++ net/core/devlink.c | 17 +++++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/include/net/devlink.h b/include/net/devlink.h index aaf7178..b9654e1 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -330,6 +330,7 @@ int devlink_dpipe_match_put(struct sk_buff *skb, struct devlink_dpipe_match *match); extern struct devlink_dpipe_header devlink_dpipe_header_ethernet; extern struct devlink_dpipe_header devlink_dpipe_header_ipv4; +extern struct devlink_dpipe_header devlink_dpipe_header_ipv6; #else diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h index 6c17254..0cbca96 100644 --- a/include/uapi/linux/devlink.h +++ b/include/uapi/linux/devlink.h @@ -234,9 +234,14 @@ enum devlink_dpipe_field_ipv4_id { DEVLINK_DPIPE_FIELD_IPV4_DST_IP, }; +enum devlink_dpipe_field_ipv6_id { + DEVLINK_DPIPE_FIELD_IPV6_DST_IP, +}; + enum devlink_dpipe_header_id { DEVLINK_DPIPE_HEADER_ETHERNET, DEVLINK_DPIPE_HEADER_IPV4, + DEVLINK_DPIPE_HEADER_IPV6, }; #endif /* _UAPI_LINUX_DEVLINK_H_ */ diff --git a/net/core/devlink.c b/net/core/devlink.c index cbc4b04..7d430c1 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -63,6 +63,23 @@ struct devlink_dpipe_header devlink_dpipe_header_ipv4 = { }; EXPORT_SYMBOL(devlink_dpipe_header_ipv4); +static struct devlink_dpipe_field devlink_dpipe_fields_ipv6[] = { + { + .name = "destination ip", + .id = DEVLINK_DPIPE_FIELD_IPV6_DST_IP, + .bitwidth = 128, + }, +}; + +struct devlink_dpipe_header devlink_dpipe_header_ipv6 = { + .name = "ipv6", + .id = DEVLINK_DPIPE_HEADER_IPV6, + .fields = devlink_dpipe_fields_ipv6, + .fields_count = ARRAY_SIZE(devlink_dpipe_fields_ipv6), + .global = true, +}; +EXPORT_SYMBOL(devlink_dpipe_header_ipv6); + EXPORT_TRACEPOINT_SYMBOL_GPL(devlink_hwmsg); static LIST_HEAD(devlink_list); From patchwork Thu Aug 31 15:59:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 808298 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="MjCUEFcV"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjnBq3KHKz9sD9 for ; Fri, 1 Sep 2017 02:00:03 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751878AbdHaQAB (ORCPT ); Thu, 31 Aug 2017 12:00:01 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:34014 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751752AbdHaP70 (ORCPT ); Thu, 31 Aug 2017 11:59:26 -0400 Received: by mail-wm0-f68.google.com with SMTP id l19so65712wmi.1 for ; Thu, 31 Aug 2017 08:59:25 -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=MlPTWDAxBBbnI0zt2w9XyXN2fkJZsFAvWi1ULrlFICk=; b=MjCUEFcVzPnxRKKeOyEn9zzfBkeJfAZjDJ+CdIztcOFpEXIFJ2a/adopJfYTC6Cft9 hpmwgnRbnGAuOcJYgwvduvOKO7/PRUIvIwTm5lPkYA/caUYVMlABRX9G9t+2F/BctekP EcoQy2QjSYpNEqPP8OVteSlYpGL4Xd/vMIoW+ZIkZhcZ26rmrceT88kYyACx0yZcA8aO p/jQgtwSJ7064g+BLeKpoZ9wVYtBUXr3Cmw6fe86MAWqtlg4h7k2eINmzrWoysD28JIC 3JMqdvySkGVEey6B0Yl8dwajz/wE1/5eKhdQSBKT62TP+hA7bs23oLDRh+heClgCecT3 TqYQ== 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=MlPTWDAxBBbnI0zt2w9XyXN2fkJZsFAvWi1ULrlFICk=; b=ea+Wiqpd+pnIqb+BkoY/1QrcsplUqqcKftDvzab87gSDWcjM1TYO8GLr34aMSAzXmt HrQV6ntIiLm74TqLO2JeZ2pl6cJcgYflPvl4EBRXOrVJxFl361cSSIWdGSNv6m8/Y+Hh kyrjgzinptloSolxVPvwXBgSN2o9zCWqatSslDsrzmk36/hJlgiLgBrEB677ETOr14qL M8HkS/vcXCbp92Vi9KhPMRjXKbMVOMnEBAu1Z/JEjvS8v1o+KShTSNxkC7uJf59sn9HQ SdelR3NSpgwayb81DURkct2cwgb9dcvzqJk1Fwu6UItWBxZq8Cct1TMZX4eFFLE4Bh53 IQuw== X-Gm-Message-State: AHPjjUhZcpVC3d2o0fbjxbv9HBCydFgvVMF5y+vn9p55ZjGn7EC6KuJs LLGM81gtkDRbAtQn9tg= X-Google-Smtp-Source: ADKCNb7llq3AMbv2oHbDMG8yJMBLlyQv8G9YuJ4qC4kxhXfK7SqGFPQ/qidAxEMXL2ZU/mjI9TpM5Q== X-Received: by 10.28.54.151 with SMTP id y23mr845573wmh.131.1504195164850; Thu, 31 Aug 2017 08:59:24 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id z39sm41025wrz.61.2017.08.31.08.59.23 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Aug 2017 08:59:24 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, arkadis@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next repost 2/8] mlxsw: spectrum_router: Export IPv6 link local address check helper Date: Thu, 31 Aug 2017 17:59:13 +0200 Message-Id: <20170831155919.1366-3-jiri@resnulli.us> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170831155919.1366-1-jiri@resnulli.us> References: <20170831155919.1366-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Arkadi Sharshevsky Neighbors with link local addresses are not offloaded to the host table, yet, the are maintained in the driver for adjacency table usage. When dumping the IPv6 host neighbors this link local neighbors should be ignored. This patch exports this helper for dpipe usage. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 6 ++++-- drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index 377d85c..1f41bcd 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -1396,8 +1396,10 @@ mlxsw_sp_router_neigh_entry_op6(struct mlxsw_sp *mlxsw_sp, mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rauht), rauht_pl); } -static bool mlxsw_sp_neigh_ipv6_ignore(struct neighbour *n) +bool mlxsw_sp_neigh_ipv6_ignore(struct mlxsw_sp_neigh_entry *neigh_entry) { + struct neighbour *n = neigh_entry->key.n; + /* Packets with a link-local destination address are trapped * after LPM lookup and never reach the neighbour table, so * there is no need to program such neighbours to the device. @@ -1420,7 +1422,7 @@ mlxsw_sp_neigh_entry_update(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_router_neigh_entry_op4(mlxsw_sp, neigh_entry, mlxsw_sp_rauht_op(adding)); } else if (neigh_entry->key.n->tbl->family == AF_INET6) { - if (mlxsw_sp_neigh_ipv6_ignore(neigh_entry->key.n)) + if (mlxsw_sp_neigh_ipv6_ignore(neigh_entry)) return; mlxsw_sp_router_neigh_entry_op6(mlxsw_sp, neigh_entry, mlxsw_sp_rauht_op(adding)); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h index fb0f971..5b68616 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h @@ -76,5 +76,6 @@ void mlxsw_sp_neigh_entry_counter_update(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_neigh_entry *neigh_entry, bool adding); +bool mlxsw_sp_neigh_ipv6_ignore(struct mlxsw_sp_neigh_entry *neigh_entry); #endif /* _MLXSW_ROUTER_H_*/ From patchwork Thu Aug 31 15:59:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 808292 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="09pVaYPi"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjnBD6W6qz9sD9 for ; Fri, 1 Sep 2017 01:59:32 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751804AbdHaP7a (ORCPT ); Thu, 31 Aug 2017 11:59:30 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:34675 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751583AbdHaP72 (ORCPT ); Thu, 31 Aug 2017 11:59:28 -0400 Received: by mail-wr0-f193.google.com with SMTP id z91so29436wrc.1 for ; Thu, 31 Aug 2017 08:59: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=iBjJ/WtfN8A6X/1fUR8OTwpoT5wToiTl6IljQ4+At/g=; b=09pVaYPizJKW1VaPtHV9++3GF2hIf4F4mGuGB6fCHPUEaRVZ+Un2Q9ta7gzkgS4O04 BX2kS1IvViYX4cCjOZ1pznF8REBsb37fHSxEYroZXW7VYuq48tQOPHjKexbDFIzGPlKy 5/jelHOpnZmrsD04iPB6h+052lREHVnNWMzrLiULdHdaECjH9Q5fvyCTQ6Tu5ctw2nNa k7Vfv78UR1b6nmesWERJmuXbu0wcwNtsXV/MhDJPwRi8ZF602BUv1iRuz/edXbe3IU9f dhd8CE9B77HFW+exkHoQvxtFsS5HIzmqwrr0j4y4A9+FhfKXHz1oFi04i3Rn5MPG4pJi gw1w== 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=iBjJ/WtfN8A6X/1fUR8OTwpoT5wToiTl6IljQ4+At/g=; b=MHDfu+gp6WZX/4sfnqIaOQUmW95vVGs9AHdT59kQOOePy1CdmkNQDJi4lIxWNIeYNh cL4YPUm4+TZVBw2lLR8AtxeBo976D4eARgKMF81TyyddIjzp6A/yhDaiEJnFvqJby/yz Mgot5zxqQM9LhYTeel76lbbA+6gr2QPQJ0jUFymhClGyZEcCD2+igrJgFlFEKqD+ozXz +1Srxmv3YJhZ+NToXxze0V0gqoR9cG0e53i2EWadQsSjWZP2bhL7N4gBUOglgUC/Z1Zk P6yCHJeUJdB4pgHdjxOqqMw7EQg5gPesPof/gJftLiz5jp4KDCZ9/bGW3bOHtt3uigKz 7MJQ== X-Gm-Message-State: AHYfb5iOZ+BI+GVhAc5dGk6J4ojgdDyIo93/IANIj8RFzC9U+XfG43PE gZKKryRYzpBqlbT8/ew= X-Google-Smtp-Source: ADKCNb5zM6K66m/3uzaG/gzkSTII8iHS2RmzWFLOynItn9/OaZfJb23e6BYfodv486UcD7ssv4OqlQ== X-Received: by 10.223.143.49 with SMTP id p46mr3356421wrb.31.1504195166380; Thu, 31 Aug 2017 08:59:26 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id 7sm63027wrd.22.2017.08.31.08.59.25 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Aug 2017 08:59:25 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, arkadis@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next repost 3/8] mlxsw: spectrum_dpipe: Add IPv6 host table initial support Date: Thu, 31 Aug 2017 17:59:14 +0200 Message-Id: <20170831155919.1366-4-jiri@resnulli.us> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170831155919.1366-1-jiri@resnulli.us> References: <20170831155919.1366-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Arkadi Sharshevsky Add IPv6 host table initial support. The action behavior for both IPv4/6 tables is the same, thus the same action dump op is used. Neighbors with link local address are ignored. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Jiri Pirko --- .../net/ethernet/mellanox/mlxsw/spectrum_dpipe.c | 76 ++++++++++++++++++++-- .../net/ethernet/mellanox/mlxsw/spectrum_dpipe.h | 1 + 2 files changed, 71 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c index 3ea1314..93ba6a6 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c @@ -76,6 +76,7 @@ static struct devlink_dpipe_header *mlxsw_dpipe_headers[] = { &mlxsw_sp_dpipe_header_metadata, &devlink_dpipe_header_ethernet, &devlink_dpipe_header_ipv4, + &devlink_dpipe_header_ipv6, }; static struct devlink_dpipe_headers mlxsw_sp_dpipe_headers = { @@ -328,9 +329,21 @@ static int mlxsw_sp_dpipe_table_host_matches_dump(struct sk_buff *skb, int type) if (err) return err; - match.type = DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT; - match.header = &devlink_dpipe_header_ipv4; - match.field_id = DEVLINK_DPIPE_FIELD_IPV4_DST_IP; + switch (type) { + case AF_INET: + match.type = DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT; + match.header = &devlink_dpipe_header_ipv4; + match.field_id = DEVLINK_DPIPE_FIELD_IPV4_DST_IP; + break; + case AF_INET6: + match.type = DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT; + match.header = &devlink_dpipe_header_ipv6; + match.field_id = DEVLINK_DPIPE_FIELD_IPV6_DST_IP; + break; + default: + WARN_ON(1); + return -EINVAL; + } return devlink_dpipe_match_put(skb, &match); } @@ -342,7 +355,7 @@ mlxsw_sp_dpipe_table_host4_matches_dump(void *priv, struct sk_buff *skb) } static int -mlxsw_sp_dpipe_table_host4_actions_dump(void *priv, struct sk_buff *skb) +mlxsw_sp_dpipe_table_host_actions_dump(void *priv, struct sk_buff *skb) { struct devlink_dpipe_action action = {0}; @@ -648,8 +661,15 @@ mlxsw_sp_dpipe_table_host_size_get(struct mlxsw_sp *mlxsw_sp, int type) if (!rif) continue; mlxsw_sp_rif_neigh_for_each(neigh_entry, rif) { - if (mlxsw_sp_neigh_entry_type(neigh_entry) != type) + int neigh_type = mlxsw_sp_neigh_entry_type(neigh_entry); + + if (neigh_type != type) continue; + + if (neigh_type == AF_INET6 && + mlxsw_sp_neigh_ipv6_ignore(neigh_entry)) + continue; + size++; } } @@ -667,7 +687,7 @@ static u64 mlxsw_sp_dpipe_table_host4_size_get(void *priv) static struct devlink_dpipe_table_ops mlxsw_sp_host4_ops = { .matches_dump = mlxsw_sp_dpipe_table_host4_matches_dump, - .actions_dump = mlxsw_sp_dpipe_table_host4_actions_dump, + .actions_dump = mlxsw_sp_dpipe_table_host_actions_dump, .entries_dump = mlxsw_sp_dpipe_table_host4_entries_dump, .counters_set_update = mlxsw_sp_dpipe_table_host4_counters_update, .size_get = mlxsw_sp_dpipe_table_host4_size_get, @@ -691,6 +711,43 @@ static void mlxsw_sp_dpipe_host4_table_fini(struct mlxsw_sp *mlxsw_sp) MLXSW_SP_DPIPE_TABLE_NAME_HOST4); } +static int +mlxsw_sp_dpipe_table_host6_matches_dump(void *priv, struct sk_buff *skb) +{ + return mlxsw_sp_dpipe_table_host_matches_dump(skb, AF_INET6); +} + +static u64 mlxsw_sp_dpipe_table_host6_size_get(void *priv) +{ + struct mlxsw_sp *mlxsw_sp = priv; + + return mlxsw_sp_dpipe_table_host_size_get(mlxsw_sp, AF_INET6); +} + +static struct devlink_dpipe_table_ops mlxsw_sp_host6_ops = { + .matches_dump = mlxsw_sp_dpipe_table_host6_matches_dump, + .actions_dump = mlxsw_sp_dpipe_table_host_actions_dump, + .size_get = mlxsw_sp_dpipe_table_host6_size_get, +}; + +static int mlxsw_sp_dpipe_host6_table_init(struct mlxsw_sp *mlxsw_sp) +{ + struct devlink *devlink = priv_to_devlink(mlxsw_sp->core); + + return devlink_dpipe_table_register(devlink, + MLXSW_SP_DPIPE_TABLE_NAME_HOST6, + &mlxsw_sp_host6_ops, + mlxsw_sp, false); +} + +static void mlxsw_sp_dpipe_host6_table_fini(struct mlxsw_sp *mlxsw_sp) +{ + struct devlink *devlink = priv_to_devlink(mlxsw_sp->core); + + devlink_dpipe_table_unregister(devlink, + MLXSW_SP_DPIPE_TABLE_NAME_HOST6); +} + int mlxsw_sp_dpipe_init(struct mlxsw_sp *mlxsw_sp) { struct devlink *devlink = priv_to_devlink(mlxsw_sp->core); @@ -707,8 +764,14 @@ int mlxsw_sp_dpipe_init(struct mlxsw_sp *mlxsw_sp) err = mlxsw_sp_dpipe_host4_table_init(mlxsw_sp); if (err) goto err_host4_table_init; + + err = mlxsw_sp_dpipe_host6_table_init(mlxsw_sp); + if (err) + goto err_host6_table_init; return 0; +err_host6_table_init: + mlxsw_sp_dpipe_host4_table_fini(mlxsw_sp); err_host4_table_init: mlxsw_sp_dpipe_erif_table_fini(mlxsw_sp); err_erif_table_init: @@ -720,6 +783,7 @@ void mlxsw_sp_dpipe_fini(struct mlxsw_sp *mlxsw_sp) { struct devlink *devlink = priv_to_devlink(mlxsw_sp->core); + mlxsw_sp_dpipe_host6_table_fini(mlxsw_sp); mlxsw_sp_dpipe_host4_table_fini(mlxsw_sp); mlxsw_sp_dpipe_erif_table_fini(mlxsw_sp); devlink_dpipe_headers_unregister(devlink); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.h index c56a3d9..283fde4 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.h @@ -55,5 +55,6 @@ static inline void mlxsw_sp_dpipe_fini(struct mlxsw_sp *mlxsw_sp) #define MLXSW_SP_DPIPE_TABLE_NAME_ERIF "mlxsw_erif" #define MLXSW_SP_DPIPE_TABLE_NAME_HOST4 "mlxsw_host4" +#define MLXSW_SP_DPIPE_TABLE_NAME_HOST6 "mlxsw_host6" #endif /* _MLXSW_PIPELINE_H_*/ From patchwork Thu Aug 31 15:59:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 808297 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="qlTpqEsc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjnBj5XYVz9sD9 for ; Fri, 1 Sep 2017 01:59:57 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751871AbdHaP74 (ORCPT ); Thu, 31 Aug 2017 11:59:56 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:37617 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751781AbdHaP73 (ORCPT ); Thu, 31 Aug 2017 11:59:29 -0400 Received: by mail-wr0-f195.google.com with SMTP id k9so19659wre.4 for ; Thu, 31 Aug 2017 08:59:29 -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=h0lzcnNBDjfvaLQr1TfcheBjWqhjyxvVepER/fTOqqI=; b=qlTpqEscty3VDi2x5kWCiysTT8sdpO5bEfsrZ6VGlZCRoJuWrRkJt1B/TP4w3GPlJI FJ9u5fjwBDYVvPe+qQi7RkfKFofw/TZOoPnNXGhaS5bc8/xEIMktu6H+zDpy17OUr+0C DzBXzuLZksOboKnTWThBoNe+bEM92aqZ/HCIOXsKTJgLvzGkh2ANJQmmvRg0FbU5+6ZK 86ATaDl2Pwrz02QBUtx0+5qS5y7hHnHdAEX68AccMt7OQlPoDJIRAe+5sZO2qgMVZVT6 7Jk7PaxlS+sqs/lyEKeSlUqc07tVHcqZpx42tdIj8fyRgP5SzQnKobCk0wlFKG9hm3Hk zfuQ== 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=h0lzcnNBDjfvaLQr1TfcheBjWqhjyxvVepER/fTOqqI=; b=KWugMr6zk7W8PFF+1go0qfTv5ePlVx5uEIUVyqem5AZaVTpGS3A4dl2heeM60J4TVA JJwPcuCnv98iQx4G6L7IaBMe4X/fEuaSlSv/HXXoRXKOpWA396pELeAkjHjwjoPVfHyP +3f7Fw/kbNIURKHYMATvRthA0HVHpv/b3mA6RlxuZz5lkOUaIG5EBQM0XCEc4C9lu0Rz YKy1qm0/JAug+IEy1grhpQpst8lNSbjSaKc7SgFG7nfv7R0TRFvHC5VGsD0OemqpKm4m 5YBQJKoEcF9qyKvRM3DlGrz6N+9PMm1VTxdqawiN3SPurxIjThI1bavUFx97Tz9iPKG/ UxHg== X-Gm-Message-State: AHYfb5g5RAxBtj9X4lVgAtIYCKXDprozUlnO+96PUMN3HSXZaEmno6Bf IazAtrxV9swPI2vPJp4= X-Google-Smtp-Source: ADKCNb7roA1gJtRlMSFKOoqx9jBZVRq+WINbYj8yPyO/mNXhPBw0ooG44dWgEv/BmtQBh1wyaai3Gw== X-Received: by 10.223.142.226 with SMTP id q89mr3945570wrb.215.1504195168066; Thu, 31 Aug 2017 08:59:28 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id c56sm82909wrc.1.2017.08.31.08.59.27 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Aug 2017 08:59:27 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, arkadis@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next repost 4/8] mlxsw: spectrum_router: Add IPv6 neighbor access helper Date: Thu, 31 Aug 2017 17:59:15 +0200 Message-Id: <20170831155919.1366-5-jiri@resnulli.us> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170831155919.1366-1-jiri@resnulli.us> References: <20170831155919.1366-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Arkadi Sharshevsky Add helper for accessing destination IP in case of IPv6 neighbor. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 9 +++++++++ drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index 1f41bcd..db57c0c 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -947,6 +947,15 @@ u32 mlxsw_sp_neigh4_entry_dip(struct mlxsw_sp_neigh_entry *neigh_entry) return ntohl(*((__be32 *) n->primary_key)); } +struct in6_addr * +mlxsw_sp_neigh6_entry_dip(struct mlxsw_sp_neigh_entry *neigh_entry) +{ + struct neighbour *n; + + n = neigh_entry->key.n; + return (struct in6_addr *) &n->primary_key; +} + int mlxsw_sp_neigh_counter_get(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_neigh_entry *neigh_entry, u64 *p_counter) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h index 5b68616..87a04af 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h @@ -65,6 +65,8 @@ int mlxsw_sp_neigh_entry_type(struct mlxsw_sp_neigh_entry *neigh_entry); unsigned char * mlxsw_sp_neigh_entry_ha(struct mlxsw_sp_neigh_entry *neigh_entry); u32 mlxsw_sp_neigh4_entry_dip(struct mlxsw_sp_neigh_entry *neigh_entry); +struct in6_addr * +mlxsw_sp_neigh6_entry_dip(struct mlxsw_sp_neigh_entry *neigh_entry); #define mlxsw_sp_rif_neigh_for_each(neigh_entry, rif) \ for (neigh_entry = mlxsw_sp_rif_neigh_next(rif, NULL); neigh_entry; \ From patchwork Thu Aug 31 15:59:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 808293 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="Ywj+Dhaj"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjnBJ4QTbz9sD9 for ; Fri, 1 Sep 2017 01:59:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751809AbdHaP7d (ORCPT ); Thu, 31 Aug 2017 11:59:33 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:34683 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751778AbdHaP7b (ORCPT ); Thu, 31 Aug 2017 11:59:31 -0400 Received: by mail-wr0-f193.google.com with SMTP id z91so29486wrc.1 for ; Thu, 31 Aug 2017 08:59:30 -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=NV8wOTN0t9yL0XxyNfbfpDDT+mSSI3LBxjMf1d5NLfQ=; b=Ywj+DhajMvHXXw6gzQUsGlzPm7xxO2TLgeG0shRQSPbipJNX51ZVFFEhVzrsl/6ItW mj9BZuZyQ1cLlO7azeR7xatqxDbBzDzmIB7j8OvLZzN7z4wCsCg0/G4s9kvPaQUHH2cB x/O8JAh36MPlrrPxXOxPli14xMvrjJSyGcuaU/ln8nbf2WnfZOPZHyzrsi4XeJfLuS5L Tx2A2xeB8FNZxfWDHU9H0uNYOujhVEfnsjVNbRxlEseXspGvpGzT/8pfcPbGuxLFT287 1U4qvld6A5dUxBIZcQBLf/aLehH4Izi+rYzfquDBekcRpUiYakXVhtPPVpr+bB59Be/g jX2w== 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=NV8wOTN0t9yL0XxyNfbfpDDT+mSSI3LBxjMf1d5NLfQ=; b=I7hbJauycRxRjC29IAlwnQOa93fEYlt4R3jQWWmlrOtjWl/T5HdXccnefTO/hYiyN3 VYA29s38RDY/lL8b6vBr4+yRhTwcLRo4pUTOk8TJtRQqLaU3JQUqRw1vjtFsOwaV+vy3 Ug1Om0o4R8dcx1TSjzyyqvArFJZ0cp0++EH+kIVF9jkOt7N6MGVztwe6211l5UyNmqPQ E7WCGG2+YSyJTJf4+4BQcx5/uVpJzsM1DttZAQTOCLfJtS6kNvJ8VMtFrI/9MtZ1C/Tz gSIMHbNCLj3EKWIBYIxjP+bH+7u5Gg3eXwU9I0+ORiXG0NLSz5Sh5U0m+sg7PZA+Khdp aUdQ== X-Gm-Message-State: AHYfb5hz0e2GJvtxZ5vzpmmmzZxEJBFiYZhbACFLNB3/um4aDguWnyjw Aoe5XzQFOP0jgAhSNyo= X-Google-Smtp-Source: ADKCNb7QUeGWdXCiOEGCZyeH7fDxF1s4ZNNWZ6CysFWhrAXUG3KhaW2pj0fh5fO1++A2ZRjqa8d4YQ== X-Received: by 10.223.174.89 with SMTP id u25mr3799611wrd.246.1504195169616; Thu, 31 Aug 2017 08:59:29 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id q103sm72255wrb.18.2017.08.31.08.59.28 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Aug 2017 08:59:29 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, arkadis@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next repost 5/8] mlxsw: spectrum_dpipe: Make host entry fill handler more generic Date: Thu, 31 Aug 2017 17:59:16 +0200 Message-Id: <20170831155919.1366-6-jiri@resnulli.us> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170831155919.1366-1-jiri@resnulli.us> References: <20170831155919.1366-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Arkadi Sharshevsky Change the host entry filler helper to be applicable for both IPv4/6 addresses. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c index 93ba6a6..5924e97 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c @@ -439,13 +439,12 @@ mlxsw_sp_dpipe_table_host_entry_prepare(struct devlink_dpipe_entry *entry, } static void -__mlxsw_sp_dpipe_table_host4_entry_fill(struct devlink_dpipe_entry *entry, - struct mlxsw_sp_rif *rif, - unsigned char *ha, u32 dip) +__mlxsw_sp_dpipe_table_host_entry_fill(struct devlink_dpipe_entry *entry, + struct mlxsw_sp_rif *rif, + unsigned char *ha, void *dip) { struct devlink_dpipe_value *value; u32 *rif_value; - u32 *dip_value; u8 *ha_value; /* Set Match RIF index */ @@ -458,9 +457,7 @@ __mlxsw_sp_dpipe_table_host4_entry_fill(struct devlink_dpipe_entry *entry, /* Set Match DIP */ value = &entry->match_values[MLXSW_SP_DPIPE_TABLE_HOST_MATCH_DIP]; - - dip_value = value->value; - *dip_value = dip; + memcpy(value->value, dip, value->value_size); /* Set Action DMAC */ value = entry->action_values; @@ -478,7 +475,7 @@ mlxsw_sp_dpipe_table_host4_entry_fill(struct devlink_dpipe_entry *entry, ha = mlxsw_sp_neigh_entry_ha(neigh_entry); dip = mlxsw_sp_neigh4_entry_dip(neigh_entry); - __mlxsw_sp_dpipe_table_host4_entry_fill(entry, rif, ha, dip); + __mlxsw_sp_dpipe_table_host_entry_fill(entry, rif, ha, &dip); } static void From patchwork Thu Aug 31 15:59:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 808296 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="eqLVS4kL"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjnBZ5mPqz9sD9 for ; Fri, 1 Sep 2017 01:59:50 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751866AbdHaP7s (ORCPT ); Thu, 31 Aug 2017 11:59:48 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:35329 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751813AbdHaP7d (ORCPT ); Thu, 31 Aug 2017 11:59:33 -0400 Received: by mail-wm0-f66.google.com with SMTP id e204so57569wma.2 for ; Thu, 31 Aug 2017 08:59:32 -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=9X48KYDZ9fJf3VtnPwt97gXu2blmlZ9RJJ8yzBMK6L0=; b=eqLVS4kLz7TZvpGLjfZ4MfabjLtbwuyhjCjHRdWZ6bGo+cUYLOIjsvHKWpUE+r4kZm Db44AIsXOYPh9rkJAs5eXsiyvMWaNtoM9uJ8mrrKcfpxauD9oEbjKU6J2cvwbWdvniMI GrSBIsLQT0D0nR1QH8YGDGdat4LNDwMYjri2uNNkh8niCpYe+lHkpehvOX2wXfiegJw6 pOxUPOwM2IHTjDKT16eYmaEix/Oe9aCsIPBlnJO5E5AtrFxfKk1IlQHuHBN2oQ2det+y P5FHiACOAhsvq5mveRIhy+XtXW7GyS5KThCQ6E10l83k73k/wxegZeBzZ9maRbQ7wlB5 vEmA== 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=9X48KYDZ9fJf3VtnPwt97gXu2blmlZ9RJJ8yzBMK6L0=; b=S6NHFhAIauBVMJVDsj3U2d6ZqfjEiO/rxL44MX9h1trHj3geeZgjYxJr03LxBiXJA1 s5jlkhqBAIgZ1pfgWibRe7pPeqcsnNgbnRzdjnx59OMWmpl5Av6F0i/FXUAs+5A0Lwgr xp5os1/F/2QltwZGs8I0C0E+gG1xi2Gze9DRsk8tDDt6Ledp+npCXm73USvr2N+CsnHl qqZNPrHbyAvjltk5kMvy0+YRL1+fnlQOC5wBM0SPTr2U2AVDAlnJ5jZoIC5Jf6LeOxyO IzVNRys0bFBATS82Xj5taCTUJ2vraS07eIpyFGczKYKiXK8jOOIPZeWNYgEobwsYH3YE kBTQ== X-Gm-Message-State: AHPjjUgOeE98+J7RwEjj77tLHlXcFAhheufuat6ecm/nbp6+TS0hEUXc Y66BkXV48bocRpo+YSI= X-Google-Smtp-Source: ADKCNb5TIxxIRlpUKWMAtm6p+CFV+Qis2TzixXq8ED4YiZ7dF1Y3AQNdoSq5fhYpTU0mIstAQnqGTQ== X-Received: by 10.28.13.81 with SMTP id 78mr920286wmn.7.1504195171279; Thu, 31 Aug 2017 08:59:31 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id 53sm59845wry.35.2017.08.31.08.59.30 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Aug 2017 08:59:30 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, arkadis@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next repost 6/8] mlxsw: spectrum_dpipe: Add support for IPv6 host table dump Date: Thu, 31 Aug 2017 17:59:17 +0200 Message-Id: <20170831155919.1366-7-jiri@resnulli.us> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170831155919.1366-1-jiri@resnulli.us> References: <20170831155919.1366-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Arkadi Sharshevsky Add support for IPv6 host table dump. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Jiri Pirko --- .../net/ethernet/mellanox/mlxsw/spectrum_dpipe.c | 75 ++++++++++++++++++++-- 1 file changed, 70 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c index 5924e97..75da2ef 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c @@ -386,8 +386,19 @@ mlxsw_sp_dpipe_table_host_match_action_prepare(struct devlink_dpipe_match *match match = &matches[MLXSW_SP_DPIPE_TABLE_HOST_MATCH_DIP]; match->type = DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT; - match->header = &devlink_dpipe_header_ipv4; - match->field_id = DEVLINK_DPIPE_FIELD_IPV4_DST_IP; + switch (type) { + case AF_INET: + match->header = &devlink_dpipe_header_ipv4; + match->field_id = DEVLINK_DPIPE_FIELD_IPV4_DST_IP; + break; + case AF_INET6: + match->header = &devlink_dpipe_header_ipv6; + match->field_id = DEVLINK_DPIPE_FIELD_IPV6_DST_IP; + break; + default: + WARN_ON(1); + return; + } action->type = DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY; action->header = &devlink_dpipe_header_ethernet; @@ -424,7 +435,18 @@ mlxsw_sp_dpipe_table_host_entry_prepare(struct devlink_dpipe_entry *entry, match_value = &match_values[MLXSW_SP_DPIPE_TABLE_HOST_MATCH_DIP]; match_value->match = match; - match_value->value_size = sizeof(u32); + switch (type) { + case AF_INET: + match_value->value_size = sizeof(u32); + break; + case AF_INET6: + match_value->value_size = sizeof(struct in6_addr); + break; + default: + WARN_ON(1); + return -EINVAL; + } + match_value->value = kmalloc(match_value->value_size, GFP_KERNEL); if (!match_value->value) return -ENOMEM; @@ -479,6 +501,20 @@ mlxsw_sp_dpipe_table_host4_entry_fill(struct devlink_dpipe_entry *entry, } static void +mlxsw_sp_dpipe_table_host6_entry_fill(struct devlink_dpipe_entry *entry, + struct mlxsw_sp_neigh_entry *neigh_entry, + struct mlxsw_sp_rif *rif) +{ + struct in6_addr *dip; + unsigned char *ha; + + ha = mlxsw_sp_neigh_entry_ha(neigh_entry); + dip = mlxsw_sp_neigh6_entry_dip(neigh_entry); + + __mlxsw_sp_dpipe_table_host_entry_fill(entry, rif, ha, dip); +} + +static void mlxsw_sp_dpipe_table_host_entry_fill(struct mlxsw_sp *mlxsw_sp, struct devlink_dpipe_entry *entry, struct mlxsw_sp_neigh_entry *neigh_entry, @@ -487,7 +523,18 @@ mlxsw_sp_dpipe_table_host_entry_fill(struct mlxsw_sp *mlxsw_sp, { int err; - mlxsw_sp_dpipe_table_host4_entry_fill(entry, neigh_entry, rif); + switch (type) { + case AF_INET: + mlxsw_sp_dpipe_table_host4_entry_fill(entry, neigh_entry, rif); + break; + case AF_INET6: + mlxsw_sp_dpipe_table_host6_entry_fill(entry, neigh_entry, rif); + break; + default: + WARN_ON(1); + return; + } + err = mlxsw_sp_neigh_counter_get(mlxsw_sp, neigh_entry, &entry->counter); if (!err) @@ -526,7 +573,13 @@ mlxsw_sp_dpipe_table_host_entries_get(struct mlxsw_sp *mlxsw_sp, rif_neigh_count = 0; mlxsw_sp_rif_neigh_for_each(neigh_entry, rif) { - if (mlxsw_sp_neigh_entry_type(neigh_entry) != type) + int neigh_type = mlxsw_sp_neigh_entry_type(neigh_entry); + + if (neigh_type != type) + continue; + + if (neigh_type == AF_INET6 && + mlxsw_sp_neigh_ipv6_ignore(neigh_entry)) continue; if (rif_neigh_count < rif_neigh_skip) @@ -714,6 +767,17 @@ mlxsw_sp_dpipe_table_host6_matches_dump(void *priv, struct sk_buff *skb) return mlxsw_sp_dpipe_table_host_matches_dump(skb, AF_INET6); } +static int +mlxsw_sp_dpipe_table_host6_entries_dump(void *priv, bool counters_enabled, + struct devlink_dpipe_dump_ctx *dump_ctx) +{ + struct mlxsw_sp *mlxsw_sp = priv; + + return mlxsw_sp_dpipe_table_host_entries_dump(mlxsw_sp, + counters_enabled, + dump_ctx, AF_INET6); +} + static u64 mlxsw_sp_dpipe_table_host6_size_get(void *priv) { struct mlxsw_sp *mlxsw_sp = priv; @@ -724,6 +788,7 @@ static u64 mlxsw_sp_dpipe_table_host6_size_get(void *priv) static struct devlink_dpipe_table_ops mlxsw_sp_host6_ops = { .matches_dump = mlxsw_sp_dpipe_table_host6_matches_dump, .actions_dump = mlxsw_sp_dpipe_table_host_actions_dump, + .entries_dump = mlxsw_sp_dpipe_table_host6_entries_dump, .size_get = mlxsw_sp_dpipe_table_host6_size_get, }; From patchwork Thu Aug 31 15:59:18 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 808294 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="FzANOH9R"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjnBM5mF2z9sD9 for ; Fri, 1 Sep 2017 01:59:39 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751837AbdHaP7h (ORCPT ); Thu, 31 Aug 2017 11:59:37 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:38675 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751778AbdHaP7f (ORCPT ); Thu, 31 Aug 2017 11:59:35 -0400 Received: by mail-wr0-f193.google.com with SMTP id j3so17420wrb.5 for ; Thu, 31 Aug 2017 08:59:34 -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=NvQnqQ5c+KeGRpNhD5DSd0hEY2NSp3u+vvQY4zJHdCQ=; b=FzANOH9RTrghQJXqDqTgvKVcBoiwkViuh8DFvaURjgNxBMsbTOEYQxE1S8i8fSJe8K OmGSSzsQx3Ei0Bp7m0CmDy8RlOpMMDG/z/CxupHw5X0TSFcvIA9JDQ//+a5GX5IdG9ku e4/J7yV1Fdm9FgP+raG5NNwIC5B2DzlP5hGDDrpVR7xHm6lhHZngqDQzDBVtWQy3TxHY IPHCsMbqfUIn7F9tls15hybbZTanIDBo4skxzDHJPSoYSwGQjZq7RPasxpfiTzrQ58ZR lQgu+rQCoZujxfEd8wrEZlnQQ79yMCJwK5xq/ZOAFpyLLvqYsc+X6Am5rdaBIjBf4Ghw nllA== 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=NvQnqQ5c+KeGRpNhD5DSd0hEY2NSp3u+vvQY4zJHdCQ=; b=j4jnApbjIVnfFBcdLKd3nMiFjnVQEvgCC9j/l2takX+hfiosz+wXfdR4DOlafque+h MJupCaVN9Z9QwO0BfI46um5wAX2iPXq/TSbE3YKlClitLNmC6a2OX1xU4Dn4THCgK1l7 u+aGE8QOVoBXNKhNcbwGMpGO1YoBj+AQWY4Yzri4sEdNVeup7sxEHXUG0n973ztjE9YL ak1sTRX7Prs6dJd3UmyfMI9WRWzb9KepuSAGsRjZ1GhBW27PRr0yXfxFexh5b86seFKN +Z1tjLHAVuPwm04PpXBvhXnMwcFrt4VDz8gNTPONArj5aoPzqOyCA+yiCaB0/WVShzAA rcgw== X-Gm-Message-State: AHYfb5iMPvpUHiKJcCJLBeASqqyLD8ct/RCl1l3B6NkoBr2x41N8f3EM GYPNfiATFLy1X5uJ+1E= X-Google-Smtp-Source: ADKCNb42ONsfaa/c0ntqb1E0kDULor8yqa1Wog+xnfcVUjk9pQPdQdjKyb4rnJ+F0cxJnvNk3rNRNg== X-Received: by 10.223.143.111 with SMTP id p102mr4116607wrb.207.1504195173509; Thu, 31 Aug 2017 08:59:33 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id 6sm74863wre.0.2017.08.31.08.59.32 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Aug 2017 08:59:32 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, arkadis@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next repost 7/8] mlxsw: spectrum_router: Add support for setting counters on IPv6 neighbors Date: Thu, 31 Aug 2017 17:59:18 +0200 Message-Id: <20170831155919.1366-8-jiri@resnulli.us> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170831155919.1366-1-jiri@resnulli.us> References: <20170831155919.1366-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Arkadi Sharshevsky Add support for setting counters on IPv6 neighbors based on dpipe's host6 table counter status. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Jiri Pirko --- .../net/ethernet/mellanox/mlxsw/spectrum_router.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index db57c0c..0cf6810 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -1008,21 +1008,33 @@ mlxsw_sp_neigh_entry_remove(struct mlxsw_sp *mlxsw_sp, } static bool -mlxsw_sp_neigh4_counter_should_alloc(struct mlxsw_sp *mlxsw_sp) +mlxsw_sp_neigh_counter_should_alloc(struct mlxsw_sp *mlxsw_sp, + struct mlxsw_sp_neigh_entry *neigh_entry) { struct devlink *devlink; + const char *table_name; + + switch (mlxsw_sp_neigh_entry_type(neigh_entry)) { + case AF_INET: + table_name = MLXSW_SP_DPIPE_TABLE_NAME_HOST4; + break; + case AF_INET6: + table_name = MLXSW_SP_DPIPE_TABLE_NAME_HOST6; + break; + default: + WARN_ON(1); + return false; + } devlink = priv_to_devlink(mlxsw_sp->core); - return devlink_dpipe_table_counter_enabled(devlink, - MLXSW_SP_DPIPE_TABLE_NAME_HOST4); + return devlink_dpipe_table_counter_enabled(devlink, table_name); } static void mlxsw_sp_neigh_counter_alloc(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_neigh_entry *neigh_entry) { - if (mlxsw_sp_neigh_entry_type(neigh_entry) != AF_INET || - !mlxsw_sp_neigh4_counter_should_alloc(mlxsw_sp)) + if (!mlxsw_sp_neigh_counter_should_alloc(mlxsw_sp, neigh_entry)) return; if (mlxsw_sp_flow_counter_alloc(mlxsw_sp, &neigh_entry->counter_index)) From patchwork Thu Aug 31 15:59:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 808295 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="f5FVWSua"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjnBP4QH3z9sD9 for ; Fri, 1 Sep 2017 01:59:41 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751859AbdHaP7j (ORCPT ); Thu, 31 Aug 2017 11:59:39 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:35379 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751824AbdHaP7h (ORCPT ); Thu, 31 Aug 2017 11:59:37 -0400 Received: by mail-wr0-f195.google.com with SMTP id a47so26921wra.2 for ; Thu, 31 Aug 2017 08:59:36 -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=l+zLon77w2f1ov3E5V8MtvFjH1P7bTJzOcTgtOKJ3+E=; b=f5FVWSuaGZLUOH48Ku8I3ccRACTH4wNuGOm7DZt2UpBXTvA6Y7ExkD4hKGQ1dKlgZj i2IFOeuKDaC9Yj58y+EXnlmVABu7dIxYOyQJ/4Mt+jNsgaFot1RhqV6KKT3pAJYznr3n w8pl4gloDCLU77AAxBRUpo6gAkDHxoYio3P8yFidiNviGfXP+XrWUXGdM9bU+P/M1NMu ileNfVn3k6iXeA8mZvC8ANzMW+bM/cc/G0g5s2xKW1VZ1deiq1S2tAdHvgPnM22UeYql 0JGjXx6x+PYzPBSC7iPVDav/v+IB1sXqIo6X4rBqMEP58j8QZFWOT0tiImIi4PDcAn+j IenQ== 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=l+zLon77w2f1ov3E5V8MtvFjH1P7bTJzOcTgtOKJ3+E=; b=SM8cCl0DGQjoZhGj4MUMNC6WlqxyO/sL75gqMeiZEdwWN7hymjAB4WXsKcKSybuCyK qi8Jk18jnPcG4lWf6ahXGojlndX82Tvpn+ODGa3U7qOF5K0NAJlUIX7VwTmzNL2P1YuR 6pIq0G63T1zAeUR9bc9j2u3+Ats84XvKrpz93g8FkRaV5+lVE/ECF4JPfB1izensSKEU vrtFHn/IdYVdUikYjUy+0yeV1TcvEwWTJLI8qoXO4SLKKmB/msKMlEcdVWNRDF74lH6Z eqI86P2qdwSZfiGuReGG91mTSQQhLuk12PdEKglAG0kphf3i9lOclontnaRv3HUk5O+L UNuQ== X-Gm-Message-State: AHYfb5iytKSE5lc08uFj6hughruLI+V44U7CsyXu9rOXLhOwEYS+LJKU IQFx0K+miImCwq7Hm3k= X-Google-Smtp-Source: ADKCNb6ypObTdM/G9X2tOzM+WD/P9tNotO9R4tzLiMvr17n7gavjMe2bK2GIoGGPXjmEYi9k8IJSWA== X-Received: by 10.223.197.133 with SMTP id m5mr3902056wrg.276.1504195175487; Thu, 31 Aug 2017 08:59:35 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id r2sm430878wmg.30.2017.08.31.08.59.34 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Aug 2017 08:59:34 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, arkadis@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next repost 8/8] mlxsw: spectrum_dpipe: Add support for controlling IPv6 neighbor counters Date: Thu, 31 Aug 2017 17:59:19 +0200 Message-Id: <20170831155919.1366-9-jiri@resnulli.us> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170831155919.1366-1-jiri@resnulli.us> References: <20170831155919.1366-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Arkadi Sharshevsky Add support for controlling IPv6 neighbor counters via dpipe. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c index 75da2ef..51e6846 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c @@ -679,8 +679,15 @@ mlxsw_sp_dpipe_table_host_counters_update(struct mlxsw_sp *mlxsw_sp, if (!rif) continue; mlxsw_sp_rif_neigh_for_each(neigh_entry, rif) { - if (mlxsw_sp_neigh_entry_type(neigh_entry) != type) + int neigh_type = mlxsw_sp_neigh_entry_type(neigh_entry); + + if (neigh_type != type) + continue; + + if (neigh_type == AF_INET6 && + mlxsw_sp_neigh_ipv6_ignore(neigh_entry)) continue; + mlxsw_sp_neigh_entry_counter_update(mlxsw_sp, neigh_entry, enable); @@ -778,6 +785,14 @@ mlxsw_sp_dpipe_table_host6_entries_dump(void *priv, bool counters_enabled, dump_ctx, AF_INET6); } +static int mlxsw_sp_dpipe_table_host6_counters_update(void *priv, bool enable) +{ + struct mlxsw_sp *mlxsw_sp = priv; + + mlxsw_sp_dpipe_table_host_counters_update(mlxsw_sp, enable, AF_INET6); + return 0; +} + static u64 mlxsw_sp_dpipe_table_host6_size_get(void *priv) { struct mlxsw_sp *mlxsw_sp = priv; @@ -789,6 +804,7 @@ static struct devlink_dpipe_table_ops mlxsw_sp_host6_ops = { .matches_dump = mlxsw_sp_dpipe_table_host6_matches_dump, .actions_dump = mlxsw_sp_dpipe_table_host_actions_dump, .entries_dump = mlxsw_sp_dpipe_table_host6_entries_dump, + .counters_set_update = mlxsw_sp_dpipe_table_host6_counters_update, .size_get = mlxsw_sp_dpipe_table_host6_size_get, };