I was curious if anyone has tested this patch on a VLAN system? I am having trouble with it and after following the code, this is what I see:
in bond_init - bond->bond_features is set to bond_dev->features (which has some default VLAN flags set- VLAN_CHALLENGED in particular).
When a slave is enslaved (bond_enslave), the bond_dev->features variable is changed depending on the slave features (in my case VLAN_CHALLENGED is set to false since my slave handles VLANs).
After the above bond_dev->features is set, a call to compute_bond_features is made.
now, compute_bond_features looks at bond->bond_features and not at bond_dev->features and this function winds up setting the VLAN_CHALLENGED flag to 1 again, even though we just set it to 0 in bond_dev->features.
Vlans are then not added as the system thinks they are not supported since compute_bond_features changed bond_dev->features with the values of bond->bond_features.
Now, I should point out, I am stuck on a 2.4 kernel, so I applied this patch manually to a 2.4 kernel - taking great care to make sure I didn't lose anything in the backport. However, I did look through the 2.6 code with this patch and it follows the same logic as mentioned above.
Has anyone else run across this or I am just looking at something wrong?
Thanks,
Kristen Smith
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was curious if anyone has tested this patch on a VLAN system? I am having trouble with it and after following the code, this is what I see:
in bond_init - bond->bond_features is set to bond_dev->features (which has some default VLAN flags set- VLAN_CHALLENGED in particular).
When a slave is enslaved (bond_enslave), the bond_dev->features variable is changed depending on the slave features (in my case VLAN_CHALLENGED is set to false since my slave handles VLANs).
After the above bond_dev->features is set, a call to compute_bond_features is made.
now, compute_bond_features looks at bond->bond_features and not at bond_dev->features and this function winds up setting the VLAN_CHALLENGED flag to 1 again, even though we just set it to 0 in bond_dev->features.
Vlans are then not added as the system thinks they are not supported since compute_bond_features changed bond_dev->features with the values of bond->bond_features.
Now, I should point out, I am stuck on a 2.4 kernel, so I applied this patch manually to a 2.4 kernel - taking great care to make sure I didn't lose anything in the backport. However, I did look through the 2.6 code with this patch and it follows the same logic as mentioned above.
Has anyone else run across this or I am just looking at something wrong?
Thanks,
Kristen Smith
This has been fixed with the following patch
http://sourceforge.net/mailarchive/forum.php?thread_id=8893910&forum_id=2094
Thank you.