OpenFastPath 学习5(netlink server)

netlink server线程是一个控制平面线程,在ofp_init_global中启动,因此全局只有一个。netlink服务线程与内核互动。因为:有些事情内核一直在干,并且也干的很好,但是这些事情用户态干起来很费劲。因此,这些事情交给内核做,用户态通过netlink接收消息通知获取信息。

发一个包时,需要明确一些事情:当面对复杂网络时,发出一个包的时候,你需要知道用哪个网口发,并且发给谁,目的MAC地址是多少。还有一些其他信息:比如IP地址改变、网口up和down等等。这些信息可以通过netlink从内核进行同步。

因为这些信息获取,依赖于内核,因此只有启了SP宏之后,这些代码才启用。另外,根据OFP的注释和协议实现(ofp 实现了ARP协议),MAC地址表的信息获取不由本netlink服务负责。

从内核获取路由信息

你可能感兴趣的:(OpenFastPath 学习5(netlink server))