NS2下的NS_AF_NONE, NS_AF_ILINK, NS_AF_INET解释

在common\packet.h hdr_cmn结构体中定义了addr_type_,分别有NS_AF_NONE, NS_AF_ILINK, NS_AF_INET这几项

我们在aodv.cc里面看到这几行代码:

[cpp]  view plain  copy
  1. ch->addr_type() = NS_AF_INET;  

[cpp]  view plain  copy
  1. ch->addr_type() = NS_AF_NONE;  

其实在mac\ll.cc里面的sendDown(Packet* p)函数很好的解释了上面代码的作用:
[cpp]  view plain  copy
  1. switch(ch->addr_type()) {  
  2.   
  3.     case NS_AF_ILINK:  
  4.         mac_->hdr_dst((char*) HDR_MAC(p), ch->next_hop());  
  5.         break;  
  6.   
  7.     case NS_AF_INET:  
  8.         dst = ch->next_hop();  
  9.         /* FALL THROUGH */  
  10.           
  11.     case NS_AF_NONE:  
  12.           
  13.         if (IP_BROADCAST == (u_int32_t) dst)  
  14.         {  
  15.             mac_->hdr_dst((char*) HDR_MAC(p), MAC_BROADCAST);  
  16.             break;  
  17.         }  
  18.         /* Assuming arptable is present, send query */  
  19.         if (arptable_) {  
  20.             tx = arptable_->arpresolve(dst, p, this);  
  21.             break;  
  22.         }  
NS_AF_INET代表分组需要经过单播路由到达目的地,需要调用arp;

NS_AF_NONE代表广播报文

 NS_AF_ILINK代表不需要调用arp,具体用处不太清楚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值