Annotation of embedaddon/quagga/ripngd/ripng_debug.c, revision 1.1
1.1 ! misho 1: /*
! 2: * RIPng debug output routines
! 3: * Copyright (C) 1998 Kunihiro Ishiguro
! 4: *
! 5: * This file is part of GNU Zebra.
! 6: *
! 7: * GNU Zebra is free software; you can redistribute it and/or modify it
! 8: * under the terms of the GNU General Public License as published by the
! 9: * Free Software Foundation; either version 2, or (at your option) any
! 10: * later version.
! 11: *
! 12: * GNU Zebra is distributed in the hope that it will be useful, but
! 13: * WITHOUT ANY WARRANTY; without even the implied warranty of
! 14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! 15: * General Public License for more details.
! 16: *
! 17: * You should have received a copy of the GNU General Public License
! 18: * along with GNU Zebra; see the file COPYING. If not, write to the Free
! 19: * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
! 20: * 02111-1307, USA.
! 21: */
! 22:
! 23: #include <zebra.h>
! 24: #include "command.h"
! 25: #include "ripngd/ripng_debug.h"
! 26:
! 27: /* For debug statement. */
! 28: unsigned long ripng_debug_event = 0;
! 29: unsigned long ripng_debug_packet = 0;
! 30: unsigned long ripng_debug_zebra = 0;
! 31:
! 32: DEFUN (show_debugging_ripng,
! 33: show_debugging_ripng_cmd,
! 34: "show debugging ripng",
! 35: SHOW_STR
! 36: DEBUG_STR
! 37: "RIPng configuration\n")
! 38: {
! 39: vty_out (vty, "RIPng debugging status:%s", VTY_NEWLINE);
! 40:
! 41: if (IS_RIPNG_DEBUG_EVENT)
! 42: vty_out (vty, " RIPng event debugging is on%s", VTY_NEWLINE);
! 43:
! 44: if (IS_RIPNG_DEBUG_PACKET)
! 45: {
! 46: if (IS_RIPNG_DEBUG_SEND && IS_RIPNG_DEBUG_RECV)
! 47: {
! 48: vty_out (vty, " RIPng packet debugging is on%s",
! 49: VTY_NEWLINE);
! 50: }
! 51: else
! 52: {
! 53: if (IS_RIPNG_DEBUG_SEND)
! 54: vty_out (vty, " RIPng packet send debugging is on%s",
! 55: VTY_NEWLINE);
! 56: else
! 57: vty_out (vty, " RIPng packet receive debugging is on%s",
! 58: VTY_NEWLINE);
! 59: }
! 60: }
! 61:
! 62: if (IS_RIPNG_DEBUG_ZEBRA)
! 63: vty_out (vty, " RIPng zebra debugging is on%s", VTY_NEWLINE);
! 64:
! 65: return CMD_SUCCESS;
! 66: }
! 67:
! 68: DEFUN (debug_ripng_events,
! 69: debug_ripng_events_cmd,
! 70: "debug ripng events",
! 71: DEBUG_STR
! 72: "RIPng configuration\n"
! 73: "Debug option set for ripng events\n")
! 74: {
! 75: ripng_debug_event = RIPNG_DEBUG_EVENT;
! 76: return CMD_WARNING;
! 77: }
! 78:
! 79: DEFUN (debug_ripng_packet,
! 80: debug_ripng_packet_cmd,
! 81: "debug ripng packet",
! 82: DEBUG_STR
! 83: "RIPng configuration\n"
! 84: "Debug option set for ripng packet\n")
! 85: {
! 86: ripng_debug_packet = RIPNG_DEBUG_PACKET;
! 87: ripng_debug_packet |= RIPNG_DEBUG_SEND;
! 88: ripng_debug_packet |= RIPNG_DEBUG_RECV;
! 89: return CMD_SUCCESS;
! 90: }
! 91:
! 92: DEFUN (debug_ripng_packet_direct,
! 93: debug_ripng_packet_direct_cmd,
! 94: "debug ripng packet (recv|send)",
! 95: DEBUG_STR
! 96: "RIPng configuration\n"
! 97: "Debug option set for ripng packet\n"
! 98: "Debug option set for receive packet\n"
! 99: "Debug option set for send packet\n")
! 100: {
! 101: ripng_debug_packet |= RIPNG_DEBUG_PACKET;
! 102: if (strncmp ("send", argv[0], strlen (argv[0])) == 0)
! 103: ripng_debug_packet |= RIPNG_DEBUG_SEND;
! 104: if (strncmp ("recv", argv[0], strlen (argv[0])) == 0)
! 105: ripng_debug_packet |= RIPNG_DEBUG_RECV;
! 106:
! 107: return CMD_SUCCESS;
! 108: }
! 109:
! 110: /* N.B. the "detail" modifier is a no-op. we leave this command
! 111: for legacy compatibility. */
! 112: DEFUN_DEPRECATED (debug_ripng_packet_detail,
! 113: debug_ripng_packet_detail_cmd,
! 114: "debug ripng packet (recv|send) detail",
! 115: DEBUG_STR
! 116: "RIPng configuration\n"
! 117: "Debug option set for ripng packet\n"
! 118: "Debug option set for receive packet\n"
! 119: "Debug option set for send packet\n"
! 120: "Debug option set detaied information\n")
! 121: {
! 122: ripng_debug_packet |= RIPNG_DEBUG_PACKET;
! 123: if (strncmp ("send", argv[0], strlen (argv[0])) == 0)
! 124: ripng_debug_packet |= RIPNG_DEBUG_SEND;
! 125: if (strncmp ("recv", argv[0], strlen (argv[0])) == 0)
! 126: ripng_debug_packet |= RIPNG_DEBUG_RECV;
! 127:
! 128: return CMD_SUCCESS;
! 129: }
! 130:
! 131: DEFUN (debug_ripng_zebra,
! 132: debug_ripng_zebra_cmd,
! 133: "debug ripng zebra",
! 134: DEBUG_STR
! 135: "RIPng configuration\n"
! 136: "Debug option set for ripng and zebra communication\n")
! 137: {
! 138: ripng_debug_zebra = RIPNG_DEBUG_ZEBRA;
! 139: return CMD_WARNING;
! 140: }
! 141:
! 142: DEFUN (no_debug_ripng_events,
! 143: no_debug_ripng_events_cmd,
! 144: "no debug ripng events",
! 145: NO_STR
! 146: DEBUG_STR
! 147: "RIPng configuration\n"
! 148: "Debug option set for ripng events\n")
! 149: {
! 150: ripng_debug_event = 0;
! 151: return CMD_SUCCESS;
! 152: }
! 153:
! 154: DEFUN (no_debug_ripng_packet,
! 155: no_debug_ripng_packet_cmd,
! 156: "no debug ripng packet",
! 157: NO_STR
! 158: DEBUG_STR
! 159: "RIPng configuration\n"
! 160: "Debug option set for ripng packet\n")
! 161: {
! 162: ripng_debug_packet = 0;
! 163: return CMD_SUCCESS;
! 164: }
! 165:
! 166: DEFUN (no_debug_ripng_packet_direct,
! 167: no_debug_ripng_packet_direct_cmd,
! 168: "no debug ripng packet (recv|send)",
! 169: NO_STR
! 170: DEBUG_STR
! 171: "RIPng configuration\n"
! 172: "Debug option set for ripng packet\n"
! 173: "Debug option set for receive packet\n"
! 174: "Debug option set for send packet\n")
! 175: {
! 176: if (strncmp ("send", argv[0], strlen (argv[0])) == 0)
! 177: {
! 178: if (IS_RIPNG_DEBUG_RECV)
! 179: ripng_debug_packet &= ~RIPNG_DEBUG_SEND;
! 180: else
! 181: ripng_debug_packet = 0;
! 182: }
! 183: else if (strncmp ("recv", argv[0], strlen (argv[0])) == 0)
! 184: {
! 185: if (IS_RIPNG_DEBUG_SEND)
! 186: ripng_debug_packet &= ~RIPNG_DEBUG_RECV;
! 187: else
! 188: ripng_debug_packet = 0;
! 189: }
! 190: return CMD_SUCCESS;
! 191: }
! 192:
! 193: DEFUN (no_debug_ripng_zebra,
! 194: no_debug_ripng_zebra_cmd,
! 195: "no debug ripng zebra",
! 196: NO_STR
! 197: DEBUG_STR
! 198: "RIPng configuration\n"
! 199: "Debug option set for ripng and zebra communication\n")
! 200: {
! 201: ripng_debug_zebra = 0;
! 202: return CMD_WARNING;
! 203: }
! 204:
! 205: /* Debug node. */
! 206: static struct cmd_node debug_node =
! 207: {
! 208: DEBUG_NODE,
! 209: "", /* Debug node has no interface. */
! 210: 1 /* VTYSH */
! 211: };
! 212:
! 213: static int
! 214: config_write_debug (struct vty *vty)
! 215: {
! 216: int write = 0;
! 217:
! 218: if (IS_RIPNG_DEBUG_EVENT)
! 219: {
! 220: vty_out (vty, "debug ripng events%s", VTY_NEWLINE);
! 221: write++;
! 222: }
! 223: if (IS_RIPNG_DEBUG_PACKET)
! 224: {
! 225: if (IS_RIPNG_DEBUG_SEND && IS_RIPNG_DEBUG_RECV)
! 226: {
! 227: vty_out (vty, "debug ripng packet%s",
! 228: VTY_NEWLINE);
! 229: write++;
! 230: }
! 231: else
! 232: {
! 233: if (IS_RIPNG_DEBUG_SEND)
! 234: vty_out (vty, "debug ripng packet send%s",
! 235: VTY_NEWLINE);
! 236: else
! 237: vty_out (vty, "debug ripng packet recv%s",
! 238: VTY_NEWLINE);
! 239: write++;
! 240: }
! 241: }
! 242: if (IS_RIPNG_DEBUG_ZEBRA)
! 243: {
! 244: vty_out (vty, "debug ripng zebra%s", VTY_NEWLINE);
! 245: write++;
! 246: }
! 247: return write;
! 248: }
! 249:
! 250: void
! 251: ripng_debug_reset ()
! 252: {
! 253: ripng_debug_event = 0;
! 254: ripng_debug_packet = 0;
! 255: ripng_debug_zebra = 0;
! 256: }
! 257:
! 258: void
! 259: ripng_debug_init ()
! 260: {
! 261: ripng_debug_event = 0;
! 262: ripng_debug_packet = 0;
! 263: ripng_debug_zebra = 0;
! 264:
! 265: install_node (&debug_node, config_write_debug);
! 266:
! 267: install_element (VIEW_NODE, &show_debugging_ripng_cmd);
! 268:
! 269: install_element (ENABLE_NODE, &show_debugging_ripng_cmd);
! 270: install_element (ENABLE_NODE, &debug_ripng_events_cmd);
! 271: install_element (ENABLE_NODE, &debug_ripng_packet_cmd);
! 272: install_element (ENABLE_NODE, &debug_ripng_packet_direct_cmd);
! 273: install_element (ENABLE_NODE, &debug_ripng_packet_detail_cmd);
! 274: install_element (ENABLE_NODE, &debug_ripng_zebra_cmd);
! 275: install_element (ENABLE_NODE, &no_debug_ripng_events_cmd);
! 276: install_element (ENABLE_NODE, &no_debug_ripng_packet_cmd);
! 277: install_element (ENABLE_NODE, &no_debug_ripng_packet_direct_cmd);
! 278: install_element (ENABLE_NODE, &no_debug_ripng_zebra_cmd);
! 279:
! 280: install_element (CONFIG_NODE, &debug_ripng_events_cmd);
! 281: install_element (CONFIG_NODE, &debug_ripng_packet_cmd);
! 282: install_element (CONFIG_NODE, &debug_ripng_packet_direct_cmd);
! 283: install_element (CONFIG_NODE, &debug_ripng_packet_detail_cmd);
! 284: install_element (CONFIG_NODE, &debug_ripng_zebra_cmd);
! 285: install_element (CONFIG_NODE, &no_debug_ripng_events_cmd);
! 286: install_element (CONFIG_NODE, &no_debug_ripng_packet_cmd);
! 287: install_element (CONFIG_NODE, &no_debug_ripng_packet_direct_cmd);
! 288: install_element (CONFIG_NODE, &no_debug_ripng_zebra_cmd);
! 289: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>