[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