2003-04-04 Paul Jakma <paul@dishone.st>
* Sync to Zebra CVS
* Fix lib/thread.h leak
* Fix small Opaque LSA leak
* Do not configure OSPF interfaces for secondary addresses
* vtysh fixes from Hasso
* Dave Watson's missing ntohs fix
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index fff6f65..4100860 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -181,13 +181,16 @@
"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 @@
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 @@
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 @@
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 @@
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 @@
{
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 @@
"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 @@
"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 @@
"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 @@
"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 @@
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 @@
"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 @@
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 @@
"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 @@
"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 @@
"Interface address\n"
"detail of all neighbors")
{
+ struct ospf *ospf;
struct ospf_interface *oi;
struct in_addr addr;
int ret;
@@ -3016,10 +3039,14 @@
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 @@
/* 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 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 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 @@
}
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 @@
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 @@
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 @@
}
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 @@
"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 @@
/* 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 @@
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 @@
/* `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 @@
/* `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 @@
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 @@
"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 @@
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 @@
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 @@
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 @@
"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 @@
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 @@
"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 @@
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 @@
"Route map reference\n"
"Pointer to route-map entries\n")
{
+ struct ospf *ospf = vty->index;
int source;
int metric = -1;
@@ -5423,11 +5460,11 @@
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 @@
"Route map reference\n"
"Pointer to route-map entries\n")
{
+ struct ospf *ospf = vty->index;
int source;
int type = -1;
@@ -5458,11 +5496,11 @@
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 @@
"Route map reference\n"
"Pointer to route-map entries\n")
{
+ struct ospf *ospf = vty->index;
int source;
/* Get distribute source. */
@@ -5484,11 +5523,11 @@
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 @@
"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 @@
"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 @@
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 @@
"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 @@
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 @@
"Route map reference\n"
"Pointer to route-map entries\n")
{
- if (argc == 1)
- ospf_routemap_set (DEFAULT_ROUTE, argv[0]);
- else
- ospf_routemap_unset (DEFAULT_ROUTE);
+ struct ospf *ospf = vty->index;
- return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ZEBRA, -1, -1);
+ if (argc == 1)
+ ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[0]);
+ else
+ ospf_routemap_unset (ospf, DEFAULT_ROUTE);
+
+ return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ZEBRA, -1, -1);
}
DEFUN (ospf_default_information_originate_type_metric_routemap,
@@ -5671,6 +5717,7 @@
"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 @@
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 @@
"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 @@
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 @@
"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 @@
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 @@
"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 @@
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 @@
"Route map reference\n"
"Pointer to route-map entries\n")
{
- if (argc == 1)
- ospf_routemap_set (DEFAULT_ROUTE, argv[0]);
- else
- ospf_routemap_unset (DEFAULT_ROUTE);
+ struct ospf *ospf = vty->index;
- return ospf_redistribute_default_set (DEFAULT_ORIGINATE_ALWAYS, -1, -1);
+ if (argc == 1)
+ ospf_routemap_set (ospf, DEFAULT_ROUTE, argv[0]);
+ else
+ ospf_routemap_unset (ospf, DEFAULT_ROUTE);
+
+ return ospf_redistribute_default_set (ospf, DEFAULT_ORIGINATE_ALWAYS, -1, -1);
}
DEFUN (ospf_default_information_originate_always_type_metric_routemap,
@@ -5860,6 +5915,7 @@
"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 @@
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 @@
"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 @@
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 @@
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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
}
/* 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 @@
"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 @@
{
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 @@
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 @@
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 @@
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 @@
/* Init zebra related vty commands. */
ospf_vty_zebra_init ();
}
-
-