Bugzilla – Bug 941
Wifi Dcf attributes not reachable through configuration namespace
Last modified: 2010-08-03 12:03:07 EDT
Created attachment 917 [details]
I confirmed this on a Fedora 12 machine, with the attached test program and config output.
Created attachment 918 [details]
configuration output via ConfigStore
One problem is that the default values set using the attribute system are overridden in WifiMac::ConfigureDcf(). This is needed since different ACs have different default values for Dcf parameters. I don't have a clear idea of how this could be fixed... any suggestion?
Another problem is that there is not always a single Dcf for a single WifiMac (e.g., QstaWifiMac has 4 Dcf instances, one per AC). That's why currently we have no path to reach a Dcf instance.
It is true that the initial configuration is overridden by WifiMac::ConfigureDcf (); however, CWmin (and attributes alike) _can_ be set to other values.
The problem was the path. Compare the non correct one:
with the right one:
(The leaf node differs because of the different Setter).
In summary, I'd propose to mark this bug as resolved.
Created attachment 964 [details]
test case with proposed path
I am not sure it works. Even with the proposed path I cannot reach the MinCw attribute (see updated test case). I get the impression that in your case it works because you added a custom "CWmin" attribute. I think we should make the existing MinCw attribute reachable.
(In reply to comment #4)
> I am not sure it works. Even with the proposed path I cannot reach the MinCw
> attribute (see updated test case). I get the impression that in your case it
> works because you added a custom "CWmin" attribute. I think we should make the
> existing MinCw attribute reachable.
I think you are right.
On the other hand, what about moving all three Attributes that are currently listed in the Dcf class to the DcaTxop class?
My question is based on the observation that there are setters and getters for all the variables in DcaTxop.
I found the problem, it is that the DcaTxop Object was not inheriting from the Dcf Object, and so the attributes of Dcf were not reachable from DcaTxop.
Note that using SetParent<Dcf> () doesn't work, because of a name clash with DcaTxop::Dcf (which is different than the Dcf defined in dcf.h).