[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] ARP and next_hop
Hi,
you get the next hop from the routing protocol, e.g. in /dsdv/dsdv.cc if
you're using dsdv routing
the function, which sets the next hop is:
void DSDV_Agent::forwardPacket (Packet * p)
there you can also find how to set the addr_type
Stefan
Jose Juan Iglesias wrote:
>
> Hi all ns users!
>
> I want to perform ARP to resolve the address of the next hop of a packet.
> I'm trying not to use lanrouter nor varp. Then, looking at the code of ll.cc,
> ch->addr_type_ must be NS_AF_INET and ch->next_hop_ must contain the next hop
> address...
>
> nsaddr_t dst =
> (nsaddr_t)Address::instance().get_nodeaddr(ih->daddr());
>
> ...
>
> switch(ch->addr_type()) {
>
> case NS_AF_ILINK:
> mac_->hdr_dst((char*) HDR_MAC(p), ch->next_hop());
> break;
>
> case NS_AF_INET:
> dst = ch->next_hop();
> /* FALL THROUGH */
>
> case NS_AF_NONE:
>
> if (IP_BROADCAST == (u_int32_t) dst)
> {
> mac_->hdr_dst((char*) HDR_MAC(p), MAC_BROADCAST);
> break;
> }
> /* Assuming arptable is present, send query */
> if (arptable_) {
> tx = arptable_->arpresolve(dst, p, this);
> break;
> }
> //if (varp_) {
> //tx = varp_->arpresolve(dst, p);
> //break;
>
> //}
> /* FALL THROUGH */
>
> ...
>
> How can I get the next hop of a packet in C++? How can I set the field
> addr_type_ of a packet to NS_AF_INET?
>
> Thanks in advance.
> --
> =====================================================
> Jose Juan Iglesias
> =====================================================