[{"id":1764209,"web_url":"http://patchwork.ozlabs.org/comment/1764209/","msgid":"<87zia7rg6x.fsf@weeman.i-did-not-set--mail-host-address--so-tickle-me>","list_archive_url":null,"date":"2017-09-06T15:37:42","subject":"Re: [PATCH v2 rfc 4/8] net: dsa: slave: Handle switchdev host mdb\n\tadd/del","submitter":{"id":15889,"url":"http://patchwork.ozlabs.org/api/people/15889/","name":"Vivien Didelot","email":"vivien.didelot@savoirfairelinux.com"},"content":"Hi Andrew,\n\nAndrew Lunn <andrew@lunn.ch> writes:\n\n> Add code to handle switchdev host mdb add/del. As with normal mdb\n> add/del, send a notification to the switch layer.\n>\n> Signed-off-by: Andrew Lunn <andrew@lunn.ch>\n> ---\n>  net/dsa/dsa_priv.h |  7 +++++++\n>  net/dsa/port.c     | 26 ++++++++++++++++++++++++++\n>  net/dsa/slave.c    |  6 ++++++\n>  3 files changed, 39 insertions(+)\n>\n> diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h\n> index 9c3eeb72462d..0ffe49f78d14 100644\n> --- a/net/dsa/dsa_priv.h\n> +++ b/net/dsa/dsa_priv.h\n> @@ -24,6 +24,8 @@ enum {\n>  \tDSA_NOTIFIER_FDB_DEL,\n>  \tDSA_NOTIFIER_MDB_ADD,\n>  \tDSA_NOTIFIER_MDB_DEL,\n> +\tDSA_NOTIFIER_HOST_MDB_ADD,\n> +\tDSA_NOTIFIER_HOST_MDB_DEL,\n>  \tDSA_NOTIFIER_VLAN_ADD,\n>  \tDSA_NOTIFIER_VLAN_DEL,\n>  };\n> @@ -131,6 +133,11 @@ int dsa_port_mdb_add(struct dsa_port *dp,\n>  \t\t     struct switchdev_trans *trans);\n>  int dsa_port_mdb_del(struct dsa_port *dp,\n>  \t\t     const struct switchdev_obj_port_mdb *mdb);\n> +int dsa_host_mdb_add(struct dsa_port *dp,\n> +\t\t     const struct switchdev_obj_port_mdb *mdb,\n> +\t\t     struct switchdev_trans *trans);\n> +int dsa_host_mdb_del(struct dsa_port *dp,\n> +\t\t     const struct switchdev_obj_port_mdb *mdb);\n>  int dsa_port_vlan_add(struct dsa_port *dp,\n>  \t\t      const struct switchdev_obj_port_vlan *vlan,\n>  \t\t      struct switchdev_trans *trans);\n> diff --git a/net/dsa/port.c b/net/dsa/port.c\n> index 659676ba3f8b..5b18b9fe2219 100644\n> --- a/net/dsa/port.c\n> +++ b/net/dsa/port.c\n> @@ -199,6 +199,32 @@ int dsa_port_mdb_del(struct dsa_port *dp,\n>  \treturn dsa_port_notify(dp, DSA_NOTIFIER_MDB_DEL, &info);\n>  }\n>  \n> +int dsa_host_mdb_add(struct dsa_port *dp,\n> +\t\t     const struct switchdev_obj_port_mdb *mdb,\n> +\t\t     struct switchdev_trans *trans)\n> +{\n> +\tstruct dsa_notifier_mdb_info info = {\n> +\t\t.sw_index = dp->ds->index,\n> +\t\t.port = dp->index,\n> +\t\t.trans = trans,\n> +\t\t.mdb = mdb,\n> +\t};\n> +\n> +\treturn dsa_port_notify(dp, DSA_NOTIFIER_HOST_MDB_ADD, &info);\n> +}\n> +\n> +int dsa_host_mdb_del(struct dsa_port *dp,\n> +\t\t     const struct switchdev_obj_port_mdb *mdb)\n> +{\n> +\tstruct dsa_notifier_mdb_info info = {\n> +\t\t.sw_index = dp->ds->index,\n> +\t\t.port = dp->index,\n> +\t\t.mdb = mdb,\n> +\t};\n> +\n> +\treturn dsa_port_notify(dp, DSA_NOTIFIER_HOST_MDB_DEL, &info);\n> +}\n> +\n>  int dsa_port_vlan_add(struct dsa_port *dp,\n>  \t\t      const struct switchdev_obj_port_vlan *vlan,\n>  \t\t      struct switchdev_trans *trans)\n> diff --git a/net/dsa/slave.c b/net/dsa/slave.c\n> index 78e78a6e6833..2e07be149415 100644\n> --- a/net/dsa/slave.c\n> +++ b/net/dsa/slave.c\n> @@ -330,6 +330,9 @@ static int dsa_slave_port_obj_add(struct net_device *dev,\n>  \tcase SWITCHDEV_OBJ_ID_PORT_MDB:\n>  \t\terr = dsa_port_mdb_add(dp, SWITCHDEV_OBJ_PORT_MDB(obj), trans);\n>  \t\tbreak;\n> +\tcase SWITCHDEV_OBJ_ID_HOST_MDB:\n> +\t\terr = dsa_host_mdb_add(dp, SWITCHDEV_OBJ_PORT_MDB(obj), trans);\n> +\t\tbreak;\n\nIf SWITCHDEV_OBJ_ID_HOST_MDB is really necessary, \n\n    case SWITCHDEV_OBJ_ID_HOST_MDB:\n        err = dsa_port_mdb_add(dp->cpu_dp, SWITCHDEV_OBJ_PORT_MDB(obj), trans);\n        break;\n\nshould be enough. DSA_NOTIFIER_HOST_MDB_* are not necessary.\n\n\nThanks,\n\n        Vivien","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xnSVG5rjqz9s81\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu,  7 Sep 2017 01:41:10 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754863AbdIFPlI (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 6 Sep 2017 11:41:08 -0400","from mail.savoirfairelinux.com ([208.88.110.44]:35592 \"EHLO\n\tmail.savoirfairelinux.com\" rhost-flags-OK-OK-OK-OK) by\n\tvger.kernel.org with ESMTP id S1753390AbdIFPlH (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Wed, 6 Sep 2017 11:41:07 -0400","from localhost (localhost [127.0.0.1])\n\tby mail.savoirfairelinux.com (Postfix) with ESMTP id 879F89C19DD;\n\tWed,  6 Sep 2017 11:41:06 -0400 (EDT)","from mail.savoirfairelinux.com ([127.0.0.1])\n\tby localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavisd-new,\n\tport 10032)\n\twith ESMTP id K2KldVU_Z2P8; Wed,  6 Sep 2017 11:41:05 -0400 (EDT)","from localhost (localhost [127.0.0.1])\n\tby mail.savoirfairelinux.com (Postfix) with ESMTP id C3DF69C21AC;\n\tWed,  6 Sep 2017 11:41:05 -0400 (EDT)","from mail.savoirfairelinux.com ([127.0.0.1])\n\tby localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavisd-new,\n\tport 10026)\n\twith ESMTP id Z-vGnCnwSHOY; Wed,  6 Sep 2017 11:41:05 -0400 (EDT)","from localhost (modemcable249.105-163-184.mc.videotron.ca\n\t[184.163.105.249])\n\tby mail.savoirfairelinux.com (Postfix) with ESMTPSA id 91A559C1A32;\n\tWed,  6 Sep 2017 11:41:05 -0400 (EDT)"],"X-Virus-Scanned":"amavisd-new at mail.savoirfairelinux.com","From":"Vivien Didelot <vivien.didelot@savoirfairelinux.com>","To":"Andrew Lunn <andrew@lunn.ch>, netdev <netdev@vger.kernel.org>","Cc":"jiri@resnulli.us, nikolay@cumulusnetworks.com,\n\tFlorian Fainelli <f.fainelli@gmail.com>, Andrew Lunn <andrew@lunn.ch>","Subject":"Re: [PATCH v2 rfc 4/8] net: dsa: slave: Handle switchdev host mdb\n\tadd/del","In-Reply-To":"<1504654510-31004-5-git-send-email-andrew@lunn.ch>","References":"<1504654510-31004-1-git-send-email-andrew@lunn.ch>\n\t<1504654510-31004-5-git-send-email-andrew@lunn.ch>","Date":"Wed, 06 Sep 2017 11:37:42 -0400","Message-ID":"<87zia7rg6x.fsf@weeman.i-did-not-set--mail-host-address--so-tickle-me>","MIME-Version":"1.0","Content-Type":"text/plain","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]