[Ns-developers] Bug 602 status
Mirko Banchi
mk.banchi at gmail.com
Thu Nov 5 07:54:55 PST 2009
Il giorno 05/nov/09, alle ore 14:04, Nicola Baldo ha scritto:
> Hi Mathieu,
>
> Mathieu Lacage wrote:
>> On Thu, 2009-11-05 at 11:13 +0100, Nicola Baldo wrote:
>>> I'm summarizing my points on Bug 602 in the hope that we can agree
>>> on a solution within reasonable time...
>>>
>>> 1) I agree with Mirko that the idea of changing the implementation
>>> of WifiRemoteStationManager::Lookup() in wifi-remote-station-
>>> manager.cc (so that it checks for the tid in addition to the
>>> remote station address) does not work, since for example when you
>>> just received a RTS you don't know the TID, and hence you cannot
>>> pass it to Lookup ();
>> I believe that you do know the tid: m_currentHdr.GetQosTid () is
>> precisely what you need in that case.
>
> Just have a look at what happens when we receive an RTS:
>
> MacLow::ReceiveOk (...)
> {
> WifiMacHeader hdr;
> packet->RemoveHeader (hdr);
>
> bool isPrevNavZero = IsNavZero ();
> NS_LOG_DEBUG ("duration/id=" << hdr.GetDuration ());
> NotifyNav (hdr, txMode, preamble);
> if (hdr.IsRts ())
> {
> if (isPrevNavZero &&
> hdr.GetAddr1 () == m_self)
> {
> // the current code does this:
> // WifiRemoteStation *station = GetStation (hdr.GetAddr2 ());
>
> // the proposed code would do this:
> WifiRemoteStation *station = GetStation (hdr.GetAddr2 (),
> hdr.GetQosTid ());
>
>
> *BANG!* an assertion fails. Why?
>
>
> uint8_t
> WifiMacHeader::GetQosTid (void) const
> {
> NS_ASSERT (IsQosData ());
> return m_qosTid;
> }
>
>
> the QosTid field is not present in RTS frames.
>
>
>
>> The main reason I dislike the approach currently implemented by
>> mirko is
>> that it makes it very hard to do the right thing in non-trivial rate
>> control algorithms which override the NeedRtsRetransmission family of
>> methods. i.e., implementing the approach nicola and myself suggested
>> first is much more friendly to rate control algorithm implementors
>> which
>> is why I am so reluctant to go towards the solution proposed by
>> mirko.
>
> So if I understand correctly you are talking about the fact that,
> with Mirko's patch, Ssrc counters are per AC, but there would be
> only one WifiRemoteStationManager for all ACs, which would then
> receive all notifications (such as ReportRtsFailed) for all ACs
> jointly. This breaks how some rate adaptation algorithms work,
> unless we make all managers AC-aware, which I agree is not a good
> idea. Mmmmmmhhhhhh.
>
>
> After these considerations, neither of the proposed solutions for
> bug 602 appears to be acceptable :-( any ideas?
>
I really think that there is a problem to find a solution only
changing WifiRemoteStationManager::Lookup method.
Regards,
Mirko
--
Mirko Banchi
e-mail: mk.banchi at gmail.com
e-mail: mk.banchi at virgilio.it
id-jabber: mk.banchi at jabber.org
PGP key fingerprint:
308F BFB1 4E67 2522 C88E
DC69 7631 52ED 32A5 6456
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2502 bytes
Desc: not available
Url : http://mailman.isi.edu/pipermail/ns-developers/attachments/20091105/20c2daef/smime.bin
More information about the Ns-developers
mailing list