[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ns] ARP and next_hop



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
=====================================================