比如说,向路由表中添加路由信息时,有两个接口routeAdd()和mRouteAdd()。这两个函数在功能上有何不同呢?在实现上又有什么不同呢?
我看了一下,routeAdd()最后是调用ioctl来添加路由信息的,而mRouteAdd()却不太知道了,希望哪位高人能够指点,谢谢。
先来看下两个接口的定义
STATUS routeNetAdd
(
char * destination, /* inet addr or name of network destination */
char * gateway /* inet addr or name of gateway to destination */
)
STATUS mRouteAdd
(
char * pDest, /* destination addr in internet dot notation */
char * pGate, /* gateway address in internet dot notation */
long mask, /* mask for destination */
int tos, /* type of service */
int flags /* route flags */
)
你可以看到mRouteAdd多了mask tos flags这几个参数,但mRouteAdd的作用主要是给相同的网段指明不同的网关。
看下面的例子
mRouteAdd ("90.0.0.0", "91.0.0.3", 0xffffff00, 0, 0);
mRouteAdd ("90.0.0.0", "91.0.0.254", 0xffff0000, 0, 0);
通过两次mRouteAdd 的调用,可以给"90.0.0.0"该网络指定两个网关,而用于区分网关的要素就是net mask,0xffffff00和0xffff0000
清楚了吧
嗯,这个明白。不过主要还是想问一下底层的具体实现,据我了解,这两个函数的实现方法应该是不同的。
看一下核心的代码不就知道?
如果你没有代码,我可以发一份给你
顶了,city_lovelace 说得对。请问有没有OSPF的代码?最近在研究OSPF,若有的话,请发给我一份吧,先谢了。
Email:jorsen_gong@hotmail.com