|
version 1.1.1.1, 2012/02/21 17:26:12
|
version 1.1.1.3, 2013/07/21 23:54:40
|
|
Line 80 ospf_str2area_id (const char *str, struct in_addr *are
|
Line 80 ospf_str2area_id (const char *str, struct in_addr *are
|
| /* match "<0-4294967295>". */ |
/* match "<0-4294967295>". */ |
| else |
else |
| { |
{ |
| |
if (*str == '-') |
| |
return -1; |
| |
errno = 0; |
| ret = strtoul (str, &endptr, 10); |
ret = strtoul (str, &endptr, 10); |
| if (*endptr != '\0' || (ret == ULONG_MAX && errno == ERANGE)) | if (*endptr != '\0' || errno || ret > UINT32_MAX) |
| return -1; |
return -1; |
| |
|
| area_id->s_addr = htonl (ret); |
area_id->s_addr = htonl (ret); |
|
Line 93 ospf_str2area_id (const char *str, struct in_addr *are
|
Line 96 ospf_str2area_id (const char *str, struct in_addr *are
|
| |
|
| |
|
| static int |
static int |
| str2distribute_source (const char *str, int *source) |
|
| { |
|
| /* Sanity check. */ |
|
| if (str == NULL) |
|
| return 0; |
|
| |
|
| if (strncmp (str, "k", 1) == 0) |
|
| *source = ZEBRA_ROUTE_KERNEL; |
|
| else if (strncmp (str, "c", 1) == 0) |
|
| *source = ZEBRA_ROUTE_CONNECT; |
|
| else if (strncmp (str, "s", 1) == 0) |
|
| *source = ZEBRA_ROUTE_STATIC; |
|
| else if (strncmp (str, "r", 1) == 0) |
|
| *source = ZEBRA_ROUTE_RIP; |
|
| else if (strncmp (str, "b", 1) == 0) |
|
| *source = ZEBRA_ROUTE_BGP; |
|
| else |
|
| return 0; |
|
| |
|
| return 1; |
|
| } |
|
| |
|
| static int |
|
| str2metric (const char *str, int *metric) |
str2metric (const char *str, int *metric) |
| { |
{ |
| /* Sanity check. */ |
/* Sanity check. */ |
|
Line 1762 DEFUN (no_ospf_area_default_cost,
|
Line 1742 DEFUN (no_ospf_area_default_cost,
|
| struct ospf *ospf = vty->index; |
struct ospf *ospf = vty->index; |
| struct ospf_area *area; |
struct ospf_area *area; |
| struct in_addr area_id; |
struct in_addr area_id; |
| u_int32_t cost; |
|
| int format; |
int format; |
| struct prefix_ipv4 p; |
struct prefix_ipv4 p; |
| |
|
| VTY_GET_OSPF_AREA_ID_NO_BB ("default-cost", area_id, format, argv[0]); |
VTY_GET_OSPF_AREA_ID_NO_BB ("default-cost", area_id, format, argv[0]); |
| VTY_GET_INTEGER_RANGE ("stub default cost", cost, argv[1], 0, 16777215); | VTY_CHECK_INTEGER_RANGE ("stub default cost", argv[1], 0, OSPF_LS_INFINITY); |
| |
|
| area = ospf_area_lookup_by_area_id (ospf, area_id); |
area = ospf_area_lookup_by_area_id (ospf, area_id); |
| if (area == NULL) |
if (area == NULL) |
|
Line 1953 DEFUN (no_ospf_area_filter_list,
|
Line 1932 DEFUN (no_ospf_area_filter_list,
|
| struct ospf *ospf = vty->index; |
struct ospf *ospf = vty->index; |
| struct ospf_area *area; |
struct ospf_area *area; |
| struct in_addr area_id; |
struct in_addr area_id; |
| struct prefix_list *plist; |
|
| int format; |
int format; |
| |
|
| VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]); |
VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]); |
|
Line 1961 DEFUN (no_ospf_area_filter_list,
|
Line 1939 DEFUN (no_ospf_area_filter_list,
|
| if ((area = ospf_area_lookup_by_area_id (ospf, area_id)) == NULL) |
if ((area = ospf_area_lookup_by_area_id (ospf, area_id)) == NULL) |
| return CMD_SUCCESS; |
return CMD_SUCCESS; |
| |
|
| plist = prefix_list_lookup (AFI_IP, argv[1]); |
|
| if (strncmp (argv[2], "in", 2) == 0) |
if (strncmp (argv[2], "in", 2) == 0) |
| { |
{ |
| if (PREFIX_NAME_IN (area)) |
if (PREFIX_NAME_IN (area)) |
|
Line 2342 DEFUN (ospf_neighbor,
|
Line 2319 DEFUN (ospf_neighbor,
|
| if (argc > 1) |
if (argc > 1) |
| ospf_nbr_nbma_priority_set (ospf, nbr_addr, priority); |
ospf_nbr_nbma_priority_set (ospf, nbr_addr, priority); |
| if (argc > 2) |
if (argc > 2) |
| ospf_nbr_nbma_poll_interval_set (ospf, nbr_addr, priority); | ospf_nbr_nbma_poll_interval_set (ospf, nbr_addr, interval); |
| |
|
| return CMD_SUCCESS; |
return CMD_SUCCESS; |
| } |
} |
|
Line 2414 DEFUN (no_ospf_neighbor,
|
Line 2391 DEFUN (no_ospf_neighbor,
|
| { |
{ |
| struct ospf *ospf = vty->index; |
struct ospf *ospf = vty->index; |
| struct in_addr nbr_addr; |
struct in_addr nbr_addr; |
| int ret; |
|
| |
|
| VTY_GET_IPV4_ADDRESS ("neighbor address", nbr_addr, argv[0]); |
VTY_GET_IPV4_ADDRESS ("neighbor address", nbr_addr, argv[0]); |
| |
|
| ret = ospf_nbr_nbma_unset (ospf, nbr_addr); | (void)ospf_nbr_nbma_unset (ospf, nbr_addr); |
| |
|
| return CMD_SUCCESS; |
return CMD_SUCCESS; |
| } |
} |
|
Line 3761 show_as_external_lsa_detail (struct vty *vty, struct o
|
Line 3737 show_as_external_lsa_detail (struct vty *vty, struct o
|
| return 0; |
return 0; |
| } |
} |
| |
|
| /* N.B. This function currently seems to be unused. */ | #if 0 |
| static int |
static int |
| show_as_external_lsa_stdvty (struct ospf_lsa *lsa) |
show_as_external_lsa_stdvty (struct ospf_lsa *lsa) |
| { |
{ |
|
Line 3785 show_as_external_lsa_stdvty (struct ospf_lsa *lsa)
|
Line 3761 show_as_external_lsa_stdvty (struct ospf_lsa *lsa)
|
| |
|
| return 0; |
return 0; |
| } |
} |
| |
#endif |
| |
|
| /* Show AS-NSSA-LSA detail information. */ |
/* Show AS-NSSA-LSA detail information. */ |
| static int |
static int |
|
Line 4054 show_ip_ospf_database_summary (struct vty *vty, struct
|
Line 4031 show_ip_ospf_database_summary (struct vty *vty, struct
|
| static void |
static void |
| show_ip_ospf_database_maxage (struct vty *vty, struct ospf *ospf) |
show_ip_ospf_database_maxage (struct vty *vty, struct ospf *ospf) |
| { |
{ |
| struct listnode *node; | struct route_node *rn; |
| struct ospf_lsa *lsa; |
struct ospf_lsa *lsa; |
| |
|
| vty_out (vty, "%s MaxAge Link States:%s%s", |
vty_out (vty, "%s MaxAge Link States:%s%s", |
| VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE); |
VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE); |
| |
|
| for (ALL_LIST_ELEMENTS_RO (ospf->maxage_lsa, node, lsa)) | for (rn = route_top (ospf->maxage_lsa); rn; rn = route_next (rn)) |
| { |
{ |
| vty_out (vty, "Link type: %d%s", lsa->data->type, VTY_NEWLINE); | struct ospf_lsa *lsa; |
| vty_out (vty, "Link State ID: %s%s", | |
| inet_ntoa (lsa->data->id), VTY_NEWLINE); | if ((lsa = rn->info) != NULL) |
| vty_out (vty, "Advertising Router: %s%s", | { |
| inet_ntoa (lsa->data->adv_router), VTY_NEWLINE); | vty_out (vty, "Link type: %d%s", lsa->data->type, VTY_NEWLINE); |
| vty_out (vty, "LSA lock count: %d%s", lsa->lock, VTY_NEWLINE); | vty_out (vty, "Link State ID: %s%s", |
| vty_out (vty, "%s", VTY_NEWLINE); | inet_ntoa (lsa->data->id), VTY_NEWLINE); |
| | vty_out (vty, "Advertising Router: %s%s", |
| | inet_ntoa (lsa->data->adv_router), VTY_NEWLINE); |
| | vty_out (vty, "LSA lock count: %d%s", lsa->lock, VTY_NEWLINE); |
| | vty_out (vty, "%s", VTY_NEWLINE); |
| | } |
| } |
} |
| } |
} |
| |
|
|
Line 5422 DEFUN (ip_ospf_priority,
|
Line 5404 DEFUN (ip_ospf_priority,
|
| "Address of interface") |
"Address of interface") |
| { |
{ |
| struct interface *ifp = vty->index; |
struct interface *ifp = vty->index; |
| u_int32_t priority; | long priority; |
| struct route_node *rn; |
struct route_node *rn; |
| struct in_addr addr; |
struct in_addr addr; |
| int ret; |
int ret; |
|
Line 5824 DEFUN (ospf_redistribute_source_metric_type,
|
Line 5806 DEFUN (ospf_redistribute_source_metric_type,
|
| int metric = -1; |
int metric = -1; |
| |
|
| /* Get distribute source. */ |
/* Get distribute source. */ |
| if (!str2distribute_source (argv[0], &source)) | source = proto_redistnum(AFI_IP, argv[0]); |
| | if (source < 0 || source == ZEBRA_ROUTE_OSPF) |
| return CMD_WARNING; |
return CMD_WARNING; |
| |
|
| /* Get metric value. */ |
/* Get metric value. */ |
|
Line 5885 DEFUN (ospf_redistribute_source_type_metric,
|
Line 5868 DEFUN (ospf_redistribute_source_type_metric,
|
| int metric = -1; |
int metric = -1; |
| |
|
| /* Get distribute source. */ |
/* Get distribute source. */ |
| if (!str2distribute_source (argv[0], &source)) | source = proto_redistnum(AFI_IP, argv[0]); |
| | if (source < 0 || source == ZEBRA_ROUTE_OSPF) |
| return CMD_WARNING; |
return CMD_WARNING; |
| |
|
| /* Get metric value. */ |
/* Get metric value. */ |
|
Line 5949 DEFUN (ospf_redistribute_source_metric_routemap,
|
Line 5933 DEFUN (ospf_redistribute_source_metric_routemap,
|
| int metric = -1; |
int metric = -1; |
| |
|
| /* Get distribute source. */ |
/* Get distribute source. */ |
| if (!str2distribute_source (argv[0], &source)) | source = proto_redistnum(AFI_IP, argv[0]); |
| | if (source < 0 || source == ZEBRA_ROUTE_OSPF) |
| return CMD_WARNING; |
return CMD_WARNING; |
| |
|
| /* Get metric value. */ |
/* Get metric value. */ |
|
Line 5982 DEFUN (ospf_redistribute_source_type_routemap,
|
Line 5967 DEFUN (ospf_redistribute_source_type_routemap,
|
| int type = -1; |
int type = -1; |
| |
|
| /* Get distribute source. */ |
/* Get distribute source. */ |
| if (!str2distribute_source (argv[0], &source)) | source = proto_redistnum(AFI_IP, argv[0]); |
| | if (source < 0 || source == ZEBRA_ROUTE_OSPF) |
| return CMD_WARNING; |
return CMD_WARNING; |
| |
|
| /* Get metric value. */ |
/* Get metric value. */ |
|
Line 6010 DEFUN (ospf_redistribute_source_routemap,
|
Line 5996 DEFUN (ospf_redistribute_source_routemap,
|
| int source; |
int source; |
| |
|
| /* Get distribute source. */ |
/* Get distribute source. */ |
| if (!str2distribute_source (argv[0], &source)) | source = proto_redistnum(AFI_IP, argv[0]); |
| | if (source < 0 || source == ZEBRA_ROUTE_OSPF) |
| return CMD_WARNING; |
return CMD_WARNING; |
| |
|
| if (argc == 2) |
if (argc == 2) |
|
Line 6031 DEFUN (no_ospf_redistribute_source,
|
Line 6018 DEFUN (no_ospf_redistribute_source,
|
| struct ospf *ospf = vty->index; |
struct ospf *ospf = vty->index; |
| int source; |
int source; |
| |
|
| if (!str2distribute_source (argv[0], &source)) | source = proto_redistnum(AFI_IP, argv[0]); |
| | if (source < 0 || source == ZEBRA_ROUTE_OSPF) |
| return CMD_WARNING; |
return CMD_WARNING; |
| |
|
| ospf_routemap_unset (ospf, source); |
ospf_routemap_unset (ospf, source); |
|
Line 6050 DEFUN (ospf_distribute_list_out,
|
Line 6038 DEFUN (ospf_distribute_list_out,
|
| int source; |
int source; |
| |
|
| /* Get distribute source. */ |
/* Get distribute source. */ |
| if (!str2distribute_source (argv[1], &source)) | source = proto_redistnum(AFI_IP, argv[1]); |
| | if (source < 0 || source == ZEBRA_ROUTE_OSPF) |
| return CMD_WARNING; |
return CMD_WARNING; |
| |
|
| return ospf_distribute_list_out_set (ospf, source, argv[0]); |
return ospf_distribute_list_out_set (ospf, source, argv[0]); |
|
Line 6068 DEFUN (no_ospf_distribute_list_out,
|
Line 6057 DEFUN (no_ospf_distribute_list_out,
|
| struct ospf *ospf = vty->index; |
struct ospf *ospf = vty->index; |
| int source; |
int source; |
| |
|
| if (!str2distribute_source (argv[1], &source)) | source = proto_redistnum(AFI_IP, argv[1]); |
| | if (source < 0 || source == ZEBRA_ROUTE_OSPF) |
| return CMD_WARNING; |
return CMD_WARNING; |
| |
|
| return ospf_distribute_list_out_unset (ospf, source, argv[0]); |
return ospf_distribute_list_out_unset (ospf, source, argv[0]); |
|
Line 7031 DEFUN (ospf_max_metric_router_lsa_admin,
|
Line 7021 DEFUN (ospf_max_metric_router_lsa_admin,
|
| if (!CHECK_FLAG (area->stub_router_state, OSPF_AREA_IS_STUB_ROUTED)) |
if (!CHECK_FLAG (area->stub_router_state, OSPF_AREA_IS_STUB_ROUTED)) |
| ospf_router_lsa_update_area (area); |
ospf_router_lsa_update_area (area); |
| } |
} |
| |
|
| |
/* Allows for areas configured later to get the property */ |
| |
ospf->stub_router_admin_set = OSPF_STUB_ROUTER_ADMINISTRATIVE_SET; |
| |
|
| return CMD_SUCCESS; |
return CMD_SUCCESS; |
| } |
} |
| |
|
|
Line 7058 DEFUN (no_ospf_max_metric_router_lsa_admin,
|
Line 7052 DEFUN (no_ospf_max_metric_router_lsa_admin,
|
| ospf_router_lsa_update_area (area); |
ospf_router_lsa_update_area (area); |
| } |
} |
| } |
} |
| |
ospf->stub_router_admin_set = OSPF_STUB_ROUTER_ADMINISTRATIVE_UNSET; |
| return CMD_SUCCESS; |
return CMD_SUCCESS; |
| } |
} |
| |
|