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