Index: sys/netinet/netdump/netdump_client.c =================================================================== --- sys/netinet/netdump/netdump_client.c +++ sys/netinet/netdump/netdump_client.c @@ -34,6 +34,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_ddb.h" + #include #include #include @@ -70,6 +72,10 @@ #include #include +#ifdef DDB +#include +#endif + #define NETDDEBUG(f, ...) do { \ if (nd_debug > 0) \ printf(("%s: " f), __func__, ## __VA_ARGS__); \ @@ -1306,3 +1312,39 @@ MODULE_VERSION(netdump, 1); DECLARE_MODULE(netdump, netdump_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); + +#ifdef DDB +DB_SHOW_COMMAND(netdumpconf, db_show_netdumpconf) +{ + char ipbuf[sizeof("255.255.255.255")]; + + if (!nd_enabled) { + db_printf("Netdump isn't enabled.\n"); + return; + } + + db_printf("Netdump is configured on %.*s:\n", + (int)sizeof(nd_conf.ndc_iface), nd_conf.ndc_iface); + db_printf(" server: %s:%u\n", inet_ntop(AF_INET, + (void *)&nd_conf.ndc_server, ipbuf, sizeof(ipbuf)), + (unsigned)nd_server_port); + db_printf(" client: %s\n", inet_ntop(AF_INET, + (void *)&nd_conf.ndc_client, ipbuf, sizeof(ipbuf))); + db_printf(" gateway: %s (%6D)\n", inet_ntop(AF_INET, + (void *)&nd_conf.ndc_gateway, ipbuf, sizeof(ipbuf)), + nd_gw_mac.octet, ":"); + /* XXX Maybe this bit could be a db_show_dumperinfo in kern_shutdown */ + db_printf(" generic dump configuration:\n"); + db_printf(" compresssion: %u\n", + (unsigned)nd_conf.ndc_kda.kda_compression); + db_printf(" encryption: %u\n", + (unsigned)nd_conf.ndc_kda.kda_encryption); + + db_printf(" Netdump internals:\n"); + db_printf(" nd_seqno: %u, nd_ifp: %p\n", (unsigned)nd_seqno, nd_ifp); + db_printf(" nd_debug: %d, nd_path: '%.*s'\n", nd_debug, + (int)sizeof(nd_path), nd_path); + db_printf(" nd_polls: %d, nd_retries: %d, nd_arp_retries: %d\n", + nd_polls, nd_retries, nd_arp_retries); +} +#endif