TX error due to colision or erroneous TX
Amit Jain
amitj at engin.umich.edu
Wed Feb 27 14:13:42 EST 2002
On Tue, 26 Feb 2002, Amit Jain wrote:
> On Tue, Feb 26, 2002 at 07:09:00PM -0500, Amit Jain wrote:
> >
> > But the surprising thing is that card raised the interrupts corresponding
> > to HERMES_EV_TX and not HERMES_EV_TXEXC. ??
> >
> > Since there are no other stations in the n/w, it is impossible for my
> > laptop to recevie an ACK for the transmitted packet. So if TX is
> > based on 802.11 ACK protocl, then in this cse function handler
> > corresponding to EV_TXC should have been called. I do not understand
> > I am getting "Successful transmission signal" as indicated by EV_TX.
> > (in 802.11 succesfull packet trnasmission means that the packet was
> > trnamitted correctly and subsequent ACK received correctly)
> I think this must be because the ARP is failing. ARP requests are
> broadcast packets, and for obvious reasons these wouldn't be ACKed.
I guess I am talking about low-level(802.11) MAC Acknowledgement protocol.
Acoording to this protocol, for every TX packet, the transmitter has to
receive an ACK (at physical layer itself, i.e. ACK doesnot propage up the
protocol stack when ACK is recvd by the original transmitter).
Only, after the ACK is recvd, another packet is transmitted.
Otherwise based on timeout and 'number of retries mechanism', same packt
would be tried by the actual H/w (n/w card)
Being at low-level, it doesnot care whther it is a broadcast pkt or other.
ARP kind of thing, or for that matter broadcast packets being not ACKed
are taken care by higher layetrs in the stack.
This is required in 802.11 becuse transmitter cannot listen and tranmsit
at the same time so there is no way by which it can know whther the packet
transmitted successfully or collided/garbled.
So, in my experiment since there is no recevier, the TX packet cannot be
ACKED and hence according to 802.11 the transmission should be failed.
But I am getting the interrup raised as "__dldwd_ev_tx" for every packet
that is transmiited
So, the basic question is when are the follwoing two interrupts served
__dldwd_ev_txexc
__dldwd_ev_tx
Which one corresponds to
1>transmission
2>transmission and reception of ACK.
And I am interested in knowing the transmission that failed because of the
lack of ACK. Kindly tell me. I guess Jean Tourrilhes wrote an e-mail
saying that it is handled as an wireless event in new API. But i figured
out the new code and it seems that they use the ev_txexc interrupt. But
then in my experiment why I am not geting that interrupt ???
Kindly tell me if I am wrong in my understanding.
Regards,
Amit
More information about the wireless
mailing list