【自組織網】【筆記】閱讀之GeoAODV的OPNET實現

GeoAODV from github

link

aodv_rte.function block

aodv_rte_attributes_parse_buffers_create (void)
- 加入初始化geo parameters的操作。

app_pkt_arrival_handle()
- 加入判斷使用何種類型AODV的操作。這一步主要判斷節點是否有路由,若無則發起路由發現。有不同類型AODV產生不同RREQ並分發。

rreq_pkt_arrival()
- 聲明要用到的局部變量
- 聲明用來記錄打印IP addr的局部變量
- 加入debug字段,用來輸出目前信息。
- 用RREQ的源地址座標升級GeoAODV table
- 若干出打印req到達及冗餘信息的debug
- reply_send()增加發送Geo information

  • 根據位置信息判斷是否轉發RREQ
  • 判斷IPv4 or 6以封裝RREQ數據包
  • aodv_rte_ip_datagram_create 需要增加表示AODV類型的字段(Geo需要增加相關信息,增加數據包大小)
  • 這裏存在問題,數據包大小不能正確的根據類型變化。

rrep_pkt_arrival_handle()
- update the geotable with the most current x, y
- 刪除沒有默認x, y記錄的表項
- 這裏出現了更新和刪除的混淆,需要注意

route_table_entry_update()
- rrep用來更新目的地址相關路由, rreq更新上一跳相關信息。

rout_table_entry_from_hello_update()

總結

這裏的改進方法和思路很有借鑑價值。
- 增加記錄信息的表項
- geotable
- 2 hop information
- 消息包中攜帶額外消息
- 從opnet.aodv_rte修改部分代碼而來
- 只需要修改網絡層相關內容
- 有節點根據信息判斷是否轉發的步驟

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章