[Bug 1732032] Re: ip maddr show and ip maddr show dev enP20p96s0 show different data
Andreas Hasenack
andreas at canonical.com
Wed Nov 29 20:09:01 UTC 2017
** Description changed:
- Attn. Canonical: Please make sure that the existing iproute2 package
- gets updated with the two referenced patches as the missing information
- is impacting our standard test suites.
+ [Impact]
+
+ * An explanation of the effects of the bug on users and
+
+ * justification for backporting the fix to the stable release.
+
+ * In addition, it is helpful, but not required, to include an
+ explanation of how the upload fixes this bug.
+
+ [Test Case]
+
+ * detailed instructions how to reproduce the bug
+
+ * these should allow someone who is not familiar with the affected
+ package to reproduce the bug and verify that the updated package fixes
+ the problem.
+
+ [Regression Potential]
+
+ * discussion of how regressions are most likely to manifest as a result
+ of this change.
+
+ * It is assumed that any SRU candidate patch is well-tested before
+ upload and has a low overall risk of regression, but it's important
+ to make the effort to think about what ''could'' happen in the
+ event of a regression.
+
+ * This both shows the SRU team that the risks have been considered,
+ and provides guidance to testers in regression-testing the SRU.
+
+ [Other Info]
+
+ * Anything else you think is useful to include
+ * Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
+ * and address these questions in advance
+
+
+ --- Original description ---
+ Attn. Canonical: Please make sure that the existing iproute2 package gets updated with the two referenced patches as the missing information is impacting our standard test suites.
Thanks.
== Comment: #0 - Alton L. Pundt - 2017-03-29 14:37:57 ==
---Problem Description---
ip maddr show and ip maddr show dev enP20p96s0 show different data
-
+
---uname output---
Linux roselp1 4.10.0-14-generic #16-Ubuntu SMP Fri Mar 17 15:19:05 UTC 2017 ppc64le ppc64le ppc64le GNU/Linux
-
- Machine Type = 8286-42A
-
+
+ Machine Type = 8286-42A
+
---Steps to Reproduce---
- run these at command line:
+ run these at command line:
root at roselp1:~# ip maddr show
...
10: enP20p96s0
- link 33:33:00:00:00:01
- link 01:00:5e:00:00:01
- link 33:33:ff:6d:d0:d0
- link 01:00:5e:00:00:fc
- link 33:33:00:01:00:03
- inet 224.0.0.252
- inet 224.0.0.1
- inet6 ff02::1:3
- inet6 ff02::1:ff6d:d0d0 users 3
- inet6 ff02::1
- inet6 ff01::1
+ link 33:33:00:00:00:01
+ link 01:00:5e:00:00:01
+ link 33:33:ff:6d:d0:d0
+ link 01:00:5e:00:00:fc
+ link 33:33:00:01:00:03
+ inet 224.0.0.252
+ inet 224.0.0.1
+ inet6 ff02::1:3
+ inet6 ff02::1:ff6d:d0d0 users 3
+ inet6 ff02::1
+ inet6 ff01::1
...
root at roselp1:~# ip maddr show dev enP20p96s0
10: enP20p96s0
- link 33:33:00:00:00:01
- link 01:00:5e:00:00:01
- link 33:33:ff:6d:d0:d0
- link 01:00:5e:00:00:fc
- link 33:33:00:01:00:03
- inet6 ff02::1:3
- inet6 ff02::1:ff6d:d0d0 users 3
- inet6 ff02::1
- inet6 ff01::1
-
+ link 33:33:00:00:00:01
+ link 01:00:5e:00:00:01
+ link 33:33:ff:6d:d0:d0
+ link 01:00:5e:00:00:fc
+ link 33:33:00:01:00:03
+ inet6 ff02::1:3
+ inet6 ff02::1:ff6d:d0d0 users 3
+ inet6 ff02::1
+ inet6 ff01::1
+
== Comment: #12 - David Z. Dai - 2017-11-13 15:07:32 ==
I found upstream already had patches that fix this problem:
1) https://www.spinics.net/lists/netdev/msg415009.html
commit 530903dd9003492edb0714e937ad4a5d1219e376
Author: Petr Vorel <pvorel at suse.cz>
Date: Tue Jan 17 00:25:50 2017 +0100
- ip: fix igmp parsing when iface is long
+ ip: fix igmp parsing when iface is long
- Entries with long vhost names in /proc/net/igmp have no whitespace
- between name and colon, so sscanf() adds it to vhost and
- 'ip maddr show iface' doesn't include inet result.
+ Entries with long vhost names in /proc/net/igmp have no whitespace
+ between name and colon, so sscanf() adds it to vhost and
+ 'ip maddr show iface' doesn't include inet result.
- Signed-off-by: Petr Vorel <pvorel at suse.cz>
-
+ Signed-off-by: Petr Vorel <pvorel at suse.cz>
2) https://www.spinics.net/lists/netdev/msg461479.html
commit 21503ed2af233ffe795926f6641ac84ec1b15bf9
Author: Michal Kubecek <mkubecek at suse.cz>
Date: Thu Oct 19 10:21:08 2017 +0200
- ip maddr: fix filtering by device
+ ip maddr: fix filtering by device
- Commit 530903dd9003 ("ip: fix igmp parsing when iface is long") uses
- variable len to keep trailing colon from interface name comparison. This
- variable is local to loop body but we set it in one pass and use it in
- following one(s) so that we are actually using (pseudo)random length for
- comparison. This became apparent since commit b48a1161f5f9 ("ipmaddr: Avoid
- accessing uninitialized data") always initializes len to zero so that the
- name comparison is always true. As a result, "ip maddr show dev eth0" shows
- IPv4 multicast addresses for all interfaces.
+ Commit 530903dd9003 ("ip: fix igmp parsing when iface is long") uses
+ variable len to keep trailing colon from interface name comparison. This
+ variable is local to loop body but we set it in one pass and use it in
+ following one(s) so that we are actually using (pseudo)random length for
+ comparison. This became apparent since commit b48a1161f5f9 ("ipmaddr: Avoid
+ accessing uninitialized data") always initializes len to zero so that the
+ name comparison is always true. As a result, "ip maddr show dev eth0" shows
+ IPv4 multicast addresses for all interfaces.
- Instead of keeping the length, let's simply replace the trailing colon with
- a null byte. The bonus is that we get correct interface name in ma.name.
+ Instead of keeping the length, let's simply replace the trailing colon with
+ a null byte. The bonus is that we get correct interface name in ma.name.
- Fixes: 530903dd9003 ("ip: fix igmp parsing when iface is long")
- Signed-off-by: Michal Kubecek <mkubecek at suse.cz>
- Acked-by: Phil Sutter <phil at nwl.cc>
- Acked-by: Petr Vorel <pvorel at suse.cz>
+ Fixes: 530903dd9003 ("ip: fix igmp parsing when iface is long")
+ Signed-off-by: Michal Kubecek <mkubecek at suse.cz>
+ Acked-by: Phil Sutter <phil at nwl.cc>
+ Acked-by: Petr Vorel <pvorel at suse.cz>
The fix is in the same place, but different way.
This is the current implementation In ip/ipmaddr.c file:
- struct ma_info *ma;
+ struct ma_info *ma;
- if (buf[0] != '\t') {
- size_t len;
+ if (buf[0] != '\t') {
+ size_t len;
- sscanf(buf, "%d%s", &m.index, m.name);
- len = strlen(m.name);
- if (m.name[len - 1] == ':')
- m.name[len - 1] = '\0';
- continue;
- }
-
+ sscanf(buf, "%d%s", &m.index, m.name);
+ len = strlen(m.name);
+ if (m.name[len - 1] == ':')
+ m.name[len - 1] = '\0';
+ continue;
+ }
The existing "ip" command that shows the problem:
[root at coral-sriov-host1 ip]# /usr/sbin/ip maddr show dev enP1p12s0f0 /* <-- We do NOT see the IPv4 maddr */
2: enP1p12s0f0
- link 01:00:5e:00:00:01
- inet6 ff02::1
- inet6 ff01::1
+ link 01:00:5e:00:00:01
+ inet6 ff02::1
+ inet6 ff01::1
I clone the latest "ip" utility from upstream to the same test box.
[root at coral-sriov-host1 git_iproute2]# git clone https://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git
I build the "ip" utility on same test box, which has the above 2 patches
included.
[root at coral-sriov-host1 ip]# /root/git_iproute2/iproute2/ip/ip maddr show dev enP1p12s0f0 /* <--- shows correct IPv4 maddr */
2: enP1p12s0f0
- link 01:00:5e:00:00:01
- inet 224.0.0.1 /* <--- */
- inet6 ff02::1
- inet6 ff01::1
+ link 01:00:5e:00:00:01
+ inet 224.0.0.1 /* <--- */
+ inet6 ff02::1
+ inet6 ff01::1
--
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to iproute2 in Ubuntu.
https://bugs.launchpad.net/bugs/1732032
Title:
ip maddr show and ip maddr show dev enP20p96s0 show different data
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-power-systems/+bug/1732032/+subscriptions
More information about the Ubuntu-server-bugs
mailing list