diff mbox

[3/3] ipip: add module alias for tunl0 tunnel device

Message ID 20101129194805.851988995@vyatta.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

stephen hemminger Nov. 29, 2010, 7:47 p.m. UTC
If ipip is built as a module the 'ip tunnel add' command would fail because
the ipip module was not being autoloaded.  Adding an alias for
the tunl0 device name cause dev_load() to autoload it when needed.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Eric Dumazet Nov. 30, 2010, 7:19 a.m. UTC | #1
Le lundi 29 novembre 2010 à 11:47 -0800, Stephen Hemminger a écrit :
> pièce jointe document texte brut (ipip-alias.patch)
> If ipip is built as a module the 'ip tunnel add' command would fail because
> the ipip module was not being autoloaded.  Adding an alias for
> the tunl0 device name cause dev_load() to autoload it when needed.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> 
> --- a/net/ipv4/ipip.c	2010-11-29 11:40:25.026277890 -0800
> +++ b/net/ipv4/ipip.c	2010-11-29 11:41:05.790681069 -0800
> @@ -913,3 +913,4 @@ static void __exit ipip_fini(void)
>  module_init(ipip_init);
>  module_exit(ipip_fini);
>  MODULE_LICENSE("GPL");
> +MODULE_ALIAS("tunl0");

I am not sure I understand you...

Here, I do have ipip built as a module, and I have no problem :

# lsmod|grep ipip
# ip tunnel add
cannot determine tunnel mode (ipip, gre or sit)
# lsmod|grep ipip
# ip tunnel add mode ipip
# lsmod|grep ipip
ipip                    7692  0 
tunnel4                 2949  1 ipip
# 

What am I missing ?


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Changli Gao Nov. 30, 2010, 7:55 a.m. UTC | #2
On Tue, Nov 30, 2010 at 3:19 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le lundi 29 novembre 2010 à 11:47 -0800, Stephen Hemminger a écrit :
>> pièce jointe document texte brut (ipip-alias.patch)
>> If ipip is built as a module the 'ip tunnel add' command would fail because
>> the ipip module was not being autoloaded.  Adding an alias for
>> the tunl0 device name cause dev_load() to autoload it when needed.
>>
>> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
>>
>> --- a/net/ipv4/ipip.c 2010-11-29 11:40:25.026277890 -0800
>> +++ b/net/ipv4/ipip.c 2010-11-29 11:41:05.790681069 -0800
>> @@ -913,3 +913,4 @@ static void __exit ipip_fini(void)
>>  module_init(ipip_init);
>>  module_exit(ipip_fini);
>>  MODULE_LICENSE("GPL");
>> +MODULE_ALIAS("tunl0");
>
> I am not sure I understand you...
>
> Here, I do have ipip built as a module, and I have no problem :
>
> # lsmod|grep ipip
> # ip tunnel add
> cannot determine tunnel mode (ipip, gre or sit)
> # lsmod|grep ipip
> # ip tunnel add mode ipip
> # lsmod|grep ipip
> ipip                    7692  0
> tunnel4                 2949  1 ipip
> #
>
> What am I missing ?
>
>

localhost linux # lsmod
Module                  Size  Used by
ipv6                  309359  12
localhost linux # ip -V
ip utility, iproute2-ss091226
localhost linux # ip tunnel add mode gre
ioctl: No such device
localhost linux # ip tunnel add mode ipip
ioctl: No such device
localhost linux # modprobe ip_gre
localhost linux # modprobe ipip
localhost linux # ip tunnel add mode ipip
localhost linux # ip tunnel add mode gre
localhost linux # lsmod
Module                  Size  Used by
ipip                    8128  0
tunnel4                 2683  1 ipip
ip_gre                 15055  0
gre                     1967  1 ip_gre
ipv6                  309359  13 ip_gre
Eric Dumazet Nov. 30, 2010, 8:21 a.m. UTC | #3
Le mardi 30 novembre 2010 à 15:55 +0800, Changli Gao a écrit :
> On Tue, Nov 30, 2010 at 3:19 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> > Le lundi 29 novembre 2010 à 11:47 -0800, Stephen Hemminger a écrit :
> >> pièce jointe document texte brut (ipip-alias.patch)
> >> If ipip is built as a module the 'ip tunnel add' command would fail because
> >> the ipip module was not being autoloaded.  Adding an alias for
> >> the tunl0 device name cause dev_load() to autoload it when needed.
> >>
> >> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> >>
> >> --- a/net/ipv4/ipip.c 2010-11-29 11:40:25.026277890 -0800
> >> +++ b/net/ipv4/ipip.c 2010-11-29 11:41:05.790681069 -0800
> >> @@ -913,3 +913,4 @@ static void __exit ipip_fini(void)
> >>  module_init(ipip_init);
> >>  module_exit(ipip_fini);
> >>  MODULE_LICENSE("GPL");
> >> +MODULE_ALIAS("tunl0");
> >
> > I am not sure I understand you...
> >
> > Here, I do have ipip built as a module, and I have no problem :
> >
> > # lsmod|grep ipip
> > # ip tunnel add
> > cannot determine tunnel mode (ipip, gre or sit)
> > # lsmod|grep ipip
> > # ip tunnel add mode ipip
> > # lsmod|grep ipip
> > ipip                    7692  0
> > tunnel4                 2949  1 ipip
> > #
> >
> > What am I missing ?
> >
> >
> 
> localhost linux # lsmod
> Module                  Size  Used by
> ipv6                  309359  12
> localhost linux # ip -V
> ip utility, iproute2-ss091226
> localhost linux # ip tunnel add mode gre
> ioctl: No such device
> localhost linux # ip tunnel add mode ipip
> ioctl: No such device
> localhost linux # modprobe ip_gre
> localhost linux # modprobe ipip
> localhost linux # ip tunnel add mode ipip
> localhost linux # ip tunnel add mode gre
> localhost linux # lsmod
> Module                  Size  Used by
> ipip                    8128  0
> tunnel4                 2683  1 ipip
> ip_gre                 15055  0
> gre                     1967  1 ip_gre
> ipv6                  309359  13 ip_gre
> 
> 

Hmm. I still dont get it, ipv6 as a module ?

Works well here.

# lsmod
Module                  Size  Used by
bonding                89194  0 
ipv6                  232889  29 bonding
# ip tunnel add mode ipip
# lsmod
Module                  Size  Used by
ipip                    6221  0 
bonding                89194  0 
ipv6                  232889  29 bonding
# ip -V
ip utility, iproute2-ss100823
# 


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
stephen hemminger Nov. 30, 2010, 4:08 p.m. UTC | #4
On Tue, 30 Nov 2010 09:21:09 +0100
Eric Dumazet <eric.dumazet@gmail.com> wrote:

> Le mardi 30 novembre 2010 à 15:55 +0800, Changli Gao a écrit :
> > On Tue, Nov 30, 2010 at 3:19 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> > > Le lundi 29 novembre 2010 à 11:47 -0800, Stephen Hemminger a écrit :
> > >> pièce jointe document texte brut (ipip-alias.patch)
> > >> If ipip is built as a module the 'ip tunnel add' command would fail because
> > >> the ipip module was not being autoloaded.  Adding an alias for
> > >> the tunl0 device name cause dev_load() to autoload it when needed.
> > >>
> > >> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> > >>
> > >> --- a/net/ipv4/ipip.c 2010-11-29 11:40:25.026277890 -0800
> > >> +++ b/net/ipv4/ipip.c 2010-11-29 11:41:05.790681069 -0800
> > >> @@ -913,3 +913,4 @@ static void __exit ipip_fini(void)
> > >>  module_init(ipip_init);
> > >>  module_exit(ipip_fini);
> > >>  MODULE_LICENSE("GPL");
> > >> +MODULE_ALIAS("tunl0");
> > >
> > > I am not sure I understand you...
> > >
> > > Here, I do have ipip built as a module, and I have no problem :
> > >
> > > # lsmod|grep ipip
> > > # ip tunnel add
> > > cannot determine tunnel mode (ipip, gre or sit)
> > > # lsmod|grep ipip
> > > # ip tunnel add mode ipip
> > > # lsmod|grep ipip
> > > ipip                    7692  0
> > > tunnel4                 2949  1 ipip
> > > #
> > >
> > > What am I missing ?
> > >
> > >
> > 
> > localhost linux # lsmod
> > Module                  Size  Used by
> > ipv6                  309359  12
> > localhost linux # ip -V
> > ip utility, iproute2-ss091226
> > localhost linux # ip tunnel add mode gre
> > ioctl: No such device
> > localhost linux # ip tunnel add mode ipip
> > ioctl: No such device
> > localhost linux # modprobe ip_gre
> > localhost linux # modprobe ipip
> > localhost linux # ip tunnel add mode ipip
> > localhost linux # ip tunnel add mode gre
> > localhost linux # lsmod
> > Module                  Size  Used by
> > ipip                    8128  0
> > tunnel4                 2683  1 ipip
> > ip_gre                 15055  0
> > gre                     1967  1 ip_gre
> > ipv6                  309359  13 ip_gre
> > 
> > 
> 
> Hmm. I still dont get it, ipv6 as a module ?
> 
> Works well here.
> 
> # lsmod
> Module                  Size  Used by
> bonding                89194  0 
> ipv6                  232889  29 bonding
> # ip tunnel add mode ipip
> # lsmod
> Module                  Size  Used by
> ipip                    6221  0 
> bonding                89194  0 
> ipv6                  232889  29 bonding
> # ip -V
> ip utility, iproute2-ss100823
> # 

If you run debian there is a list of aliases in /etc/modprobe.d/aliases.conf
that includes the ipip alias.

My patch provides same information from the kernel. In olden times,
the kernel relied more on user space defined aliases, but in the modern
era MODULE_ALIAS() is used to provide that information.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Eric Dumazet Nov. 30, 2010, 4:27 p.m. UTC | #5
Le mardi 30 novembre 2010 à 08:08 -0800, Stephen Hemminger a écrit :

> If you run debian there is a list of aliases in /etc/modprobe.d/aliases.conf
> that includes the ipip alias.
> 
> My patch provides same information from the kernel. In olden times,
> the kernel relied more on user space defined aliases, but in the modern
> era MODULE_ALIAS() is used to provide that information.
> 

Thanks for the clarification.

Running an old Red Hat Enterprise Linux ES release 4 (Nahant Update 8)

# cat /etc/modprobe.conf
alias eth0 bnx2x
alias eth1 bnx2x
alias eth2 tg3
alias eth3 tg3

(No /etc/modprobe.d/ directory)

But I can see the alias in the '.dist' file

# grep ipip /etc/modprobe.conf.dist
alias tunl0 ipip

# mv /etc/modprobe.conf.dist /etc/modprobe.conf.dist.old
# ip tunnel add mode ipip
ioctl: No such device

Thanks !


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- a/net/ipv4/ipip.c	2010-11-29 11:40:25.026277890 -0800
+++ b/net/ipv4/ipip.c	2010-11-29 11:41:05.790681069 -0800
@@ -913,3 +913,4 @@  static void __exit ipip_fini(void)
 module_init(ipip_init);
 module_exit(ipip_fini);
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("tunl0");