diff options
Diffstat (limited to 'ospfd/ospf_vty.c')
-rw-r--r-- | ospfd/ospf_vty.c | 306 |
1 files changed, 188 insertions, 118 deletions
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c index fff6f659..4100860b 100644 --- a/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c @@ -181,13 +181,16 @@ DEFUN (no_router_ospf, "Enable a routing process\n" "Start OSPF configuration\n") { - if (ospf_top == NULL) + struct ospf *ospf; + + ospf = ospf_lookup (); + if (ospf == NULL) { - vty_out (vty, "There isn't active ospf instance.%s", VTY_NEWLINE); + vty_out (vty, "There isn't active ospf instance%s", VTY_NEWLINE); return CMD_WARNING; } - ospf_finish (ospf_top); + ospf_finish (ospf); return CMD_SUCCESS; } @@ -213,9 +216,8 @@ DEFUN (ospf_router_id, ospf->router_id_static = router_id; if (ospf->t_router_id_update == NULL) - ospf->t_router_id_update = - thread_add_timer (master, ospf_router_id_update_timer, NULL, - OSPF_ROUTER_ID_UPDATE_DELAY); + OSPF_TIMER_ON (ospf->t_router_id_update, ospf_router_id_update_timer, + OSPF_ROUTER_ID_UPDATE_DELAY); return CMD_SUCCESS; } @@ -2298,8 +2300,8 @@ DEFUN (auto_cost_reference_bandwidth, vty_out (vty, "%% OSPF: Reference bandwidth is changed.%s", VTY_NEWLINE); vty_out (vty, " Please ensure reference bandwidth is consistent across all routers%s", VTY_NEWLINE); - for (node = listhead (ospf->iflist); node; nextnode (node)) - ospf_if_recalculate_output_cost (getdata (node)); + for (node = listhead (om->iflist); node; nextnode (node)) + ospf_if_recalculate_output_cost (getdata (node)); return CMD_SUCCESS; } @@ -2321,8 +2323,8 @@ DEFUN (no_auto_cost_reference_bandwidth, vty_out (vty, "%% OSPF: Reference bandwidth is changed.%s", VTY_NEWLINE); vty_out (vty, " Please ensure reference bandwidth is consistent across all routers%s", VTY_NEWLINE); - for (node = listhead (ospf->iflist); node; nextnode (node)) - ospf_if_recalculate_output_cost (getdata (node)); + for (node = listhead (om->iflist); node; nextnode (node)) + ospf_if_recalculate_output_cost (getdata (node)); return CMD_SUCCESS; } @@ -2386,7 +2388,7 @@ show_ip_ospf_area (struct vty *vty, struct ospf_area *area) if (area->external_routing == OSPF_AREA_NSSA) { vty_out (vty, " It is an NSSA configuration. %s Elected NSSA/ABR performs type-7/type-5 LSA translation. %s", VTY_NEWLINE, VTY_NEWLINE); - if (! OSPF_IS_ABR) + if (! IS_OSPF_ABR (area->ospf)) vty_out (vty, " It is not ABR, therefore not Translator. %s", VTY_NEWLINE); else @@ -2435,9 +2437,10 @@ DEFUN (show_ip_ospf, { listnode node; struct ospf_area * area; - struct ospf *ospf = ospf_top; + struct ospf *ospf; /* Check OSPF is enable. */ + ospf = ospf_lookup (); if (ospf == NULL) { vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE); @@ -2618,9 +2621,11 @@ DEFUN (show_ip_ospf_interface, "Interface name\n") { struct interface *ifp; - struct ospf *ospf = ospf_top; + struct ospf *ospf; listnode node; + ospf = ospf_lookup (); + /* Show All Interfaces. */ if (argc == 0) for (node = listhead (iflist); node; nextnode (node)) @@ -2678,9 +2683,10 @@ DEFUN (show_ip_ospf_neighbor, "OSPF information\n" "Neighbor list\n") { - struct ospf *ospf = ospf_top; + struct ospf *ospf; listnode node; + ospf = ospf_lookup (); if (ospf == NULL) { vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE); @@ -2693,7 +2699,7 @@ DEFUN (show_ip_ospf_neighbor, "RqstL DBsmL%s", VTY_NEWLINE, VTY_NEWLINE); for (node = listhead (ospf->oiflist); node; nextnode (node)) - show_ip_ospf_neighbor_sub (vty, getdata (node)); + show_ip_ospf_neighbor_sub (vty, getdata (node)); return CMD_SUCCESS; } @@ -2759,17 +2765,11 @@ DEFUN (show_ip_ospf_neighbor_int, "Neighbor list\n" "Interface name\n") { - struct ospf *ospf = ospf_top; + struct ospf *ospf; struct ospf_interface *oi; struct in_addr addr; int ret; - if (ospf == NULL) - { - vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE); - return CMD_SUCCESS; - } - ret = inet_aton (argv[0], &addr); if (!ret) { @@ -2778,6 +2778,13 @@ DEFUN (show_ip_ospf_neighbor_int, return CMD_WARNING; } + ospf = ospf_lookup (); + if (ospf == NULL) + { + vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE); + return CMD_SUCCESS; + } + if ((oi = ospf_if_is_configured (ospf, &addr)) == NULL) vty_out (vty, "No such interface address%s", VTY_NEWLINE); else @@ -2890,7 +2897,7 @@ DEFUN (show_ip_ospf_neighbor_id, "Neighbor list\n" "Neighbor ID\n") { - struct ospf *ospf = ospf_top; + struct ospf *ospf; listnode node; struct ospf_neighbor *nbr; struct in_addr router_id; @@ -2903,6 +2910,13 @@ DEFUN (show_ip_ospf_neighbor_id, return CMD_WARNING; } + ospf = ospf_lookup (); + if (ospf == NULL) + { + vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE); + return CMD_SUCCESS; + } + for (node = listhead (ospf->oiflist); node; nextnode (node)) { struct ospf_interface *oi = getdata (node); @@ -2927,11 +2941,15 @@ DEFUN (show_ip_ospf_neighbor_detail, "Neighbor list\n" "detail of all neighbors\n") { - struct ospf *ospf = ospf_top; + struct ospf *ospf; listnode node; + ospf = ospf_lookup (); if (ospf == NULL) - return CMD_SUCCESS; + { + vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE); + return CMD_SUCCESS; + } for (node = listhead (ospf->oiflist); node; nextnode (node)) { @@ -2959,11 +2977,15 @@ DEFUN (show_ip_ospf_neighbor_detail_all, "detail of all neighbors\n" "include down status neighbor\n") { - struct ospf *ospf = ospf_top; + struct ospf *ospf; listnode node; + ospf = ospf_lookup (); if (ospf == NULL) - return CMD_SUCCESS; + { + vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE); + return CMD_SUCCESS; + } for (node = listhead (ospf->oiflist); node; nextnode (node)) { @@ -3004,6 +3026,7 @@ DEFUN (show_ip_ospf_neighbor_int_detail, "Interface address\n" "detail of all neighbors") { + struct ospf *ospf; struct ospf_interface *oi; struct in_addr addr; int ret; @@ -3016,10 +3039,14 @@ DEFUN (show_ip_ospf_neighbor_int_detail, return CMD_WARNING; } - if (ospf_top == NULL) - return CMD_WARNING; + ospf = ospf_lookup (); + if (ospf == NULL) + { + vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE); + return CMD_SUCCESS; + } - if ((oi = ospf_if_is_configured (ospf_top, &addr)) == NULL) + if ((oi = ospf_if_is_configured (ospf, &addr)) == NULL) vty_out (vty, "No such interface address%s", VTY_NEWLINE); else { @@ -3039,9 +3066,8 @@ DEFUN (show_ip_ospf_neighbor_int_detail, /* Show functions */ int -show_lsa_summary (struct ospf_lsa *lsa, void *v, int self) +show_lsa_summary (struct vty *vty, struct ospf_lsa *lsa, int self) { - struct vty *vty = (struct vty *) v; struct router_lsa *rl; struct summary_lsa *sl; struct as_external_lsa *asel; @@ -3500,10 +3526,9 @@ show_lsa_detail_proc (struct vty *vty, struct route_table *rt, /* Show detail LSA information -- if id is NULL then show all LSAs. */ void -show_lsa_detail (struct vty *vty, int type, +show_lsa_detail (struct vty *vty, struct ospf *ospf, int type, struct in_addr *id, struct in_addr *adv_router) { - struct ospf *ospf = ospf_top; listnode node; switch (type) @@ -3552,10 +3577,9 @@ show_lsa_detail_adv_router_proc (struct vty *vty, struct route_table *rt, /* Show detail LSA information. */ void -show_lsa_detail_adv_router (struct vty *vty, int type, +show_lsa_detail_adv_router (struct vty *vty, struct ospf *ospf, int type, struct in_addr *adv_router) { - struct ospf *ospf = ospf_top; listnode node; switch (type) @@ -3585,9 +3609,10 @@ show_lsa_detail_adv_router (struct vty *vty, int type, } void -show_ip_ospf_database_summary (struct vty *vty, int self) +show_ip_ospf_database_summary (struct vty *vty, struct ospf *ospf, int self) { - struct ospf *ospf = ospf_top; + struct ospf_lsa *lsa; + struct route_node *rn; listnode node; int type; @@ -3615,7 +3640,8 @@ show_ip_ospf_database_summary (struct vty *vty, int self) VTY_NEWLINE, VTY_NEWLINE); vty_out (vty, "%s%s", show_database_header[type], VTY_NEWLINE); - foreach_lsa (AREA_LSDB (area, type), vty, self, show_lsa_summary); + LSDB_LOOP (AREA_LSDB (area, type), rn, lsa) + show_lsa_summary (vty, lsa, self); vty_out (vty, "%s", VTY_NEWLINE); } @@ -3642,7 +3668,10 @@ show_ip_ospf_database_summary (struct vty *vty, int self) VTY_NEWLINE, VTY_NEWLINE); vty_out (vty, "%s%s", show_database_header[type], VTY_NEWLINE); - foreach_lsa (AS_LSDB (ospf, type), vty, self, show_lsa_summary); + + LSDB_LOOP (AS_LSDB (ospf, type), rn, lsa) + show_lsa_summary (vty, lsa, self); + vty_out (vty, "%s", VTY_NEWLINE); } } @@ -3651,9 +3680,8 @@ show_ip_ospf_database_summary (struct vty *vty, int self) } void -show_ip_ospf_database_maxage (struct vty *vty) +show_ip_ospf_database_maxage (struct vty *vty, struct ospf *ospf) { - struct ospf *ospf = ospf_top; listnode node; struct ospf_lsa *lsa; @@ -3717,10 +3745,11 @@ DEFUN (show_ip_ospf_database, "OSPF information\n" "Database summary\n") { - struct ospf *ospf = ospf_top; + struct ospf *ospf; int type, ret; struct in_addr id, adv_router; + ospf = ospf_lookup (); if (ospf == NULL) return CMD_SUCCESS; @@ -3730,7 +3759,7 @@ DEFUN (show_ip_ospf_database, /* Show all LSA. */ if (argc == 0) { - show_ip_ospf_database_summary (vty, 0); + show_ip_ospf_database_summary (vty, ospf, 0); return CMD_SUCCESS; } @@ -3751,12 +3780,12 @@ DEFUN (show_ip_ospf_database, type = OSPF_AS_EXTERNAL_LSA; else if (strncmp (argv[0], "se", 2) == 0) { - show_ip_ospf_database_summary (vty, 1); + show_ip_ospf_database_summary (vty, ospf, 1); return CMD_SUCCESS; } else if (strncmp (argv[0], "m", 1) == 0) { - show_ip_ospf_database_maxage (vty); + show_ip_ospf_database_maxage (vty, ospf); return CMD_SUCCESS; } #ifdef HAVE_OPAQUE_LSA @@ -3772,7 +3801,7 @@ DEFUN (show_ip_ospf_database, /* `show ip ospf database LSA'. */ if (argc == 1) - show_lsa_detail (vty, type, NULL, NULL); + show_lsa_detail (vty, ospf, type, NULL, NULL); else if (argc >= 2) { ret = inet_aton (argv[1], &id); @@ -3781,7 +3810,7 @@ DEFUN (show_ip_ospf_database, /* `show ip ospf database LSA ID'. */ if (argc == 2) - show_lsa_detail (vty, type, &id, NULL); + show_lsa_detail (vty, ospf, type, &id, NULL); /* `show ip ospf database LSA ID adv-router ADV_ROUTER'. */ else if (argc == 3) { @@ -3793,7 +3822,7 @@ DEFUN (show_ip_ospf_database, if (!ret) return CMD_WARNING; } - show_lsa_detail (vty, type, &id, &adv_router); + show_lsa_detail (vty, ospf, type, &id, &adv_router); } } @@ -3856,10 +3885,11 @@ DEFUN (show_ip_ospf_database_type_adv_router, "Advertising Router link states\n" "Advertising Router (as an IP address)\n") { - struct ospf *ospf = ospf_top; + struct ospf *ospf; int type, ret; struct in_addr adv_router; + ospf = ospf_lookup (); if (ospf == NULL) return CMD_SUCCESS; @@ -3905,7 +3935,7 @@ DEFUN (show_ip_ospf_database_type_adv_router, return CMD_WARNING; } - show_lsa_detail_adv_router (vty, type, &adv_router); + show_lsa_detail_adv_router (vty, ospf, type, &adv_router); return CMD_SUCCESS; } @@ -4488,8 +4518,10 @@ DEFUN (ip_ospf_dead_interval, struct ospf_if_params *params; struct ospf_interface *oi; struct route_node *rn; - struct ospf *ospf = ospf_top; + struct ospf *ospf; + ospf = ospf_lookup (); + params = IF_DEF_PARAMS (ifp); seconds = strtol (argv[0], NULL, 10); @@ -4568,8 +4600,10 @@ DEFUN (no_ip_ospf_dead_interval, struct ospf_if_params *params; struct ospf_interface *oi; struct route_node *rn; - struct ospf *ospf = ospf_top; + struct ospf *ospf; + ospf = ospf_lookup (); + ifp = vty->index; params = IF_DEF_PARAMS (ifp); @@ -5262,6 +5296,7 @@ DEFUN (ospf_redistribute_source_metric_type, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int source; int type = -1; int metric = -1; @@ -5281,11 +5316,11 @@ DEFUN (ospf_redistribute_source_metric_type, return CMD_WARNING; if (argc == 4) - ospf_routemap_set (source, argv[3]); + ospf_routemap_set (ospf, source, argv[3]); else - ospf_routemap_unset (source); + ospf_routemap_unset (ospf, source); - return ospf_redistribute_set (source, type, metric); + return ospf_redistribute_set (ospf, source, type, metric); } ALIAS (ospf_redistribute_source_metric_type, @@ -5332,6 +5367,7 @@ DEFUN (ospf_redistribute_source_type_metric, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int source; int type = -1; int metric = -1; @@ -5351,11 +5387,11 @@ DEFUN (ospf_redistribute_source_type_metric, return CMD_WARNING; if (argc == 4) - ospf_routemap_set (source, argv[3]); + ospf_routemap_set (ospf, source, argv[3]); else - ospf_routemap_unset (source); + ospf_routemap_unset (ospf, source); - return ospf_redistribute_set (source, type, metric); + return ospf_redistribute_set (ospf, source, type, metric); } ALIAS (ospf_redistribute_source_type_metric, @@ -5410,6 +5446,7 @@ DEFUN (ospf_redistribute_source_metric_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int source; int metric = -1; @@ -5423,11 +5460,11 @@ DEFUN (ospf_redistribute_source_metric_routemap, return CMD_WARNING; if (argc == 3) - ospf_routemap_set (source, argv[2]); + ospf_routemap_set (ospf, source, argv[2]); else - ospf_routemap_unset (source); + ospf_routemap_unset (ospf, source); - return ospf_redistribute_set (source, -1, metric); + return ospf_redistribute_set (ospf, source, -1, metric); } DEFUN (ospf_redistribute_source_type_routemap, @@ -5445,6 +5482,7 @@ DEFUN (ospf_redistribute_source_type_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int source; int type = -1; @@ -5458,11 +5496,11 @@ DEFUN (ospf_redistribute_source_type_routemap, return CMD_WARNING; if (argc == 3) - ospf_routemap_set (source, argv[2]); + ospf_routemap_set (ospf, source, argv[2]); else - ospf_routemap_unset (source); + ospf_routemap_unset (ospf, source); - return ospf_redistribute_set (source, type, -1); + return ospf_redistribute_set (ospf, source, type, -1); } DEFUN (ospf_redistribute_source_routemap, @@ -5477,6 +5515,7 @@ DEFUN (ospf_redistribute_source_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int source; /* Get distribute source. */ @@ -5484,11 +5523,11 @@ DEFUN (ospf_redistribute_source_routemap, return CMD_WARNING; if (argc == 2) - ospf_routemap_set (source, argv[1]); + ospf_routemap_set (ospf, source, argv[1]); else - ospf_routemap_unset (source); + ospf_routemap_unset (ospf, source); - return ospf_redistribute_set (source, -1, -1); + return ospf_redistribute_set (ospf, source, -1, -1); } DEFUN (no_ospf_redistribute_source, @@ -5502,13 +5541,14 @@ DEFUN (no_ospf_redistribute_source, "Routing Information Protocol (RIP)\n" "Border Gateway Protocol (BGP)\n") { + struct ospf *ospf = vty->index; int source; if (!str2distribute_source (argv[0], &source)) return CMD_WARNING; - ospf_routemap_unset (source); - return ospf_redistribute_unset (source); + ospf_routemap_unset (ospf, source); + return ospf_redistribute_unset (ospf, source); } DEFUN (ospf_distribute_list_out, @@ -5569,6 +5609,7 @@ DEFUN (ospf_default_information_originate_metric_type_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int type = -1; int metric = -1; @@ -5583,11 +5624,12 @@ DEFUN (ospf_default_information_originate_metric_type_routemap, return CMD_WARNING; if (argc == 3) - ospf_routemap_set (DEFAULT_ROUTE, argv[2]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[2]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ZEBRA, type, metric); + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ZEBRA, + type, metric); } ALIAS (ospf_default_information_originate_metric_type_routemap, @@ -5626,6 +5668,7 @@ DEFUN (ospf_default_information_originate_metric_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int metric = -1; /* Get metric value. */ @@ -5634,11 +5677,12 @@ DEFUN (ospf_default_information_originate_metric_routemap, return CMD_WARNING; if (argc == 2) - ospf_routemap_set (DEFAULT_ROUTE, argv[1]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[1]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ZEBRA, -1, metric); + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ZEBRA, + -1, metric); } /* Default information originate. */ @@ -5650,12 +5694,14 @@ DEFUN (ospf_default_information_originate_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; + if (argc == 1) - ospf_routemap_set (DEFAULT_ROUTE, argv[0]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[0]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ZEBRA, -1, -1); + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ZEBRA, -1, -1); } DEFUN (ospf_default_information_originate_type_metric_routemap, @@ -5671,6 +5717,7 @@ DEFUN (ospf_default_information_originate_type_metric_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int type = -1; int metric = -1; @@ -5685,11 +5732,12 @@ DEFUN (ospf_default_information_originate_type_metric_routemap, return CMD_WARNING; if (argc == 3) - ospf_routemap_set (DEFAULT_ROUTE, argv[2]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[2]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ZEBRA, type, metric); + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ZEBRA, + type, metric); } ALIAS (ospf_default_information_originate_type_metric_routemap, @@ -5723,6 +5771,7 @@ DEFUN (ospf_default_information_originate_type_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int type = -1; /* Get metric type. */ @@ -5731,11 +5780,12 @@ DEFUN (ospf_default_information_originate_type_routemap, return CMD_WARNING; if (argc == 2) - ospf_routemap_set (DEFAULT_ROUTE, argv[1]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[1]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ZEBRA, type, -1); + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ZEBRA, + type, -1); } DEFUN (ospf_default_information_originate_always_metric_type_routemap, @@ -5752,6 +5802,7 @@ DEFUN (ospf_default_information_originate_always_metric_type_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int type = -1; int metric = -1; @@ -5766,11 +5817,11 @@ DEFUN (ospf_default_information_originate_always_metric_type_routemap, return CMD_WARNING; if (argc == 3) - ospf_routemap_set (DEFAULT_ROUTE, argv[2]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[2]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ALWAYS, + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ALWAYS, type, metric); } @@ -5814,6 +5865,7 @@ DEFUN (ospf_default_information_originate_always_metric_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int metric = -1; /* Get metric value. */ @@ -5822,11 +5874,12 @@ DEFUN (ospf_default_information_originate_always_metric_routemap, return CMD_WARNING; if (argc == 2) - ospf_routemap_set (DEFAULT_ROUTE, argv[1]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[1]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ALWAYS, -1, metric); + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ALWAYS, + -1, metric); } DEFUN (ospf_default_information_originate_always_routemap, @@ -5838,12 +5891,14 @@ DEFUN (ospf_default_information_originate_always_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; + if (argc == 1) - ospf_routemap_set (DEFAULT_ROUTE, argv[0]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[0]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ALWAYS, -1, -1); + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ALWAYS, -1, -1); } DEFUN (ospf_default_information_originate_always_type_metric_routemap, @@ -5860,6 +5915,7 @@ DEFUN (ospf_default_information_originate_always_type_metric_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int type = -1; int metric = -1; @@ -5874,11 +5930,11 @@ DEFUN (ospf_default_information_originate_always_type_metric_routemap, return CMD_WARNING; if (argc == 3) - ospf_routemap_set (DEFAULT_ROUTE, argv[2]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[2]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ALWAYS, + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ALWAYS, type, metric); } @@ -5916,6 +5972,7 @@ DEFUN (ospf_default_information_originate_always_type_routemap, "Route map reference\n" "Pointer to route-map entries\n") { + struct ospf *ospf = vty->index; int type = -1; /* Get metric type. */ @@ -5924,11 +5981,11 @@ DEFUN (ospf_default_information_originate_always_type_routemap, return CMD_WARNING; if (argc == 2) - ospf_routemap_set (DEFAULT_ROUTE, argv[1]); + ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[1]); else - ospf_routemap_unset (DEFAULT_ROUTE); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); - return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ALWAYS, + return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ALWAYS, type, -1); } @@ -5955,8 +6012,8 @@ DEFUN (no_ospf_default_information_originate, EXTERNAL_INFO (DEFAULT_ROUTE) = NULL; } - ospf_routemap_unset (DEFAULT_ROUTE); - return ospf_redistribute_default_unset (); + ospf_routemap_unset (ospf, DEFAULT_ROUTE); + return ospf_redistribute_default_unset (ospf); } DEFUN (ospf_default_metric, @@ -6326,7 +6383,9 @@ DEFUN (ospf_distance_source, "Distance value\n" "IP source prefix\n") { - ospf_distance_set (vty, argv[0], argv[1], NULL); + struct ospf *ospf = vty->index; + + ospf_distance_set (vty, ospf, argv[0], argv[1], NULL); return CMD_SUCCESS; } @@ -6339,7 +6398,10 @@ DEFUN (no_ospf_distance_source, "Distance value\n" "IP source prefix\n") { - ospf_distance_unset (vty, argv[0], argv[1], NULL); + struct ospf *ospf = vty->index; + + ospf_distance_unset (vty, ospf, argv[0], argv[1], NULL); + return CMD_SUCCESS; } @@ -6351,7 +6413,10 @@ DEFUN (ospf_distance_source_access_list, "IP source prefix\n" "Access list name\n") { - ospf_distance_set (vty, argv[0], argv[1], argv[2]); + struct ospf *ospf = vty->index; + + ospf_distance_set (vty, ospf, argv[0], argv[1], argv[2]); + return CMD_SUCCESS; } @@ -6364,7 +6429,10 @@ DEFUN (no_ospf_distance_source_access_list, "IP source prefix\n" "Access list name\n") { - ospf_distance_unset (vty, argv[0], argv[1], argv[2]); + struct ospf *ospf = vty->index; + + ospf_distance_unset (vty, ospf, argv[0], argv[1], argv[2]); + return CMD_SUCCESS; } @@ -6527,8 +6595,9 @@ DEFUN (show_ip_ospf_border_routers, "show all the ABR's and ASBR's\n" "for this area\n") { - struct ospf *ospf = ospf_top; + struct ospf *ospf; + ospf = ospf_lookup (); if (ospf == NULL) { vty_out (vty, "OSPF is not enabled%s", VTY_NEWLINE); @@ -6542,7 +6611,7 @@ DEFUN (show_ip_ospf_border_routers, } /* Show Network routes. - show_ip_ospf_route_network (vty, ospf_top->new_table); */ + show_ip_ospf_route_network (vty, ospf->new_table); */ /* Show Router routes. */ show_ip_ospf_route_router (vty, ospf->new_rtrs); @@ -6559,8 +6628,9 @@ DEFUN (show_ip_ospf_route, "OSPF information\n" "OSPF routing table\n") { - struct ospf *ospf = ospf_top; + struct ospf *ospf; + ospf = ospf_lookup (); if (ospf == NULL) { vty_out (vty, "OSPF is not enabled%s", VTY_NEWLINE); @@ -7032,13 +7102,13 @@ config_write_ospf_redistribute (struct vty *vty, struct ospf *ospf) { vty_out (vty, " redistribute %s", distribute_str[type]); if (ospf->dmetric[type].value >= 0) - vty_out (vty, " metric %d", ospf_top->dmetric[type].value); + vty_out (vty, " metric %d", ospf->dmetric[type].value); if (ospf->dmetric[type].type == EXTERNAL_METRIC_TYPE_1) vty_out (vty, " metric-type 1"); - if (ROUTEMAP_NAME (type)) - vty_out (vty, " route-map %s", ROUTEMAP_NAME (type)); + if (ROUTEMAP_NAME (ospf, type)) + vty_out (vty, " route-map %s", ROUTEMAP_NAME (ospf, type)); vty_out (vty, "%s", VTY_NEWLINE); } @@ -7083,8 +7153,9 @@ config_write_ospf_distribute (struct vty *vty, struct ospf *ospf) if (ospf->dmetric[DEFAULT_ROUTE].type == EXTERNAL_METRIC_TYPE_1) vty_out (vty, " metric-type 1"); - if (ROUTEMAP_NAME (DEFAULT_ROUTE)) - vty_out (vty, " route-map %s", ROUTEMAP_NAME (DEFAULT_ROUTE)); + if (ROUTEMAP_NAME (ospf, DEFAULT_ROUTE)) + vty_out (vty, " route-map %s", + ROUTEMAP_NAME (ospf, DEFAULT_ROUTE)); vty_out (vty, "%s", VTY_NEWLINE); } @@ -7134,10 +7205,11 @@ config_write_ospf_distance (struct vty *vty, struct ospf *ospf) int ospf_config_write (struct vty *vty) { - struct ospf *ospf = ospf_top; + struct ospf *ospf; listnode node; int write = 0; + ospf = ospf_lookup (); if (ospf != NULL) { /* `router ospf' print. */ @@ -7182,7 +7254,7 @@ ospf_config_write (struct vty *vty) config_write_ospf_redistribute (vty, ospf); /* passive-interface print. */ - for (node = listhead (ospf->iflist); node; nextnode (node)) + for (node = listhead (om->iflist); node; nextnode (node)) { struct interface *ifp = getdata (node); @@ -7642,5 +7714,3 @@ ospf_vty_init () /* Init zebra related vty commands. */ ospf_vty_zebra_init (); } - - |