Re: [問題] 封包處理流程
最後我自己解決了問題!!
以下將說明我發現的一些東西,提供給有需要的人參考!!
有線網路節點並沒有實作出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!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.155.99
推
07/09 18:29, , 1F
07/09 18:29, 1F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
1
1
Network_Sim 近期熱門文章
PTT數位生活區 即時熱門文章