1/* 2 * Copyright (C) 2003 Yasuhiro Ohara 3 * 4 * This file is part of GNU Zebra. 5 * 6 * GNU Zebra is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the 8 * Free Software Foundation; either version 2, or (at your option) any 9 * later version. 10 * 11 * GNU Zebra is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with GNU Zebra; see the file COPYING. If not, write to the 18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 * Boston, MA 02111-1307, USA. 20 */ 21 22#include <zebra.h> 23 24#include "thread.h" 25#include "linklist.h" 26#include "vty.h" 27#include "command.h" 28 29#include "ospf6_proto.h" 30#include "ospf6_network.h" 31#include "ospf6_lsa.h" 32#include "ospf6_lsdb.h" 33#include "ospf6_message.h" 34#include "ospf6_route.h" 35#include "ospf6_zebra.h" 36#include "ospf6_spf.h" 37#include "ospf6_top.h" 38#include "ospf6_area.h" 39#include "ospf6_interface.h" 40#include "ospf6_neighbor.h" 41#include "ospf6_intra.h" 42#include "ospf6_asbr.h" 43#include "ospf6_abr.h" 44#include "ospf6_flood.h" 45#include "ospf6d.h" 46 47#ifdef HAVE_SNMP 48#include "ospf6_snmp.h" 49#endif /*HAVE_SNMP*/ 50 51char ospf6_daemon_version[] = OSPF6_DAEMON_VERSION; 52 53struct route_node * 54route_prev (struct route_node *node) 55{ 56 struct route_node *end; 57 struct route_node *prev = NULL; 58 59 end = node; 60 node = node->parent; 61 if (node) 62 route_lock_node (node); 63 while (node) 64 { 65 prev = node; 66 node = route_next (node); 67 if (node == end) 68 { 69 route_unlock_node (node); 70 node = NULL; 71 } 72 } 73 route_unlock_node (end); 74 if (prev) 75 route_lock_node (prev); 76 77 return prev; 78} 79 80 81/* show database functions */ 82DEFUN (show_version_ospf6, 83 show_version_ospf6_cmd, 84 "show version ospf6", 85 SHOW_STR 86 "Displays ospf6d version\n" 87 ) 88{ 89 vty_out (vty, "Zebra OSPF6d Version: %s%s", 90 ospf6_daemon_version, VNL); 91 92 return CMD_SUCCESS; 93} 94 95static struct cmd_node debug_node = 96{ 97 DEBUG_NODE, 98 "", 99 1 /* VTYSH */ 100}; 101 102static int 103config_write_ospf6_debug (struct vty *vty) 104{ 105 config_write_ospf6_debug_message (vty); 106 config_write_ospf6_debug_lsa (vty); 107 config_write_ospf6_debug_zebra (vty); 108 config_write_ospf6_debug_interface (vty); 109 config_write_ospf6_debug_neighbor (vty); 110 config_write_ospf6_debug_spf (vty); 111 config_write_ospf6_debug_route (vty); 112 config_write_ospf6_debug_brouter (vty); 113 config_write_ospf6_debug_asbr (vty); 114 config_write_ospf6_debug_abr (vty); 115 config_write_ospf6_debug_flood (vty); 116 vty_out (vty, "!%s", VNL); 117 return 0; 118} 119 120#define AREA_LSDB_TITLE_FORMAT \ 121 "%s Area Scoped Link State Database (Area %s)%s%s" 122#define IF_LSDB_TITLE_FORMAT \ 123 "%s I/F Scoped Link State Database (I/F %s in Area %s)%s%s" 124#define AS_LSDB_TITLE_FORMAT \ 125 "%s AS Scoped Link State Database%s%s" 126 127static int 128parse_show_level (int argc, const char *argv[]) 129{ 130 int level = 0; 131 if (argc) 132 { 133 if (! strncmp (argv[0], "de", 2)) 134 level = OSPF6_LSDB_SHOW_LEVEL_DETAIL; 135 else if (! strncmp (argv[0], "du", 2)) 136 level = OSPF6_LSDB_SHOW_LEVEL_DUMP; 137 else if (! strncmp (argv[0], "in", 2)) 138 level = OSPF6_LSDB_SHOW_LEVEL_INTERNAL; 139 } 140 else 141 level = OSPF6_LSDB_SHOW_LEVEL_NORMAL; 142 return level; 143} 144 145static u_int16_t 146parse_type_spec (int argc, const char *argv[]) 147{ 148 u_int16_t type = 0; 149 assert (argc); 150 if (! strcmp (argv[0], "router")) 151 type = htons (OSPF6_LSTYPE_ROUTER); 152 else if (! strcmp (argv[0], "network")) 153 type = htons (OSPF6_LSTYPE_NETWORK); 154 else if (! strcmp (argv[0], "as-external")) 155 type = htons (OSPF6_LSTYPE_AS_EXTERNAL); 156 else if (! strcmp (argv[0], "intra-prefix")) 157 type = htons (OSPF6_LSTYPE_INTRA_PREFIX); 158 else if (! strcmp (argv[0], "inter-router")) 159 type = htons (OSPF6_LSTYPE_INTER_ROUTER); 160 else if (! strcmp (argv[0], "inter-prefix")) 161 type = htons (OSPF6_LSTYPE_INTER_PREFIX); 162 else if (! strcmp (argv[0], "link")) 163 type = htons (OSPF6_LSTYPE_LINK); 164 return type; 165} 166 167DEFUN (show_ipv6_ospf6_database, 168 show_ipv6_ospf6_database_cmd, 169 "show ipv6 ospf6 database", 170 SHOW_STR 171 IPV6_STR 172 OSPF6_STR 173 "Display Link state database\n" 174 ) 175{ 176 int level; 177 struct listnode *i, *j; 178 struct ospf6 *o = ospf6; 179 struct ospf6_area *oa; 180 struct ospf6_interface *oi; 181 182 OSPF6_CMD_CHECK_RUNNING (); 183 184 level = parse_show_level (argc, argv); 185 186 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 187 { 188 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 189 ospf6_lsdb_show (vty, level, NULL, NULL, NULL, oa->lsdb); 190 } 191 192 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 193 { 194 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 195 { 196 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 197 oi->interface->name, oa->name, VNL, VNL); 198 ospf6_lsdb_show (vty, level, NULL, NULL, NULL, oi->lsdb); 199 } 200 } 201 202 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 203 ospf6_lsdb_show (vty, level, NULL, NULL, NULL, o->lsdb); 204 205 vty_out (vty, "%s", VNL); 206 return CMD_SUCCESS; 207} 208 209ALIAS (show_ipv6_ospf6_database, 210 show_ipv6_ospf6_database_detail_cmd, 211 "show ipv6 ospf6 database (detail|dump|internal)", 212 SHOW_STR 213 IPV6_STR 214 OSPF6_STR 215 "Display Link state database\n" 216 "Display details of LSAs\n" 217 "Dump LSAs\n" 218 "Display LSA's internal information\n" 219 ) 220 221DEFUN (show_ipv6_ospf6_database_type, 222 show_ipv6_ospf6_database_type_cmd, 223 "show ipv6 ospf6 database " 224 "(router|network|inter-prefix|inter-router|as-external|" 225 "group-membership|type-7|link|intra-prefix)", 226 SHOW_STR 227 IPV6_STR 228 OSPF6_STR 229 "Display Link state database\n" 230 "Display Router LSAs\n" 231 "Display Network LSAs\n" 232 "Display Inter-Area-Prefix LSAs\n" 233 "Display Inter-Area-Router LSAs\n" 234 "Display As-External LSAs\n" 235 "Display Group-Membership LSAs\n" 236 "Display Type-7 LSAs\n" 237 "Display Link LSAs\n" 238 "Display Intra-Area-Prefix LSAs\n" 239 ) 240{ 241 int level; 242 struct listnode *i, *j; 243 struct ospf6 *o = ospf6; 244 struct ospf6_area *oa; 245 struct ospf6_interface *oi; 246 u_int16_t type = 0; 247 248 OSPF6_CMD_CHECK_RUNNING (); 249 250 type = parse_type_spec (argc, argv); 251 argc--; 252 argv++; 253 level = parse_show_level (argc, argv); 254 255 switch (OSPF6_LSA_SCOPE (type)) 256 { 257 case OSPF6_SCOPE_AREA: 258 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 259 { 260 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 261 ospf6_lsdb_show (vty, level, &type, NULL, NULL, oa->lsdb); 262 } 263 break; 264 265 case OSPF6_SCOPE_LINKLOCAL: 266 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 267 { 268 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 269 { 270 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 271 oi->interface->name, oa->name, VNL, VNL); 272 ospf6_lsdb_show (vty, level, &type, NULL, NULL, oi->lsdb); 273 } 274 } 275 break; 276 277 case OSPF6_SCOPE_AS: 278 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 279 ospf6_lsdb_show (vty, level, &type, NULL, NULL, o->lsdb); 280 break; 281 282 default: 283 assert (0); 284 break; 285 } 286 287 vty_out (vty, "%s", VNL); 288 return CMD_SUCCESS; 289} 290 291ALIAS (show_ipv6_ospf6_database_type, 292 show_ipv6_ospf6_database_type_detail_cmd, 293 "show ipv6 ospf6 database " 294 "(router|network|inter-prefix|inter-router|as-external|" 295 "group-membership|type-7|link|intra-prefix) " 296 "(detail|dump|internal)", 297 SHOW_STR 298 IPV6_STR 299 OSPF6_STR 300 "Display Link state database\n" 301 "Display Router LSAs\n" 302 "Display Network LSAs\n" 303 "Display Inter-Area-Prefix LSAs\n" 304 "Display Inter-Area-Router LSAs\n" 305 "Display As-External LSAs\n" 306 "Display Group-Membership LSAs\n" 307 "Display Type-7 LSAs\n" 308 "Display Link LSAs\n" 309 "Display Intra-Area-Prefix LSAs\n" 310 "Display details of LSAs\n" 311 "Dump LSAs\n" 312 "Display LSA's internal information\n" 313 ) 314 315DEFUN (show_ipv6_ospf6_database_id, 316 show_ipv6_ospf6_database_id_cmd, 317 "show ipv6 ospf6 database * A.B.C.D", 318 SHOW_STR 319 IPV6_STR 320 OSPF6_STR 321 "Display Link state database\n" 322 "Any Link state Type\n" 323 "Specify Link state ID as IPv4 address notation\n" 324 ) 325{ 326 int level; 327 struct listnode *i, *j; 328 struct ospf6 *o = ospf6; 329 struct ospf6_area *oa; 330 struct ospf6_interface *oi; 331 u_int32_t id = 0; 332 333 OSPF6_CMD_CHECK_RUNNING (); 334 335 if ((inet_pton (AF_INET, argv[0], &id)) != 1) 336 { 337 vty_out (vty, "Link State ID is not parsable: %s%s", 338 argv[0], VNL); 339 return CMD_SUCCESS; 340 } 341 342 argc--; 343 argv++; 344 level = parse_show_level (argc, argv); 345 346 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 347 { 348 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 349 ospf6_lsdb_show (vty, level, NULL, &id, NULL, oa->lsdb); 350 } 351 352 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 353 { 354 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 355 { 356 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 357 oi->interface->name, oa->name, VNL, VNL); 358 ospf6_lsdb_show (vty, level, NULL, &id, NULL, oi->lsdb); 359 } 360 } 361 362 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 363 ospf6_lsdb_show (vty, level, NULL, &id, NULL, o->lsdb); 364 365 vty_out (vty, "%s", VNL); 366 return CMD_SUCCESS; 367} 368 369ALIAS (show_ipv6_ospf6_database_id, 370 show_ipv6_ospf6_database_id_detail_cmd, 371 "show ipv6 ospf6 database * A.B.C.D " 372 "(detail|dump|internal)", 373 SHOW_STR 374 IPV6_STR 375 OSPF6_STR 376 "Display Link state database\n" 377 "Any Link state Type\n" 378 "Specify Link state ID as IPv4 address notation\n" 379 "Display details of LSAs\n" 380 "Dump LSAs\n" 381 "Display LSA's internal information\n" 382 ) 383 384ALIAS (show_ipv6_ospf6_database_id, 385 show_ipv6_ospf6_database_linkstate_id_cmd, 386 "show ipv6 ospf6 database linkstate-id A.B.C.D", 387 SHOW_STR 388 IPV6_STR 389 OSPF6_STR 390 "Display Link state database\n" 391 "Search by Link state ID\n" 392 "Specify Link state ID as IPv4 address notation\n" 393 ) 394 395ALIAS (show_ipv6_ospf6_database_id, 396 show_ipv6_ospf6_database_linkstate_id_detail_cmd, 397 "show ipv6 ospf6 database linkstate-id A.B.C.D " 398 "(detail|dump|internal)", 399 SHOW_STR 400 IPV6_STR 401 OSPF6_STR 402 "Display Link state database\n" 403 "Search by Link state ID\n" 404 "Specify Link state ID as IPv4 address notation\n" 405 "Display details of LSAs\n" 406 "Dump LSAs\n" 407 "Display LSA's internal information\n" 408 ) 409 410DEFUN (show_ipv6_ospf6_database_router, 411 show_ipv6_ospf6_database_router_cmd, 412 "show ipv6 ospf6 database * * A.B.C.D", 413 SHOW_STR 414 IPV6_STR 415 OSPF6_STR 416 "Display Link state database\n" 417 "Any Link state Type\n" 418 "Any Link state ID\n" 419 "Specify Advertising Router as IPv4 address notation\n" 420 ) 421{ 422 int level; 423 struct listnode *i, *j; 424 struct ospf6 *o = ospf6; 425 struct ospf6_area *oa; 426 struct ospf6_interface *oi; 427 u_int32_t adv_router = 0; 428 429 OSPF6_CMD_CHECK_RUNNING (); 430 431 if ((inet_pton (AF_INET, argv[0], &adv_router)) != 1) 432 { 433 vty_out (vty, "Advertising Router is not parsable: %s%s", 434 argv[0], VNL); 435 return CMD_SUCCESS; 436 } 437 438 argc--; 439 argv++; 440 level = parse_show_level (argc, argv); 441 442 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 443 { 444 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 445 ospf6_lsdb_show (vty, level, NULL, NULL, &adv_router, oa->lsdb); 446 } 447 448 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 449 { 450 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 451 { 452 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 453 oi->interface->name, oa->name, VNL, VNL); 454 ospf6_lsdb_show (vty, level, NULL, NULL, &adv_router, oi->lsdb); 455 } 456 } 457 458 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 459 ospf6_lsdb_show (vty, level, NULL, NULL, &adv_router, o->lsdb); 460 461 vty_out (vty, "%s", VNL); 462 return CMD_SUCCESS; 463} 464 465ALIAS (show_ipv6_ospf6_database_router, 466 show_ipv6_ospf6_database_router_detail_cmd, 467 "show ipv6 ospf6 database * * A.B.C.D " 468 "(detail|dump|internal)", 469 SHOW_STR 470 IPV6_STR 471 OSPF6_STR 472 "Display Link state database\n" 473 "Any Link state Type\n" 474 "Any Link state ID\n" 475 "Specify Advertising Router as IPv4 address notation\n" 476 "Display details of LSAs\n" 477 "Dump LSAs\n" 478 "Display LSA's internal information\n" 479 ) 480 481ALIAS (show_ipv6_ospf6_database_router, 482 show_ipv6_ospf6_database_adv_router_cmd, 483 "show ipv6 ospf6 database adv-router A.B.C.D", 484 SHOW_STR 485 IPV6_STR 486 OSPF6_STR 487 "Display Link state database\n" 488 "Search by Advertising Router\n" 489 "Specify Advertising Router as IPv4 address notation\n" 490 ) 491 492ALIAS (show_ipv6_ospf6_database_router, 493 show_ipv6_ospf6_database_adv_router_detail_cmd, 494 "show ipv6 ospf6 database adv-router A.B.C.D " 495 "(detail|dump|internal)", 496 SHOW_STR 497 IPV6_STR 498 OSPF6_STR 499 "Display Link state database\n" 500 "Search by Advertising Router\n" 501 "Specify Advertising Router as IPv4 address notation\n" 502 "Display details of LSAs\n" 503 "Dump LSAs\n" 504 "Display LSA's internal information\n" 505 ) 506 507DEFUN (show_ipv6_ospf6_database_type_id, 508 show_ipv6_ospf6_database_type_id_cmd, 509 "show ipv6 ospf6 database " 510 "(router|network|inter-prefix|inter-router|as-external|" 511 "group-membership|type-7|link|intra-prefix) A.B.C.D", 512 SHOW_STR 513 IPV6_STR 514 OSPF6_STR 515 "Display Link state database\n" 516 "Display Router LSAs\n" 517 "Display Network LSAs\n" 518 "Display Inter-Area-Prefix LSAs\n" 519 "Display Inter-Area-Router LSAs\n" 520 "Display As-External LSAs\n" 521 "Display Group-Membership LSAs\n" 522 "Display Type-7 LSAs\n" 523 "Display Link LSAs\n" 524 "Display Intra-Area-Prefix LSAs\n" 525 "Specify Link state ID as IPv4 address notation\n" 526 ) 527{ 528 int level; 529 struct listnode *i, *j; 530 struct ospf6 *o = ospf6; 531 struct ospf6_area *oa; 532 struct ospf6_interface *oi; 533 u_int16_t type = 0; 534 u_int32_t id = 0; 535 536 OSPF6_CMD_CHECK_RUNNING (); 537 538 type = parse_type_spec (argc, argv); 539 argc--; 540 argv++; 541 542 if ((inet_pton (AF_INET, argv[0], &id)) != 1) 543 { 544 vty_out (vty, "Link state ID is not parsable: %s%s", 545 argv[0], VNL); 546 return CMD_SUCCESS; 547 } 548 549 argc--; 550 argv++; 551 level = parse_show_level (argc, argv); 552 553 switch (OSPF6_LSA_SCOPE (type)) 554 { 555 case OSPF6_SCOPE_AREA: 556 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 557 { 558 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 559 ospf6_lsdb_show (vty, level, &type, &id, NULL, oa->lsdb); 560 } 561 break; 562 563 case OSPF6_SCOPE_LINKLOCAL: 564 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 565 { 566 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 567 { 568 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 569 oi->interface->name, oa->name, VNL, VNL); 570 ospf6_lsdb_show (vty, level, &type, &id, NULL, oi->lsdb); 571 } 572 } 573 break; 574 575 case OSPF6_SCOPE_AS: 576 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 577 ospf6_lsdb_show (vty, level, &type, &id, NULL, o->lsdb); 578 break; 579 580 default: 581 assert (0); 582 break; 583 } 584 585 vty_out (vty, "%s", VNL); 586 return CMD_SUCCESS; 587} 588 589ALIAS (show_ipv6_ospf6_database_type_id, 590 show_ipv6_ospf6_database_type_id_detail_cmd, 591 "show ipv6 ospf6 database " 592 "(router|network|inter-prefix|inter-router|as-external|" 593 "group-membership|type-7|link|intra-prefix) A.B.C.D " 594 "(detail|dump|internal)", 595 SHOW_STR 596 IPV6_STR 597 OSPF6_STR 598 "Display Link state database\n" 599 "Display Router LSAs\n" 600 "Display Network LSAs\n" 601 "Display Inter-Area-Prefix LSAs\n" 602 "Display Inter-Area-Router LSAs\n" 603 "Display As-External LSAs\n" 604 "Display Group-Membership LSAs\n" 605 "Display Type-7 LSAs\n" 606 "Display Link LSAs\n" 607 "Display Intra-Area-Prefix LSAs\n" 608 "Specify Link state ID as IPv4 address notation\n" 609 "Display details of LSAs\n" 610 "Dump LSAs\n" 611 "Display LSA's internal information\n" 612 ) 613 614ALIAS (show_ipv6_ospf6_database_type_id, 615 show_ipv6_ospf6_database_type_linkstate_id_cmd, 616 "show ipv6 ospf6 database " 617 "(router|network|inter-prefix|inter-router|as-external|" 618 "group-membership|type-7|link|intra-prefix) linkstate-id A.B.C.D", 619 SHOW_STR 620 IPV6_STR 621 OSPF6_STR 622 "Display Link state database\n" 623 "Display Router LSAs\n" 624 "Display Network LSAs\n" 625 "Display Inter-Area-Prefix LSAs\n" 626 "Display Inter-Area-Router LSAs\n" 627 "Display As-External LSAs\n" 628 "Display Group-Membership LSAs\n" 629 "Display Type-7 LSAs\n" 630 "Display Link LSAs\n" 631 "Display Intra-Area-Prefix LSAs\n" 632 "Search by Link state ID\n" 633 "Specify Link state ID as IPv4 address notation\n" 634 ) 635 636ALIAS (show_ipv6_ospf6_database_type_id, 637 show_ipv6_ospf6_database_type_linkstate_id_detail_cmd, 638 "show ipv6 ospf6 database " 639 "(router|network|inter-prefix|inter-router|as-external|" 640 "group-membership|type-7|link|intra-prefix) linkstate-id A.B.C.D " 641 "(detail|dump|internal)", 642 SHOW_STR 643 IPV6_STR 644 OSPF6_STR 645 "Display Link state database\n" 646 "Display Router LSAs\n" 647 "Display Network LSAs\n" 648 "Display Inter-Area-Prefix LSAs\n" 649 "Display Inter-Area-Router LSAs\n" 650 "Display As-External LSAs\n" 651 "Display Group-Membership LSAs\n" 652 "Display Type-7 LSAs\n" 653 "Display Link LSAs\n" 654 "Display Intra-Area-Prefix LSAs\n" 655 "Search by Link state ID\n" 656 "Specify Link state ID as IPv4 address notation\n" 657 "Display details of LSAs\n" 658 "Dump LSAs\n" 659 "Display LSA's internal information\n" 660 ) 661 662DEFUN (show_ipv6_ospf6_database_type_router, 663 show_ipv6_ospf6_database_type_router_cmd, 664 "show ipv6 ospf6 database " 665 "(router|network|inter-prefix|inter-router|as-external|" 666 "group-membership|type-7|link|intra-prefix) * A.B.C.D", 667 SHOW_STR 668 IPV6_STR 669 OSPF6_STR 670 "Display Link state database\n" 671 "Display Router LSAs\n" 672 "Display Network LSAs\n" 673 "Display Inter-Area-Prefix LSAs\n" 674 "Display Inter-Area-Router LSAs\n" 675 "Display As-External LSAs\n" 676 "Display Group-Membership LSAs\n" 677 "Display Type-7 LSAs\n" 678 "Display Link LSAs\n" 679 "Display Intra-Area-Prefix LSAs\n" 680 "Any Link state ID\n" 681 "Specify Advertising Router as IPv4 address notation\n" 682 ) 683{ 684 int level; 685 struct listnode *i, *j; 686 struct ospf6 *o = ospf6; 687 struct ospf6_area *oa; 688 struct ospf6_interface *oi; 689 u_int16_t type = 0; 690 u_int32_t adv_router = 0; 691 692 OSPF6_CMD_CHECK_RUNNING (); 693 694 type = parse_type_spec (argc, argv); 695 argc--; 696 argv++; 697 698 if ((inet_pton (AF_INET, argv[0], &adv_router)) != 1) 699 { 700 vty_out (vty, "Advertising Router is not parsable: %s%s", 701 argv[0], VNL); 702 return CMD_SUCCESS; 703 } 704 705 argc--; 706 argv++; 707 level = parse_show_level (argc, argv); 708 709 switch (OSPF6_LSA_SCOPE (type)) 710 { 711 case OSPF6_SCOPE_AREA: 712 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 713 { 714 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 715 ospf6_lsdb_show (vty, level, &type, NULL, &adv_router, oa->lsdb); 716 } 717 break; 718 719 case OSPF6_SCOPE_LINKLOCAL: 720 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 721 { 722 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 723 { 724 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 725 oi->interface->name, oa->name, VNL, VNL); 726 ospf6_lsdb_show (vty, level, &type, NULL, &adv_router, oi->lsdb); 727 } 728 } 729 break; 730 731 case OSPF6_SCOPE_AS: 732 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 733 ospf6_lsdb_show (vty, level, &type, NULL, &adv_router, o->lsdb); 734 break; 735 736 default: 737 assert (0); 738 break; 739 } 740 741 vty_out (vty, "%s", VNL); 742 return CMD_SUCCESS; 743} 744 745ALIAS (show_ipv6_ospf6_database_type_router, 746 show_ipv6_ospf6_database_type_router_detail_cmd, 747 "show ipv6 ospf6 database " 748 "(router|network|inter-prefix|inter-router|as-external|" 749 "group-membership|type-7|link|intra-prefix) * A.B.C.D " 750 "(detail|dump|internal)", 751 SHOW_STR 752 IPV6_STR 753 OSPF6_STR 754 "Display Link state database\n" 755 "Display Router LSAs\n" 756 "Display Network LSAs\n" 757 "Display Inter-Area-Prefix LSAs\n" 758 "Display Inter-Area-Router LSAs\n" 759 "Display As-External LSAs\n" 760 "Display Group-Membership LSAs\n" 761 "Display Type-7 LSAs\n" 762 "Display Link LSAs\n" 763 "Display Intra-Area-Prefix LSAs\n" 764 "Any Link state ID\n" 765 "Specify Advertising Router as IPv4 address notation\n" 766 "Display details of LSAs\n" 767 "Dump LSAs\n" 768 "Display LSA's internal information\n" 769 ) 770 771ALIAS (show_ipv6_ospf6_database_type_router, 772 show_ipv6_ospf6_database_type_adv_router_cmd, 773 "show ipv6 ospf6 database " 774 "(router|network|inter-prefix|inter-router|as-external|" 775 "group-membership|type-7|link|intra-prefix) adv-router A.B.C.D", 776 SHOW_STR 777 IPV6_STR 778 OSPF6_STR 779 "Display Link state database\n" 780 "Display Router LSAs\n" 781 "Display Network LSAs\n" 782 "Display Inter-Area-Prefix LSAs\n" 783 "Display Inter-Area-Router LSAs\n" 784 "Display As-External LSAs\n" 785 "Display Group-Membership LSAs\n" 786 "Display Type-7 LSAs\n" 787 "Display Link LSAs\n" 788 "Display Intra-Area-Prefix LSAs\n" 789 "Search by Advertising Router\n" 790 "Specify Advertising Router as IPv4 address notation\n" 791 ) 792 793ALIAS (show_ipv6_ospf6_database_type_router, 794 show_ipv6_ospf6_database_type_adv_router_detail_cmd, 795 "show ipv6 ospf6 database " 796 "(router|network|inter-prefix|inter-router|as-external|" 797 "group-membership|type-7|link|intra-prefix) adv-router A.B.C.D " 798 "(detail|dump|internal)", 799 SHOW_STR 800 IPV6_STR 801 OSPF6_STR 802 "Display Link state database\n" 803 "Display Router LSAs\n" 804 "Display Network LSAs\n" 805 "Display Inter-Area-Prefix LSAs\n" 806 "Display Inter-Area-Router LSAs\n" 807 "Display As-External LSAs\n" 808 "Display Group-Membership LSAs\n" 809 "Display Type-7 LSAs\n" 810 "Display Link LSAs\n" 811 "Display Intra-Area-Prefix LSAs\n" 812 "Search by Advertising Router\n" 813 "Specify Advertising Router as IPv4 address notation\n" 814 "Display details of LSAs\n" 815 "Dump LSAs\n" 816 "Display LSA's internal information\n" 817 ) 818 819DEFUN (show_ipv6_ospf6_database_id_router, 820 show_ipv6_ospf6_database_id_router_cmd, 821 "show ipv6 ospf6 database * A.B.C.D A.B.C.D", 822 SHOW_STR 823 IPV6_STR 824 OSPF6_STR 825 "Display Link state database\n" 826 "Any Link state Type\n" 827 "Specify Link state ID as IPv4 address notation\n" 828 "Specify Advertising Router as IPv4 address notation\n" 829 ) 830{ 831 int level; 832 struct listnode *i, *j; 833 struct ospf6 *o = ospf6; 834 struct ospf6_area *oa; 835 struct ospf6_interface *oi; 836 u_int32_t id = 0; 837 u_int32_t adv_router = 0; 838 839 OSPF6_CMD_CHECK_RUNNING (); 840 841 if ((inet_pton (AF_INET, argv[0], &id)) != 1) 842 { 843 vty_out (vty, "Link state ID is not parsable: %s%s", 844 argv[0], VNL); 845 return CMD_SUCCESS; 846 } 847 848 argc--; 849 argv++; 850 851 if ((inet_pton (AF_INET, argv[0], &adv_router)) != 1) 852 { 853 vty_out (vty, "Advertising Router is not parsable: %s%s", 854 argv[0], VNL); 855 return CMD_SUCCESS; 856 } 857 858 argc--; 859 argv++; 860 level = parse_show_level (argc, argv); 861 862 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 863 { 864 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 865 ospf6_lsdb_show (vty, level, NULL, &id, &adv_router, oa->lsdb); 866 } 867 868 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 869 { 870 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 871 { 872 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 873 oi->interface->name, oa->name, VNL, VNL); 874 ospf6_lsdb_show (vty, level, NULL, &id, &adv_router, oi->lsdb); 875 } 876 } 877 878 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 879 ospf6_lsdb_show (vty, level, NULL, &id, &adv_router, o->lsdb); 880 881 vty_out (vty, "%s", VNL); 882 return CMD_SUCCESS; 883} 884 885ALIAS (show_ipv6_ospf6_database_id_router, 886 show_ipv6_ospf6_database_id_router_detail_cmd, 887 "show ipv6 ospf6 database * A.B.C.D A.B.C.D " 888 "(detail|dump|internal)", 889 SHOW_STR 890 IPV6_STR 891 OSPF6_STR 892 "Display Link state database\n" 893 "Any Link state Type\n" 894 "Specify Link state ID as IPv4 address notation\n" 895 "Specify Advertising Router as IPv4 address notation\n" 896 "Display details of LSAs\n" 897 "Dump LSAs\n" 898 "Display LSA's internal information\n" 899 ) 900 901DEFUN (show_ipv6_ospf6_database_adv_router_linkstate_id, 902 show_ipv6_ospf6_database_adv_router_linkstate_id_cmd, 903 "show ipv6 ospf6 database adv-router A.B.C.D linkstate-id A.B.C.D", 904 SHOW_STR 905 IPV6_STR 906 OSPF6_STR 907 "Display Link state database\n" 908 "Search by Advertising Router\n" 909 "Specify Advertising Router as IPv4 address notation\n" 910 "Search by Link state ID\n" 911 "Specify Link state ID as IPv4 address notation\n" 912 ) 913{ 914 int level; 915 struct listnode *i, *j; 916 struct ospf6 *o = ospf6; 917 struct ospf6_area *oa; 918 struct ospf6_interface *oi; 919 u_int32_t id = 0; 920 u_int32_t adv_router = 0; 921 922 OSPF6_CMD_CHECK_RUNNING (); 923 924 if ((inet_pton (AF_INET, argv[0], &adv_router)) != 1) 925 { 926 vty_out (vty, "Advertising Router is not parsable: %s%s", 927 argv[0], VNL); 928 return CMD_SUCCESS; 929 } 930 931 argc--; 932 argv++; 933 934 if ((inet_pton (AF_INET, argv[0], &id)) != 1) 935 { 936 vty_out (vty, "Link state ID is not parsable: %s%s", 937 argv[0], VNL); 938 return CMD_SUCCESS; 939 } 940 941 argc--; 942 argv++; 943 level = parse_show_level (argc, argv); 944 945 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 946 { 947 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 948 ospf6_lsdb_show (vty, level, NULL, &id, &adv_router, oa->lsdb); 949 } 950 951 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 952 { 953 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 954 { 955 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 956 oi->interface->name, oa->name, VNL, VNL); 957 ospf6_lsdb_show (vty, level, NULL, &id, &adv_router, oi->lsdb); 958 } 959 } 960 961 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 962 ospf6_lsdb_show (vty, level, NULL, &id, &adv_router, o->lsdb); 963 964 vty_out (vty, "%s", VNL); 965 return CMD_SUCCESS; 966} 967 968ALIAS (show_ipv6_ospf6_database_adv_router_linkstate_id, 969 show_ipv6_ospf6_database_adv_router_linkstate_id_detail_cmd, 970 "show ipv6 ospf6 database adv-router A.B.C.D linkstate-id A.B.C.D " 971 "(detail|dump|internal)", 972 SHOW_STR 973 IPV6_STR 974 OSPF6_STR 975 "Display Link state database\n" 976 "Search by Advertising Router\n" 977 "Specify Advertising Router as IPv4 address notation\n" 978 "Search by Link state ID\n" 979 "Specify Link state ID as IPv4 address notation\n" 980 "Display details of LSAs\n" 981 "Dump LSAs\n" 982 "Display LSA's internal information\n" 983 ) 984 985DEFUN (show_ipv6_ospf6_database_type_id_router, 986 show_ipv6_ospf6_database_type_id_router_cmd, 987 "show ipv6 ospf6 database " 988 "(router|network|inter-prefix|inter-router|as-external|" 989 "group-membership|type-7|link|intra-prefix) A.B.C.D A.B.C.D", 990 SHOW_STR 991 IPV6_STR 992 OSPF6_STR 993 "Display Link state database\n" 994 "Display Router LSAs\n" 995 "Display Network LSAs\n" 996 "Display Inter-Area-Prefix LSAs\n" 997 "Display Inter-Area-Router LSAs\n" 998 "Display As-External LSAs\n" 999 "Display Group-Membership LSAs\n" 1000 "Display Type-7 LSAs\n" 1001 "Display Link LSAs\n" 1002 "Display Intra-Area-Prefix LSAs\n" 1003 "Specify Link state ID as IPv4 address notation\n" 1004 "Specify Advertising Router as IPv4 address notation\n" 1005 ) 1006{ 1007 int level; 1008 struct listnode *i, *j; 1009 struct ospf6 *o = ospf6; 1010 struct ospf6_area *oa; 1011 struct ospf6_interface *oi; 1012 u_int16_t type = 0; 1013 u_int32_t id = 0; 1014 u_int32_t adv_router = 0; 1015 1016 OSPF6_CMD_CHECK_RUNNING (); 1017 1018 type = parse_type_spec (argc, argv); 1019 argc--; 1020 argv++; 1021 1022 if ((inet_pton (AF_INET, argv[0], &id)) != 1) 1023 { 1024 vty_out (vty, "Link state ID is not parsable: %s%s", 1025 argv[0], VNL); 1026 return CMD_SUCCESS; 1027 } 1028 1029 argc--; 1030 argv++; 1031 1032 if ((inet_pton (AF_INET, argv[0], &adv_router)) != 1) 1033 { 1034 vty_out (vty, "Advertising Router is not parsable: %s%s", 1035 argv[0], VNL); 1036 return CMD_SUCCESS; 1037 } 1038 1039 argc--; 1040 argv++; 1041 level = parse_show_level (argc, argv); 1042 1043 switch (OSPF6_LSA_SCOPE (type)) 1044 { 1045 case OSPF6_SCOPE_AREA: 1046 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1047 { 1048 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 1049 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oa->lsdb); 1050 } 1051 break; 1052 1053 case OSPF6_SCOPE_LINKLOCAL: 1054 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1055 { 1056 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 1057 { 1058 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 1059 oi->interface->name, oa->name, VNL, VNL); 1060 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oi->lsdb); 1061 } 1062 } 1063 break; 1064 1065 case OSPF6_SCOPE_AS: 1066 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 1067 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, o->lsdb); 1068 break; 1069 1070 default: 1071 assert (0); 1072 break; 1073 } 1074 1075 vty_out (vty, "%s", VNL); 1076 return CMD_SUCCESS; 1077} 1078 1079ALIAS (show_ipv6_ospf6_database_type_id_router, 1080 show_ipv6_ospf6_database_type_id_router_detail_cmd, 1081 "show ipv6 ospf6 database " 1082 "(router|network|inter-prefix|inter-router|as-external|" 1083 "group-membership|type-7|link|intra-prefix) A.B.C.D A.B.C.D " 1084 "(dump|internal)", 1085 SHOW_STR 1086 IPV6_STR 1087 OSPF6_STR 1088 "Display Link state database\n" 1089 "Display Router LSAs\n" 1090 "Display Network LSAs\n" 1091 "Display Inter-Area-Prefix LSAs\n" 1092 "Display Inter-Area-Router LSAs\n" 1093 "Display As-External LSAs\n" 1094 "Display Group-Membership LSAs\n" 1095 "Display Type-7 LSAs\n" 1096 "Display Link LSAs\n" 1097 "Display Intra-Area-Prefix LSAs\n" 1098 "Specify Link state ID as IPv4 address notation\n" 1099 "Specify Advertising Router as IPv4 address notation\n" 1100 "Dump LSAs\n" 1101 "Display LSA's internal information\n" 1102 ) 1103 1104DEFUN (show_ipv6_ospf6_database_type_adv_router_linkstate_id, 1105 show_ipv6_ospf6_database_type_adv_router_linkstate_id_cmd, 1106 "show ipv6 ospf6 database " 1107 "(router|network|inter-prefix|inter-router|as-external|" 1108 "group-membership|type-7|link|intra-prefix) " 1109 "adv-router A.B.C.D linkstate-id A.B.C.D", 1110 SHOW_STR 1111 IPV6_STR 1112 OSPF6_STR 1113 "Display Link state database\n" 1114 "Display Router LSAs\n" 1115 "Display Network LSAs\n" 1116 "Display Inter-Area-Prefix LSAs\n" 1117 "Display Inter-Area-Router LSAs\n" 1118 "Display As-External LSAs\n" 1119 "Display Group-Membership LSAs\n" 1120 "Display Type-7 LSAs\n" 1121 "Display Link LSAs\n" 1122 "Display Intra-Area-Prefix LSAs\n" 1123 "Search by Advertising Router\n" 1124 "Specify Advertising Router as IPv4 address notation\n" 1125 "Search by Link state ID\n" 1126 "Specify Link state ID as IPv4 address notation\n" 1127 ) 1128{ 1129 int level; 1130 struct listnode *i, *j; 1131 struct ospf6 *o = ospf6; 1132 struct ospf6_area *oa; 1133 struct ospf6_interface *oi; 1134 u_int16_t type = 0; 1135 u_int32_t id = 0; 1136 u_int32_t adv_router = 0; 1137 1138 OSPF6_CMD_CHECK_RUNNING (); 1139 1140 type = parse_type_spec (argc, argv); 1141 argc--; 1142 argv++; 1143 1144 if ((inet_pton (AF_INET, argv[0], &adv_router)) != 1) 1145 { 1146 vty_out (vty, "Advertising Router is not parsable: %s%s", 1147 argv[0], VNL); 1148 return CMD_SUCCESS; 1149 } 1150 1151 argc--; 1152 argv++; 1153 1154 if ((inet_pton (AF_INET, argv[0], &id)) != 1) 1155 { 1156 vty_out (vty, "Link state ID is not parsable: %s%s", 1157 argv[0], VNL); 1158 return CMD_SUCCESS; 1159 } 1160 1161 argc--; 1162 argv++; 1163 level = parse_show_level (argc, argv); 1164 1165 switch (OSPF6_LSA_SCOPE (type)) 1166 { 1167 case OSPF6_SCOPE_AREA: 1168 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1169 { 1170 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 1171 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oa->lsdb); 1172 } 1173 break; 1174 1175 case OSPF6_SCOPE_LINKLOCAL: 1176 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1177 { 1178 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 1179 { 1180 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 1181 oi->interface->name, oa->name, VNL, VNL); 1182 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oi->lsdb); 1183 } 1184 } 1185 break; 1186 1187 case OSPF6_SCOPE_AS: 1188 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 1189 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, o->lsdb); 1190 break; 1191 1192 default: 1193 assert (0); 1194 break; 1195 } 1196 1197 vty_out (vty, "%s", VNL); 1198 return CMD_SUCCESS; 1199} 1200 1201ALIAS (show_ipv6_ospf6_database_type_adv_router_linkstate_id, 1202 show_ipv6_ospf6_database_type_adv_router_linkstate_id_detail_cmd, 1203 "show ipv6 ospf6 database " 1204 "(router|network|inter-prefix|inter-router|as-external|" 1205 "group-membership|type-7|link|intra-prefix) " 1206 "adv-router A.B.C.D linkstate-id A.B.C.D " 1207 "(dump|internal)", 1208 SHOW_STR 1209 IPV6_STR 1210 OSPF6_STR 1211 "Display Link state database\n" 1212 "Display Router LSAs\n" 1213 "Display Network LSAs\n" 1214 "Display Inter-Area-Prefix LSAs\n" 1215 "Display Inter-Area-Router LSAs\n" 1216 "Display As-External LSAs\n" 1217 "Display Group-Membership LSAs\n" 1218 "Display Type-7 LSAs\n" 1219 "Display Link LSAs\n" 1220 "Display Intra-Area-Prefix LSAs\n" 1221 "Search by Advertising Router\n" 1222 "Specify Advertising Router as IPv4 address notation\n" 1223 "Search by Link state ID\n" 1224 "Specify Link state ID as IPv4 address notation\n" 1225 "Dump LSAs\n" 1226 "Display LSA's internal information\n" 1227 ) 1228 1229DEFUN (show_ipv6_ospf6_database_self_originated, 1230 show_ipv6_ospf6_database_self_originated_cmd, 1231 "show ipv6 ospf6 database self-originated", 1232 SHOW_STR 1233 IPV6_STR 1234 OSPF6_STR 1235 "Display Self-originated LSAs\n" 1236 ) 1237{ 1238 int level; 1239 struct listnode *i, *j; 1240 struct ospf6 *o = ospf6; 1241 struct ospf6_area *oa; 1242 struct ospf6_interface *oi; 1243 u_int32_t adv_router = 0; 1244 1245 OSPF6_CMD_CHECK_RUNNING (); 1246 1247 level = parse_show_level (argc, argv); 1248 1249 adv_router = o->router_id; 1250 1251 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1252 { 1253 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 1254 ospf6_lsdb_show (vty, level, NULL, NULL, &adv_router, oa->lsdb); 1255 } 1256 1257 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1258 { 1259 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 1260 { 1261 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 1262 oi->interface->name, oa->name, VNL, VNL); 1263 ospf6_lsdb_show (vty, level, NULL, NULL, &adv_router, oi->lsdb); 1264 } 1265 } 1266 1267 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 1268 ospf6_lsdb_show (vty, level, NULL, NULL, &adv_router, o->lsdb); 1269 1270 vty_out (vty, "%s", VNL); 1271 return CMD_SUCCESS; 1272} 1273 1274ALIAS (show_ipv6_ospf6_database_self_originated, 1275 show_ipv6_ospf6_database_self_originated_detail_cmd, 1276 "show ipv6 ospf6 database self-originated " 1277 "(detail|dump|internal)", 1278 SHOW_STR 1279 IPV6_STR 1280 OSPF6_STR 1281 "Display Self-originated LSAs\n" 1282 "Display details of LSAs\n" 1283 "Dump LSAs\n" 1284 "Display LSA's internal information\n" 1285 ) 1286 1287DEFUN (show_ipv6_ospf6_database_type_self_originated, 1288 show_ipv6_ospf6_database_type_self_originated_cmd, 1289 "show ipv6 ospf6 database " 1290 "(router|network|inter-prefix|inter-router|as-external|" 1291 "group-membership|type-7|link|intra-prefix) self-originated", 1292 SHOW_STR 1293 IPV6_STR 1294 OSPF6_STR 1295 "Display Link state database\n" 1296 "Display Router LSAs\n" 1297 "Display Network LSAs\n" 1298 "Display Inter-Area-Prefix LSAs\n" 1299 "Display Inter-Area-Router LSAs\n" 1300 "Display As-External LSAs\n" 1301 "Display Group-Membership LSAs\n" 1302 "Display Type-7 LSAs\n" 1303 "Display Link LSAs\n" 1304 "Display Intra-Area-Prefix LSAs\n" 1305 "Display Self-originated LSAs\n" 1306 ) 1307{ 1308 int level; 1309 struct listnode *i, *j; 1310 struct ospf6 *o = ospf6; 1311 struct ospf6_area *oa; 1312 struct ospf6_interface *oi; 1313 u_int16_t type = 0; 1314 u_int32_t adv_router = 0; 1315 1316 OSPF6_CMD_CHECK_RUNNING (); 1317 1318 type = parse_type_spec (argc, argv); 1319 argc--; 1320 argv++; 1321 level = parse_show_level (argc, argv); 1322 1323 adv_router = o->router_id; 1324 1325 switch (OSPF6_LSA_SCOPE (type)) 1326 { 1327 case OSPF6_SCOPE_AREA: 1328 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1329 { 1330 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 1331 ospf6_lsdb_show (vty, level, &type, NULL, &adv_router, oa->lsdb); 1332 } 1333 break; 1334 1335 case OSPF6_SCOPE_LINKLOCAL: 1336 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1337 { 1338 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 1339 { 1340 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 1341 oi->interface->name, oa->name, VNL, VNL); 1342 ospf6_lsdb_show (vty, level, &type, NULL, &adv_router, oi->lsdb); 1343 } 1344 } 1345 break; 1346 1347 case OSPF6_SCOPE_AS: 1348 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 1349 ospf6_lsdb_show (vty, level, &type, NULL, &adv_router, o->lsdb); 1350 break; 1351 1352 default: 1353 assert (0); 1354 break; 1355 } 1356 1357 vty_out (vty, "%s", VNL); 1358 return CMD_SUCCESS; 1359} 1360 1361ALIAS (show_ipv6_ospf6_database_type_self_originated, 1362 show_ipv6_ospf6_database_type_self_originated_detail_cmd, 1363 "show ipv6 ospf6 database " 1364 "(router|network|inter-prefix|inter-router|as-external|" 1365 "group-membership|type-7|link|intra-prefix) self-originated " 1366 "(detail|dump|internal)", 1367 SHOW_STR 1368 IPV6_STR 1369 OSPF6_STR 1370 "Display Link state database\n" 1371 "Display Router LSAs\n" 1372 "Display Network LSAs\n" 1373 "Display Inter-Area-Prefix LSAs\n" 1374 "Display Inter-Area-Router LSAs\n" 1375 "Display As-External LSAs\n" 1376 "Display Group-Membership LSAs\n" 1377 "Display Type-7 LSAs\n" 1378 "Display Link LSAs\n" 1379 "Display Intra-Area-Prefix LSAs\n" 1380 "Display Self-originated LSAs\n" 1381 "Display details of LSAs\n" 1382 "Dump LSAs\n" 1383 "Display LSA's internal information\n" 1384 ) 1385 1386DEFUN (show_ipv6_ospf6_database_type_self_originated_linkstate_id, 1387 show_ipv6_ospf6_database_type_self_originated_linkstate_id_cmd, 1388 "show ipv6 ospf6 database " 1389 "(router|network|inter-prefix|inter-router|as-external|" 1390 "group-membership|type-7|link|intra-prefix) self-originated " 1391 "linkstate-id A.B.C.D", 1392 SHOW_STR 1393 IPV6_STR 1394 OSPF6_STR 1395 "Display Link state database\n" 1396 "Display Router LSAs\n" 1397 "Display Network LSAs\n" 1398 "Display Inter-Area-Prefix LSAs\n" 1399 "Display Inter-Area-Router LSAs\n" 1400 "Display As-External LSAs\n" 1401 "Display Group-Membership LSAs\n" 1402 "Display Type-7 LSAs\n" 1403 "Display Link LSAs\n" 1404 "Display Intra-Area-Prefix LSAs\n" 1405 "Display Self-originated LSAs\n" 1406 "Search by Link state ID\n" 1407 "Specify Link state ID as IPv4 address notation\n" 1408 ) 1409{ 1410 int level; 1411 struct listnode *i, *j; 1412 struct ospf6 *o = ospf6; 1413 struct ospf6_area *oa; 1414 struct ospf6_interface *oi; 1415 u_int16_t type = 0; 1416 u_int32_t adv_router = 0; 1417 u_int32_t id = 0; 1418 1419 OSPF6_CMD_CHECK_RUNNING (); 1420 1421 type = parse_type_spec (argc, argv); 1422 argc--; 1423 argv++; 1424 1425 if ((inet_pton (AF_INET, argv[0], &id)) != 1) 1426 { 1427 vty_out (vty, "Link State ID is not parsable: %s%s", 1428 argv[0], VNL); 1429 return CMD_SUCCESS; 1430 } 1431 1432 argc--; 1433 argv++; 1434 level = parse_show_level (argc, argv); 1435 1436 adv_router = o->router_id; 1437 1438 switch (OSPF6_LSA_SCOPE (type)) 1439 { 1440 case OSPF6_SCOPE_AREA: 1441 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1442 { 1443 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 1444 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oa->lsdb); 1445 } 1446 break; 1447 1448 case OSPF6_SCOPE_LINKLOCAL: 1449 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1450 { 1451 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 1452 { 1453 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 1454 oi->interface->name, oa->name, VNL, VNL); 1455 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oi->lsdb); 1456 } 1457 } 1458 break; 1459 1460 case OSPF6_SCOPE_AS: 1461 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 1462 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, o->lsdb); 1463 break; 1464 1465 default: 1466 assert (0); 1467 break; 1468 } 1469 1470 vty_out (vty, "%s", VNL); 1471 return CMD_SUCCESS; 1472} 1473 1474ALIAS (show_ipv6_ospf6_database_type_self_originated_linkstate_id, 1475 show_ipv6_ospf6_database_type_self_originated_linkstate_id_detail_cmd, 1476 "show ipv6 ospf6 database " 1477 "(router|network|inter-prefix|inter-router|as-external|" 1478 "group-membership|type-7|link|intra-prefix) self-originated " 1479 "linkstate-id A.B.C.D (detail|dump|internal)", 1480 SHOW_STR 1481 IPV6_STR 1482 OSPF6_STR 1483 "Display Link state database\n" 1484 "Display Router LSAs\n" 1485 "Display Network LSAs\n" 1486 "Display Inter-Area-Prefix LSAs\n" 1487 "Display Inter-Area-Router LSAs\n" 1488 "Display As-External LSAs\n" 1489 "Display Group-Membership LSAs\n" 1490 "Display Type-7 LSAs\n" 1491 "Display Link LSAs\n" 1492 "Display Intra-Area-Prefix LSAs\n" 1493 "Display Self-originated LSAs\n" 1494 "Search by Link state ID\n" 1495 "Specify Link state ID as IPv4 address notation\n" 1496 "Display details of LSAs\n" 1497 "Dump LSAs\n" 1498 "Display LSA's internal information\n" 1499 ) 1500 1501DEFUN (show_ipv6_ospf6_database_type_id_self_originated, 1502 show_ipv6_ospf6_database_type_id_self_originated_cmd, 1503 "show ipv6 ospf6 database " 1504 "(router|network|inter-prefix|inter-router|as-external|" 1505 "group-membership|type-7|link|intra-prefix) A.B.C.D self-originated", 1506 SHOW_STR 1507 IPV6_STR 1508 OSPF6_STR 1509 "Display Link state database\n" 1510 "Display Router LSAs\n" 1511 "Display Network LSAs\n" 1512 "Display Inter-Area-Prefix LSAs\n" 1513 "Display Inter-Area-Router LSAs\n" 1514 "Display As-External LSAs\n" 1515 "Display Group-Membership LSAs\n" 1516 "Display Type-7 LSAs\n" 1517 "Display Link LSAs\n" 1518 "Display Intra-Area-Prefix LSAs\n" 1519 "Specify Link state ID as IPv4 address notation\n" 1520 "Display Self-originated LSAs\n" 1521 ) 1522{ 1523 int level; 1524 struct listnode *i, *j; 1525 struct ospf6 *o = ospf6; 1526 struct ospf6_area *oa; 1527 struct ospf6_interface *oi; 1528 u_int16_t type = 0; 1529 u_int32_t adv_router = 0; 1530 u_int32_t id = 0; 1531 1532 OSPF6_CMD_CHECK_RUNNING (); 1533 1534 type = parse_type_spec (argc, argv); 1535 argc--; 1536 argv++; 1537 1538 if ((inet_pton (AF_INET, argv[0], &id)) != 1) 1539 { 1540 vty_out (vty, "Link State ID is not parsable: %s%s", 1541 argv[0], VNL); 1542 return CMD_SUCCESS; 1543 } 1544 1545 argc--; 1546 argv++; 1547 level = parse_show_level (argc, argv); 1548 1549 adv_router = o->router_id; 1550 1551 switch (OSPF6_LSA_SCOPE (type)) 1552 { 1553 case OSPF6_SCOPE_AREA: 1554 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1555 { 1556 vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); 1557 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oa->lsdb); 1558 } 1559 break; 1560 1561 case OSPF6_SCOPE_LINKLOCAL: 1562 for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa)) 1563 { 1564 for (ALL_LIST_ELEMENTS_RO (oa->if_list, j, oi)) 1565 { 1566 vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, 1567 oi->interface->name, oa->name, VNL, VNL); 1568 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oi->lsdb); 1569 } 1570 } 1571 break; 1572 1573 case OSPF6_SCOPE_AS: 1574 vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); 1575 ospf6_lsdb_show (vty, level, &type, &id, &adv_router, o->lsdb); 1576 break; 1577 1578 default: 1579 assert (0); 1580 break; 1581 } 1582 1583 vty_out (vty, "%s", VNL); 1584 return CMD_SUCCESS; 1585} 1586 1587ALIAS (show_ipv6_ospf6_database_type_id_self_originated, 1588 show_ipv6_ospf6_database_type_id_self_originated_detail_cmd, 1589 "show ipv6 ospf6 database " 1590 "(router|network|inter-prefix|inter-router|as-external|" 1591 "group-membership|type-7|link|intra-prefix) A.B.C.D self-originated " 1592 "(detail|dump|internal)", 1593 SHOW_STR 1594 IPV6_STR 1595 OSPF6_STR 1596 "Display Link state database\n" 1597 "Display Router LSAs\n" 1598 "Display Network LSAs\n" 1599 "Display Inter-Area-Prefix LSAs\n" 1600 "Display Inter-Area-Router LSAs\n" 1601 "Display As-External LSAs\n" 1602 "Display Group-Membership LSAs\n" 1603 "Display Type-7 LSAs\n" 1604 "Display Link LSAs\n" 1605 "Display Intra-Area-Prefix LSAs\n" 1606 "Display Self-originated LSAs\n" 1607 "Search by Link state ID\n" 1608 "Specify Link state ID as IPv4 address notation\n" 1609 "Display details of LSAs\n" 1610 "Dump LSAs\n" 1611 "Display LSA's internal information\n" 1612 ) 1613 1614 1615DEFUN (show_ipv6_ospf6_border_routers, 1616 show_ipv6_ospf6_border_routers_cmd, 1617 "show ipv6 ospf6 border-routers", 1618 SHOW_STR 1619 IP6_STR 1620 OSPF6_STR 1621 "Display routing table for ABR and ASBR\n" 1622 ) 1623{ 1624 u_int32_t adv_router; 1625 void (*showfunc) (struct vty *, struct ospf6_route *); 1626 struct ospf6_route *ro; 1627 struct prefix prefix; 1628 1629 OSPF6_CMD_CHECK_RUNNING (); 1630 1631 if (argc && ! strcmp ("detail", argv[0])) 1632 { 1633 showfunc = ospf6_route_show_detail; 1634 argc--; 1635 argv++; 1636 } 1637 else 1638 showfunc = ospf6_brouter_show; 1639 1640 if (argc) 1641 { 1642 if ((inet_pton (AF_INET, argv[0], &adv_router)) != 1) 1643 { 1644 vty_out (vty, "Router ID is not parsable: %s%s", argv[0], VNL); 1645 return CMD_SUCCESS; 1646 } 1647 1648 ospf6_linkstate_prefix (adv_router, 0, &prefix); 1649 ro = ospf6_route_lookup (&prefix, ospf6->brouter_table); 1650 if (!ro) 1651 { 1652 vty_out (vty, "No Route found for Router ID: %s%s", argv[0], VNL); 1653 return CMD_SUCCESS; 1654 } 1655 1656 ospf6_route_show_detail (vty, ro); 1657 return CMD_SUCCESS; 1658 } 1659 1660 if (showfunc == ospf6_brouter_show) 1661 ospf6_brouter_show_header (vty); 1662 1663 for (ro = ospf6_route_head (ospf6->brouter_table); ro; 1664 ro = ospf6_route_next (ro)) 1665 (*showfunc) (vty, ro); 1666 1667 return CMD_SUCCESS; 1668} 1669 1670ALIAS (show_ipv6_ospf6_border_routers, 1671 show_ipv6_ospf6_border_routers_detail_cmd, 1672 "show ipv6 ospf6 border-routers (A.B.C.D|detail)", 1673 SHOW_STR 1674 IP6_STR 1675 OSPF6_STR 1676 "Display routing table for ABR and ASBR\n" 1677 "Specify Router-ID\n" 1678 "Display Detail\n" 1679 ) 1680 1681DEFUN (show_ipv6_ospf6_linkstate, 1682 show_ipv6_ospf6_linkstate_cmd, 1683 "show ipv6 ospf6 linkstate", 1684 SHOW_STR 1685 IP6_STR 1686 OSPF6_STR 1687 "Display linkstate routing table\n" 1688 ) 1689{ 1690 struct listnode *node; 1691 struct ospf6_area *oa; 1692 1693 for (ALL_LIST_ELEMENTS_RO (ospf6->area_list, node, oa)) 1694 { 1695 vty_out (vty, "%s SPF Result in Area %s%s%s", 1696 VNL, oa->name, VNL, VNL); 1697 ospf6_linkstate_table_show (vty, argc, argv, oa->spf_table); 1698 } 1699 1700 vty_out (vty, "%s", VNL); 1701 return CMD_SUCCESS; 1702} 1703 1704ALIAS (show_ipv6_ospf6_linkstate, 1705 show_ipv6_ospf6_linkstate_router_cmd, 1706 "show ipv6 ospf6 linkstate router A.B.C.D", 1707 SHOW_STR 1708 IP6_STR 1709 OSPF6_STR 1710 "Display linkstate routing table\n" 1711 "Display Router Entry\n" 1712 "Specify Router ID as IPv4 address notation\n" 1713 ) 1714 1715ALIAS (show_ipv6_ospf6_linkstate, 1716 show_ipv6_ospf6_linkstate_network_cmd, 1717 "show ipv6 ospf6 linkstate network A.B.C.D A.B.C.D", 1718 SHOW_STR 1719 IP6_STR 1720 OSPF6_STR 1721 "Display linkstate routing table\n" 1722 "Display Network Entry\n" 1723 "Specify Router ID as IPv4 address notation\n" 1724 "Specify Link state ID as IPv4 address notation\n" 1725 ) 1726 1727DEFUN (show_ipv6_ospf6_linkstate_detail, 1728 show_ipv6_ospf6_linkstate_detail_cmd, 1729 "show ipv6 ospf6 linkstate detail", 1730 SHOW_STR 1731 IP6_STR 1732 OSPF6_STR 1733 "Display linkstate routing table\n" 1734 ) 1735{ 1736 const char *sargv[CMD_ARGC_MAX]; 1737 int i, sargc; 1738 struct listnode *node; 1739 struct ospf6_area *oa; 1740 1741 /* copy argv to sargv and then append "detail" */ 1742 for (i = 0; i < argc; i++) 1743 sargv[i] = argv[i]; 1744 sargc = argc; 1745 sargv[sargc++] = "detail"; 1746 sargv[sargc] = NULL; 1747 1748 for (ALL_LIST_ELEMENTS_RO (ospf6->area_list, node, oa)) 1749 { 1750 vty_out (vty, "%s SPF Result in Area %s%s%s", 1751 VNL, oa->name, VNL, VNL); 1752 ospf6_linkstate_table_show (vty, sargc, sargv, oa->spf_table); 1753 } 1754 1755 vty_out (vty, "%s", VNL); 1756 return CMD_SUCCESS; 1757} 1758 1759/* Install ospf related commands. */ 1760void 1761ospf6_init (void) 1762{ 1763 ospf6_top_init (); 1764 ospf6_area_init (); 1765 ospf6_interface_init (); 1766 ospf6_neighbor_init (); 1767 ospf6_zebra_init (); 1768 1769 ospf6_lsa_init (); 1770 ospf6_spf_init (); 1771 ospf6_intra_init (); 1772 ospf6_asbr_init (); 1773 ospf6_abr_init (); 1774 1775#ifdef HAVE_SNMP 1776 ospf6_snmp_init (master); 1777#endif /*HAVE_SNMP*/ 1778 1779 install_node (&debug_node, config_write_ospf6_debug); 1780 1781 install_element_ospf6_debug_message (); 1782 install_element_ospf6_debug_lsa (); 1783 install_element_ospf6_debug_interface (); 1784 install_element_ospf6_debug_neighbor (); 1785 install_element_ospf6_debug_zebra (); 1786 install_element_ospf6_debug_spf (); 1787 install_element_ospf6_debug_route (); 1788 install_element_ospf6_debug_brouter (); 1789 install_element_ospf6_debug_asbr (); 1790 install_element_ospf6_debug_abr (); 1791 install_element_ospf6_debug_flood (); 1792 1793 install_element (VIEW_NODE, &show_version_ospf6_cmd); 1794 install_element (ENABLE_NODE, &show_version_ospf6_cmd); 1795 1796 install_element (VIEW_NODE, &show_ipv6_ospf6_border_routers_cmd); 1797 install_element (VIEW_NODE, &show_ipv6_ospf6_border_routers_detail_cmd); 1798 install_element (ENABLE_NODE, &show_ipv6_ospf6_border_routers_cmd); 1799 install_element (ENABLE_NODE, &show_ipv6_ospf6_border_routers_detail_cmd); 1800 1801 install_element (VIEW_NODE, &show_ipv6_ospf6_linkstate_cmd); 1802 install_element (VIEW_NODE, &show_ipv6_ospf6_linkstate_router_cmd); 1803 install_element (VIEW_NODE, &show_ipv6_ospf6_linkstate_network_cmd); 1804 install_element (VIEW_NODE, &show_ipv6_ospf6_linkstate_detail_cmd); 1805 install_element (ENABLE_NODE, &show_ipv6_ospf6_linkstate_cmd); 1806 install_element (ENABLE_NODE, &show_ipv6_ospf6_linkstate_router_cmd); 1807 install_element (ENABLE_NODE, &show_ipv6_ospf6_linkstate_network_cmd); 1808 install_element (ENABLE_NODE, &show_ipv6_ospf6_linkstate_detail_cmd); 1809 1810#define INSTALL(n,c) \ 1811 install_element (n ## _NODE, &show_ipv6_ospf6_ ## c) 1812 1813 INSTALL (VIEW, database_cmd); 1814 INSTALL (VIEW, database_detail_cmd); 1815 INSTALL (VIEW, database_type_cmd); 1816 INSTALL (VIEW, database_type_detail_cmd); 1817 INSTALL (VIEW, database_id_cmd); 1818 INSTALL (VIEW, database_id_detail_cmd); 1819 INSTALL (VIEW, database_linkstate_id_cmd); 1820 INSTALL (VIEW, database_linkstate_id_detail_cmd); 1821 INSTALL (VIEW, database_router_cmd); 1822 INSTALL (VIEW, database_router_detail_cmd); 1823 INSTALL (VIEW, database_adv_router_cmd); 1824 INSTALL (VIEW, database_adv_router_detail_cmd); 1825 INSTALL (VIEW, database_type_id_cmd); 1826 INSTALL (VIEW, database_type_id_detail_cmd); 1827 INSTALL (VIEW, database_type_linkstate_id_cmd); 1828 INSTALL (VIEW, database_type_linkstate_id_detail_cmd); 1829 INSTALL (VIEW, database_type_router_cmd); 1830 INSTALL (VIEW, database_type_router_detail_cmd); 1831 INSTALL (VIEW, database_type_adv_router_cmd); 1832 INSTALL (VIEW, database_type_adv_router_detail_cmd); 1833 INSTALL (VIEW, database_adv_router_linkstate_id_cmd); 1834 INSTALL (VIEW, database_adv_router_linkstate_id_detail_cmd); 1835 INSTALL (VIEW, database_id_router_cmd); 1836 INSTALL (VIEW, database_id_router_detail_cmd); 1837 INSTALL (VIEW, database_type_id_router_cmd); 1838 INSTALL (VIEW, database_type_id_router_detail_cmd); 1839 INSTALL (VIEW, database_type_adv_router_linkstate_id_cmd); 1840 INSTALL (VIEW, database_type_adv_router_linkstate_id_detail_cmd); 1841 INSTALL (VIEW, database_self_originated_cmd); 1842 INSTALL (VIEW, database_self_originated_detail_cmd); 1843 INSTALL (VIEW, database_type_self_originated_cmd); 1844 INSTALL (VIEW, database_type_self_originated_detail_cmd); 1845 INSTALL (VIEW, database_type_id_self_originated_cmd); 1846 INSTALL (VIEW, database_type_id_self_originated_detail_cmd); 1847 INSTALL (VIEW, database_type_self_originated_linkstate_id_cmd); 1848 INSTALL (VIEW, database_type_self_originated_linkstate_id_detail_cmd); 1849 1850 INSTALL (ENABLE, database_cmd); 1851 INSTALL (ENABLE, database_detail_cmd); 1852 INSTALL (ENABLE, database_type_cmd); 1853 INSTALL (ENABLE, database_type_detail_cmd); 1854 INSTALL (ENABLE, database_id_cmd); 1855 INSTALL (ENABLE, database_id_detail_cmd); 1856 INSTALL (ENABLE, database_linkstate_id_cmd); 1857 INSTALL (ENABLE, database_linkstate_id_detail_cmd); 1858 INSTALL (ENABLE, database_router_cmd); 1859 INSTALL (ENABLE, database_router_detail_cmd); 1860 INSTALL (ENABLE, database_adv_router_cmd); 1861 INSTALL (ENABLE, database_adv_router_detail_cmd); 1862 INSTALL (ENABLE, database_type_id_cmd); 1863 INSTALL (ENABLE, database_type_id_detail_cmd); 1864 INSTALL (ENABLE, database_type_linkstate_id_cmd); 1865 INSTALL (ENABLE, database_type_linkstate_id_detail_cmd); 1866 INSTALL (ENABLE, database_type_router_cmd); 1867 INSTALL (ENABLE, database_type_router_detail_cmd); 1868 INSTALL (ENABLE, database_type_adv_router_cmd); 1869 INSTALL (ENABLE, database_type_adv_router_detail_cmd); 1870 INSTALL (ENABLE, database_adv_router_linkstate_id_cmd); 1871 INSTALL (ENABLE, database_adv_router_linkstate_id_detail_cmd); 1872 INSTALL (ENABLE, database_id_router_cmd); 1873 INSTALL (ENABLE, database_id_router_detail_cmd); 1874 INSTALL (ENABLE, database_type_id_router_cmd); 1875 INSTALL (ENABLE, database_type_id_router_detail_cmd); 1876 INSTALL (ENABLE, database_type_adv_router_linkstate_id_cmd); 1877 INSTALL (ENABLE, database_type_adv_router_linkstate_id_detail_cmd); 1878 INSTALL (ENABLE, database_self_originated_cmd); 1879 INSTALL (ENABLE, database_self_originated_detail_cmd); 1880 INSTALL (ENABLE, database_type_self_originated_cmd); 1881 INSTALL (ENABLE, database_type_self_originated_detail_cmd); 1882 INSTALL (ENABLE, database_type_id_self_originated_cmd); 1883 INSTALL (ENABLE, database_type_id_self_originated_detail_cmd); 1884 INSTALL (ENABLE, database_type_self_originated_linkstate_id_cmd); 1885 INSTALL (ENABLE, database_type_self_originated_linkstate_id_detail_cmd); 1886 1887 /* Make ospf protocol socket. */ 1888 ospf6_serv_sock (); 1889 thread_add_read (master, ospf6_receive, NULL, ospf6_sock); 1890} 1891 1892void 1893ospf6_clean (void) 1894{ 1895 if (ospf6->route_table) 1896 ospf6_route_remove_all (ospf6->route_table); 1897 if (ospf6->brouter_table) 1898 ospf6_route_remove_all (ospf6->brouter_table); 1899} 1900