In my ATCA board, there are two NIC hardwired to switch, so I cannot check the bonding funciton by unplug the cable.
In my ATCA board, there are two NIC hardwired to switch, so I cannot check the bonding funciton by unplug the cable.
I want to check the function by "ifconfig ethX down" command, So I modified the driver code.
1.In open function in my driver code, I called netif_carrier_on(dev) to enable the link status up.
2.In close function, called the netif_carrier_off(dev) to enable the link status down.
3.I modified the Ethtool operation get_link method as follows.
static u32 xlr_get_link(struct net_device *dev)
{
struct driver_data *priv = netdev_priv(dev);
return netif_carrier_ok(dev) ? 1 : 0;
}
So, when issue the "ifconfig ethX down", it will call close function, then call netif_carrier_off(dev). The link status of the NIC will be down. Then bonding will failover to the other NIC. My problem is that at this time, I can not ping througth the network.
The following is my operation log:
1. root@localhost:/root> modprobe bonding mode=1 miimon=100 use_carrier=
2. root@localhost:/root> ifconfig bond0 192.168.4.1 up
3. root@localhost:/root> ifenslave bond0 eth2 eth3
4. root@localhost:/root> cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.1.2 (January 20, 2007)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth2
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:02:bb:00:52:0a
Slave Interface: eth3
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:02:bb:00:52:0b
5. root@localhost:/root> ifconfig eth2 down
6. root@localhost:/root> cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.1.2 (January 20, 2007)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth3
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth2
MII Status: down
Link Failure Count: 1
Permanent HW addr: 00:02:bb:00:52:0a
Slave Interface: eth3
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:02:bb:00:52:0b
At this time, I cannot ping through the Network. But after I ifconfig the eth2 up again, can ping through the network.
It means that the bonding don't switch to the eth3 really. Why?
Who can tell me the root cause?
Thanks a lot.
Shiner
Trending Topics
| You Need A Budget | Feb 10, 2012 |
| The Linux powered LAN Gaming House | Feb 08, 2012 |
| Creating a vDSO: the Colonel's Other Chicken | Feb 06, 2012 |
| Your CMS Is Not Your Web Site | Feb 01, 2012 |
| Casper, the Friendly (and Persistent) Ghost | Jan 31, 2012 |
| Razor-qt 0.4 - Qt based Desktop Environment | Jan 30, 2012 |
- Fun with ethtool
- Parallel Programming with NVIDIA CUDA
- Readers' Choice Awards 2011
- 100% disappointed with the decision to go all digital.
- Linux-Based X Terminals with XDMCP
- Validate an E-Mail Address with PHP, the Right Way
- You Need A Budget
- The Linux powered LAN Gaming House
- Why Python?
- Python for Android





4 hours 10 min ago
5 hours 30 min ago
8 hours 14 min ago
12 hours 44 min ago
17 hours 51 min ago
18 hours 52 min ago
1 day 4 hours ago
1 day 4 hours ago
1 day 10 hours ago
1 day 13 hours ago