2 * Copyright (C) 2003 Yasuhiro Ohara
4 * This file is part of GNU Zebra.
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
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.
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.
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"
46 #include "ospf6_bfd.h"
49 #include "ospf6_snmp.h"
52 char ospf6_daemon_version
[] = OSPF6_DAEMON_VERSION
;
55 route_prev (struct route_node
*node
)
57 struct route_node
*end
;
58 struct route_node
*prev
= NULL
;
63 route_lock_node (node
);
67 node
= route_next (node
);
70 route_unlock_node (node
);
74 route_unlock_node (end
);
76 route_lock_node (prev
);
82 /* show database functions */
83 DEFUN (show_version_ospf6
,
84 show_version_ospf6_cmd
,
87 "Displays ospf6d version\n"
90 vty_out (vty
, "Zebra OSPF6d Version: %s%s",
91 ospf6_daemon_version
, VNL
);
96 static struct cmd_node debug_node
=
104 config_write_ospf6_debug (struct vty
*vty
)
106 config_write_ospf6_debug_message (vty
);
107 config_write_ospf6_debug_lsa (vty
);
108 config_write_ospf6_debug_zebra (vty
);
109 config_write_ospf6_debug_interface (vty
);
110 config_write_ospf6_debug_neighbor (vty
);
111 config_write_ospf6_debug_spf (vty
);
112 config_write_ospf6_debug_route (vty
);
113 config_write_ospf6_debug_brouter (vty
);
114 config_write_ospf6_debug_asbr (vty
);
115 config_write_ospf6_debug_abr (vty
);
116 config_write_ospf6_debug_flood (vty
);
117 vty_out (vty
, "!%s", VNL
);
121 #define AREA_LSDB_TITLE_FORMAT \
122 "%s Area Scoped Link State Database (Area %s)%s%s"
123 #define IF_LSDB_TITLE_FORMAT \
124 "%s I/F Scoped Link State Database (I/F %s in Area %s)%s%s"
125 #define AS_LSDB_TITLE_FORMAT \
126 "%s AS Scoped Link State Database%s%s"
129 parse_show_level (int argc
, const char *argv
[])
134 if (! strncmp (argv
[0], "de", 2))
135 level
= OSPF6_LSDB_SHOW_LEVEL_DETAIL
;
136 else if (! strncmp (argv
[0], "du", 2))
137 level
= OSPF6_LSDB_SHOW_LEVEL_DUMP
;
138 else if (! strncmp (argv
[0], "in", 2))
139 level
= OSPF6_LSDB_SHOW_LEVEL_INTERNAL
;
142 level
= OSPF6_LSDB_SHOW_LEVEL_NORMAL
;
147 parse_type_spec (int argc
, const char *argv
[])
151 if (! strcmp (argv
[0], "router"))
152 type
= htons (OSPF6_LSTYPE_ROUTER
);
153 else if (! strcmp (argv
[0], "network"))
154 type
= htons (OSPF6_LSTYPE_NETWORK
);
155 else if (! strcmp (argv
[0], "as-external"))
156 type
= htons (OSPF6_LSTYPE_AS_EXTERNAL
);
157 else if (! strcmp (argv
[0], "intra-prefix"))
158 type
= htons (OSPF6_LSTYPE_INTRA_PREFIX
);
159 else if (! strcmp (argv
[0], "inter-router"))
160 type
= htons (OSPF6_LSTYPE_INTER_ROUTER
);
161 else if (! strcmp (argv
[0], "inter-prefix"))
162 type
= htons (OSPF6_LSTYPE_INTER_PREFIX
);
163 else if (! strcmp (argv
[0], "link"))
164 type
= htons (OSPF6_LSTYPE_LINK
);
168 DEFUN (show_ipv6_ospf6_database
,
169 show_ipv6_ospf6_database_cmd
,
170 "show ipv6 ospf6 database",
174 "Display Link state database\n"
178 struct listnode
*i
, *j
;
179 struct ospf6
*o
= ospf6
;
180 struct ospf6_area
*oa
;
181 struct ospf6_interface
*oi
;
183 OSPF6_CMD_CHECK_RUNNING ();
185 level
= parse_show_level (argc
, argv
);
187 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
189 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
190 ospf6_lsdb_show (vty
, level
, NULL
, NULL
, NULL
, oa
->lsdb
);
193 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
195 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
197 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
198 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
199 ospf6_lsdb_show (vty
, level
, NULL
, NULL
, NULL
, oi
->lsdb
);
203 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
204 ospf6_lsdb_show (vty
, level
, NULL
, NULL
, NULL
, o
->lsdb
);
206 vty_out (vty
, "%s", VNL
);
210 ALIAS (show_ipv6_ospf6_database
,
211 show_ipv6_ospf6_database_detail_cmd
,
212 "show ipv6 ospf6 database (detail|dump|internal)",
216 "Display Link state database\n"
217 "Display details of LSAs\n"
219 "Display LSA's internal information\n"
222 DEFUN (show_ipv6_ospf6_database_type
,
223 show_ipv6_ospf6_database_type_cmd
,
224 "show ipv6 ospf6 database "
225 "(router|network|inter-prefix|inter-router|as-external|"
226 "group-membership|type-7|link|intra-prefix)",
230 "Display Link state database\n"
231 "Display Router LSAs\n"
232 "Display Network LSAs\n"
233 "Display Inter-Area-Prefix LSAs\n"
234 "Display Inter-Area-Router LSAs\n"
235 "Display As-External LSAs\n"
236 "Display Group-Membership LSAs\n"
237 "Display Type-7 LSAs\n"
238 "Display Link LSAs\n"
239 "Display Intra-Area-Prefix LSAs\n"
243 struct listnode
*i
, *j
;
244 struct ospf6
*o
= ospf6
;
245 struct ospf6_area
*oa
;
246 struct ospf6_interface
*oi
;
249 OSPF6_CMD_CHECK_RUNNING ();
251 type
= parse_type_spec (argc
, argv
);
254 level
= parse_show_level (argc
, argv
);
256 switch (OSPF6_LSA_SCOPE (type
))
258 case OSPF6_SCOPE_AREA
:
259 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
261 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
262 ospf6_lsdb_show (vty
, level
, &type
, NULL
, NULL
, oa
->lsdb
);
266 case OSPF6_SCOPE_LINKLOCAL
:
267 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
269 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
271 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
272 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
273 ospf6_lsdb_show (vty
, level
, &type
, NULL
, NULL
, oi
->lsdb
);
279 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
280 ospf6_lsdb_show (vty
, level
, &type
, NULL
, NULL
, o
->lsdb
);
288 vty_out (vty
, "%s", VNL
);
292 ALIAS (show_ipv6_ospf6_database_type
,
293 show_ipv6_ospf6_database_type_detail_cmd
,
294 "show ipv6 ospf6 database "
295 "(router|network|inter-prefix|inter-router|as-external|"
296 "group-membership|type-7|link|intra-prefix) "
297 "(detail|dump|internal)",
301 "Display Link state database\n"
302 "Display Router LSAs\n"
303 "Display Network LSAs\n"
304 "Display Inter-Area-Prefix LSAs\n"
305 "Display Inter-Area-Router LSAs\n"
306 "Display As-External LSAs\n"
307 "Display Group-Membership LSAs\n"
308 "Display Type-7 LSAs\n"
309 "Display Link LSAs\n"
310 "Display Intra-Area-Prefix LSAs\n"
311 "Display details of LSAs\n"
313 "Display LSA's internal information\n"
316 DEFUN (show_ipv6_ospf6_database_id
,
317 show_ipv6_ospf6_database_id_cmd
,
318 "show ipv6 ospf6 database * A.B.C.D",
322 "Display Link state database\n"
323 "Any Link state Type\n"
324 "Specify Link state ID as IPv4 address notation\n"
328 struct listnode
*i
, *j
;
329 struct ospf6
*o
= ospf6
;
330 struct ospf6_area
*oa
;
331 struct ospf6_interface
*oi
;
334 OSPF6_CMD_CHECK_RUNNING ();
336 if ((inet_pton (AF_INET
, argv
[0], &id
)) != 1)
338 vty_out (vty
, "Link State ID is not parsable: %s%s",
345 level
= parse_show_level (argc
, argv
);
347 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
349 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
350 ospf6_lsdb_show (vty
, level
, NULL
, &id
, NULL
, oa
->lsdb
);
353 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
355 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
357 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
358 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
359 ospf6_lsdb_show (vty
, level
, NULL
, &id
, NULL
, oi
->lsdb
);
363 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
364 ospf6_lsdb_show (vty
, level
, NULL
, &id
, NULL
, o
->lsdb
);
366 vty_out (vty
, "%s", VNL
);
370 ALIAS (show_ipv6_ospf6_database_id
,
371 show_ipv6_ospf6_database_id_detail_cmd
,
372 "show ipv6 ospf6 database * A.B.C.D "
373 "(detail|dump|internal)",
377 "Display Link state database\n"
378 "Any Link state Type\n"
379 "Specify Link state ID as IPv4 address notation\n"
380 "Display details of LSAs\n"
382 "Display LSA's internal information\n"
385 ALIAS (show_ipv6_ospf6_database_id
,
386 show_ipv6_ospf6_database_linkstate_id_cmd
,
387 "show ipv6 ospf6 database linkstate-id A.B.C.D",
391 "Display Link state database\n"
392 "Search by Link state ID\n"
393 "Specify Link state ID as IPv4 address notation\n"
396 ALIAS (show_ipv6_ospf6_database_id
,
397 show_ipv6_ospf6_database_linkstate_id_detail_cmd
,
398 "show ipv6 ospf6 database linkstate-id A.B.C.D "
399 "(detail|dump|internal)",
403 "Display Link state database\n"
404 "Search by Link state ID\n"
405 "Specify Link state ID as IPv4 address notation\n"
406 "Display details of LSAs\n"
408 "Display LSA's internal information\n"
411 DEFUN (show_ipv6_ospf6_database_router
,
412 show_ipv6_ospf6_database_router_cmd
,
413 "show ipv6 ospf6 database * * A.B.C.D",
417 "Display Link state database\n"
418 "Any Link state Type\n"
419 "Any Link state ID\n"
420 "Specify Advertising Router as IPv4 address notation\n"
424 struct listnode
*i
, *j
;
425 struct ospf6
*o
= ospf6
;
426 struct ospf6_area
*oa
;
427 struct ospf6_interface
*oi
;
428 u_int32_t adv_router
= 0;
430 OSPF6_CMD_CHECK_RUNNING ();
432 if ((inet_pton (AF_INET
, argv
[0], &adv_router
)) != 1)
434 vty_out (vty
, "Advertising Router is not parsable: %s%s",
441 level
= parse_show_level (argc
, argv
);
443 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
445 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
446 ospf6_lsdb_show (vty
, level
, NULL
, NULL
, &adv_router
, oa
->lsdb
);
449 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
451 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
453 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
454 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
455 ospf6_lsdb_show (vty
, level
, NULL
, NULL
, &adv_router
, oi
->lsdb
);
459 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
460 ospf6_lsdb_show (vty
, level
, NULL
, NULL
, &adv_router
, o
->lsdb
);
462 vty_out (vty
, "%s", VNL
);
466 ALIAS (show_ipv6_ospf6_database_router
,
467 show_ipv6_ospf6_database_router_detail_cmd
,
468 "show ipv6 ospf6 database * * A.B.C.D "
469 "(detail|dump|internal)",
473 "Display Link state database\n"
474 "Any Link state Type\n"
475 "Any Link state ID\n"
476 "Specify Advertising Router as IPv4 address notation\n"
477 "Display details of LSAs\n"
479 "Display LSA's internal information\n"
482 ALIAS (show_ipv6_ospf6_database_router
,
483 show_ipv6_ospf6_database_adv_router_cmd
,
484 "show ipv6 ospf6 database adv-router A.B.C.D",
488 "Display Link state database\n"
489 "Search by Advertising Router\n"
490 "Specify Advertising Router as IPv4 address notation\n"
493 ALIAS (show_ipv6_ospf6_database_router
,
494 show_ipv6_ospf6_database_adv_router_detail_cmd
,
495 "show ipv6 ospf6 database adv-router A.B.C.D "
496 "(detail|dump|internal)",
500 "Display Link state database\n"
501 "Search by Advertising Router\n"
502 "Specify Advertising Router as IPv4 address notation\n"
503 "Display details of LSAs\n"
505 "Display LSA's internal information\n"
508 DEFUN (show_ipv6_ospf6_database_type_id
,
509 show_ipv6_ospf6_database_type_id_cmd
,
510 "show ipv6 ospf6 database "
511 "(router|network|inter-prefix|inter-router|as-external|"
512 "group-membership|type-7|link|intra-prefix) A.B.C.D",
516 "Display Link state database\n"
517 "Display Router LSAs\n"
518 "Display Network LSAs\n"
519 "Display Inter-Area-Prefix LSAs\n"
520 "Display Inter-Area-Router LSAs\n"
521 "Display As-External LSAs\n"
522 "Display Group-Membership LSAs\n"
523 "Display Type-7 LSAs\n"
524 "Display Link LSAs\n"
525 "Display Intra-Area-Prefix LSAs\n"
526 "Specify Link state ID as IPv4 address notation\n"
530 struct listnode
*i
, *j
;
531 struct ospf6
*o
= ospf6
;
532 struct ospf6_area
*oa
;
533 struct ospf6_interface
*oi
;
537 OSPF6_CMD_CHECK_RUNNING ();
539 type
= parse_type_spec (argc
, argv
);
543 if ((inet_pton (AF_INET
, argv
[0], &id
)) != 1)
545 vty_out (vty
, "Link state ID is not parsable: %s%s",
552 level
= parse_show_level (argc
, argv
);
554 switch (OSPF6_LSA_SCOPE (type
))
556 case OSPF6_SCOPE_AREA
:
557 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
559 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
560 ospf6_lsdb_show (vty
, level
, &type
, &id
, NULL
, oa
->lsdb
);
564 case OSPF6_SCOPE_LINKLOCAL
:
565 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
567 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
569 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
570 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
571 ospf6_lsdb_show (vty
, level
, &type
, &id
, NULL
, oi
->lsdb
);
577 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
578 ospf6_lsdb_show (vty
, level
, &type
, &id
, NULL
, o
->lsdb
);
586 vty_out (vty
, "%s", VNL
);
590 ALIAS (show_ipv6_ospf6_database_type_id
,
591 show_ipv6_ospf6_database_type_id_detail_cmd
,
592 "show ipv6 ospf6 database "
593 "(router|network|inter-prefix|inter-router|as-external|"
594 "group-membership|type-7|link|intra-prefix) A.B.C.D "
595 "(detail|dump|internal)",
599 "Display Link state database\n"
600 "Display Router LSAs\n"
601 "Display Network LSAs\n"
602 "Display Inter-Area-Prefix LSAs\n"
603 "Display Inter-Area-Router LSAs\n"
604 "Display As-External LSAs\n"
605 "Display Group-Membership LSAs\n"
606 "Display Type-7 LSAs\n"
607 "Display Link LSAs\n"
608 "Display Intra-Area-Prefix LSAs\n"
609 "Specify Link state ID as IPv4 address notation\n"
610 "Display details of LSAs\n"
612 "Display LSA's internal information\n"
615 ALIAS (show_ipv6_ospf6_database_type_id
,
616 show_ipv6_ospf6_database_type_linkstate_id_cmd
,
617 "show ipv6 ospf6 database "
618 "(router|network|inter-prefix|inter-router|as-external|"
619 "group-membership|type-7|link|intra-prefix) linkstate-id A.B.C.D",
623 "Display Link state database\n"
624 "Display Router LSAs\n"
625 "Display Network LSAs\n"
626 "Display Inter-Area-Prefix LSAs\n"
627 "Display Inter-Area-Router LSAs\n"
628 "Display As-External LSAs\n"
629 "Display Group-Membership LSAs\n"
630 "Display Type-7 LSAs\n"
631 "Display Link LSAs\n"
632 "Display Intra-Area-Prefix LSAs\n"
633 "Search by Link state ID\n"
634 "Specify Link state ID as IPv4 address notation\n"
637 ALIAS (show_ipv6_ospf6_database_type_id
,
638 show_ipv6_ospf6_database_type_linkstate_id_detail_cmd
,
639 "show ipv6 ospf6 database "
640 "(router|network|inter-prefix|inter-router|as-external|"
641 "group-membership|type-7|link|intra-prefix) linkstate-id A.B.C.D "
642 "(detail|dump|internal)",
646 "Display Link state database\n"
647 "Display Router LSAs\n"
648 "Display Network LSAs\n"
649 "Display Inter-Area-Prefix LSAs\n"
650 "Display Inter-Area-Router LSAs\n"
651 "Display As-External LSAs\n"
652 "Display Group-Membership LSAs\n"
653 "Display Type-7 LSAs\n"
654 "Display Link LSAs\n"
655 "Display Intra-Area-Prefix LSAs\n"
656 "Search by Link state ID\n"
657 "Specify Link state ID as IPv4 address notation\n"
658 "Display details of LSAs\n"
660 "Display LSA's internal information\n"
663 DEFUN (show_ipv6_ospf6_database_type_router
,
664 show_ipv6_ospf6_database_type_router_cmd
,
665 "show ipv6 ospf6 database "
666 "(router|network|inter-prefix|inter-router|as-external|"
667 "group-membership|type-7|link|intra-prefix) * A.B.C.D",
671 "Display Link state database\n"
672 "Display Router LSAs\n"
673 "Display Network LSAs\n"
674 "Display Inter-Area-Prefix LSAs\n"
675 "Display Inter-Area-Router LSAs\n"
676 "Display As-External LSAs\n"
677 "Display Group-Membership LSAs\n"
678 "Display Type-7 LSAs\n"
679 "Display Link LSAs\n"
680 "Display Intra-Area-Prefix LSAs\n"
681 "Any Link state ID\n"
682 "Specify Advertising Router as IPv4 address notation\n"
686 struct listnode
*i
, *j
;
687 struct ospf6
*o
= ospf6
;
688 struct ospf6_area
*oa
;
689 struct ospf6_interface
*oi
;
691 u_int32_t adv_router
= 0;
693 OSPF6_CMD_CHECK_RUNNING ();
695 type
= parse_type_spec (argc
, argv
);
699 if ((inet_pton (AF_INET
, argv
[0], &adv_router
)) != 1)
701 vty_out (vty
, "Advertising Router is not parsable: %s%s",
708 level
= parse_show_level (argc
, argv
);
710 switch (OSPF6_LSA_SCOPE (type
))
712 case OSPF6_SCOPE_AREA
:
713 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
715 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
716 ospf6_lsdb_show (vty
, level
, &type
, NULL
, &adv_router
, oa
->lsdb
);
720 case OSPF6_SCOPE_LINKLOCAL
:
721 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
723 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
725 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
726 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
727 ospf6_lsdb_show (vty
, level
, &type
, NULL
, &adv_router
, oi
->lsdb
);
733 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
734 ospf6_lsdb_show (vty
, level
, &type
, NULL
, &adv_router
, o
->lsdb
);
742 vty_out (vty
, "%s", VNL
);
746 ALIAS (show_ipv6_ospf6_database_type_router
,
747 show_ipv6_ospf6_database_type_router_detail_cmd
,
748 "show ipv6 ospf6 database "
749 "(router|network|inter-prefix|inter-router|as-external|"
750 "group-membership|type-7|link|intra-prefix) * A.B.C.D "
751 "(detail|dump|internal)",
755 "Display Link state database\n"
756 "Display Router LSAs\n"
757 "Display Network LSAs\n"
758 "Display Inter-Area-Prefix LSAs\n"
759 "Display Inter-Area-Router LSAs\n"
760 "Display As-External LSAs\n"
761 "Display Group-Membership LSAs\n"
762 "Display Type-7 LSAs\n"
763 "Display Link LSAs\n"
764 "Display Intra-Area-Prefix LSAs\n"
765 "Any Link state ID\n"
766 "Specify Advertising Router as IPv4 address notation\n"
767 "Display details of LSAs\n"
769 "Display LSA's internal information\n"
772 ALIAS (show_ipv6_ospf6_database_type_router
,
773 show_ipv6_ospf6_database_type_adv_router_cmd
,
774 "show ipv6 ospf6 database "
775 "(router|network|inter-prefix|inter-router|as-external|"
776 "group-membership|type-7|link|intra-prefix) adv-router A.B.C.D",
780 "Display Link state database\n"
781 "Display Router LSAs\n"
782 "Display Network LSAs\n"
783 "Display Inter-Area-Prefix LSAs\n"
784 "Display Inter-Area-Router LSAs\n"
785 "Display As-External LSAs\n"
786 "Display Group-Membership LSAs\n"
787 "Display Type-7 LSAs\n"
788 "Display Link LSAs\n"
789 "Display Intra-Area-Prefix LSAs\n"
790 "Search by Advertising Router\n"
791 "Specify Advertising Router as IPv4 address notation\n"
794 ALIAS (show_ipv6_ospf6_database_type_router
,
795 show_ipv6_ospf6_database_type_adv_router_detail_cmd
,
796 "show ipv6 ospf6 database "
797 "(router|network|inter-prefix|inter-router|as-external|"
798 "group-membership|type-7|link|intra-prefix) adv-router A.B.C.D "
799 "(detail|dump|internal)",
803 "Display Link state database\n"
804 "Display Router LSAs\n"
805 "Display Network LSAs\n"
806 "Display Inter-Area-Prefix LSAs\n"
807 "Display Inter-Area-Router LSAs\n"
808 "Display As-External LSAs\n"
809 "Display Group-Membership LSAs\n"
810 "Display Type-7 LSAs\n"
811 "Display Link LSAs\n"
812 "Display Intra-Area-Prefix LSAs\n"
813 "Search by Advertising Router\n"
814 "Specify Advertising Router as IPv4 address notation\n"
815 "Display details of LSAs\n"
817 "Display LSA's internal information\n"
820 DEFUN (show_ipv6_ospf6_database_id_router
,
821 show_ipv6_ospf6_database_id_router_cmd
,
822 "show ipv6 ospf6 database * A.B.C.D A.B.C.D",
826 "Display Link state database\n"
827 "Any Link state Type\n"
828 "Specify Link state ID as IPv4 address notation\n"
829 "Specify Advertising Router as IPv4 address notation\n"
833 struct listnode
*i
, *j
;
834 struct ospf6
*o
= ospf6
;
835 struct ospf6_area
*oa
;
836 struct ospf6_interface
*oi
;
838 u_int32_t adv_router
= 0;
840 OSPF6_CMD_CHECK_RUNNING ();
842 if ((inet_pton (AF_INET
, argv
[0], &id
)) != 1)
844 vty_out (vty
, "Link state ID is not parsable: %s%s",
852 if ((inet_pton (AF_INET
, argv
[0], &adv_router
)) != 1)
854 vty_out (vty
, "Advertising Router is not parsable: %s%s",
861 level
= parse_show_level (argc
, argv
);
863 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
865 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
866 ospf6_lsdb_show (vty
, level
, NULL
, &id
, &adv_router
, oa
->lsdb
);
869 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
871 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
873 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
874 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
875 ospf6_lsdb_show (vty
, level
, NULL
, &id
, &adv_router
, oi
->lsdb
);
879 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
880 ospf6_lsdb_show (vty
, level
, NULL
, &id
, &adv_router
, o
->lsdb
);
882 vty_out (vty
, "%s", VNL
);
886 ALIAS (show_ipv6_ospf6_database_id_router
,
887 show_ipv6_ospf6_database_id_router_detail_cmd
,
888 "show ipv6 ospf6 database * A.B.C.D A.B.C.D "
889 "(detail|dump|internal)",
893 "Display Link state database\n"
894 "Any Link state Type\n"
895 "Specify Link state ID as IPv4 address notation\n"
896 "Specify Advertising Router as IPv4 address notation\n"
897 "Display details of LSAs\n"
899 "Display LSA's internal information\n"
902 DEFUN (show_ipv6_ospf6_database_adv_router_linkstate_id
,
903 show_ipv6_ospf6_database_adv_router_linkstate_id_cmd
,
904 "show ipv6 ospf6 database adv-router A.B.C.D linkstate-id A.B.C.D",
908 "Display Link state database\n"
909 "Search by Advertising Router\n"
910 "Specify Advertising Router as IPv4 address notation\n"
911 "Search by Link state ID\n"
912 "Specify Link state ID as IPv4 address notation\n"
916 struct listnode
*i
, *j
;
917 struct ospf6
*o
= ospf6
;
918 struct ospf6_area
*oa
;
919 struct ospf6_interface
*oi
;
921 u_int32_t adv_router
= 0;
923 OSPF6_CMD_CHECK_RUNNING ();
925 if ((inet_pton (AF_INET
, argv
[0], &adv_router
)) != 1)
927 vty_out (vty
, "Advertising Router is not parsable: %s%s",
935 if ((inet_pton (AF_INET
, argv
[0], &id
)) != 1)
937 vty_out (vty
, "Link state ID is not parsable: %s%s",
944 level
= parse_show_level (argc
, argv
);
946 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
948 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
949 ospf6_lsdb_show (vty
, level
, NULL
, &id
, &adv_router
, oa
->lsdb
);
952 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
954 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
956 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
957 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
958 ospf6_lsdb_show (vty
, level
, NULL
, &id
, &adv_router
, oi
->lsdb
);
962 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
963 ospf6_lsdb_show (vty
, level
, NULL
, &id
, &adv_router
, o
->lsdb
);
965 vty_out (vty
, "%s", VNL
);
969 ALIAS (show_ipv6_ospf6_database_adv_router_linkstate_id
,
970 show_ipv6_ospf6_database_adv_router_linkstate_id_detail_cmd
,
971 "show ipv6 ospf6 database adv-router A.B.C.D linkstate-id A.B.C.D "
972 "(detail|dump|internal)",
976 "Display Link state database\n"
977 "Search by Advertising Router\n"
978 "Specify Advertising Router as IPv4 address notation\n"
979 "Search by Link state ID\n"
980 "Specify Link state ID as IPv4 address notation\n"
981 "Display details of LSAs\n"
983 "Display LSA's internal information\n"
986 DEFUN (show_ipv6_ospf6_database_type_id_router
,
987 show_ipv6_ospf6_database_type_id_router_cmd
,
988 "show ipv6 ospf6 database "
989 "(router|network|inter-prefix|inter-router|as-external|"
990 "group-membership|type-7|link|intra-prefix) A.B.C.D A.B.C.D",
994 "Display Link state database\n"
995 "Display Router LSAs\n"
996 "Display Network LSAs\n"
997 "Display Inter-Area-Prefix LSAs\n"
998 "Display Inter-Area-Router LSAs\n"
999 "Display As-External LSAs\n"
1000 "Display Group-Membership LSAs\n"
1001 "Display Type-7 LSAs\n"
1002 "Display Link LSAs\n"
1003 "Display Intra-Area-Prefix LSAs\n"
1004 "Specify Link state ID as IPv4 address notation\n"
1005 "Specify Advertising Router as IPv4 address notation\n"
1009 struct listnode
*i
, *j
;
1010 struct ospf6
*o
= ospf6
;
1011 struct ospf6_area
*oa
;
1012 struct ospf6_interface
*oi
;
1015 u_int32_t adv_router
= 0;
1017 OSPF6_CMD_CHECK_RUNNING ();
1019 type
= parse_type_spec (argc
, argv
);
1023 if ((inet_pton (AF_INET
, argv
[0], &id
)) != 1)
1025 vty_out (vty
, "Link state ID is not parsable: %s%s",
1033 if ((inet_pton (AF_INET
, argv
[0], &adv_router
)) != 1)
1035 vty_out (vty
, "Advertising Router is not parsable: %s%s",
1042 level
= parse_show_level (argc
, argv
);
1044 switch (OSPF6_LSA_SCOPE (type
))
1046 case OSPF6_SCOPE_AREA
:
1047 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1049 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
1050 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, oa
->lsdb
);
1054 case OSPF6_SCOPE_LINKLOCAL
:
1055 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1057 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
1059 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
1060 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
1061 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, oi
->lsdb
);
1066 case OSPF6_SCOPE_AS
:
1067 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
1068 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, o
->lsdb
);
1076 vty_out (vty
, "%s", VNL
);
1080 ALIAS (show_ipv6_ospf6_database_type_id_router
,
1081 show_ipv6_ospf6_database_type_id_router_detail_cmd
,
1082 "show ipv6 ospf6 database "
1083 "(router|network|inter-prefix|inter-router|as-external|"
1084 "group-membership|type-7|link|intra-prefix) A.B.C.D A.B.C.D "
1089 "Display Link state database\n"
1090 "Display Router LSAs\n"
1091 "Display Network LSAs\n"
1092 "Display Inter-Area-Prefix LSAs\n"
1093 "Display Inter-Area-Router LSAs\n"
1094 "Display As-External LSAs\n"
1095 "Display Group-Membership LSAs\n"
1096 "Display Type-7 LSAs\n"
1097 "Display Link LSAs\n"
1098 "Display Intra-Area-Prefix LSAs\n"
1099 "Specify Link state ID as IPv4 address notation\n"
1100 "Specify Advertising Router as IPv4 address notation\n"
1102 "Display LSA's internal information\n"
1105 DEFUN (show_ipv6_ospf6_database_type_adv_router_linkstate_id
,
1106 show_ipv6_ospf6_database_type_adv_router_linkstate_id_cmd
,
1107 "show ipv6 ospf6 database "
1108 "(router|network|inter-prefix|inter-router|as-external|"
1109 "group-membership|type-7|link|intra-prefix) "
1110 "adv-router A.B.C.D linkstate-id A.B.C.D",
1114 "Display Link state database\n"
1115 "Display Router LSAs\n"
1116 "Display Network LSAs\n"
1117 "Display Inter-Area-Prefix LSAs\n"
1118 "Display Inter-Area-Router LSAs\n"
1119 "Display As-External LSAs\n"
1120 "Display Group-Membership LSAs\n"
1121 "Display Type-7 LSAs\n"
1122 "Display Link LSAs\n"
1123 "Display Intra-Area-Prefix LSAs\n"
1124 "Search by Advertising Router\n"
1125 "Specify Advertising Router as IPv4 address notation\n"
1126 "Search by Link state ID\n"
1127 "Specify Link state ID as IPv4 address notation\n"
1131 struct listnode
*i
, *j
;
1132 struct ospf6
*o
= ospf6
;
1133 struct ospf6_area
*oa
;
1134 struct ospf6_interface
*oi
;
1137 u_int32_t adv_router
= 0;
1139 OSPF6_CMD_CHECK_RUNNING ();
1141 type
= parse_type_spec (argc
, argv
);
1145 if ((inet_pton (AF_INET
, argv
[0], &adv_router
)) != 1)
1147 vty_out (vty
, "Advertising Router is not parsable: %s%s",
1155 if ((inet_pton (AF_INET
, argv
[0], &id
)) != 1)
1157 vty_out (vty
, "Link state ID is not parsable: %s%s",
1164 level
= parse_show_level (argc
, argv
);
1166 switch (OSPF6_LSA_SCOPE (type
))
1168 case OSPF6_SCOPE_AREA
:
1169 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1171 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
1172 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, oa
->lsdb
);
1176 case OSPF6_SCOPE_LINKLOCAL
:
1177 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1179 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
1181 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
1182 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
1183 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, oi
->lsdb
);
1188 case OSPF6_SCOPE_AS
:
1189 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
1190 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, o
->lsdb
);
1198 vty_out (vty
, "%s", VNL
);
1202 ALIAS (show_ipv6_ospf6_database_type_adv_router_linkstate_id
,
1203 show_ipv6_ospf6_database_type_adv_router_linkstate_id_detail_cmd
,
1204 "show ipv6 ospf6 database "
1205 "(router|network|inter-prefix|inter-router|as-external|"
1206 "group-membership|type-7|link|intra-prefix) "
1207 "adv-router A.B.C.D linkstate-id A.B.C.D "
1212 "Display Link state database\n"
1213 "Display Router LSAs\n"
1214 "Display Network LSAs\n"
1215 "Display Inter-Area-Prefix LSAs\n"
1216 "Display Inter-Area-Router LSAs\n"
1217 "Display As-External LSAs\n"
1218 "Display Group-Membership LSAs\n"
1219 "Display Type-7 LSAs\n"
1220 "Display Link LSAs\n"
1221 "Display Intra-Area-Prefix LSAs\n"
1222 "Search by Advertising Router\n"
1223 "Specify Advertising Router as IPv4 address notation\n"
1224 "Search by Link state ID\n"
1225 "Specify Link state ID as IPv4 address notation\n"
1227 "Display LSA's internal information\n"
1230 DEFUN (show_ipv6_ospf6_database_self_originated
,
1231 show_ipv6_ospf6_database_self_originated_cmd
,
1232 "show ipv6 ospf6 database self-originated",
1236 "Display Self-originated LSAs\n"
1240 struct listnode
*i
, *j
;
1241 struct ospf6
*o
= ospf6
;
1242 struct ospf6_area
*oa
;
1243 struct ospf6_interface
*oi
;
1244 u_int32_t adv_router
= 0;
1246 OSPF6_CMD_CHECK_RUNNING ();
1248 level
= parse_show_level (argc
, argv
);
1250 adv_router
= o
->router_id
;
1252 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1254 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
1255 ospf6_lsdb_show (vty
, level
, NULL
, NULL
, &adv_router
, oa
->lsdb
);
1258 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1260 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
1262 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
1263 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
1264 ospf6_lsdb_show (vty
, level
, NULL
, NULL
, &adv_router
, oi
->lsdb
);
1268 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
1269 ospf6_lsdb_show (vty
, level
, NULL
, NULL
, &adv_router
, o
->lsdb
);
1271 vty_out (vty
, "%s", VNL
);
1275 ALIAS (show_ipv6_ospf6_database_self_originated
,
1276 show_ipv6_ospf6_database_self_originated_detail_cmd
,
1277 "show ipv6 ospf6 database self-originated "
1278 "(detail|dump|internal)",
1282 "Display Self-originated LSAs\n"
1283 "Display details of LSAs\n"
1285 "Display LSA's internal information\n"
1288 DEFUN (show_ipv6_ospf6_database_type_self_originated
,
1289 show_ipv6_ospf6_database_type_self_originated_cmd
,
1290 "show ipv6 ospf6 database "
1291 "(router|network|inter-prefix|inter-router|as-external|"
1292 "group-membership|type-7|link|intra-prefix) self-originated",
1296 "Display Link state database\n"
1297 "Display Router LSAs\n"
1298 "Display Network LSAs\n"
1299 "Display Inter-Area-Prefix LSAs\n"
1300 "Display Inter-Area-Router LSAs\n"
1301 "Display As-External LSAs\n"
1302 "Display Group-Membership LSAs\n"
1303 "Display Type-7 LSAs\n"
1304 "Display Link LSAs\n"
1305 "Display Intra-Area-Prefix LSAs\n"
1306 "Display Self-originated LSAs\n"
1310 struct listnode
*i
, *j
;
1311 struct ospf6
*o
= ospf6
;
1312 struct ospf6_area
*oa
;
1313 struct ospf6_interface
*oi
;
1315 u_int32_t adv_router
= 0;
1317 OSPF6_CMD_CHECK_RUNNING ();
1319 type
= parse_type_spec (argc
, argv
);
1322 level
= parse_show_level (argc
, argv
);
1324 adv_router
= o
->router_id
;
1326 switch (OSPF6_LSA_SCOPE (type
))
1328 case OSPF6_SCOPE_AREA
:
1329 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1331 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
1332 ospf6_lsdb_show (vty
, level
, &type
, NULL
, &adv_router
, oa
->lsdb
);
1336 case OSPF6_SCOPE_LINKLOCAL
:
1337 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1339 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
1341 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
1342 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
1343 ospf6_lsdb_show (vty
, level
, &type
, NULL
, &adv_router
, oi
->lsdb
);
1348 case OSPF6_SCOPE_AS
:
1349 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
1350 ospf6_lsdb_show (vty
, level
, &type
, NULL
, &adv_router
, o
->lsdb
);
1358 vty_out (vty
, "%s", VNL
);
1362 ALIAS (show_ipv6_ospf6_database_type_self_originated
,
1363 show_ipv6_ospf6_database_type_self_originated_detail_cmd
,
1364 "show ipv6 ospf6 database "
1365 "(router|network|inter-prefix|inter-router|as-external|"
1366 "group-membership|type-7|link|intra-prefix) self-originated "
1367 "(detail|dump|internal)",
1371 "Display Link state database\n"
1372 "Display Router LSAs\n"
1373 "Display Network LSAs\n"
1374 "Display Inter-Area-Prefix LSAs\n"
1375 "Display Inter-Area-Router LSAs\n"
1376 "Display As-External LSAs\n"
1377 "Display Group-Membership LSAs\n"
1378 "Display Type-7 LSAs\n"
1379 "Display Link LSAs\n"
1380 "Display Intra-Area-Prefix LSAs\n"
1381 "Display Self-originated LSAs\n"
1382 "Display details of LSAs\n"
1384 "Display LSA's internal information\n"
1387 DEFUN (show_ipv6_ospf6_database_type_self_originated_linkstate_id
,
1388 show_ipv6_ospf6_database_type_self_originated_linkstate_id_cmd
,
1389 "show ipv6 ospf6 database "
1390 "(router|network|inter-prefix|inter-router|as-external|"
1391 "group-membership|type-7|link|intra-prefix) self-originated "
1392 "linkstate-id A.B.C.D",
1396 "Display Link state database\n"
1397 "Display Router LSAs\n"
1398 "Display Network LSAs\n"
1399 "Display Inter-Area-Prefix LSAs\n"
1400 "Display Inter-Area-Router LSAs\n"
1401 "Display As-External LSAs\n"
1402 "Display Group-Membership LSAs\n"
1403 "Display Type-7 LSAs\n"
1404 "Display Link LSAs\n"
1405 "Display Intra-Area-Prefix LSAs\n"
1406 "Display Self-originated LSAs\n"
1407 "Search by Link state ID\n"
1408 "Specify Link state ID as IPv4 address notation\n"
1412 struct listnode
*i
, *j
;
1413 struct ospf6
*o
= ospf6
;
1414 struct ospf6_area
*oa
;
1415 struct ospf6_interface
*oi
;
1417 u_int32_t adv_router
= 0;
1420 OSPF6_CMD_CHECK_RUNNING ();
1422 type
= parse_type_spec (argc
, argv
);
1426 if ((inet_pton (AF_INET
, argv
[0], &id
)) != 1)
1428 vty_out (vty
, "Link State ID is not parsable: %s%s",
1435 level
= parse_show_level (argc
, argv
);
1437 adv_router
= o
->router_id
;
1439 switch (OSPF6_LSA_SCOPE (type
))
1441 case OSPF6_SCOPE_AREA
:
1442 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1444 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
1445 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, oa
->lsdb
);
1449 case OSPF6_SCOPE_LINKLOCAL
:
1450 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1452 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
1454 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
1455 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
1456 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, oi
->lsdb
);
1461 case OSPF6_SCOPE_AS
:
1462 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
1463 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, o
->lsdb
);
1471 vty_out (vty
, "%s", VNL
);
1475 ALIAS (show_ipv6_ospf6_database_type_self_originated_linkstate_id
,
1476 show_ipv6_ospf6_database_type_self_originated_linkstate_id_detail_cmd
,
1477 "show ipv6 ospf6 database "
1478 "(router|network|inter-prefix|inter-router|as-external|"
1479 "group-membership|type-7|link|intra-prefix) self-originated "
1480 "linkstate-id A.B.C.D (detail|dump|internal)",
1484 "Display Link state database\n"
1485 "Display Router LSAs\n"
1486 "Display Network LSAs\n"
1487 "Display Inter-Area-Prefix LSAs\n"
1488 "Display Inter-Area-Router LSAs\n"
1489 "Display As-External LSAs\n"
1490 "Display Group-Membership LSAs\n"
1491 "Display Type-7 LSAs\n"
1492 "Display Link LSAs\n"
1493 "Display Intra-Area-Prefix LSAs\n"
1494 "Display Self-originated LSAs\n"
1495 "Search by Link state ID\n"
1496 "Specify Link state ID as IPv4 address notation\n"
1497 "Display details of LSAs\n"
1499 "Display LSA's internal information\n"
1502 DEFUN (show_ipv6_ospf6_database_type_id_self_originated
,
1503 show_ipv6_ospf6_database_type_id_self_originated_cmd
,
1504 "show ipv6 ospf6 database "
1505 "(router|network|inter-prefix|inter-router|as-external|"
1506 "group-membership|type-7|link|intra-prefix) A.B.C.D self-originated",
1510 "Display Link state database\n"
1511 "Display Router LSAs\n"
1512 "Display Network LSAs\n"
1513 "Display Inter-Area-Prefix LSAs\n"
1514 "Display Inter-Area-Router LSAs\n"
1515 "Display As-External LSAs\n"
1516 "Display Group-Membership LSAs\n"
1517 "Display Type-7 LSAs\n"
1518 "Display Link LSAs\n"
1519 "Display Intra-Area-Prefix LSAs\n"
1520 "Specify Link state ID as IPv4 address notation\n"
1521 "Display Self-originated LSAs\n"
1525 struct listnode
*i
, *j
;
1526 struct ospf6
*o
= ospf6
;
1527 struct ospf6_area
*oa
;
1528 struct ospf6_interface
*oi
;
1530 u_int32_t adv_router
= 0;
1533 OSPF6_CMD_CHECK_RUNNING ();
1535 type
= parse_type_spec (argc
, argv
);
1539 if ((inet_pton (AF_INET
, argv
[0], &id
)) != 1)
1541 vty_out (vty
, "Link State ID is not parsable: %s%s",
1548 level
= parse_show_level (argc
, argv
);
1550 adv_router
= o
->router_id
;
1552 switch (OSPF6_LSA_SCOPE (type
))
1554 case OSPF6_SCOPE_AREA
:
1555 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1557 vty_out (vty
, AREA_LSDB_TITLE_FORMAT
, VNL
, oa
->name
, VNL
, VNL
);
1558 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, oa
->lsdb
);
1562 case OSPF6_SCOPE_LINKLOCAL
:
1563 for (ALL_LIST_ELEMENTS_RO (o
->area_list
, i
, oa
))
1565 for (ALL_LIST_ELEMENTS_RO (oa
->if_list
, j
, oi
))
1567 vty_out (vty
, IF_LSDB_TITLE_FORMAT
, VNL
,
1568 oi
->interface
->name
, oa
->name
, VNL
, VNL
);
1569 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, oi
->lsdb
);
1574 case OSPF6_SCOPE_AS
:
1575 vty_out (vty
, AS_LSDB_TITLE_FORMAT
, VNL
, VNL
, VNL
);
1576 ospf6_lsdb_show (vty
, level
, &type
, &id
, &adv_router
, o
->lsdb
);
1584 vty_out (vty
, "%s", VNL
);
1588 ALIAS (show_ipv6_ospf6_database_type_id_self_originated
,
1589 show_ipv6_ospf6_database_type_id_self_originated_detail_cmd
,
1590 "show ipv6 ospf6 database "
1591 "(router|network|inter-prefix|inter-router|as-external|"
1592 "group-membership|type-7|link|intra-prefix) A.B.C.D self-originated "
1593 "(detail|dump|internal)",
1597 "Display Link state database\n"
1598 "Display Router LSAs\n"
1599 "Display Network LSAs\n"
1600 "Display Inter-Area-Prefix LSAs\n"
1601 "Display Inter-Area-Router LSAs\n"
1602 "Display As-External LSAs\n"
1603 "Display Group-Membership LSAs\n"
1604 "Display Type-7 LSAs\n"
1605 "Display Link LSAs\n"
1606 "Display Intra-Area-Prefix LSAs\n"
1607 "Display Self-originated LSAs\n"
1608 "Search by Link state ID\n"
1609 "Specify Link state ID as IPv4 address notation\n"
1610 "Display details of LSAs\n"
1612 "Display LSA's internal information\n"
1616 DEFUN (show_ipv6_ospf6_border_routers
,
1617 show_ipv6_ospf6_border_routers_cmd
,
1618 "show ipv6 ospf6 border-routers",
1622 "Display routing table for ABR and ASBR\n"
1625 u_int32_t adv_router
;
1626 void (*showfunc
) (struct vty
*, struct ospf6_route
*);
1627 struct ospf6_route
*ro
;
1628 struct prefix prefix
;
1630 OSPF6_CMD_CHECK_RUNNING ();
1632 if (argc
&& ! strcmp ("detail", argv
[0]))
1634 showfunc
= ospf6_route_show_detail
;
1639 showfunc
= ospf6_brouter_show
;
1643 if ((inet_pton (AF_INET
, argv
[0], &adv_router
)) != 1)
1645 vty_out (vty
, "Router ID is not parsable: %s%s", argv
[0], VNL
);
1649 ospf6_linkstate_prefix (adv_router
, 0, &prefix
);
1650 ro
= ospf6_route_lookup (&prefix
, ospf6
->brouter_table
);
1653 vty_out (vty
, "No Route found for Router ID: %s%s", argv
[0], VNL
);
1657 ospf6_route_show_detail (vty
, ro
);
1661 if (showfunc
== ospf6_brouter_show
)
1662 ospf6_brouter_show_header (vty
);
1664 for (ro
= ospf6_route_head (ospf6
->brouter_table
); ro
;
1665 ro
= ospf6_route_next (ro
))
1666 (*showfunc
) (vty
, ro
);
1671 ALIAS (show_ipv6_ospf6_border_routers
,
1672 show_ipv6_ospf6_border_routers_detail_cmd
,
1673 "show ipv6 ospf6 border-routers (A.B.C.D|detail)",
1677 "Display routing table for ABR and ASBR\n"
1678 "Specify Router-ID\n"
1682 DEFUN (show_ipv6_ospf6_linkstate
,
1683 show_ipv6_ospf6_linkstate_cmd
,
1684 "show ipv6 ospf6 linkstate",
1688 "Display linkstate routing table\n"
1691 struct listnode
*node
;
1692 struct ospf6_area
*oa
;
1694 OSPF6_CMD_CHECK_RUNNING ();
1696 for (ALL_LIST_ELEMENTS_RO (ospf6
->area_list
, node
, oa
))
1698 vty_out (vty
, "%s SPF Result in Area %s%s%s",
1699 VNL
, oa
->name
, VNL
, VNL
);
1700 ospf6_linkstate_table_show (vty
, argc
, argv
, oa
->spf_table
);
1703 vty_out (vty
, "%s", VNL
);
1707 ALIAS (show_ipv6_ospf6_linkstate
,
1708 show_ipv6_ospf6_linkstate_router_cmd
,
1709 "show ipv6 ospf6 linkstate router A.B.C.D",
1713 "Display linkstate routing table\n"
1714 "Display Router Entry\n"
1715 "Specify Router ID as IPv4 address notation\n"
1718 ALIAS (show_ipv6_ospf6_linkstate
,
1719 show_ipv6_ospf6_linkstate_network_cmd
,
1720 "show ipv6 ospf6 linkstate network A.B.C.D A.B.C.D",
1724 "Display linkstate routing table\n"
1725 "Display Network Entry\n"
1726 "Specify Router ID as IPv4 address notation\n"
1727 "Specify Link state ID as IPv4 address notation\n"
1730 DEFUN (show_ipv6_ospf6_linkstate_detail
,
1731 show_ipv6_ospf6_linkstate_detail_cmd
,
1732 "show ipv6 ospf6 linkstate detail",
1736 "Display linkstate routing table\n"
1739 const char *sargv
[CMD_ARGC_MAX
];
1741 struct listnode
*node
;
1742 struct ospf6_area
*oa
;
1744 OSPF6_CMD_CHECK_RUNNING ();
1746 /* copy argv to sargv and then append "detail" */
1747 for (i
= 0; i
< argc
; i
++)
1750 sargv
[sargc
++] = "detail";
1751 sargv
[sargc
] = NULL
;
1753 for (ALL_LIST_ELEMENTS_RO (ospf6
->area_list
, node
, oa
))
1755 vty_out (vty
, "%s SPF Result in Area %s%s%s",
1756 VNL
, oa
->name
, VNL
, VNL
);
1757 ospf6_linkstate_table_show (vty
, sargc
, sargv
, oa
->spf_table
);
1760 vty_out (vty
, "%s", VNL
);
1764 /* Install ospf related commands. */
1770 ospf6_interface_init ();
1771 ospf6_neighbor_init ();
1772 ospf6_zebra_init(master
);
1776 ospf6_intra_init ();
1781 ospf6_snmp_init (master
);
1782 #endif /*HAVE_SNMP*/
1785 install_node (&debug_node
, config_write_ospf6_debug
);
1787 install_element_ospf6_debug_message ();
1788 install_element_ospf6_debug_lsa ();
1789 install_element_ospf6_debug_interface ();
1790 install_element_ospf6_debug_neighbor ();
1791 install_element_ospf6_debug_zebra ();
1792 install_element_ospf6_debug_spf ();
1793 install_element_ospf6_debug_route ();
1794 install_element_ospf6_debug_brouter ();
1795 install_element_ospf6_debug_asbr ();
1796 install_element_ospf6_debug_abr ();
1797 install_element_ospf6_debug_flood ();
1799 install_element_ospf6_clear_interface ();
1801 install_element (VIEW_NODE
, &show_version_ospf6_cmd
);
1803 install_element (VIEW_NODE
, &show_ipv6_ospf6_border_routers_cmd
);
1804 install_element (VIEW_NODE
, &show_ipv6_ospf6_border_routers_detail_cmd
);
1806 install_element (VIEW_NODE
, &show_ipv6_ospf6_linkstate_cmd
);
1807 install_element (VIEW_NODE
, &show_ipv6_ospf6_linkstate_router_cmd
);
1808 install_element (VIEW_NODE
, &show_ipv6_ospf6_linkstate_network_cmd
);
1809 install_element (VIEW_NODE
, &show_ipv6_ospf6_linkstate_detail_cmd
);
1811 #define INSTALL(n,c) \
1812 install_element (n ## _NODE, &show_ipv6_ospf6_ ## c)
1814 INSTALL (VIEW
, database_cmd
);
1815 INSTALL (VIEW
, database_detail_cmd
);
1816 INSTALL (VIEW
, database_type_cmd
);
1817 INSTALL (VIEW
, database_type_detail_cmd
);
1818 INSTALL (VIEW
, database_id_cmd
);
1819 INSTALL (VIEW
, database_id_detail_cmd
);
1820 INSTALL (VIEW
, database_linkstate_id_cmd
);
1821 INSTALL (VIEW
, database_linkstate_id_detail_cmd
);
1822 INSTALL (VIEW
, database_router_cmd
);
1823 INSTALL (VIEW
, database_router_detail_cmd
);
1824 INSTALL (VIEW
, database_adv_router_cmd
);
1825 INSTALL (VIEW
, database_adv_router_detail_cmd
);
1826 INSTALL (VIEW
, database_type_id_cmd
);
1827 INSTALL (VIEW
, database_type_id_detail_cmd
);
1828 INSTALL (VIEW
, database_type_linkstate_id_cmd
);
1829 INSTALL (VIEW
, database_type_linkstate_id_detail_cmd
);
1830 INSTALL (VIEW
, database_type_router_cmd
);
1831 INSTALL (VIEW
, database_type_router_detail_cmd
);
1832 INSTALL (VIEW
, database_type_adv_router_cmd
);
1833 INSTALL (VIEW
, database_type_adv_router_detail_cmd
);
1834 INSTALL (VIEW
, database_adv_router_linkstate_id_cmd
);
1835 INSTALL (VIEW
, database_adv_router_linkstate_id_detail_cmd
);
1836 INSTALL (VIEW
, database_id_router_cmd
);
1837 INSTALL (VIEW
, database_id_router_detail_cmd
);
1838 INSTALL (VIEW
, database_type_id_router_cmd
);
1839 INSTALL (VIEW
, database_type_id_router_detail_cmd
);
1840 INSTALL (VIEW
, database_type_adv_router_linkstate_id_cmd
);
1841 INSTALL (VIEW
, database_type_adv_router_linkstate_id_detail_cmd
);
1842 INSTALL (VIEW
, database_self_originated_cmd
);
1843 INSTALL (VIEW
, database_self_originated_detail_cmd
);
1844 INSTALL (VIEW
, database_type_self_originated_cmd
);
1845 INSTALL (VIEW
, database_type_self_originated_detail_cmd
);
1846 INSTALL (VIEW
, database_type_id_self_originated_cmd
);
1847 INSTALL (VIEW
, database_type_id_self_originated_detail_cmd
);
1848 INSTALL (VIEW
, database_type_self_originated_linkstate_id_cmd
);
1849 INSTALL (VIEW
, database_type_self_originated_linkstate_id_detail_cmd
);
1851 /* Make ospf protocol socket. */
1853 thread_add_read (master
, ospf6_receive
, NULL
, ospf6_sock
);
1861 if (ospf6
->route_table
)
1862 ospf6_route_remove_all (ospf6
->route_table
);
1863 if (ospf6
->brouter_table
)
1864 ospf6_route_remove_all (ospf6
->brouter_table
);