From: Robert Shearman <rshearma@brocade.com>
To: Jiri Benc <jbenc@redhat.com>
Cc: <davem@davemloft.net>, <netdev@vger.kernel.org>,
Roopa Prabhu <roopa@cumulusnetworks.com>,
Tom Herbert <tom@herbertland.com>, Thomas Graf <tgraf@suug.ch>,
"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: [PATCH net-next 1/3] lwtunnel: autoload of lwt modules
Date: Mon, 15 Feb 2016 16:22:08 +0000 [thread overview]
Message-ID: <56C1FB30.8090005@brocade.com> (raw)
In-Reply-To: <20160215170232.5f73b111@griffin>
On 15/02/16 16:02, Jiri Benc wrote:
> On Mon, 15 Feb 2016 15:42:01 +0000, Robert Shearman wrote:
>> +static const char *lwtunnel_encap_str(enum lwtunnel_encap_types encap_type)
>> +{
>> + switch (encap_type) {
>> + case LWTUNNEL_ENCAP_MPLS:
>> + return "LWTUNNEL_ENCAP_MPLS";
>> + case LWTUNNEL_ENCAP_IP:
>> + return "LWTUNNEL_ENCAP_IP";
>> + case LWTUNNEL_ENCAP_ILA:
>> + return "LWTUNNEL_ENCAP_ILA";
>> + case LWTUNNEL_ENCAP_IP6:
>> + return "LWTUNNEL_ENCAP_IP6";
>> + case LWTUNNEL_ENCAP_NONE:
>> + case __LWTUNNEL_ENCAP_MAX:
>> + /* should not have got here */
>> + break;
>> + }
>> + WARN_ON(1);
>> + return "LWTUNNEL_ENCAP_NONE";
>> +}
>> +
>> +#endif /* CONFIG_MODULES */
>> +
>> struct lwtunnel_state *lwtunnel_state_alloc(int encap_len)
>> {
>> struct lwtunnel_state *lws;
>> @@ -85,6 +109,14 @@ int lwtunnel_build_state(struct net_device *dev, u16 encap_type,
>> ret = -EOPNOTSUPP;
>> rcu_read_lock();
>> ops = rcu_dereference(lwtun_encaps[encap_type]);
>> +#ifdef CONFIG_MODULES
>> + if (!ops) {
>> + rcu_read_unlock();
>> + request_module("rtnl-lwt-%s", lwtunnel_encap_str(encap_type));
>
> Why the repeating of "lwt"/"LWTUNNEL" and the unnecessary "ENCAP"?
> Wouldn't be lwtunnel_encap_str returning just "MPLS" or "ILA" enough?
> I don't have any strong preference here, it just looks weird to me.
> Maybe there's a reason.
Yeah, it's the C preprocessor. MODULE_ALIAS_RTNL_LWT includes the string
for the encap type in the module alias, and since the LWT encap types
are defined as enums this is symbolic name. I can't see any way of
getting the preprocessor to convert
MODULE_ALIAS_RTNL_LWT(LWTUNNEL_ENCAP_MPLS) into "rtnl-lwt-MPLS", but I'm
open to suggestions.
I could just drop the "lwt-" bit of the alias string given that it's
included in the name of the enum values.
> Also, this doesn't affect IP lwtunnels, i.e. LWTUNNEL_ENCAP_IP and
> LWTUNNEL_ENCAP_IP6. Should we just return NULL from lwtunnel_encap_str
> in such cases (plus unknown encap_type) and WARN on the NULL here?
True, but I figured that it was cleaner for the lwtunnel infra to not
assume whether how those modules are implemented. If you disagree, then
I can change to doing as you suggest.
Thanks,
Rob
next prev parent reply other threads:[~2016-02-15 16:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-15 15:42 [PATCH net-next 0/3] lwtunnel: autoload of lwt modules Robert Shearman
2016-02-15 15:42 ` [PATCH net-next 1/3] " Robert Shearman
2016-02-15 16:02 ` Jiri Benc
2016-02-15 16:22 ` Robert Shearman [this message]
2016-02-15 16:32 ` Jiri Benc
2016-02-15 18:08 ` Robert Shearman
2016-02-15 21:33 ` Eric W. Biederman
2016-02-16 14:14 ` Robert Shearman
2016-02-15 15:42 ` [PATCH net-next 2/3] mpls: autoload lwt module Robert Shearman
2016-02-15 15:42 ` [PATCH net-next 3/3] ila: autoload module Robert Shearman
2016-02-19 9:43 ` [PATCH net-next v2 0/3] lwtunnel: autoload of lwt modules Robert Shearman
2016-02-19 9:43 ` [PATCH net-next v2 1/3] " Robert Shearman
2016-02-19 9:43 ` [PATCH net-next v2 2/3] mpls: autoload lwt module Robert Shearman
2016-02-19 9:43 ` [PATCH net-next v2 3/3] ila: autoload module Robert Shearman
2016-02-22 3:00 ` [PATCH net-next v2 0/3] lwtunnel: autoload of lwt modules David Miller
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=56C1FB30.8090005@brocade.com \
--to=rshearma@brocade.com \
--cc=davem@davemloft.net \
--cc=ebiederm@xmission.com \
--cc=jbenc@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=roopa@cumulusnetworks.com \
--cc=tgraf@suug.ch \
--cc=tom@herbertland.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.