📄 ospf6d.c
字号:
u_int32_t adv_router = 0; u_int32_t id = 0; OSPF6_CMD_CHECK_RUNNING (); type = parse_type_spec (argc, argv); argc--; argv++; if ((inet_pton (AF_INET, argv[0], &id)) != 1) { vty_out (vty, "Link State ID is not parsable: %s%s", argv[0], VNL); return CMD_SUCCESS; } argc--; argv++; level = parse_show_level (argc, argv); adv_router = o->router_id; switch (OSPF6_LSA_SCOPE (type)) { case OSPF6_SCOPE_AREA: for (i = listhead (o->area_list); i; nextnode (i)) { oa = (struct ospf6_area *) getdata (i); vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oa->lsdb); } break; case OSPF6_SCOPE_LINKLOCAL: for (i = listhead (o->area_list); i; nextnode (i)) { oa = (struct ospf6_area *) getdata (i); for (j = listhead (oa->if_list); j; nextnode (j)) { oi = (struct ospf6_interface *) getdata (j); vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, oi->interface->name, oa->name, VNL, VNL); ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oi->lsdb); } } break; case OSPF6_SCOPE_AS: vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); ospf6_lsdb_show (vty, level, &type, &id, &adv_router, o->lsdb); break; default: assert (0); break; } vty_out (vty, "%s", VNL); return CMD_SUCCESS;}ALIAS (show_ipv6_ospf6_database_type_self_originated_linkstate_id, show_ipv6_ospf6_database_type_self_originated_linkstate_id_detail_cmd, "show ipv6 ospf6 database " "(router|network|inter-prefix|inter-router|as-external|" "group-membership|type-7|link|intra-prefix) self-originated " "linkstate-id A.B.C.D (detail|dump|internal)", SHOW_STR IPV6_STR OSPF6_STR "Display Link state database\n" "Display Router LSAs\n" "Display Network LSAs\n" "Display Inter-Area-Prefix LSAs\n" "Display Inter-Area-Router LSAs\n" "Display As-External LSAs\n" "Display Group-Membership LSAs\n" "Display Type-7 LSAs\n" "Display Link LSAs\n" "Display Intra-Area-Prefix LSAs\n" "Display Self-originated LSAs\n" "Search by Link state ID\n" "Specify Link state ID as IPv4 address notation\n" "Display details of LSAs\n" "Dump LSAs\n" "Display LSA's internal information\n" );DEFUN (show_ipv6_ospf6_database_type_id_self_originated, show_ipv6_ospf6_database_type_id_self_originated_cmd, "show ipv6 ospf6 database " "(router|network|inter-prefix|inter-router|as-external|" "group-membership|type-7|link|intra-prefix) A.B.C.D self-originated", SHOW_STR IPV6_STR OSPF6_STR "Display Link state database\n" "Display Router LSAs\n" "Display Network LSAs\n" "Display Inter-Area-Prefix LSAs\n" "Display Inter-Area-Router LSAs\n" "Display As-External LSAs\n" "Display Group-Membership LSAs\n" "Display Type-7 LSAs\n" "Display Link LSAs\n" "Display Intra-Area-Prefix LSAs\n" "Specify Link state ID as IPv4 address notation\n" "Display Self-originated LSAs\n" ){ int level; listnode i, j; struct ospf6 *o = ospf6; struct ospf6_area *oa; struct ospf6_interface *oi; u_int16_t type = 0; u_int32_t adv_router = 0; u_int32_t id = 0; OSPF6_CMD_CHECK_RUNNING (); type = parse_type_spec (argc, argv); argc--; argv++; if ((inet_pton (AF_INET, argv[0], &id)) != 1) { vty_out (vty, "Link State ID is not parsable: %s%s", argv[0], VNL); return CMD_SUCCESS; } argc--; argv++; level = parse_show_level (argc, argv); adv_router = o->router_id; switch (OSPF6_LSA_SCOPE (type)) { case OSPF6_SCOPE_AREA: for (i = listhead (o->area_list); i; nextnode (i)) { oa = (struct ospf6_area *) getdata (i); vty_out (vty, AREA_LSDB_TITLE_FORMAT, VNL, oa->name, VNL, VNL); ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oa->lsdb); } break; case OSPF6_SCOPE_LINKLOCAL: for (i = listhead (o->area_list); i; nextnode (i)) { oa = (struct ospf6_area *) getdata (i); for (j = listhead (oa->if_list); j; nextnode (j)) { oi = (struct ospf6_interface *) getdata (j); vty_out (vty, IF_LSDB_TITLE_FORMAT, VNL, oi->interface->name, oa->name, VNL, VNL); ospf6_lsdb_show (vty, level, &type, &id, &adv_router, oi->lsdb); } } break; case OSPF6_SCOPE_AS: vty_out (vty, AS_LSDB_TITLE_FORMAT, VNL, VNL, VNL); ospf6_lsdb_show (vty, level, &type, &id, &adv_router, o->lsdb); break; default: assert (0); break; } vty_out (vty, "%s", VNL); return CMD_SUCCESS;}ALIAS (show_ipv6_ospf6_database_type_id_self_originated, show_ipv6_ospf6_database_type_id_self_originated_detail_cmd, "show ipv6 ospf6 database " "(router|network|inter-prefix|inter-router|as-external|" "group-membership|type-7|link|intra-prefix) A.B.C.D self-originated " "(detail|dump|internal)", SHOW_STR IPV6_STR OSPF6_STR "Display Link state database\n" "Display Router LSAs\n" "Display Network LSAs\n" "Display Inter-Area-Prefix LSAs\n" "Display Inter-Area-Router LSAs\n" "Display As-External LSAs\n" "Display Group-Membership LSAs\n" "Display Type-7 LSAs\n" "Display Link LSAs\n" "Display Intra-Area-Prefix LSAs\n" "Display Self-originated LSAs\n" "Search by Link state ID\n" "Specify Link state ID as IPv4 address notation\n" "Display details of LSAs\n" "Dump LSAs\n" "Display LSA's internal information\n" );DEFUN (show_ipv6_ospf6_border_routers, show_ipv6_ospf6_border_routers_cmd, "show ipv6 ospf6 border-routers", SHOW_STR IP6_STR OSPF6_STR "Display routing table for ABR and ASBR\n" ){ u_int32_t adv_router; void (*showfunc) (struct vty *, struct ospf6_route *); struct ospf6_route *ro; struct prefix prefix; OSPF6_CMD_CHECK_RUNNING (); if (argc && ! strcmp ("detail", argv[0])) { showfunc = ospf6_route_show_detail; argc--; argv++; } else showfunc = ospf6_brouter_show; if (argc) { if ((inet_pton (AF_INET, argv[0], &adv_router)) != 1) { vty_out (vty, "Router ID is not parsable: %s%s", argv[0], VNL); return CMD_SUCCESS; } ospf6_linkstate_prefix (adv_router, 0, &prefix); ro = ospf6_route_lookup (&prefix, ospf6->brouter_table); ospf6_route_show_detail (vty, ro); return CMD_SUCCESS; } if (showfunc == ospf6_brouter_show) ospf6_brouter_show_header (vty); for (ro = ospf6_route_head (ospf6->brouter_table); ro; ro = ospf6_route_next (ro)) (*showfunc) (vty, ro); return CMD_SUCCESS;}ALIAS (show_ipv6_ospf6_border_routers, show_ipv6_ospf6_border_routers_detail_cmd, "show ipv6 ospf6 border-routers (A.B.C.D|detail)", SHOW_STR IP6_STR OSPF6_STR "Display routing table for ABR and ASBR\n" "Specify Router-ID\n" "Display Detail\n" );DEFUN (show_ipv6_ospf6_linkstate, show_ipv6_ospf6_linkstate_cmd, "show ipv6 ospf6 linkstate", SHOW_STR IP6_STR OSPF6_STR "Display linkstate routing table\n" ){ listnode node; struct ospf6_area *oa; for (node = listhead (ospf6->area_list); node; nextnode (node)) { oa = OSPF6_AREA (getdata (node)); vty_out (vty, "%s SPF Result in Area %s%s%s", VNL, oa->name, VNL, VNL); ospf6_linkstate_table_show (vty, argc, argv, oa->spf_table); } vty_out (vty, "%s", VNL); return CMD_SUCCESS;}ALIAS (show_ipv6_ospf6_linkstate, show_ipv6_ospf6_linkstate_router_cmd, "show ipv6 ospf6 linkstate router A.B.C.D", SHOW_STR IP6_STR OSPF6_STR "Display linkstate routing table\n" "Display Router Entry\n" "Specify Router ID as IPv4 address notation\n" );ALIAS (show_ipv6_ospf6_linkstate, show_ipv6_ospf6_linkstate_network_cmd, "show ipv6 ospf6 linkstate network A.B.C.D A.B.C.D", SHOW_STR IP6_STR OSPF6_STR "Display linkstate routing table\n" "Display Network Entry\n" "Specify Router ID as IPv4 address notation\n" "Specify Link state ID as IPv4 address notation\n" );DEFUN (show_ipv6_ospf6_linkstate_detail, show_ipv6_ospf6_linkstate_detail_cmd, "show ipv6 ospf6 linkstate detail", SHOW_STR IP6_STR OSPF6_STR "Display linkstate routing table\n" ){ char *sargv[CMD_ARGC_MAX]; int i, sargc; listnode node; struct ospf6_area *oa; /* copy argv to sargv and then append "detail" */ for (i = 0; i < argc; i++) sargv[i] = argv[i]; sargc = argc; sargv[sargc++] = "detail"; sargv[sargc] = NULL; for (node = listhead (ospf6->area_list); node; nextnode (node)) { oa = OSPF6_AREA (getdata (node)); vty_out (vty, "%s SPF Result in Area %s%s%s", VNL, oa->name, VNL, VNL); ospf6_linkstate_table_show (vty, sargc, sargv, oa->spf_table); } vty_out (vty, "%s", VNL); return CMD_SUCCESS;}/* Install ospf related commands. */voidospf6_init (){ ospf6_top_init (); ospf6_area_init (); ospf6_interface_init (); ospf6_neighbor_init (); ospf6_zebra_init (); ospf6_lsa_init (); ospf6_spf_init (); ospf6_intra_init (); ospf6_asbr_init (); ospf6_abr_init ();#ifdef HAVE_SNMP ospf6_snmp_init ();#endif /*HAVE_SNMP*/ install_node (&debug_node, config_write_ospf6_debug); install_element_ospf6_debug_message (); install_element_ospf6_debug_lsa (); install_element_ospf6_debug_interface (); install_element_ospf6_debug_neighbor (); install_element_ospf6_debug_zebra (); install_element_ospf6_debug_spf (); install_element_ospf6_debug_route (); install_element_ospf6_debug_asbr (); install_element_ospf6_debug_abr (); install_element_ospf6_debug_flood (); install_element (VIEW_NODE, &show_version_ospf6_cmd); install_element (ENABLE_NODE, &show_version_ospf6_cmd); install_element (VIEW_NODE, &show_ipv6_ospf6_border_routers_cmd); install_element (VIEW_NODE, &show_ipv6_ospf6_border_routers_detail_cmd); install_element (ENABLE_NODE, &show_ipv6_ospf6_border_routers_cmd); install_element (ENABLE_NODE, &show_ipv6_ospf6_border_routers_detail_cmd); install_element (VIEW_NODE, &show_ipv6_ospf6_linkstate_cmd); install_element (VIEW_NODE, &show_ipv6_ospf6_linkstate_router_cmd); install_element (VIEW_NODE, &show_ipv6_ospf6_linkstate_network_cmd); install_element (VIEW_NODE, &show_ipv6_ospf6_linkstate_detail_cmd); install_element (ENABLE_NODE, &show_ipv6_ospf6_linkstate_cmd); install_element (ENABLE_NODE, &show_ipv6_ospf6_linkstate_router_cmd); install_element (ENABLE_NODE, &show_ipv6_ospf6_linkstate_network_cmd); install_element (ENABLE_NODE, &show_ipv6_ospf6_linkstate_detail_cmd);#define INSTALL(n,c) \ install_element (n ## _NODE, &show_ipv6_ospf6_ ## c); INSTALL (VIEW, database_cmd); INSTALL (VIEW, database_detail_cmd); INSTALL (VIEW, database_type_cmd); INSTALL (VIEW, database_type_detail_cmd); INSTALL (VIEW, database_id_cmd); INSTALL (VIEW, database_id_detail_cmd); INSTALL (VIEW, database_linkstate_id_cmd); INSTALL (VIEW, database_linkstate_id_detail_cmd); INSTALL (VIEW, database_router_cmd); INSTALL (VIEW, database_router_detail_cmd); INSTALL (VIEW, database_adv_router_cmd); INSTALL (VIEW, database_adv_router_detail_cmd); INSTALL (VIEW, database_type_id_cmd); INSTALL (VIEW, database_type_id_detail_cmd); INSTALL (VIEW, database_type_linkstate_id_cmd); INSTALL (VIEW, database_type_linkstate_id_detail_cmd); INSTALL (VIEW, database_type_router_cmd); INSTALL (VIEW, database_type_router_detail_cmd); INSTALL (VIEW, database_type_adv_router_cmd); INSTALL (VIEW, database_type_adv_router_detail_cmd); INSTALL (VIEW, database_adv_router_linkstate_id_cmd); INSTALL (VIEW, database_adv_router_linkstate_id_detail_cmd); INSTALL (VIEW, database_id_router_cmd); INSTALL (VIEW, database_id_router_detail_cmd); INSTALL (VIEW, database_type_id_router_cmd); INSTALL (VIEW, database_type_id_router_detail_cmd); INSTALL (VIEW, database_type_adv_router_linkstate_id_cmd); INSTALL (VIEW, database_type_adv_router_linkstate_id_detail_cmd); INSTALL (VIEW, database_self_originated_cmd); INSTALL (VIEW, database_self_originated_detail_cmd); INSTALL (VIEW, database_type_self_originated_cmd); INSTALL (VIEW, database_type_self_originated_detail_cmd); INSTALL (VIEW, database_type_id_self_originated_cmd); INSTALL (VIEW, database_type_id_self_originated_detail_cmd); INSTALL (VIEW, database_type_self_originated_linkstate_id_cmd); INSTALL (VIEW, database_type_self_originated_linkstate_id_detail_cmd); INSTALL (VIEW, database_type_id_self_originated_cmd); INSTALL (VIEW, database_type_id_self_originated_detail_cmd); INSTALL (ENABLE, database_cmd); INSTALL (ENABLE, database_detail_cmd); INSTALL (ENABLE, database_type_cmd); INSTALL (ENABLE, database_type_detail_cmd); INSTALL (ENABLE, database_id_cmd); INSTALL (ENABLE, database_id_detail_cmd); INSTALL (ENABLE, database_linkstate_id_cmd); INSTALL (ENABLE, database_linkstate_id_detail_cmd); INSTALL (ENABLE, database_router_cmd); INSTALL (ENABLE, database_router_detail_cmd); INSTALL (ENABLE, database_adv_router_cmd); INSTALL (ENABLE, database_adv_router_detail_cmd); INSTALL (ENABLE, database_type_id_cmd); INSTALL (ENABLE, database_type_id_detail_cmd); INSTALL (ENABLE, database_type_linkstate_id_cmd); INSTALL (ENABLE, database_type_linkstate_id_detail_cmd); INSTALL (ENABLE, database_type_router_cmd); INSTALL (ENABLE, database_type_router_detail_cmd); INSTALL (ENABLE, database_type_adv_router_cmd); INSTALL (ENABLE, database_type_adv_router_detail_cmd); INSTALL (ENABLE, database_adv_router_linkstate_id_cmd); INSTALL (ENABLE, database_adv_router_linkstate_id_detail_cmd); INSTALL (ENABLE, database_id_router_cmd); INSTALL (ENABLE, database_id_router_detail_cmd); INSTALL (ENABLE, database_type_id_router_cmd); INSTALL (ENABLE, database_type_id_router_detail_cmd); INSTALL (ENABLE, database_type_adv_router_linkstate_id_cmd); INSTALL (ENABLE, database_type_adv_router_linkstate_id_detail_cmd); INSTALL (ENABLE, database_self_originated_cmd); INSTALL (ENABLE, database_self_originated_detail_cmd); INSTALL (ENABLE, database_type_self_originated_cmd); INSTALL (ENABLE, database_type_self_originated_detail_cmd); INSTALL (ENABLE, database_type_id_self_originated_cmd); INSTALL (ENABLE, database_type_id_self_originated_detail_cmd); INSTALL (ENABLE, database_type_self_originated_linkstate_id_cmd); INSTALL (ENABLE, database_type_self_originated_linkstate_id_detail_cmd); INSTALL (ENABLE, database_type_id_self_originated_cmd); INSTALL (ENABLE, database_type_id_self_originated_detail_cmd); /* Make ospf protocol socket. */ ospf6_serv_sock (); thread_add_read (master, ospf6_receive, NULL, ospf6_sock);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -