[Ns-developers] question
Francesco Gringoli
francesco.gringoli at ing.unibs.it
Sun Jan 8 01:25:20 PST 2006
Hi Mathieu,
to simplify the problem I took the same script I already sent to you
and moved both UDP sinks to node 1 (QAP), so we don't have too much
ARP traffic to debug.
Below I describe what happens; I think there is an error in the ARP
access scheme to the channel.
Briefly:
- at 3.000000 both node have data to send to the QAP (one packet) but
they still don't know the QAP at the IP level. So they need to do
some ARP request
- QSTA 2 wins first the access to the channel to do ARP and it gets
all informations about QAP
- QAP starts the CAP and polls QSTA 2: hence QSTA 3 cannot do ARP,
has to wait
-+++ I think that QSTA 3 should now wait until the end of CAP to do
ARP, isn't it?
- QSTA 2 sends the only one UDP packet in the queue
- the queue of QSTA 2 is empty but QSTA 2 does not send QOSNULL to
QAP, nor the TXOP of QSTA 2 has ended
- QSTA 3 see the channel free and it sends ARP request for the QAP
without waiting its turn
Here is the problem I think: TXOP of QSTA 2 is not finished nor and
QSTA2 has not sent QOSNULL but QSTA 3 accesses the channel.
So I see two issues:
+++ QSTAs do not send QOSNULL when their queue is empty but was not
before the TXOP. Otherwise they do. (you can see that until 3.000000
they send QOSNULL every time)
+++ ARP traffic is not correctly regulated
Mathieu, below I attach the debug lines.
Thanks,
FG
------------------------------------------------------------------------
--------
Now the debug:
--- UDP cbr sources create the first packets in QSTA 2 and QSTA 3
addressed to the corresponding sinks in QAP (node 1).
--- QSTA 2 and QSTA 3 do not know QAP at the IP level so they need
some ARP stuff
--- QSTA 2 wins the access to the channel to do ARP request, so EDCA
in 3 says "access needed here" and stop, it will do ARP request later
--- During all these layer 2 packet exchange QAP is delaying beacon
LLARP TRACE 2 3.000000 no entry for 1 -- send arp request
QSTA TRACE 2 3.000000 requested tid 0
QSTA TRACE 2 3.000000 queue "ARP" to 1 thru AC_BE
EDCA TXOP 2 3.000000 dequeued 28 to 1 seq: 0x0
EDCA TXOP 2 3.000000 burst end (queue empty)
EDCA TXOP 2 3.000000 tx unicast mode 0
MAC LOW 2 3.000000 startTx 28 to 1
MAC LOW 2 3.000000 tx ARP to 1 with mode 0
LLARP TRACE 3 3.000000 no entry for 1 -- send arp request
QSTA TRACE 3 3.000000 requested tid 0
QSTA TRACE 3 3.000000 queue "ARP" to 1 thru AC_BE
EDCA TXOP 3 3.000000 access needed here
SCHED TRACE 1 3.000000 beacon delay. Must have PIFS idle.
MAC LOW 1 3.000201 duration/id: 0.000089
MAC LOW 1 3.000201 rx unicast/send_ack from 2
QAP TRACE 1 3.000201 queue ARP to -1 thru AC_BE
LLARP TRACE 1 3.000201 add new entry 2 --> 2
LLARP TRACE 1 3.000201 got arp request for 2 -- send reply
QAP TRACE 1 3.000201 queue ARP to 2 thru AC_BE
MAC LOW 3 3.000201 duration/id: 0.000089
MAC LOW 1 3.000217 tx ACK to 2 with mode 0
SCHED TRACE 1 3.000226 beacon delay. Must have PIFS idle.
MAC LOW 2 3.000289 duration/id: 0.000000
MAC LOW 2 3.000289 rx ACK from 1
EDCA TXOP 2 3.000289 got ack
EDCA TXOP 2 3.000289 no access needed here -- 1/0x0
EDCA TXOP 2 3.000289 no access needed here -- 1/0x0
MAC LOW 3 3.000289 duration/id: 0.000000
MAC LOW 3 3.000289 rx drop CTL_ACK
SCHED TRACE 1 3.000314 beacon delay. Must have PIFS idle.
EDCA TXOP 1 3.000333 dequeued 28 to -1 seq: 0x540
EDCA TXOP 1 3.000333 burst end (txop zero)
MAC LOW 1 3.000333 startTx 28 to -1
MAC LOW 1 3.000333 tx ARP to -1 with mode 0
EDCA TXOP 1 3.000333 tx broadcast
EDCA TXOP 1 3.000333 access needed here
SCHED TRACE 1 3.000339 beacon delay. Must have PIFS idle.
MAC LOW 2 3.000533 duration/id: 0.000000
MAC LOW 2 3.000533 rx broadcast from 1
LLARP TRACE 2 3.000533 add new entry 2 --> 2
MAC LOW 3 3.000533 duration/id: 0.000000
MAC LOW 3 3.000533 rx broadcast from 1
LLARP TRACE 3 3.000533 add new entry 2 --> 2
SCHED TRACE 1 3.000558 beacon delay. Must have PIFS idle.
EDCA TXOP 1 3.000576 dequeued 28 to 2 seq: 0x0
EDCA TXOP 1 3.000576 burst end (queue empty)
EDCA TXOP 1 3.000576 tx unicast mode 0
MAC LOW 1 3.000576 startTx 28 to 2
MAC LOW 1 3.000576 tx ARP to 2 with mode 0
SCHED TRACE 1 3.000583 beacon delay. Must have PIFS idle.
MAC LOW 2 3.000777 duration/id: 0.000089
MAC LOW 2 3.000777 rx unicast/send_ack from 1
LLARP TRACE 2 3.000777 update entry 1
LLARP TRACE 2 3.000777 got arp reply for 1
QSTA TRACE 2 3.000777 requested tid 9
QSTA TRACE 2 3.000777 queue cbr to 1 thru tsid 8
MAC LOW 3 3.000777 duration/id: 0.000089
MAC LOW 2 3.000793 tx ACK to 1 with mode 0
SCHED TRACE 1 3.000802 beacon delay. Must have PIFS idle.
MAC LOW 1 3.000866 duration/id: 0.000000
MAC LOW 1 3.000866 rx ACK from 2
EDCA TXOP 1 3.000866 got ack
EDCA TXOP 1 3.000866 no access needed here -- 1/0x0
EDCA TXOP 1 3.000866 no access needed here -- 1/0x0
MAC LOW 3 3.000866 duration/id: 0.000000
MAC LOW 3 3.000866 rx drop CTL_ACK
--- first access is for QAP that finally sends the beacon
SCHED TRACE 1 3.000891 beacon delay. Must have PIFS idle.
SCHED TRACE 1 3.000916 sending beacon
MAC LOW 1 3.000916 startTx 340 to -1
MAC LOW 1 3.000916 tx MGT_BEACON to -1 with mode 0
MAC LOW 2 3.001858 duration/id: 0.000126
MAC LOW 2 3.001858 rx broadcast from 1
MAC LOW 3 3.001858 duration/id: 0.000126
MAC LOW 3 3.001858 rx broadcast from 1
--- QAP decide to start the CAP; this should be correct as the CAP
begins at the end of the current beacon
--- first QSTA to be polled is QSTA 2 that sends the first UDP packet
to 1. All acks are received
--- note that the TXOP for QSTA 2 is granted until 3.009952 and QSTA
2 does not send QOSNULL (it has just one UDP packet to send)
SCHED TRACE 1 3.001874 start CAP until 3.018031
SCHED TRACE 1 3.001874 start txop for 2 until 3.009952
MAC LOW 1 3.001874 startTx 28 to 2
MAC LOW 1 3.001874 tx MGT_CFPOLL to 2 with mode 0
MAC LOW 2 3.001984 duration/id: 0.008079
MAC LOW 2 3.001984 rx unicast/no_ack from 1
QSTA TRACE 2 3.001984 got cfpoll 8/0.008064
HCCA TRACE 2 3.001984 access granted for tsid 8 for 0.008064 seconds
MAC LOW 3 3.001984 duration/id: 0.008079
HCCA TRACE 2 3.002000 starting txop
HCCA TRACE 2 3.002000 dequeued 72 to 1 seq: 0x0
HCCA TRACE 2 3.002000 send last to 1
MAC LOW 2 3.002000 startTx 72 to 1
MAC LOW 2 3.002000 tx cbr to 1 with mode 0
MAC LOW 1 3.002009 super fast Ack ok
SCHED TRACE 1 3.002009 got CfPoll Ack from 2
MAC LOW 1 3.002318 duration/id: 0.008080
MAC LOW 1 3.002318 rx unicast/send_ack from 2
MAC LOW 3 3.002318 duration/id: 0.008080
MAC LOW 1 3.002334 tx ACK to 2 with mode 0
MAC LOW 2 3.002406 duration/id: 0.007991
MAC LOW 2 3.002406 rx ACK from 1
HCCA TRACE 2 3.002406 got ack from 1
MAC LOW 3 3.002406 duration/id: 0.007991
MAC LOW 3 3.002406 rx drop CTL_ACK
--- ?????? TXOP of QSTA 2 is not finished and QSTA 2 has not send
QOSNULL? What is doing QSTA 3?
EDCA TXOP 3 3.002488 dequeued 28 to 1 seq: 0x0
EDCA TXOP 3 3.002488 burst end (queue empty)
EDCA TXOP 3 3.002488 tx unicast mode 0
MAC LOW 3 3.002488 startTx 28 to 1
MAC LOW 3 3.002488 tx ARP to 1 with mode 0
MAC LOW 1 3.002688 duration/id: 0.000089
MAC LOW 1 3.002688 rx unicast/send_ack from 3
QAP TRACE 1 3.002688 queue ARP to -1 thru AC_BE
More information about the Ns-developers
mailing list