[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Collision using Mac-802_3 and retransmission
Paul,
the code you pointed out is only for collision for receiving packets. It
does not need retransmisson for the receiver. see send(p,h) for the
sender's behavior.
-Ya
On Tue, 24 Aug 1999, Paul Ghobril wrote:
> Hi,
>
> While working with LAN on ns I have noticed that there is no
> retransmission after collision. I made some change to the code because I
> found that ETHER_ADDR(mh->mh_da) in mac-802_3.cc is always 0. The
> following change is made to Mac802_3::discard(Packet *p,const char*):
>
> // Added by PAUL
> char* mha = (char*)p->access(hdr_mac::offset_);
> int dst = this->hdr_dst(mha);
> if (dst == index_)
> {
> //if (drop_ !=0) printf("do recv(p)");
> drop(p);
> }
> else
> Packet::free(p);
>
> // End Added by PAUL
>
>
> //Commented by PAUL
> /*
> hdr_mac802_3* mh = (hdr_mac802_3*)p->access(off_mac_);
> if((u_int32_t)ETHER_ADDR(mh->mh_da) ==
> (u_int32_t)index_)
> drop(p);
> else
> Packet::free(p);
> */
> //End Commented by PAUL
>
> Is this right??
>
> Now drop(p) is called when it is necessary but in the drop(p) drop_ is
> also 0.
> 1- How to change drop_ with the ns script using drop-target?
> 2- Anyway drop doesn't retransmit. How to retransmit? and what
> drop stands for?
> 3- Can I forget about drop and redirect the packet whith a
> backoff and how?
>
> Thanks.
>