From: Andrew Lunn <andrew@lunn.ch>
To: Michal Kubecek <mkubecek@suse.cz>
Cc: netdev@vger.kernel.org, David Miller <davem@davemloft.net>,
Florian Fainelli <f.fainelli@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
Chris Healy <cphealy@gmail.com>
Subject: Re: [PATCH net-next v1 3/9] net: ethtool: netlink: Add support for triggering a cable test
Date: Sun, 26 Apr 2020 22:38:33 +0200 [thread overview]
Message-ID: <20200426203833.GB1183480@lunn.ch> (raw)
In-Reply-To: <20200426193634.GB23225@lion.mk-sys.cz>
> > +const struct ethnl_request_ops ethnl_cable_test_act_ops = {
> > + .request_cmd = ETHTOOL_MSG_CABLE_TEST_ACT,
> > + .reply_cmd = ETHTOOL_MSG_CABLE_TEST_ACT_REPLY,
> > + .hdr_attr = ETHTOOL_A_CABLE_TEST_HEADER,
> > + .max_attr = ETHTOOL_A_CABLE_TEST_MAX,
> > + .req_info_size = sizeof(struct cable_test_req_info),
> > + .reply_data_size = sizeof(struct cable_test_reply_data),
> > + .request_policy = cable_test_get_policy,
> > +};
> > +
>
> As you register ethnl_act_cable_test() as doit handler and don't use any
> of ethnl_default_*() handlers, you don't need to define
> ethnl_cable_test_act_ops (and also struct cable_test_req_info and struct
> cable_test_reply_data). These would be only used by default doit/dumpit
> handlers and default notification handler.
O.K, than
>
> > +/* CABLE_TEST_ACT */
> > +
> > +static const struct nla_policy
> > +cable_test_set_policy[ETHTOOL_A_CABLE_TEST_MAX + 1] = {
> > + [ETHTOOL_A_CABLE_TEST_UNSPEC] = { .type = NLA_REJECT },
> > + [ETHTOOL_A_CABLE_TEST_HEADER] = { .type = NLA_NESTED },
> > +};
>
> This should be probably rather named cable_test_act_policy - or maybe
> cable_test_policy would suffice as you have only one request message
> type (I've been using *_get_policy for *_GET request and *_set_policy
> for *_SET).
I probably just cut/paste and changes the name, but not set to act. I
will fix this.
> > +int ethnl_act_cable_test(struct sk_buff *skb, struct genl_info *info)
> > +{
> > + struct nlattr *tb[ETHTOOL_A_CABLE_TEST_MAX + 1];
> > + struct ethnl_req_info req_info = {};
> > + struct net_device *dev;
> > + int ret;
> > +
> > + ret = nlmsg_parse(info->nlhdr, GENL_HDRLEN, tb,
> > + ETHTOOL_A_CABLE_TEST_MAX,
> > + cable_test_set_policy, info->extack);
> > + if (ret < 0)
> > + return ret;
> > +
> > + ret = ethnl_parse_header_dev_get(&req_info,
> > + tb[ETHTOOL_A_CABLE_TEST_HEADER],
> > + genl_info_net(info), info->extack,
> > + true);
> > + if (ret < 0)
> > + return ret;
> > +
> > + dev = req_info.dev;
> > + if (!dev->phydev) {
> > + ret = -EOPNOTSUPP;
> > + goto out_dev_put;
> > + }
> > +
> > + rtnl_lock();
> > + ret = ethnl_ops_begin(dev);
> > + if (ret < 0)
> > + goto out_rtnl;
> > +
> > + ret = phy_start_cable_test(dev->phydev, info->extack);
> > +
> > + ethnl_ops_complete(dev);
> > +out_rtnl:
> > + rtnl_unlock();
> > +out_dev_put:
> > + dev_put(dev);
> > + return ret;
> > +}
>
> As you don't send a reply message, you don't need
> ETHTOOL_MSG_CABLE_TEST_ACT_REPLY either (we may introduce it later if
> there is a reply message).
One thing i was thinking about is sending user space a cookie at this
point, to help pair the request to the multicasted results. Then the
reply would be useful.
Andrew
next prev parent reply other threads:[~2020-04-26 20:38 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-25 18:06 [PATCH net-next v1 0/9] Ethernet Cable test support Andrew Lunn
2020-04-25 18:06 ` [PATCH net-next v1 1/9] net: phy: Add cable test support to state machine Andrew Lunn
2020-04-26 19:46 ` Michal Kubecek
2020-04-26 20:31 ` Andrew Lunn
2020-04-26 21:22 ` Florian Fainelli
2020-04-25 18:06 ` [PATCH net-next v1 2/9] net: phy: Add support for polling cable test Andrew Lunn
2020-04-25 19:49 ` Florian Fainelli
2020-04-25 20:10 ` Andrew Lunn
2020-04-26 21:19 ` Florian Fainelli
2020-04-26 22:07 ` Andrew Lunn
2020-04-25 18:06 ` [PATCH net-next v1 3/9] net: ethtool: netlink: Add support for triggering a " Andrew Lunn
2020-04-26 19:36 ` Michal Kubecek
2020-04-26 20:38 ` Andrew Lunn [this message]
2020-04-26 20:50 ` Michal Kubecek
2020-04-25 18:06 ` [PATCH net-next v1 4/9] net: ethtool: Add attributes for cable test reports Andrew Lunn
2020-04-25 20:00 ` Randy Dunlap
2020-04-26 20:25 ` Michal Kubecek
2020-04-26 21:12 ` Andrew Lunn
2020-04-27 7:13 ` Michal Kubecek
2020-04-29 16:16 ` Michael Walle
2020-04-29 18:57 ` Andrew Lunn
2020-04-29 18:58 ` Florian Fainelli
2020-04-29 19:32 ` Michael Walle
2020-04-25 18:06 ` [PATCH net-next v1 5/9] net: ethtool: Make helpers public Andrew Lunn
2020-04-25 18:06 ` [PATCH net-next v1 6/9] net: ethtool: Add infrastructure for reporting cable test results Andrew Lunn
2020-04-25 18:06 ` [PATCH net-next v1 7/9] net: ethtool: Add helpers for reporting " Andrew Lunn
2020-04-25 18:06 ` [PATCH net-next v1 8/9] net: phy: marvell: Add cable test support Andrew Lunn
2020-04-25 18:06 ` [PATCH net-next v1 9/9] net: phy: Put interface into oper testing during cable test Andrew Lunn
2020-04-29 16:02 ` [PATCH net-next v1 0/9] Ethernet Cable test support Michael Walle
2020-04-29 16:32 ` Andrew Lunn
2020-04-30 17:48 ` Michael Walle
2020-04-30 18:23 ` Andrew Lunn
2020-04-30 19:44 ` Michael Walle
2020-04-30 20:51 ` Andrew Lunn
2020-04-30 18:34 ` Florian Fainelli
2020-04-30 19:31 ` Michael Walle
2020-04-30 19:38 ` Florian Fainelli
2020-04-30 19:52 ` Michael Walle
2020-04-30 19:41 ` Andrew Lunn
2020-04-30 20:01 ` Michael Walle
2020-04-30 20:56 ` Andrew Lunn
2020-04-30 20:04 ` Florian Fainelli
2020-04-30 20:13 ` Michael Walle
2020-04-30 20:19 ` Florian Fainelli
2020-04-30 21:16 ` Michael Walle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200426203833.GB1183480@lunn.ch \
--to=andrew@lunn.ch \
--cc=cphealy@gmail.com \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=mkubecek@suse.cz \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).