| Summary: | Tunnel Add problem in Fedora 15 since 2.6.40 | |||
|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Goran Scuric <scuric> | |
| Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> | |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | |
| Severity: | urgent | Docs Contact: | ||
| Priority: | high | |||
| Version: | 16 | CC: | gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda, ovasik | |
| Target Milestone: | --- | |||
| Target Release: | --- | |||
| Hardware: | x86_64 | |||
| OS: | Linux | |||
| Whiteboard: | ||||
| Fixed In Version: | kernel-3.1.2-1.fc16 | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 756054 (view as bug list) | Environment: | ||
| Last Closed: | 2011-11-25 02:31:54 UTC | Type: | --- | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Bug Depends On: | ||||
| Bug Blocks: | 756054 | |||
|
Description
Goran Scuric
2011-11-03 18:01:32 UTC
The problem is in the kernel .../net/ipv6/ip6_tunnel.c file in tunnel create procedure .... sprintf (buf, "ip6tnl%%d") there should be only one percent sign at the end ... Basesystem is just meta component with no content. As you stated problem is in kernel, reassigning there. (In reply to comment #1) > The problem is in the kernel .../net/ipv6/ip6_tunnel.c file in tunnel create > procedure .... > > sprintf (buf, "ip6tnl%%d") > > there should be only one percent sign at the end ... That has been like that since 2008. It is supposed to trigger dev_alloc_name to fully resolve the name when the device is registered. See commit 34cc7ba6. So there is probably something else going on. Do you have some more thorough steps to recreate this issue? I don't have any problems with the simple steps you listed: [root@localhost ~]# ip -6 tunnel show [root@localhost ~]# ip -6 tunnel add [root@localhost ~]# ip -6 tunnel show ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000) [root@localhost ~]# ip -6 tunnel ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000) [root@localhost ~]# uname -a Linux localhost.localdomain 2.6.40.6-0.fc15.x86_64 #1 SMP Tue Oct 4 00:39:50 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux [root@localhost ~]# Hi, here are the snapshots of adding couple of tunnels in both good and bad kernels. I still strongly believe that all you need to do is remove the double percent sign in the ip6_tunnel.c. Double just does not make any sense. My guess is that Fedora fixed this in their private version in the 2.6.38 but never propagated the change into kernel.org. The next fedora used 2.6.40 out of kernel.org and forgot to fix it again.
We are heavily using the IPv6 and IPv6 tunneling, and we fixed other things in PERL libraries to make all work well. But this needs to be fixed in kernel.org trees. IT ALSO NEEDS TO BE FIXED FOR KERNEL 3.X !!!
If you need more info email me at scuric
(In the end there can be only one ..)
GOOD KERNEL:
[root@sin dynasat]#
[root@sin dynasat]# uname -a
Linux sin.isi.edu 2.6.38.6-26.rc1.fc15.x86_64 #1 SMP Mon May 9 20:45:15 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@sin dynasat]#
[dynasat@sin ~]$ su
Password:
[root@sin dynasat]# ip -6 tunnel show
[root@sin dynasat]#
[root@sin dynasat]# ip -6 tunnel add remote fec0::100 local fec0::200
[root@sin dynasat]#
[root@sin dynasat]# ip -6 tunnel show
ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
ip6tnl1: ipv6/ipv6 remote fec0::100 local fec0::200 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
[root@sin dynasat]#
[root@sin dynasat]# ip -6 tunnel add remote fec0::300 local fec0::400
[root@sin dynasat]#
[root@sin dynasat]# ip -6 tunnel show
ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
ip6tnl1: ipv6/ipv6 remote fec0::100 local fec0::200 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
ip6tnl2: ipv6/ipv6 remote fec0::300 local fec0::400 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
[root@sin dynasat]#
BAD KERNEL:
[root@div goran]#
[root@div goran]# uname -a
Linux div.isi.edu 2.6.40.6-0.fc15.x86_64 #1 SMP Tue Oct 4 00:39:50 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@div goran]#
[root@div goran]# ip -6 tunnel add
[root@div goran]#
[root@div goran]# ip -6 tunnel show
ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
[root@div goran]#
[root@div goran]# ip -6 tunnel add remote fec0::100 local fec0::200
[root@div goran]#
[root@div goran]# ip -6 tunnel show
ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
ip6tnl%d: ipv6/ipv6 remote fec0::100 local fec0::200 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
[root@div goran]#
[root@div goran]# ip -6 tunnel add remote fec0::300 local fec0::400
[root@div goran]#
[root@div goran]# ip -6 tunnel show
ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
ip6tnl%d: ipv6/ipv6 remote fec0::100 local fec0::200 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
ip6tnl%d: ipv6/ipv6 remote fec0::300 local fec0::400 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
[root@div goran]#
==================
OK. I think I have this figured out. Commit 1c5cae815 was added in 3.0, and that removed a function call in ip6_tunnel.c that converted the ip6tnl%%d into a proper name. I'm working on a patch right now. OK. I tested the patch on a local f16 guest and the problem seems to be resolved:
Before, on the F16 GA kernel:
[root@localhost ~]# ip -6 tunnel add remote fec0::100 local fec0::200
[root@localhost ~]# ip -6 tunnel show
ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
ip6tnl%d: ipv6/ipv6 remote fec0::100 local fec0::200 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
[root@localhost ~]#
With the patch:
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.1.1-2.rc1.fc16.x86_64 #1 SMP Thu Nov 10 19:16:50 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# ip -6 tunnel add remote fec0::100 local fec0::200
[root@localhost ~]# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 1048 12 0 0 0 0 0 0 1048 12 0 0 0 0 0 0
eth0: 22975 210 0 6 0 0 0 0 20727 155 0 0 0 0 0 0
ip6tnl0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ip6tnl1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[root@localhost ~]# ip -6 tunnel show
ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
ip6tnl1: ipv6/ipv6 remote fec0::100 local fec0::200 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
[root@localhost ~]#
I'll post this upstream for feedback.
Committed to F15-rawhide. kernel-3.1.2-1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/kernel-3.1.2-1.fc16 Package kernel-3.1.2-1.fc16: * should fix your issue, * was pushed to the Fedora 16 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing kernel-3.1.2-1.fc16' as soon as you are able to, then reboot. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2011-16237/kernel-3.1.2-1.fc16 then log in and leave karma (feedback). kernel-3.1.2-1.fc16 has been pushed to the Fedora 16 stable repository. If problems still persist, please make note of it in this bug report. |