[openib-general] some issues related to when/why IPoIB calls netif_carrier_on() etc

Or Gerlitz ogerlitz at voltaire.com
Wed Aug 2 05:32:19 PDT 2006


Roland,

I'd like to verify with you an issue related to the logic applied
by ipoib about when/why it decided to join the multicast group used
for IPv4 broadcast (eg ARP) and when/why its sets the carrier bit.

Probing ipoib and ifconfing ib0 to be UP, i see that ib0 is RUNNING,
has an IPv6 address and is joined to the IPv4 broascast group (ie to MGID
ff12:401b:ffff:0:0:0:ffff:ffff), see the exact sequence of operations below.

I wonder if you can shed some light on:

1) what is the exact reason that ib0 is running here, is it as of this
   "magic" configuration of the IPv6 addr that caused it to join to
   the IPv4 and IPv6 broascast groups?

2) is it well defined what conditions should hold s.t IPoIB will be RUNNING

3) just to make sure: RUNNING <--> ipoib called netif_carrier_on(), correct?
   i see that latter is called by ipoib_mcast_join_task(), is it when
   "joining everything we want to join to" holds or you can somehow
   refine the predicate?

thanks,

Or.

$ modprobe ib_ipoib

$ ifconfig ib0 up

$ ifconfig ib0

ib0       Link encap:UNSPEC  HWaddr 00-04-04-04-FE-80-00-00-00-00-00-00-00-00-00-00
          inet6 addr: fe80::208:f104:396:51dd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2044  Metric:1
          RX packets:35 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:128
          RX bytes:2760 (2.6 Kb)  TX bytes:456 (456.0 b)

$ ip addr show ib0

10: ib0: <BROADCAST,MULTICAST,UP,10000> mtu 2044 qdisc pfifo_fast qlen 128
    link/[32] 00:04:04:04:fe:80:00:00:00:00:00:00:00:08:f1:04:03:96:51:dd brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
    inet6 fe80::208:f104:396:51dd/64 scope link
       valid_lft forever preferred_lft forever


$ cat /sys/kernel/debug/ipoib/ib0_mcg

GID: ff12:401b:ffff:0:0:0:ffff:ffff
  created: 4294982836
  queuelen:         0
  complete:       yes
  send_only:       no

GID: ff12:601b:ffff:0:0:0:0:1
  created: 4294982838
  queuelen:         0
  complete:       yes
  send_only:       no

GID: ff12:601b:ffff:0:0:0:0:2
  created: 4294983192
  queuelen:         0
  complete:       yes
  send_only:      yes

GID: ff12:601b:ffff:0:0:0:0:16
  created: 4294982840
  queuelen:         0
  complete:       yes
  send_only:      yes

GID: ff12:601b:ffff:0:0:1:ff96:51dd
  created: 4294982838
  queuelen:         0
  complete:       yes
  send_only:       no

$ dmesg

ib0: bringing up interface
ib0: starting multicast thread
ADDRCONF(NETDEV_UP): ib0: link is not ready
ib0: joining MGID ff12:401b:ffff:0000:0000:0000:ffff:ffff
ib0: restarting multicast task
ib0: stopping multicast thread
ib0: waiting for MGID ff12:401b:ffff:0000:0000:0000:ffff:ffff
ib0: join completion for ff12:401b:ffff:0000:0000:0000:ffff:ffff (status -4)
ib0: starting multicast thread
ib0: joining MGID ff12:401b:ffff:0000:0000:0000:ffff:ffff
ib0: join completion for ff12:401b:ffff:0000:0000:0000:ffff:ffff (status 0)
ib0: Created ah ffff810034630380
ib0: MGID ff12:401b:ffff:0000:0000:0000:ffff:ffff AV ffff810034630380, LID 0xc000, SL 0
ib0: successfully joined all multicast groups
ADDRCONF(NETDEV_CHANGE): ib0: link becomes ready
ib0: restarting multicast task
ib0: stopping multicast thread
ib0: waiting for MGID ff12:401b:ffff:0000:0000:0000:ffff:ffff
ib0: adding multicast entry for mgid ff12:601b:ffff:0000:0000:0001:ff96:51dd
ib0: adding multicast entry for mgid ff12:601b:ffff:0000:0000:0000:0000:0001
ib0: starting multicast thread
ib0: joining MGID ff12:601b:ffff:0000:0000:0001:ff96:51dd
ib0: join completion for ff12:601b:ffff:0000:0000:0001:ff96:51dd (status 0)
ib0: Created ah ffff810034630d00
ib0: MGID ff12:601b:ffff:0000:0000:0001:ff96:51dd AV ffff810034630d00, LID 0xc006, SL 0
ib0: joining MGID ff12:601b:ffff:0000:0000:0000:0000:0001
ib0: join completion for ff12:601b:ffff:0000:0000:0000:0000:0001 (status 0)
ib0: Created ah ffff8100346305c0
ib0: MGID ff12:601b:ffff:0000:0000:0000:0000:0001 AV ffff8100346305c0, LID 0xc003, SL 0
ib0: successfully joined all multicast groups
ib0: setting up send only multicast group for ff12:601b:ffff:0000:0000:0000:0000:0016
ib0: no multicast record for ff12:601b:ffff:0000:0000:0000:0000:0016, starting join
ib0: Created ah ffff81003d669400
ib0: MGID ff12:601b:ffff:0000:0000:0000:0000:0016 AV ffff81003d669400, LID 0xc004, SL 0
ib0: setting up send only multicast group for ff12:601b:ffff:0000:0000:0000:0000:0002
ib0: no multicast record for ff12:601b:ffff:0000:0000:0000:0000:0002, starting join
ib0: Created ah ffff81002009f7c0
ib0: MGID ff12:601b:ffff:0000:0000:0000:0000:0002 AV ffff81002009f7c0, LID 0xc005, SL 0
ib0: no IPv6 routers present
ib0: neigh_destructor for ffffff ff12:601b:ffff:0000:0000:0000:0000:0002
ib0: neigh_destructor for ffffff ff12:601b:ffff:0000:0000:0001:ff96:51dd




More information about the general mailing list