1. 10 Dec, 2008 6 commits
  2. 03 Dec, 2008 3 commits
    • Joe Perches's avatar
    • Benjamin Thery's avatar
      net: /proc/net/ip_mr_cache, display Iif as a signed short · 999890b2
      Benjamin Thery authored
      Today, iproute2 fails to show multicast forwarding unresolved cache
      entries while scanning /proc/net/ip_mr_cache.
      Indeed, it expects to see -1 in 'Iif' column to identify unresolved
      entries but the kernel outputs 65535. It's a signed/unsigned issue:
      'Iif', the source interface, is retrieved from member mfc_parent in
      struct mfc_cache. mfc_parent is a vifi_t: unsigned short, but is
      displayed in ipmr_mfc_seq_show() as "%-3d", signed integer.
      In unresolevd entries, the 65535 value (0xFFFF) comes from this define:
      #define ALL_VIFS    ((vifi_t)(-1))
      That may explains why the guy who added support for this in iproute2
      thought a -1 should be expected.
      I don't know if this must be fixed in kernel or in iproute2. Who is
      right? What is the correct API? How was it designed originally?
      I let you decide if it should goes in the kernel or be fixed in iproute2.
      Signed-off-by: default avatarBenjamin Thery <benjamin.thery@bull.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Benjamin Thery's avatar
      net: fix /proc/net/ip_mr_cache display - V2 · 1ea472e2
      Benjamin Thery authored
      /proc/net/ip_mr_cache and /proc/net/ip6_mr_cache displays garbage when
      showing unresolved mfc_cache entries.
      [root@qemu tests]# cat /proc/net/ip_mr_cache
      Group    Origin   Iif     Pkts    Bytes    Wrong Oifs
      014C00EF 010014AC 1         10    10050        0  2:1    3:1
      024C00EF 010014AC 65535      514        2 -559067475
      The first line is correct. It is a resolved cache entry, 10 packets used it...
      The second line represents an unresolved entry, and the columns Pkts(4th),
      Bytes(5th) and Wrong(6th) just show garbage.
      In struct mfc_cache, there's an union to store data for resolved and
      unresolved cases. And what ipmr_mfc_seq_show() is printing in these 
      columns for the unresolved entries is some bytes from mfc_cache.mfc_un.res.
      (eg. In our case -559067475 is in fact 0xdead4ead which is the spinlock
      magic from mfc_cache.mfc_un.unres.unresolved.lock.magic).
      This patch replaces the garbage data written in these columns for the
      unresolved entries by '0' (zeros) which is more correct.
      This change doesn't break the ABI.
      Also, mfc->mfc_un.res.pkt, mfc->mfc_un.res.bytes, mfc->mfc_un.res.wrong_if
      are unsigned long.
      It applies on top of net-next-2.6.
      The patch for net-2.6 is slightly different because of the NIP6_FMT to
      %pI6 conversion that was made in the seq_printf.
      * Instead of breaking the ABI by suppressing the columns that have no
        meaning for unresolved entries, fill them with 0 values.
      Signed-off-by: default avatarBenjamin Thery <benjamin.thery@bull.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
  3. 20 Nov, 2008 2 commits
  4. 10 Nov, 2008 1 commit
  5. 29 Oct, 2008 2 commits
  6. 08 Oct, 2008 1 commit
  7. 19 Jul, 2008 1 commit
  8. 14 Jul, 2008 2 commits
  9. 03 Jul, 2008 1 commit
  10. 11 Jun, 2008 1 commit
  11. 04 Jun, 2008 1 commit
  12. 21 May, 2008 1 commit
  13. 27 Apr, 2008 1 commit
  14. 14 Apr, 2008 2 commits
  15. 11 Apr, 2008 2 commits
  16. 05 Apr, 2008 3 commits