问题描述:
在用Quagga配置了一个ospf路由器以后,当启动ospfd进程以后,检查其log,发现log中有如下信息:
2010/05/26 14:58:20 OSPF: Packet 30.0.0.28 [Hello:RECV]: my options: 2, his options 0
原因描述:
对端路由器发送给该路由器的hello消息中所带的options和该路由器的options不同。
解决办法:
删除quagga代码中的options检查,详细如下:
quagga-0.99.16/ospfd/ospf_packet.c:
ospf_hello函数中,修改如下部分:
if (CHECK_FLAG (OPTIONS (oi), OSPF_OPTION_E) !=
CHECK_FLAG (hello->options, OSPF_OPTION_E))
{
zlog_warn ("Packet %s [Hello:RECV]: my options: %x, his options %x",
inet_ntoa(ospfh->router_id), OPTIONS (oi), hello->options);
//return; ------------------- 注释此行
}
quagga-0.99.16/ospfd/ospf_packet.c:
ospf_make_hello函数中,修改为如下内容:
/* Set Options. */
stream_putc (s, '/0');
/* Set Router Priority. */
stream_putc (s, PRIORITY (oi));