> -Original Message-
> From: networkmanager-list-boun...@gnome.org [mailto:networkmanager-
> list-boun...@gnome.org] On Behalf Of K, Narendra
> Sent: Wednesday, July 18, 2012 9:11 PM
> To: networkmanager-list@gnome.org
> Cc: Iyer, Shyam; Rose, Charles
> Subject: configuring bonding using NetworkManager-0.9.4 in Fedora 17
>
> Hello,
>
> I am trying to configure bonding using NetworkManager in Fedora 17.
> Fedora 17 has NetworkManager-0.9.4. The configuration files look like the
> following -
>
> Under /etc/sysconfig/network-scripts/
>
> # cat ifcfg-bond0
> DEVICE=bond0
> BOOTPROTO=dhcp
> ONBOOT=yes
> NM_CONTROLLED="yes"
> BONDING_MASTER="yes"
> BONDING_OPTS="miimon=50 mode=balance-tlb"
>
> # cat ifcfg-em3
> BOOTPROTO="none"
> DEVICE="em3"
> ONBOOT="yes"
> MASTER="bond0"
> SLAVE="yes"
> TYPE=Ethernet
> NM_CONTROLLED="yes"
>
> After restarting the NetworkManager, i have the following observations -
>
> 1. The bonding device bond0 does not have a MAC Id set 2. The slave device
> as mentioned in the ifcfg-em3 is not enslaved 3. The bond0 has the miimon
> and mode as described in the BONDING_OPTS set.
>
> # ip addr show dev bond0
> 20: bond0: mtu 1500
> qdisc noqueue state DOWN
> link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
>
> # cat /sys/class/net/bond0/bonding/slaves
> -
>
> ## cat /sys/class/net/bond0/bonding/{miimon,mode}
> 50
> balance-tlb 5
>
> I am trying to get familiar with NetworkManager, and putting some prints in
> 'src/nm-device-bond.c' to find more details on points 1 and 2. It would be
> great if you could point out if I am missing some aspect as part of
> configuration.
[>]
It seems like there is an issue in the way bonding is configured. Putting a
few prints in 'src/nm-device.c' I had the following observations -
The sequence of events while setting up the bonding seems to be
1. 'nm_device_activate' is executed for bond0 and the sequence continues
through 'nm_device_activate_schedule_stage1_device_prepare', executing multiple
stages of activation
2. 'nm_device_activate' is executed for slave1, but because there is a
dependency on 'bond0' the activation is postponed. This can be seen from the
message
NetworkManager[21466]: Activation (em3) connection 'System em3' waiting
on dependency 'Bond bond0'
3. 'nm_device_activate' is executed for slave2, but because there is a
dependency on 'bond0' the activation is postponed. This can be seen from the
message
NetworkManager[21466]: Activation (em4) connection 'System em4' waiting
on dependency 'Bond bond0'
It seems like step 2 and 3 are waiting for some state of bond0 to be reached
and notified. But later messages indicate that they time out waiting on
dependency.
NetworkManager[21466]: Activation (em3) connection 'System em3'
dependency timed out
NetworkManager[21466]: Activation (em4) connection 'System em4'
dependency timed out
NetworkManager[21466]: (bond0): device state change: ip-config -> failed
(reason 'ip-config-unavailable') [70 120 5]
NetworkManager[21466]: Activation (em3) connection 'System em3'
dependency failed
NetworkManager[21466]: Activation (em4) connection 'System em4'
dependency failed
NetworkManager[21466]: Activation (bond0) failed.
NetworkManager[21466]: Activation (bond0) Stage 4 of 5 (IPv4 Configure
Timeout) complete.
NetworkManager[21466]: (em3): device state change: prepare -> failed
(reason 'dependency-failed') [40 120 50]
NetworkManager[21466]: Activation (em3) failed.
NetworkManager[21466]: (em4): device state change: prepare -> failed
(reason 'dependency-failed') [40 120 50]
NetworkManager[21466]: Activation (em4) failed.
NetworkManager[21466]: (bond0): device state change: failed ->
disconnected (reason 'none') [120 30 0]
Now some processing as part of point 1 needs to set a state which will be
processed in 'act_dep_result_cb' which would process the 'result' being equal
to 'NM_ACT_REQUEST_DEP_RESULT_READY' and launch
'nm_device_activate_schedule_stage1_device_prepare(self)' so that the
activation proceeds and enslaving succeeds. The
'NM_ACT_REQUEST_DEP_RESULT_READY' state does not seem to be happening and as a
result slaves are not enslaved.
I got the slaves to get enslaved by allowing the code path to fall through from
the case 'NM_ACT_REQUEST_DEP_RESULT_WAIT' to 'NM_ACT_REQUEST_DEP_RESULT_READY
' in the function 'nm_device_activate' in 'src/nm-device.c'.
Any thoughts here would be helpful.
With regards,
Narendra K
___
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list