From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Pirko Subject: Re: [patch net-next v3 02/17] net: make vid as a parameter for ndo_fdb_add/ndo_fdb_del Date: Tue, 25 Nov 2014 16:18:11 +0100 Message-ID: <20141125151811.GF1971@nanopsycho.orion> References: <1416911328-10979-1-git-send-email-jiri@resnulli.us> <1416911328-10979-3-git-send-email-jiri@resnulli.us> <20141125151312.GC27416@gospo.rtplab.test> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev@vger.kernel.org, davem@davemloft.net, nhorman@tuxdriver.com, andy@greyhouse.net, tgraf@suug.ch, dborkman@redhat.com, ogerlitz@mellanox.com, jesse@nicira.com, pshelar@nicira.com, azhou@nicira.com, ben@decadent.org.uk, stephen@networkplumber.org, jeffrey.t.kirsher@intel.com, vyasevic@redhat.com, xiyou.wangcong@gmail.com, john.r.fastabend@intel.com, edumazet@google.com, jhs@mojatatu.com, sfeldma@gmail.com, f.fainelli@gmail.com, roopa@cumulusnetworks.com, linville@tuxdriver.com, jasowang@redhat.com, ebiederm@xmission.com, nicolas.dichtel@6wind.com, ryazanov.s.a@gmail.com, buytenh@wantstofly.org, aviadr@mellanox.com, nbd@openwrt.org, alexei.starovoitov@gmail.com, Neil.Jerram@metaswitch.com, ronye@mellanox.com, simon.horman@netronome.com, alexander.h.duyck@redhat.com, john.ronciak@intel.com, mleitner@redhat.com, shrijeet@gmail.com, bcrl@kvack.org To: Andy Gospodarek Return-path: Received: from mail-wg0-f47.google.com ([74.125.82.47]:51925 "EHLO mail-wg0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750848AbaKYPSO (ORCPT ); Tue, 25 Nov 2014 10:18:14 -0500 Received: by mail-wg0-f47.google.com with SMTP id n12so1157950wgh.6 for ; Tue, 25 Nov 2014 07:18:12 -0800 (PST) Content-Disposition: inline In-Reply-To: <20141125151312.GC27416@gospo.rtplab.test> Sender: netdev-owner@vger.kernel.org List-ID: Tue, Nov 25, 2014 at 04:13:12PM CET, gospo@cumulusnetworks.com wrote: >On Tue, Nov 25, 2014 at 11:28:33AM +0100, Jiri Pirko wrote: >> Do the work of parsing NDA_VLAN directly in rtnetlink code, pass simple >> u16 vid to drivers from there. >> >> Signed-off-by: Jiri Pirko > >Structurally this looks fine, just a misspelling noted below. > >Acked-by: Andy Gospodarek > >> --- >> new in v3 >> --- >> drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- >> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 +- >> drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 9 +++-- >> drivers/net/macvlan.c | 4 +- >> drivers/net/vxlan.c | 4 +- >> include/linux/netdevice.h | 8 ++-- >> include/linux/rtnetlink.h | 6 ++- >> net/bridge/br_fdb.c | 39 ++---------------- >> net/bridge/br_private.h | 4 +- >> net/core/rtnetlink.c | 50 ++++++++++++++++++++---- >> 10 files changed, 70 insertions(+), 60 deletions(-) >> >[...] >> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c >> index a688268..f2a4b38 100644 >> --- a/net/core/rtnetlink.c >> +++ b/net/core/rtnetlink.c >> @@ -36,6 +36,7 @@ >> #include >> #include >> #include >> +#include >> #include >> #include >> >> @@ -2312,7 +2313,7 @@ errout: >> int ndo_dflt_fdb_add(struct ndmsg *ndm, >> struct nlattr *tb[], >> struct net_device *dev, >> - const unsigned char *addr, >> + const unsigned char *addr, u16 vid, >> u16 flags) >> { >> int err = -EINVAL; >> @@ -2338,6 +2339,28 @@ int ndo_dflt_fdb_add(struct ndmsg *ndm, >> } >> EXPORT_SYMBOL(ndo_dflt_fdb_add); >> >> +static int fbd_vid_parse(struct nlattr *vlan_attr, u16 *p_vid) >I presume this is a misspelling? Darn. Thanks. Will fix this. > >[...] >> @@ -2370,6 +2394,10 @@ static int rtnl_fdb_add(struct sk_buff *skb, struct nlmsghdr *nlh) >> >> addr = nla_data(tb[NDA_LLADDR]); >> >> + err = fbd_vid_parse(tb[NDA_VLAN], &vid); >Same here.... > >> + if (err) >> + return err; >> + >> err = -EOPNOTSUPP; >> >> /* Support fdb on master device the net/bridge default case */ > >[...] >> @@ -2465,6 +2496,10 @@ static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh) >> >> addr = nla_data(tb[NDA_LLADDR]); >> >> + err = fbd_vid_parse(tb[NDA_VLAN], &vid); >...and here. > >> + if (err) >> + return err; >> + >> err = -EOPNOTSUPP; >> >> /* Support fdb on master device the net/bridge default case */ >> @@ -2474,7 +2509,7 @@ static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh) >> const struct net_device_ops *ops = br_dev->netdev_ops; >> >> if (ops->ndo_fdb_del) >> - err = ops->ndo_fdb_del(ndm, tb, dev, addr); >> + err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid); >> >> if (err) >> goto out; >> @@ -2485,9 +2520,10 @@ static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh) >> /* Embedded bridge, macvlan, and any other device support */ >> if (ndm->ndm_flags & NTF_SELF) { >> if (dev->netdev_ops->ndo_fdb_del) >> - err = dev->netdev_ops->ndo_fdb_del(ndm, tb, dev, addr); >> + err = dev->netdev_ops->ndo_fdb_del(ndm, tb, dev, addr, >> + vid); >> else >> - err = ndo_dflt_fdb_del(ndm, tb, dev, addr); >> + err = ndo_dflt_fdb_del(ndm, tb, dev, addr, vid); >> >> if (!err) { >> rtnl_fdb_notify(dev, addr, RTM_DELNEIGH); >> -- >> 1.9.3 >>