14.2 改变配置语法可以改变在ospfd配置文件/etc/ospfd.conf
中使用的语法。可以使用语法匹配Cisco路由器的OSPF配置语法或者GATED的配置语法。必须编写定义新配置命令的新Tcl代码,用于代替在文件/usr/sbin/ospfd.tcl
中定义的当前命令。为了进一步理解如何修改ospfd配置语法,下面来更详细考查ospfd的配置过程。在初始化时执行配置,或者是在收到Linux信号SIGUSR1时执行重新配置,见14.3节。在上述两种情形下,都要调用LinuxOspfd::read_config()
,见程序清单14.1。假设已经定义了一种新的配置语法,其程序流如下。
程序清单14.1 读取ospfd配置
ospfd_linux.C
342 void LinuxOspfd::read_config()
343 {
344 Tcl_Interp *interp; //解释配置命令
346 char sendcfg[] = "sendcfg";
347 int namlen;
348 char *filename;
350 new_router_id = 0;
351 interp = Tcl_CreateInterp();
353 Tcl_CreateCommand(interp, "routerid", SetRouterID, 0);
354 Tcl_CreateCommand(interp, "sendgen", SendGeneral, 0);
355 Tcl_CreateCommand(interp, "sendarea", SendArea, 0);
356 Tcl_CreateCommand(interp, "sendagg", SendAggregate, 0);
357 Tcl_CreateCommand(interp, "sendhost", SendHost, 0);
358 Tcl_CreateCommand(interp, "sendifc", SendInterface, 0);
359 Tcl_CreateCommand(interp, "sendvl", SendVL, 0);
360 Tcl_CreateCommand(interp, "sendnbr", SendNeighbor, 0);
361 Tcl_CreateCommand(interp, "sendextrt", SendExtRt, 0);
362 Tcl_CreateCommand(interp, "sendmd5", SendMD5Key, 0);
暂无评论