If an interface is configured as 'passive' in ospfd, when printing config it doesn't seem useful to print the unused timers, key information etc. Given this config line,
interface lo0 ospfd -nvf /etc/ospfd.conf output changes from this: interface lo0:127.0.0.1 { metric 10 passive retransmit-interval 5 router-dead-time 40 hello-interval 10 router-priority 1 transmit-delay 1 auth-type none } to this: interface lo0:127.0.0.1 { metric 10 passive } Diff below is a bit long as it changes indentation; diff -w after applying it is more clear. Any comments / OKs? Index: printconf.c =================================================================== RCS file: /cvs/src/usr.sbin/ospfd/printconf.c,v retrieving revision 1.15 diff -u -p -r1.15 printconf.c --- printconf.c 16 Feb 2010 08:39:05 -0000 1.15 +++ printconf.c 1 Mar 2013 21:17:10 -0000 @@ -117,38 +117,41 @@ print_iface(struct iface *iface) printf("\t\tmetric %d\n", iface->metric); - if (iface->passive) - printf("\t\tpassive\n"); if (*iface->demote_group) printf("\t\tdemote %s\n", iface->demote_group); + if (iface->passive) + printf("\t\tpassive\n"); + else { + printf("\t\tretransmit-interval %d\n", iface->rxmt_interval); + if (iface->dead_interval == FAST_RTR_DEAD_TIME) { + printf("\t\trouter-dead-time minimal\n"); + printf("\t\tfast-hello-interval msec %u\n", + iface->fast_hello_interval); + } else { + printf("\t\trouter-dead-time %d\n", + iface->dead_interval); + printf("\t\thello-interval %d\n", + iface->hello_interval); + } + printf("\t\trouter-priority %d\n", iface->priority); + printf("\t\ttransmit-delay %d\n", iface->transmit_delay); - printf("\t\tretransmit-interval %d\n", iface->rxmt_interval); - if (iface->dead_interval == FAST_RTR_DEAD_TIME) { - printf("\t\trouter-dead-time minimal\n"); - printf("\t\tfast-hello-interval msec %u\n", - iface->fast_hello_interval); - } else { - printf("\t\trouter-dead-time %d\n", iface->dead_interval); - printf("\t\thello-interval %d\n", iface->hello_interval); - } - printf("\t\trouter-priority %d\n", iface->priority); - printf("\t\ttransmit-delay %d\n", iface->transmit_delay); - - printf("\t\tauth-type %s\n", if_auth_name(iface->auth_type)); - switch (iface->auth_type) { - case AUTH_TYPE_NONE: - break; - case AUTH_TYPE_SIMPLE: - printf("\t\tauth-key XXXXXX\n"); - break; - case AUTH_TYPE_CRYPT: - printf("\t\tauth-md-keyid %d\n", iface->auth_keyid); - TAILQ_FOREACH(md, &iface->auth_md_list, entry) - printf("\t\tauth-md %d XXXXXX\n", md->keyid); - break; - default: - printf("\t\tunknown auth type!\n"); - break; + printf("\t\tauth-type %s\n", if_auth_name(iface->auth_type)); + switch (iface->auth_type) { + case AUTH_TYPE_NONE: + break; + case AUTH_TYPE_SIMPLE: + printf("\t\tauth-key XXXXXX\n"); + break; + case AUTH_TYPE_CRYPT: + printf("\t\tauth-md-keyid %d\n", iface->auth_keyid); + TAILQ_FOREACH(md, &iface->auth_md_list, entry) + printf("\t\tauth-md %d XXXXXX\n", md->keyid); + break; + default: + printf("\t\tunknown auth type!\n"); + break; + } } printf("\t}\n");