OpenFastPath 學習5(netlink server)
netlink server執行緒是一個控制平面執行緒,在ofp_init_global中啟動,因此全域性只有一個。netlink服務執行緒與核心互動。因為:有些事情核心一直在幹,並且也乾的很好,但是這些事情使用者態幹起來很費勁。因此,這些事情交給核心做,使用者態通過netlink接收訊息通知獲取資訊。
發一個包時,需要明確一些事情:當面對複雜網路時,發出一個包的時候,你需要知道用哪個網口發,並且發給誰,目的MAC地址是多少。還有一些其他資訊:比如IP地址改變、網口up和down等等。這些資訊可以通過netlink從核心進行同步。
因為這些資訊獲取,依賴於核心,因此只有啟了SP巨集之後,這些程式碼才啟用。另外,根據OFP的註釋和協議實現(ofp 實現了ARP協議),MAC地址表的資訊獲取不由本netlink服務負責。

從核心獲取路由資訊