Re: [问题] 封包处理流程

楼主: surrealflash (zerocool)   2011-06-24 02:52:14
最后我自己解决了问题!!
以下将说明我发现的一些东西,提供给有需要的人参考!!
有线网络节点并没有实作出LL MAC PHY层(除非创建的是LanNode)
所以有线节点端是直接传递
而MobileNode的WiredRouting有开的话
接收从Wired 端来的Packet是直接到entry_,
然后不符合addr_demux则继续Wireless所有layer的处理
接收从Wireless 端来的Packet是从底层上来到LL做ARP转传处理
而且这里很特别的是如果是要转传到Wired的Packet在LL处理之后还是会丢进Queue去排队
(等同于Wireless Packet和Wired Packet是一起排队的)
然后就是传送至WiredNode拉~~
如果要像我在AP的 Routing layer产生封包要传送给WiredNode的话要作下面设定
产生Packet后作以下设定
hdr_cmn *ch = HDR_CMN(Packet);
ch->direction() = hdr_cmn::UP; // 注意是UP不是DOWN
ch->addr_type = NS_AF_INET;
/* 这里是重点,
要设定成是自己这一个产生packet的Node(我这里也就是AP),让LL会去找ARP作转传*/
ch->next_hop = Address::instance().get_nodeaddr(myaddr_);
target_->recv(Packet, (Handle *)0);
重要的就是上面注解的两行
希望对需要的人有所帮助
Good luck!!!
作者: fengying (Kiss me now!)   2011-07-09 18:29:00
给你一个赞

Links booklink

Contact Us: admin [ a t ] ucptt.com