return CMD_SUCCESS;
}
+ALIAS (no_neighbor_bfd,
+ no_neighbor_bfd_val_cmd,
+ NO_NEIGHBOR_CMD2 "bfd " BFD_CMD_DETECT_MULT_RANGE BFD_CMD_MIN_RX_RANGE BFD_CMD_MIN_TX_RANGE,
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Disables BFD support\n"
+ "Detect Multiplier\n"
+ "Required min receive interval\n"
+ "Desired min transmit interval\n")
+
void
bgp_bfd_init(void)
{
install_element (BGP_NODE, &neighbor_bfd_cmd);
install_element (BGP_NODE, &neighbor_bfd_param_cmd);
install_element (BGP_NODE, &no_neighbor_bfd_cmd);
+ install_element (BGP_NODE, &no_neighbor_bfd_val_cmd);
}
switch (entry->style)
{
case COMMUNITY_LIST_STANDARD:
- if (community_cmp (entry->u.com, arg))
+ if (entry->direct == direct && community_cmp (entry->u.com, arg))
return entry;
break;
case EXTCOMMUNITY_LIST_STANDARD:
- if (ecommunity_cmp (entry->u.ecom, arg))
+ if (entry->direct == direct && ecommunity_cmp (entry->u.ecom, arg))
return entry;
break;
case COMMUNITY_LIST_EXPANDED:
case EXTCOMMUNITY_LIST_EXPANDED:
- if (strcmp (entry->config, arg) == 0)
+ if (entry->direct == direct && strcmp (entry->config, arg) == 0)
return entry;
break;
default:
return 0;
}
-/* Unset community-list. When str is NULL, delete all of
- community-list entry belongs to the specified name. */
+/* Unset community-list */
int
community_list_unset (struct community_list_handler *ch,
const char *name, const char *str,
- int direct, int style)
+ int direct, int style, int delete_all)
{
struct community_entry *entry = NULL;
struct community_list *list;
struct community *com = NULL;
- regex_t *regex = NULL;
/* Lookup community list. */
list = community_list_lookup (ch, name, COMMUNITY_LIST_MASTER);
return COMMUNITY_LIST_ERR_CANT_FIND_LIST;
/* Delete all of entry belongs to this community-list. */
- if (!str)
+ if (delete_all)
{
community_list_delete (list);
route_map_notify_dependencies(name, RMAP_EVENT_CLIST_DELETED);
}
if (style == COMMUNITY_LIST_STANDARD)
- com = community_str2com (str);
- else
- regex = bgp_regcomp (str);
-
- if (! com && ! regex)
- return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+ {
+ if (str)
+ com = community_str2com (str);
+ }
if (com)
- entry = community_list_entry_lookup (list, com, direct);
+ {
+ entry = community_list_entry_lookup (list, com, direct);
+ community_free (com);
+ }
else
entry = community_list_entry_lookup (list, str, direct);
- if (com)
- community_free (com);
- if (regex)
- bgp_regex_free (regex);
-
if (!entry)
return COMMUNITY_LIST_ERR_CANT_FIND_LIST;
int
extcommunity_list_unset (struct community_list_handler *ch,
const char *name, const char *str,
- int direct, int style)
+ int direct, int style, int delete_all)
{
struct community_entry *entry = NULL;
struct community_list *list;
struct ecommunity *ecom = NULL;
- regex_t *regex = NULL;
/* Lookup extcommunity list. */
list = community_list_lookup (ch, name, EXTCOMMUNITY_LIST_MASTER);
return COMMUNITY_LIST_ERR_CANT_FIND_LIST;
/* Delete all of entry belongs to this extcommunity-list. */
- if (!str)
+ if (delete_all)
{
community_list_delete (list);
route_map_notify_dependencies(name, RMAP_EVENT_ECLIST_DELETED);
}
if (style == EXTCOMMUNITY_LIST_STANDARD)
- ecom = ecommunity_str2com (str, 0, 1);
- else
- regex = bgp_regcomp (str);
-
- if (! ecom && ! regex)
- return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+ {
+ if (str)
+ ecom = ecommunity_str2com (str, 0, 1);
+ }
if (ecom)
- entry = community_list_entry_lookup (list, ecom, direct);
+ {
+ entry = community_list_entry_lookup (list, ecom, direct);
+ ecommunity_free (&ecom);
+ }
else
entry = community_list_entry_lookup (list, str, direct);
- if (ecom)
- ecommunity_free (&ecom);
- if (regex)
- bgp_regex_free (regex);
-
if (!entry)
return COMMUNITY_LIST_ERR_CANT_FIND_LIST;
int style);
extern int community_list_unset (struct community_list_handler *ch,
const char *name, const char *str,
- int direct, int style);
+ int direct, int style, int delete_all);
extern int extcommunity_list_set (struct community_list_handler *ch,
const char *name, const char *str,
int direct, int style);
extern int extcommunity_list_unset (struct community_list_handler *ch,
const char *name, const char *str,
- int direct, int style);
+ int direct, int style, int delete_all);
extern struct community_list_master *
community_list_master_lookup (struct community_list_handler *, int);
{
const struct ecommunity *ecom1 = arg1;
const struct ecommunity *ecom2 = arg2;
+
+ if (ecom1 == NULL && ecom2 == NULL)
+ return 1;
+
+ if (ecom1 == NULL || ecom2 == NULL)
+ return 0;
return (ecom1->size == ecom2->size
&& memcmp (ecom1->val, ecom2->val, ecom1->size * ECOMMUNITY_SIZE) == 0);
"Value to start suppressing a route\n"
"Maximum duration to suppress a stable route\n")
+ALIAS (bgp_damp_unset,
+ bgp_damp_unset3_cmd,
+ "no bgp dampening <1-45>",
+ NO_STR
+ "BGP Specific commands\n"
+ "Enable route-flap dampening\n"
+ "Half-life time for the penalty\n")
+
DEFUN (show_ip_bgp_dampened_paths,
show_ip_bgp_dampened_paths_cmd,
"show ip bgp dampened-paths",
install_element (BGP_NODE, &bgp_damp_set3_cmd);
install_element (BGP_NODE, &bgp_damp_unset_cmd);
install_element (BGP_NODE, &bgp_damp_unset2_cmd);
+ install_element (BGP_NODE, &bgp_damp_unset3_cmd);
install_element (BGP_IPV4_NODE, &bgp_damp_set_cmd);
install_element (BGP_IPV4_NODE, &bgp_damp_set2_cmd);
install_element (BGP_IPV4_NODE, &bgp_damp_set3_cmd);
install_element (BGP_IPV4_NODE, &bgp_damp_unset_cmd);
install_element (BGP_IPV4_NODE, &bgp_damp_unset2_cmd);
+ install_element (BGP_IPV4_NODE, &bgp_damp_unset3_cmd);
}
void
return CMD_SUCCESS;
}
+ALIAS (no_bgp_config_type,
+ no_bgp_config_type_val_cmd,
+ "no bgp config-type (cisco|zebra)",
+ NO_STR
+ BGP_STR
+ "Configuration type\n"
+ "cisco\n"
+ "zebra\n")
+
DEFUN (no_synchronization,
no_synchronization_cmd,
"no synchronization",
}
ALIAS (no_bgp_cluster_id,
- no_bgp_cluster_id_arg_cmd,
+ no_bgp_cluster_id_ip_cmd,
"no bgp cluster-id A.B.C.D",
NO_STR
BGP_STR
"Configure Route-Reflector Cluster-id\n"
"Route-Reflector Cluster-id in IP address format\n")
+ALIAS (no_bgp_cluster_id,
+ no_bgp_cluster_id_decimal_cmd,
+ "no bgp cluster-id <1-4294967295>",
+ NO_STR
+ BGP_STR
+ "Configure Route-Reflector Cluster-id\n"
+ "Route-Reflector Cluster-id as 32 bit quantity\n")
+
DEFUN (bgp_confederation_identifier,
bgp_confederation_identifier_cmd,
"bgp confederation identifier " CMD_AS_RANGE,
return CMD_SUCCESS;
}
+ALIAS (no_bgp_default_subgroup_pkt_queue_max,
+ no_bgp_default_subgroup_pkt_queue_max_val_cmd,
+ "no bgp default subgroup-pkt-queue-max <20-100>",
+ NO_STR
+ "BGP specific commands\n"
+ "Configure BGP defaults\n"
+ "subgroup-pkt-queue-max\n"
+ "Configure subgroup packet queue max\n")
+
DEFUN (bgp_rr_allow_outbound_policy,
bgp_rr_allow_outbound_policy_cmd,
"bgp route-reflector allow-outbound-policy",
return CMD_SUCCESS;
}
+ALIAS (no_bgp_listen_limit,
+ no_bgp_listen_limit_val_cmd,
+ "no bgp listen limit " DYNAMIC_NEIGHBOR_LIMIT_RANGE,
+ NO_STR
+ "BGP specific commands\n"
+ "Configure BGP defaults\n"
+ "maximum number of BGP Dynamic Neighbors that can be created\n"
+ "Configure Dynamic Neighbors listen limit value\n")
/*
* Check if this listen range is already configured. Check for exact
return bgp_vty_return (vty, ret);
}
+ALIAS (no_neighbor_password,
+ no_neighbor_password_val_cmd,
+ NO_NEIGHBOR_CMD2 "password LINE",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Set a password\n"
+ "The password\n")
+
DEFUN (neighbor_activate,
neighbor_activate_cmd,
NEIGHBOR_CMD2 "activate",
return peer_timers_unset_vty (vty, argv[0]);
}
+ALIAS (no_neighbor_timers,
+ no_neighbor_timers_val_cmd,
+ NO_NEIGHBOR_CMD2 "timers <0-65535> <0-65535>",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "BGP per neighbor timers\n"
+ "Keepalive interval\n"
+ "Holdtime\n")
+
static int
peer_timers_connect_set_vty (struct vty *vty, const char *ip_str,
const char *time_str)
ALIAS (no_neighbor_maximum_prefix,
no_neighbor_maximum_prefix_threshold_cmd,
- NO_NEIGHBOR_CMD2 "maximum-prefix <1-4294967295> warning-only",
+ NO_NEIGHBOR_CMD2 "maximum-prefix <1-4294967295> <1-100>",
NO_STR
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
return bgp_vty_return (vty, ret);
}
+ALIAS (no_neighbor_allowas_in,
+ no_neighbor_allowas_in_val_cmd,
+ NO_NEIGHBOR_CMD2 "allowas-in <1-10>",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "allow local ASN appears in aspath attribute\n"
+ "Number of occurances of AS number\n")
+
DEFUN (neighbor_ttl_security,
neighbor_ttl_security_cmd,
NEIGHBOR_CMD2 "ttl-security hops <1-254>",
/* "bgp config-type" commands. */
install_element (CONFIG_NODE, &bgp_config_type_cmd);
- install_element (CONFIG_NODE, &no_bgp_config_type_cmd);
+ install_element (CONFIG_NODE, &no_bgp_config_type_val_cmd);
/* Dummy commands (Currently not supported) */
install_element (BGP_NODE, &no_synchronization_cmd);
install_element (BGP_NODE, &bgp_cluster_id_cmd);
install_element (BGP_NODE, &bgp_cluster_id32_cmd);
install_element (BGP_NODE, &no_bgp_cluster_id_cmd);
- install_element (BGP_NODE, &no_bgp_cluster_id_arg_cmd);
+ install_element (BGP_NODE, &no_bgp_cluster_id_ip_cmd);
+ install_element (BGP_NODE, &no_bgp_cluster_id_decimal_cmd);
/* "bgp confederation" commands. */
install_element (BGP_NODE, &bgp_confederation_identifier_cmd);
/* "bgp default subgroup-pkt-queue-max" commands. */
install_element (BGP_NODE, &bgp_default_subgroup_pkt_queue_max_cmd);
install_element (BGP_NODE, &no_bgp_default_subgroup_pkt_queue_max_cmd);
+ install_element (BGP_NODE, &no_bgp_default_subgroup_pkt_queue_max_val_cmd);
/* bgp ibgp-allow-policy-mods command */
install_element (BGP_NODE, &bgp_rr_allow_outbound_policy_cmd);
/* "bgp listen limit" commands. */
install_element (BGP_NODE, &bgp_listen_limit_cmd);
install_element (BGP_NODE, &no_bgp_listen_limit_cmd);
+ install_element (BGP_NODE, &no_bgp_listen_limit_val_cmd);
/* "bgp listen range" commands. */
install_element (BGP_NODE, &bgp_listen_range_cmd);
/* "neighbor password" commands. */
install_element (BGP_NODE, &neighbor_password_cmd);
install_element (BGP_NODE, &no_neighbor_password_cmd);
+ install_element (BGP_NODE, &no_neighbor_password_val_cmd);
/* "neighbor activate" commands. */
install_element (BGP_NODE, &neighbor_activate_cmd);
/* "neighbor timers" commands. */
install_element (BGP_NODE, &neighbor_timers_cmd);
install_element (BGP_NODE, &no_neighbor_timers_cmd);
+ install_element (BGP_NODE, &no_neighbor_timers_val_cmd);
/* "neighbor timers connect" commands. */
install_element (BGP_NODE, &neighbor_timers_connect_cmd);
install_element (BGP_NODE, &neighbor_allowas_in_cmd);
install_element (BGP_NODE, &neighbor_allowas_in_arg_cmd);
install_element (BGP_NODE, &no_neighbor_allowas_in_cmd);
+ install_element (BGP_NODE, &no_neighbor_allowas_in_val_cmd);
install_element (BGP_IPV4_NODE, &neighbor_allowas_in_cmd);
install_element (BGP_IPV4_NODE, &neighbor_allowas_in_arg_cmd);
install_element (BGP_IPV4_NODE, &no_neighbor_allowas_in_cmd);
+ install_element (BGP_IPV4_NODE, &no_neighbor_allowas_in_val_cmd);
install_element (BGP_IPV4M_NODE, &neighbor_allowas_in_cmd);
install_element (BGP_IPV4M_NODE, &neighbor_allowas_in_arg_cmd);
install_element (BGP_IPV4M_NODE, &no_neighbor_allowas_in_cmd);
+ install_element (BGP_IPV4M_NODE, &no_neighbor_allowas_in_val_cmd);
install_element (BGP_IPV6_NODE, &neighbor_allowas_in_cmd);
install_element (BGP_IPV6_NODE, &neighbor_allowas_in_arg_cmd);
install_element (BGP_IPV6_NODE, &no_neighbor_allowas_in_cmd);
+ install_element (BGP_IPV6_NODE, &no_neighbor_allowas_in_val_cmd);
install_element (BGP_IPV6M_NODE, &neighbor_allowas_in_cmd);
install_element (BGP_IPV6M_NODE, &neighbor_allowas_in_arg_cmd);
install_element (BGP_IPV6M_NODE, &no_neighbor_allowas_in_cmd);
+ install_element (BGP_IPV6M_NODE, &no_neighbor_allowas_in_val_cmd);
install_element (BGP_VPNV4_NODE, &neighbor_allowas_in_cmd);
install_element (BGP_VPNV4_NODE, &neighbor_allowas_in_arg_cmd);
install_element (BGP_VPNV4_NODE, &no_neighbor_allowas_in_cmd);
+ install_element (BGP_VPNV4_NODE, &no_neighbor_allowas_in_val_cmd);
/* address-family commands. */
install_element (BGP_NODE, &address_family_ipv4_cmd);
/* Communiyt-list entry delete. */
static int
community_list_unset_vty (struct vty *vty, int argc, const char **argv,
- int style)
+ int style, int delete_all)
{
int ret;
int direct = 0;
}
/* Unset community list. */
- ret = community_list_unset (bgp_clist, argv[0], str, direct, style);
+ ret = community_list_unset (bgp_clist, argv[0], str, direct, style, delete_all);
/* Free temporary community list string allocated by
argv_concat(). */
COMMUNITY_LIST_STR
"Community list number (standard)\n")
{
- return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD);
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD, 1);
+}
+
+DEFUN (no_ip_community_list_standard_direction,
+ no_ip_community_list_standard_direction_cmd,
+ "no ip community-list <1-99> (deny|permit)",
+ NO_STR
+ IP_STR
+ COMMUNITY_LIST_STR
+ "Community list number (standard)\n"
+ "Specify community to reject\n"
+ "Specify community to accept\n")
+{
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD, 0);
}
+
DEFUN (no_ip_community_list_expanded_all,
no_ip_community_list_expanded_all_cmd,
"no ip community-list <100-500>",
COMMUNITY_LIST_STR
"Community list number (expanded)\n")
{
- return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_EXPANDED);
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_EXPANDED, 1);
}
DEFUN (no_ip_community_list_name_standard_all,
"Add a standard community-list entry\n"
"Community list name\n")
{
- return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD);
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD, 1);
}
DEFUN (no_ip_community_list_name_expanded_all,
"Add an expanded community-list entry\n"
"Community list name\n")
{
- return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_EXPANDED);
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_EXPANDED, 1);
}
DEFUN (no_ip_community_list_standard,
"Specify community to accept\n"
COMMUNITY_VAL_STR)
{
- return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD);
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD, 0);
}
DEFUN (no_ip_community_list_expanded,
"Specify community to accept\n"
"An ordered list as a regular-expression\n")
{
- return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_EXPANDED);
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_EXPANDED, 0);
}
DEFUN (no_ip_community_list_name_standard,
"Specify community to accept\n"
COMMUNITY_VAL_STR)
{
- return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD);
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD, 0);
+}
+
+DEFUN (no_ip_community_list_name_standard_brief,
+ no_ip_community_list_name_standard_brief_cmd,
+ "no ip community-list standard WORD (deny|permit)",
+ NO_STR
+ IP_STR
+ COMMUNITY_LIST_STR
+ "Specify a standard community-list\n"
+ "Community list name\n"
+ "Specify community to reject\n"
+ "Specify community to accept\n")
+{
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_STANDARD, 0);
}
DEFUN (no_ip_community_list_name_expanded,
"Specify community to accept\n"
"An ordered list as a regular-expression\n")
{
- return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_EXPANDED);
+ return community_list_unset_vty (vty, argc, argv, COMMUNITY_LIST_EXPANDED, 0);
}
static void
static int
extcommunity_list_unset_vty (struct vty *vty, int argc, const char **argv,
- int style)
+ int style, int delete_all)
{
int ret;
int direct = 0;
}
/* Unset community list. */
- ret = extcommunity_list_unset (bgp_clist, argv[0], str, direct, style);
+ ret = extcommunity_list_unset (bgp_clist, argv[0], str, direct, style, delete_all);
/* Free temporary community list string allocated by
argv_concat(). */
EXTCOMMUNITY_LIST_STR
"Extended Community list number (standard)\n")
{
- return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD);
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD, 1);
+}
+
+DEFUN (no_ip_extcommunity_list_standard_direction,
+ no_ip_extcommunity_list_standard_direction_cmd,
+ "no ip extcommunity-list <1-99> (deny|permit)",
+ NO_STR
+ IP_STR
+ EXTCOMMUNITY_LIST_STR
+ "Extended Community list number (standard)\n"
+ "Specify community to reject\n"
+ "Specify community to accept\n")
+{
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD, 0);
}
DEFUN (no_ip_extcommunity_list_expanded_all,
EXTCOMMUNITY_LIST_STR
"Extended Community list number (expanded)\n")
{
- return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_EXPANDED);
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_EXPANDED, 1);
}
DEFUN (no_ip_extcommunity_list_name_standard_all,
"Specify standard extcommunity-list\n"
"Extended Community list name\n")
{
- return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD);
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD, 1);
}
DEFUN (no_ip_extcommunity_list_name_expanded_all,
"Specify expanded extcommunity-list\n"
"Extended Community list name\n")
{
- return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_EXPANDED);
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_EXPANDED, 1);
}
DEFUN (no_ip_extcommunity_list_standard,
"Specify community to accept\n"
EXTCOMMUNITY_VAL_STR)
{
- return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD);
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD, 0);
}
DEFUN (no_ip_extcommunity_list_expanded,
"Specify community to accept\n"
"An ordered list as a regular-expression\n")
{
- return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_EXPANDED);
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_EXPANDED, 0);
}
DEFUN (no_ip_extcommunity_list_name_standard,
"Specify community to accept\n"
EXTCOMMUNITY_VAL_STR)
{
- return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD);
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD, 0);
+}
+
+DEFUN (no_ip_extcommunity_list_name_standard_brief,
+ no_ip_extcommunity_list_name_standard_brief_cmd,
+ "no ip extcommunity-list standard WORD (deny|permit)",
+ NO_STR
+ IP_STR
+ EXTCOMMUNITY_LIST_STR
+ "Specify standard extcommunity-list\n"
+ "Extended Community list name\n"
+ "Specify community to reject\n"
+ "Specify community to accept\n")
+{
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_STANDARD, 0);
}
DEFUN (no_ip_extcommunity_list_name_expanded,
"Specify community to accept\n"
"An ordered list as a regular-expression\n")
{
- return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_EXPANDED);
+ return extcommunity_list_unset_vty (vty, argc, argv, EXTCOMMUNITY_LIST_EXPANDED, 0);
}
static void
install_element (CONFIG_NODE, &ip_community_list_name_standard2_cmd);
install_element (CONFIG_NODE, &ip_community_list_name_expanded_cmd);
install_element (CONFIG_NODE, &no_ip_community_list_standard_all_cmd);
+ install_element (CONFIG_NODE, &no_ip_community_list_standard_direction_cmd);
install_element (CONFIG_NODE, &no_ip_community_list_expanded_all_cmd);
install_element (CONFIG_NODE, &no_ip_community_list_name_standard_all_cmd);
install_element (CONFIG_NODE, &no_ip_community_list_name_expanded_all_cmd);
install_element (CONFIG_NODE, &no_ip_community_list_standard_cmd);
install_element (CONFIG_NODE, &no_ip_community_list_expanded_cmd);
install_element (CONFIG_NODE, &no_ip_community_list_name_standard_cmd);
+ install_element (CONFIG_NODE, &no_ip_community_list_name_standard_brief_cmd);
install_element (CONFIG_NODE, &no_ip_community_list_name_expanded_cmd);
install_element (VIEW_NODE, &show_ip_community_list_cmd);
install_element (VIEW_NODE, &show_ip_community_list_arg_cmd);
install_element (CONFIG_NODE, &ip_extcommunity_list_name_standard2_cmd);
install_element (CONFIG_NODE, &ip_extcommunity_list_name_expanded_cmd);
install_element (CONFIG_NODE, &no_ip_extcommunity_list_standard_all_cmd);
+ install_element (CONFIG_NODE, &no_ip_extcommunity_list_standard_direction_cmd);
install_element (CONFIG_NODE, &no_ip_extcommunity_list_expanded_all_cmd);
install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_standard_all_cmd);
install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_expanded_all_cmd);
install_element (CONFIG_NODE, &no_ip_extcommunity_list_standard_cmd);
install_element (CONFIG_NODE, &no_ip_extcommunity_list_expanded_cmd);
install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_standard_cmd);
+ install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_standard_brief_cmd);
install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_expanded_cmd);
install_element (VIEW_NODE, &show_ip_extcommunity_list_cmd);
install_element (VIEW_NODE, &show_ip_extcommunity_list_arg_cmd);
}
/* advertisement-interval */
- if (CHECK_FLAG (peer->config, PEER_CONFIG_ROUTEADV) &&
- ! peer_group_active (peer))
+ if (CHECK_FLAG (peer->config, PEER_CONFIG_ROUTEADV)
+ && peer->v_routeadv != BGP_DEFAULT_EBGP_ROUTEADV
+ && ! peer_group_active (peer))
{
vty_out (vty, " neighbor %s advertisement-interval %d%s",
addr, peer->v_routeadv, VTY_NEWLINE);
/* timers */
if (CHECK_FLAG (peer->config, PEER_CONFIG_TIMER)
+ && (peer->keepalive != BGP_DEFAULT_KEEPALIVE || peer->holdtime != BGP_DEFAULT_HOLDTIME)
&& ! peer_group_active (peer))
{
vty_out (vty, " neighbor %s timers %d %d%s", addr,
char *endptr = NULL; \
errno = 0; \
(V) = strtoul ((STR), &endptr, 10); \
- if (*(STR) == '-' || *endptr != '\0' || errno) \
+ if (*(STR) == '-') \
{ \
- vty_out (vty, "%% Invalid %s value%s", NAME, VTY_NEWLINE); \
+ vty_out (vty, "%% Invalid %s value (dash)%s", NAME, VTY_NEWLINE); \
+ return CMD_WARNING; \
+ } \
+ if (*endptr != '\0') \
+ { \
+ vty_out (vty, "%% Invalid %s value (%s)%s", NAME, endptr, VTY_NEWLINE); \
+ return CMD_WARNING; \
+ } \
+ if (errno) \
+ { \
+ vty_out (vty, "%% Invalid %s value (error %d)%s", NAME, errno, VTY_NEWLINE); \
return CMD_WARNING; \
} \
} while (0)
char *endptr = NULL; \
errno = 0; \
(V) = strtoull ((STR), &endptr, 10); \
- if (*(STR) == '-' || *endptr != '\0' || errno) \
+ if (*(STR) == '-') \
+ { \
+ vty_out (vty, "%% Invalid %s value (dash)%s", NAME, VTY_NEWLINE); \
+ return CMD_WARNING; \
+ } \
+ if (*endptr != '\0') \
+ { \
+ vty_out (vty, "%% Invalid %s value (%s)%s", NAME, endptr, VTY_NEWLINE); \
+ return CMD_WARNING; \
+ } \
+ if (errno) \
{ \
- vty_out (vty, "%% Invalid %s value%s", NAME, VTY_NEWLINE); \
+ vty_out (vty, "%% Invalid %s value (error %d)%s", NAME, errno, VTY_NEWLINE); \
return CMD_WARNING; \
} \
} while (0)
DEFUN (no_area_range,
no_area_range_cmd,
"no area A.B.C.D range X:X::X:X/M",
+ NO_STR
"OSPF area parameters\n"
OSPF6_AREA_ID_STR
"Configured address range\n"
- "Specify IPv6 prefix\n"
- )
+ "Specify IPv6 prefix\n")
{
int ret;
struct ospf6_area *oa;
return CMD_SUCCESS;
}
+ALIAS (no_area_range,
+ no_area_range_advertise_cmd,
+ "no area A.B.C.D range X:X::X:X/M (advertise|not-advertise)",
+ NO_STR
+ "OSPF area parameters\n"
+ OSPF6_AREA_ID_STR
+ "Configured address range\n"
+ "Specify IPv6 prefix\n")
+
+ALIAS (no_area_range,
+ no_area_range_cost_cmd,
+ "no area (A.B.C.D|<0-4294967295>) range X:X::X:X/M cost <0-16777215>",
+ NO_STR
+ "OSPF area parameters\n"
+ OSPF6_AREA_ID_STR
+ "Summarize routes matching address/mask (border routers only)\n"
+ "Area range prefix\n"
+ "User specified metric for this range\n"
+ "Advertised metric for this range\n")
+
+ALIAS (no_area_range,
+ no_area_range_advertise_cost_cmd,
+ "no area (A.B.C.D|<0-4294967295>) range X:X::X:X/M advertise cost <0-16777215>",
+ NO_STR
+ "OSPF area parameters\n"
+ OSPF6_AREA_ID_STR
+ "Summarize routes matching address/mask (border routers only)\n"
+ "Area range prefix\n"
+ "User specified metric for this range\n"
+ "Advertised metric for this range\n")
+
void
ospf6_area_config_write (struct vty *vty)
{
range = ospf6_route_next (range))
{
prefix2str (&range->prefix, buf, sizeof (buf));
- vty_out (vty, " area %s range %s%s", oa->name, buf, VNL);
+ vty_out (vty, " area %s range %s", oa->name, buf);
+
+ if (CHECK_FLAG (range->flag, OSPF6_ROUTE_DO_NOT_ADVERTISE))
+ {
+ vty_out (vty, " not-advertise");
+ }
+ else
+ {
+ // "advertise" is the default so we do not display it
+ if (range->path.u.cost_config != OSPF_AREA_RANGE_COST_UNSPEC)
+ vty_out (vty, " cost %d", range->path.u.cost_config);
+ }
+ vty_out (vty, "%s", VNL);
+
}
if (IS_AREA_STUB (oa))
{
install_element (OSPF6_NODE, &area_range_cost_cmd);
install_element (OSPF6_NODE, &area_range_advertise_cost_cmd);
install_element (OSPF6_NODE, &no_area_range_cmd);
+ install_element (OSPF6_NODE, &no_area_range_advertise_cmd);
+ install_element (OSPF6_NODE, &no_area_range_cost_cmd);
+ install_element (OSPF6_NODE, &no_area_range_advertise_cost_cmd);
install_element (OSPF6_NODE, &ospf6_area_stub_no_summary_cmd);
install_element (OSPF6_NODE, &ospf6_area_stub_cmd);
install_element (OSPF6_NODE, &no_ospf6_area_stub_no_summary_cmd);
return CMD_SUCCESS;
}
+ALIAS (no_auto_cost_reference_bandwidth,
+ no_auto_cost_reference_bandwidth_val_cmd,
+ "no auto-cost reference-bandwidth <1-4294967>",
+ NO_STR
+ "Calculate OSPF interface cost according to bandwidth\n"
+ "Use reference bandwidth method to assign OSPF cost\n"
+ "The reference bandwidth in terms of Mbits per second\n")
+
DEFUN (ipv6_ospf6_hellointerval,
ipv6_ospf6_hellointerval_cmd,
"ipv6 ospf6 hello-interval <1-65535>",
/* reference bandwidth commands */
install_element (OSPF6_NODE, &auto_cost_reference_bandwidth_cmd);
install_element (OSPF6_NODE, &no_auto_cost_reference_bandwidth_cmd);
+ install_element (OSPF6_NODE, &no_auto_cost_reference_bandwidth_val_cmd);
}
/* Clear the specified interface structure */
OSPF_SPF_MAX_HOLDTIME_DEFAULT);
}
+ALIAS (no_ospf6_timers_throttle_spf,
+ no_ospf6_timers_throttle_spf_val_cmd,
+ "no timers throttle spf <0-600000> <0-600000> <0-600000>",
+ NO_STR
+ "Adjust routing timers\n"
+ "Throttling adaptive timer\n"
+ "OSPF6 SPF timers\n"
+ "Delay (msec) from first change received till SPF calculation\n"
+ "Initial hold time (msec) between consecutive SPF calculations\n"
+ "Maximum hold time (msec)\n")
+
int
config_write_ospf6_debug_spf (struct vty *vty)
{
{
install_element (OSPF6_NODE, &ospf6_timers_throttle_spf_cmd);
install_element (OSPF6_NODE, &no_ospf6_timers_throttle_spf_cmd);
+ install_element (OSPF6_NODE, &no_ospf6_timers_throttle_spf_val_cmd);
}
return CMD_SUCCESS;
}
+ALIAS (no_ip_ospf_bfd,
+ no_ip_ospf_bfd_param_cmd,
+ "no ip ospf bfd " BFD_CMD_DETECT_MULT_RANGE BFD_CMD_MIN_RX_RANGE BFD_CMD_MIN_TX_RANGE,
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Enables BFD support\n"
+ "Detect Multiplier\n"
+ "Required min receive interval\n"
+ "Desired min transmit interval\n")
+
void
ospf_bfd_init(void)
{
install_element (INTERFACE_NODE, &ip_ospf_bfd_cmd);
install_element (INTERFACE_NODE, &ip_ospf_bfd_param_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_bfd_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_bfd_param_cmd);
}
{
if (OspfMplsTE.status == enabled)
{
- vty_out (vty, " mpls-te%s", VTY_NEWLINE);
- vty_out (vty, " mpls-te router-address %s%s",
+ vty_out (vty, " mpls-te%s", VTY_NEWLINE);
+ vty_out (vty, " mpls-te router-address %s%s",
inet_ntoa (OspfMplsTE.router_addr.value), VTY_NEWLINE);
}
return;
return CMD_SUCCESS;
}
+ALIAS (no_mpls_te,
+ no_mpls_te_val_cmd,
+ "no mpls-te on",
+ NO_STR
+ "Configure MPLS-TE parameters\n"
+ "Disable the MPLS-TE functionality\n")
+
DEFUN (mpls_te_router_addr,
mpls_te_router_addr_cmd,
"mpls-te router-address A.B.C.D",
install_element (OSPF_NODE, &mpls_te_cmd);
install_element (OSPF_NODE, &no_mpls_te_cmd);
+ install_element (OSPF_NODE, &no_mpls_te_val_cmd);
install_element (OSPF_NODE, &mpls_te_on_cmd);
install_element (OSPF_NODE, &mpls_te_router_addr_cmd);
ALIAS (no_ospf_area_vlink,
no_ospf_area_vlink_param1_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval)",
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_TIME_PARAM)
ALIAS (no_ospf_area_vlink,
no_ospf_area_vlink_param2_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval)",
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_TIME_PARAM
ALIAS (no_ospf_area_vlink,
no_ospf_area_vlink_param3_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval)",
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_TIME_PARAM
ALIAS (no_ospf_area_vlink,
no_ospf_area_vlink_param4_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
- "(hello-interval|retransmit-interval|transmit-delay|dead-interval)",
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+ "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_TIME_PARAM
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTHTYPE_ALL)
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_authtype_args_cmd,
+ "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+ "(authentication|) (message-digest|null)",
+ NO_STR
+ VLINK_HELPSTR_IPADDR
+ VLINK_HELPSTR_AUTHTYPE_ALL)
+
ALIAS (ospf_area_vlink,
ospf_area_vlink_authtype_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
ALIAS (no_ospf_area_vlink,
no_ospf_area_vlink_md5_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
- "(message-digest-key|) <1-255>",
+ "(message-digest-key|) <1-255> md5 KEY",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTH_MD5)
ALIAS (no_ospf_area_vlink,
no_ospf_area_vlink_authkey_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
- "(authentication-key|)",
+ "(authentication-key|) AUTH_KEY",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTH_SIMPLE)
VLINK_HELPSTR_AUTHTYPE_ALL
VLINK_HELPSTR_AUTH_SIMPLE)
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_authtype_args_authkey_cmd,
+ "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+ "(authentication|) (message-digest|null) "
+ "(authentication-key|) AUTH_KEY",
+ NO_STR
+ VLINK_HELPSTR_IPADDR
+ VLINK_HELPSTR_AUTHTYPE_ALL
+ VLINK_HELPSTR_AUTH_SIMPLE)
+
ALIAS (ospf_area_vlink,
ospf_area_vlink_authtype_authkey_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
no_ospf_area_vlink_authtype_authkey_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|) "
- "(authentication-key|)",
+ "(authentication-key|) AUTH_KEY",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTHTYPE_SIMPLE
VLINK_HELPSTR_AUTHTYPE_ALL
VLINK_HELPSTR_AUTH_MD5)
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_authtype_args_md5_cmd,
+ "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+ "(authentication|) (message-digest|null) "
+ "(message-digest-key|) <1-255> md5 KEY",
+ NO_STR
+ VLINK_HELPSTR_IPADDR
+ VLINK_HELPSTR_AUTHTYPE_ALL
+ VLINK_HELPSTR_AUTH_MD5)
+
ALIAS (ospf_area_vlink,
ospf_area_vlink_authtype_md5_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
no_ospf_area_vlink_authtype_md5_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|) "
- "(message-digest-key|)",
+ "(message-digest-key|) <1-255> md5 KEY",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTHTYPE_SIMPLE
return CMD_SUCCESS;
}
-DEFUN (no_ospf_area_nssa_no_summary,
+ALIAS (no_ospf_area_nssa,
no_ospf_area_nssa_no_summary_cmd,
- "no area (A.B.C.D|<0-4294967295>) nssa no-summary",
+ "no area (A.B.C.D|<0-4294967295>) nssa (translate-candidate|translate-never|translate-always|) {no-summary}",
NO_STR
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
"OSPF area ID as a decimal value\n"
"Configure OSPF area as nssa\n"
+ "Configure NSSA-ABR for translate election (default)\n"
+ "Configure NSSA-ABR to never translate\n"
+ "Configure NSSA-ABR to always translate\n"
"Do not inject inter-area routes into nssa\n")
-{
- struct ospf *ospf = vty->index;
- struct in_addr area_id;
- int format;
-
- if (!ospf)
- return CMD_SUCCESS;
-
- VTY_GET_OSPF_AREA_ID_NO_BB ("NSSA", area_id, format, argv[0]);
- ospf_area_no_summary_unset (ospf, area_id);
-
- return CMD_SUCCESS;
-}
DEFUN (ospf_area_default_cost,
ospf_area_default_cost_cmd,
"Adjust routing timers\n"
"Throttling adaptive timer\n"
"LSA delay between transmissions\n"
- NO_STR
+ "All LSA types\n"
"Delay (msec) between sending LSAs\n")
{
struct ospf *ospf = vty->index;
NO_STR
"Adjust routing timers\n"
"Throttling adaptive timer\n"
- "LSA delay between transmissions\n")
+ "LSA delay between transmissions\n"
+ "All LSA types\n")
{
struct ospf *ospf = vty->index;
ospf->min_ls_interval = OSPF_MIN_LS_INTERVAL;
return CMD_SUCCESS;
}
+ALIAS (no_ospf_timers_min_ls_interval,
+ no_ospf_timers_min_ls_interval_val_cmd,
+ "no timers throttle lsa all <0-5000>",
+ NO_STR
+ "Adjust routing timers\n"
+ "Throttling adaptive timer\n"
+ "LSA delay between transmissions\n"
+ "All LSA types\n"
+ "Delay (msec) between sending LSAs\n")
+
DEFUN (ospf_timers_min_ls_arrival,
ospf_timers_min_ls_arrival_cmd,
"timers lsa arrival <0-1000>",
return CMD_SUCCESS;
}
+ALIAS (no_ospf_timers_min_ls_arrival,
+ no_ospf_timers_min_ls_arrival_val_cmd,
+ "no timers lsa arrival <0-1000>",
+ NO_STR
+ "Adjust routing timers\n"
+ "Throttling link state advertisement delays\n"
+ "OSPF minimum arrival interval delay\n"
+ "Delay (msec) between accepted LSAs\n")
+
DEFUN (ospf_timers_throttle_spf,
ospf_timers_throttle_spf_cmd,
"timers throttle spf <0-600000> <0-600000> <0-600000>",
ALIAS (no_ospf_timers_throttle_spf,
no_ospf_timers_throttle_spf_val_cmd,
- "no timers throttle spf <0-60000> <0-60000> <0-60000>",
+ "no timers throttle spf <0-600000> <0-600000> <0-600000>",
NO_STR
"Adjust routing timers\n"
"Throttling adaptive timer\n"
"Dead Neighbor Polling interval\n"
"Seconds\n")
+ALIAS (no_ospf_neighbor,
+ no_ospf_neighbor_poll_interval_priority_cmd,
+ "no neighbor A.B.C.D poll-interval <1-65535> priority <0-255>",
+ NO_STR
+ NEIGHBOR_STR
+ "Neighbor IP address\n"
+ "Dead Neighbor Polling interval\n"
+ "Seconds\n"
+ "OSPF priority of non-broadcast neighbor\n"
+ "Priority\n")
+
ALIAS (no_ospf_neighbor,
no_ospf_neighbor_priority_pollinterval_cmd,
"no neighbor A.B.C.D priority <0-255> poll-interval <1-65535>",
"Dead Neighbor Polling interval\n"
"Seconds\n")
-
DEFUN (ospf_refresh_timer, ospf_refresh_timer_cmd,
"refresh timer <10-1800>",
"Adjust refresh parameters\n"
return CMD_SUCCESS;
}
+ALIAS (no_ospf_auto_cost_reference_bandwidth,
+ no_ospf_auto_cost_reference_bandwidth_val_cmd,
+ "no auto-cost reference-bandwidth <1-4294967>",
+ NO_STR
+ "Calculate OSPF interface cost according to bandwidth\n"
+ "Use reference bandwidth method to assign OSPF cost\n"
+ "The reference bandwidth in terms of Mbits per second\n")
+
DEFUN (ospf_write_multiplier,
ospf_write_multiplier_cmd,
"ospf write-multiplier <1-100>",
DEFUN (no_ospf_write_multiplier,
no_ospf_write_multiplier_cmd,
- "no ospf write-multiplier",
+ "no ospf write-multiplier <1-100>",
NO_STR
"OSPF specific commands\n"
- "Write multiplier\n")
+ "Write multiplier\n"
+ "Maximum number of interface serviced per write\n")
{
struct ospf *ospf = vty->index;
NO_STR
"Write multiplier\n")
+ALIAS (no_ospf_write_multiplier,
+ no_write_multiplier_val_cmd,
+ "no write-multiplier <1-100>",
+ NO_STR
+ "Write multiplier\n"
+ "Maximum number of interface serviced per write\n")
+
const char *ospf_abr_type_descr_str[] =
{
"Unknown",
* we need to find if we have any ip addresses underneath it that
* correspond to the associated type.
*/
+ if (params->auth_type == auth_type)
+ {
+ params->auth_type = OSPF_AUTH_NOTSET;
+ UNSET_IF_PARAM (params, auth_type);
+ }
+
for (rn = route_top (IF_OIFS_PARAMS (ifp)); rn; rn = route_next (rn))
{
if ((params = rn->info))
* We should remove all authentication types from
* the interface.
*/
+ if ((params->auth_type == OSPF_AUTH_NULL) ||
+ (params->auth_type == OSPF_AUTH_CRYPTOGRAPHIC) ||
+ (params->auth_type == OSPF_AUTH_SIMPLE))
+ {
+ params->auth_type = OSPF_AUTH_NOTSET;
+ UNSET_IF_PARAM (params, auth_type);
+ }
+
for (rn = route_top (IF_OIFS_PARAMS (ifp)); rn; rn = route_next (rn))
{
if ((params = rn->info))
{
+
if ((params->auth_type == OSPF_AUTH_NULL) ||
(params->auth_type == OSPF_AUTH_CRYPTOGRAPHIC) ||
(params->auth_type == OSPF_AUTH_SIMPLE))
ospf_if_update_params (ifp, addr);
}
-
memset (params->auth_simple, 0, OSPF_AUTH_SIMPLE_SIZE + 1);
strncpy ((char *) params->auth_simple, argv[0], OSPF_AUTH_SIMPLE_SIZE);
SET_IF_PARAM (params, auth_simple);
"The OSPF password (key)")
DEFUN (no_ip_ospf_authentication_key,
- no_ip_ospf_authentication_key_addr_cmd,
- "no ip ospf authentication-key A.B.C.D",
+ no_ip_ospf_authentication_key_authkey_addr_cmd,
+ "no ip ospf authentication-key AUTH_KEY A.B.C.D",
NO_STR
"IP Information\n"
"OSPF interface commands\n"
"Authentication password (key)\n"
- "Address of interface")
+ "The OSPF password (key)")
{
struct interface *ifp;
struct in_addr addr;
- int ret;
struct ospf_if_params *params;
+ int ret;
ifp = vty->index;
params = IF_DEF_PARAMS (ifp);
- if (argc == 1)
+ if (argc == 2)
{
- ret = inet_aton(argv[0], &addr);
+ ret = inet_aton(argv[1], &addr);
if (!ret)
{
vty_out (vty, "Please specify interface address by A.B.C.D%s",
return CMD_SUCCESS;
}
+ALIAS (no_ip_ospf_authentication_key,
+ no_ip_ospf_authentication_key_authkey_cmd,
+ "no ip ospf authentication-key AUTH_KEY",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Authentication password (key)\n")
+
ALIAS (no_ip_ospf_authentication_key,
no_ip_ospf_authentication_key_cmd,
"no ip ospf authentication-key",
"OSPF interface commands\n"
"Authentication password (key)\n")
+ALIAS (no_ip_ospf_authentication_key,
+ no_ospf_authentication_key_authkey_cmd,
+ "no ospf authentication-key AUTH_KEY",
+ NO_STR
+ "OSPF interface commands\n"
+ "Authentication password (key)\n"
+ "The OSPF password (key)\n")
+
+ALIAS (no_ip_ospf_authentication_key,
+ no_ospf_authentication_key_authkey_ip_cmd,
+ "no ospf authentication-key AUTH_KEY A.B.C.D",
+ NO_STR
+ "OSPF interface commands\n"
+ "Authentication password (key)\n"
+ "The OSPF password (key)\n"
+ "Address of interface")
+
DEFUN (ip_ospf_message_digest_key,
ip_ospf_message_digest_key_addr_cmd,
"ip ospf message-digest-key <1-255> md5 KEY A.B.C.D",
"Use MD5 algorithm\n"
"The OSPF password (key)")
+DEFUN (no_ip_ospf_message_digest_key_md5,
+ no_ip_ospf_message_digest_key_md5_addr_cmd,
+ "no ip ospf message-digest-key <1-255> md5 KEY A.B.C.D",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Message digest authentication password (key)\n"
+ "Key ID\n"
+ "Use MD5 algorithm\n"
+ "The OSPF password (key)"
+ "Address of interface")
+{
+ struct interface *ifp;
+ struct crypt_key *ck;
+ int key_id;
+ struct in_addr addr;
+ int ret;
+ struct ospf_if_params *params;
+
+ ifp = vty->index;
+ params = IF_DEF_PARAMS (ifp);
+
+ if (argc == 3)
+ {
+ ret = inet_aton(argv[2], &addr);
+ if (!ret)
+ {
+ vty_out (vty, "Please specify interface address by A.B.C.D%s",
+ VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ params = ospf_lookup_if_params (ifp, addr);
+ if (params == NULL)
+ return CMD_SUCCESS;
+ }
+
+ key_id = strtol (argv[0], NULL, 10);
+ ck = ospf_crypt_key_lookup (params->auth_crypt, key_id);
+ if (ck == NULL)
+ {
+ vty_out (vty, "OSPF: Key %d does not exist%s", key_id, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ ospf_crypt_key_delete (params->auth_crypt, key_id);
+
+ if (params != IF_DEF_PARAMS (ifp))
+ {
+ ospf_free_if_params (ifp, addr);
+ ospf_if_update_params (ifp, addr);
+ }
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_ip_ospf_message_digest_key_md5,
+ no_ip_ospf_message_digest_key_md5_cmd,
+ "no ip ospf message-digest-key <1-255> md5 KEY",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Message digest authentication password (key)\n"
+ "Key ID\n"
+ "Use MD5 algorithm\n"
+ "The OSPF password (key)")
+
DEFUN (no_ip_ospf_message_digest_key,
no_ip_ospf_message_digest_key_addr_cmd,
"no ip ospf message-digest-key <1-255> A.B.C.D",
"OSPF interface commands\n"
"Interval after which a neighbor is declared dead\n")
+ALIAS (no_ip_ospf_dead_interval,
+ no_ip_ospf_dead_interval_minimal_addr_cmd,
+ "no ip ospf dead-interval minimal hello-multiplier <1-10> A.B.C.D",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Interval after which a neighbor is declared dead\n"
+ "Minimal 1s dead-interval with fast sub-second hellos\n"
+ "Hello multiplier factor\n"
+ "Number of Hellos to send each second\n"
+ "Address of interface\n")
+
+ALIAS (no_ip_ospf_dead_interval,
+ no_ip_ospf_dead_interval_minimal_cmd,
+ "no ip ospf dead-interval minimal hello-multiplier <1-10>",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Interval after which a neighbor is declared dead\n"
+ "Minimal 1s dead-interval with fast sub-second hellos\n"
+ "Hello multiplier factor\n"
+ "Number of Hellos to send each second\n")
+
DEFUN (ip_ospf_hello_interval,
ip_ospf_hello_interval_addr_cmd,
"ip ospf hello-interval <1-65535> A.B.C.D",
ALIAS (no_ip_ospf_hello_interval,
no_ospf_hello_interval_cmd,
- "no ospf hello-interval",
+ "no ospf hello-interval <1-65535>",
NO_STR
"OSPF interface commands\n"
- "Time between HELLO packets\n")
+ "Time between HELLO packets\n"
+ "Seconds\n")
DEFUN (ip_ospf_network,
ip_ospf_network_cmd,
return CMD_SUCCESS;
}
+ALIAS (no_ip_ospf_network,
+ no_ip_ospf_network_val_cmd,
+ "no ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Network type\n"
+ "Specify OSPF broadcast multi-access network\n"
+ "Specify OSPF NBMA network\n"
+ "Specify OSPF point-to-multipoint network\n"
+ "Specify OSPF point-to-point network\n")
+
ALIAS (no_ip_ospf_network,
no_ospf_network_cmd,
"no ospf network",
"OSPF interface commands\n"
"Network type\n")
+ALIAS (no_ip_ospf_network,
+ no_ospf_network_val_cmd,
+ "no ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)",
+ NO_STR
+ "OSPF interface commands\n"
+ "Network type\n"
+ "Specify OSPF broadcast multi-access network\n"
+ "Specify OSPF NBMA network\n"
+ "Specify OSPF point-to-multipoint network\n"
+ "Specify OSPF point-to-point network\n")
+
DEFUN (ip_ospf_priority,
ip_ospf_priority_addr_cmd,
"ip ospf priority <0-255> A.B.C.D",
DEFUN (no_ip_ospf_priority,
no_ip_ospf_priority_addr_cmd,
- "no ip ospf priority A.B.C.D",
+ "no ip ospf priority <0-255> A.B.C.D",
NO_STR
"IP Information\n"
"OSPF interface commands\n"
"Router priority\n"
+ "Priority\n"
"Address of interface")
{
struct interface *ifp = vty->index;
ifp = vty->index;
params = IF_DEF_PARAMS (ifp);
- if (argc == 1)
+ if (argc == 2)
{
- ret = inet_aton(argv[0], &addr);
+ ret = inet_aton(argv[1], &addr);
if (!ret)
{
vty_out (vty, "Please specify interface address by A.B.C.D%s",
ALIAS (no_ip_ospf_priority,
no_ip_ospf_priority_cmd,
- "no ip ospf priority",
+ "no ip ospf priority <0-255>",
NO_STR
"IP Information\n"
"OSPF interface commands\n"
- "Router priority\n")
+ "Router priority\n"
+ "Priority\n")
ALIAS (no_ip_ospf_priority,
no_ospf_priority_cmd,
- "no ospf priority",
+ "no ospf priority <0-255>",
NO_STR
"OSPF interface commands\n"
- "Router priority\n")
+ "Router priority\n"
+ "Priority\n")
DEFUN (ip_ospf_retransmit_interval,
struct in_addr addr;
int ret;
struct ospf_if_params *params;
+ int addr_index;
ifp = vty->index;
params = IF_DEF_PARAMS (ifp);
- if (argc == 1)
+ if (argc >= 1)
{
- ret = inet_aton(argv[0], &addr);
+ if (argc == 1)
+ addr_index = 0;
+ else
+ addr_index = 1;
+
+ ret = inet_aton(argv[addr_index], &addr);
if (!ret)
{
vty_out (vty, "Please specify interface address by A.B.C.D%s",
return CMD_SUCCESS;
}
+ALIAS (no_ip_ospf_retransmit_interval,
+ no_ip_ospf_retransmit_interval_sec_addr_cmd,
+ "no ip ospf retransmit-interval <3-65535> A.B.C.D",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Time between retransmitting lost link state advertisements\n"
+ "Seconds\n"
+ "Address of interface")
+
ALIAS (no_ip_ospf_retransmit_interval,
no_ip_ospf_retransmit_interval_cmd,
"no ip ospf retransmit-interval",
"OSPF interface commands\n"
"Time between retransmitting lost link state advertisements\n")
+DEFUN (no_ip_ospf_retransmit_interval_sec,
+ no_ip_ospf_retransmit_interval_sec_cmd,
+ "no ip ospf retransmit-interval <3-65535>",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Time between retransmitting lost link state advertisements\n"
+ "Seconds\n")
+{
+ struct interface *ifp = vty->index;
+ struct ospf_if_params *params;
+
+ ifp = vty->index;
+ params = IF_DEF_PARAMS (ifp);
+
+ UNSET_IF_PARAM (params, retransmit_interval);
+ params->retransmit_interval = OSPF_RETRANSMIT_INTERVAL_DEFAULT;
+
+ return CMD_SUCCESS;
+}
+
+
DEFUN (ip_ospf_transmit_delay,
ip_ospf_transmit_delay_addr_cmd,
"ip ospf transmit-delay <1-65535> A.B.C.D",
struct in_addr addr;
int ret;
struct ospf_if_params *params;
+ int addr_index;
ifp = vty->index;
params = IF_DEF_PARAMS (ifp);
- if (argc == 1)
+ if (argc >= 1)
{
- ret = inet_aton(argv[0], &addr);
+ if (argc == 1)
+ addr_index = 0;
+ else
+ addr_index = 1;
+
+ ret = inet_aton(argv[addr_index], &addr);
if (!ret)
{
vty_out (vty, "Please specify interface address by A.B.C.D%s",
return CMD_SUCCESS;
}
+ALIAS (no_ip_ospf_transmit_delay,
+ no_ip_ospf_transmit_delay_sec_addr_cmd,
+ "no ip ospf transmit-delay <1-65535> A.B.C.D",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Link state transmit delay\n"
+ "Seconds\n"
+ "Address of interface")
+
ALIAS (no_ip_ospf_transmit_delay,
no_ip_ospf_transmit_delay_cmd,
"no ip ospf transmit-delay",
"OSPF interface commands\n"
"Link state transmit delay\n")
+DEFUN (no_ip_ospf_transmit_delay_sec,
+ no_ip_ospf_transmit_delay_sec_cmd,
+ "no ip ospf transmit-delay <1-65535>",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Link state transmit delay\n"
+ "Seconds\n"
+ "Address of interface")
+{
+ struct interface *ifp = vty->index;
+ struct ospf_if_params *params;
+
+ ifp = vty->index;
+ params = IF_DEF_PARAMS (ifp);
+
+ UNSET_IF_PARAM (params, transmit_delay);
+ params->transmit_delay = OSPF_TRANSMIT_DELAY_DEFAULT;
+
+ return CMD_SUCCESS;
+}
+
DEFUN (ip_ospf_area,
ip_ospf_area_cmd,
"ip ospf area (A.B.C.D|<0-4294967295>)",
struct ospf_if_params *params;
u_short instance = 0;
- if (argc)
- VTY_GET_INTEGER ("Instance", instance, argv[0]);
-
if ((ospf = ospf_lookup_instance (instance)) == NULL)
return CMD_SUCCESS;
}
ALIAS (no_ip_ospf_area,
+ no_ip_ospf_area_val_cmd,
+ "no ip ospf area (A.B.C.D|<0-4294967295>)",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Disable OSPF on this interface\n"
+ "OSPF area ID in IP address format\n"
+ "OSPF area ID as a decimal value\n")
+
+DEFUN (no_ip_ospf_instance_area,
no_ip_ospf_instance_area_cmd,
"no ip ospf <1-65535> area",
NO_STR
"OSPF interface commands\n"
"Instance ID\n"
"Disable OSPF on this interface\n")
+{
+ struct interface *ifp = vty->index;
+ struct ospf *ospf;
+ struct ospf_if_params *params;
+ u_short instance = 0;
+
+ VTY_GET_INTEGER ("Instance", instance, argv[0]);
+
+ if ((ospf = ospf_lookup_instance (instance)) == NULL)
+ return CMD_SUCCESS;
+
+ params = IF_DEF_PARAMS (ifp);
+ if (!OSPF_IF_PARAM_CONFIGURED(params, if_area))
+ {
+ vty_out (vty, "Can't find specified inteface area configuration.%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ ospf_interface_unset (ifp);
+ ospf->if_ospf_cli_count--;
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_ip_ospf_instance_area,
+ no_ip_ospf_instance_area_val_cmd,
+ "no ip ospf <1-65535> area (A.B.C.D|<0-4294967295>)",
+ NO_STR
+ "IP Information\n"
+ "OSPF interface commands\n"
+ "Instance ID\n"
+ "Disable OSPF on this interface\n"
+ "OSPF area ID in IP address format\n"
+ "OSPF area ID as a decimal value\n")
DEFUN (ospf_redistribute_source,
ospf_redistribute_source_cmd,
DEFUN (no_ospf_redistribute_source,
no_ospf_redistribute_source_cmd,
- "no redistribute " QUAGGA_REDIST_STR_OSPFD,
+ "no redistribute " QUAGGA_REDIST_STR_OSPFD
+ " {metric <0-16777214>|metric-type (1|2)|route-map WORD}",
NO_STR
REDIST_STR
- QUAGGA_REDIST_HELP_STR_OSPFD)
+ QUAGGA_REDIST_HELP_STR_OSPFD
+ "Metric for redistributed routes\n"
+ "OSPF default metric\n"
+ "OSPF exterior metric type for redistributed routes\n"
+ "Set OSPF External Type 1 metrics\n"
+ "Set OSPF External Type 2 metrics\n"
+ "Route map reference\n"
+ "Pointer to route-map entries\n")
{
struct ospf *ospf = vty->index;
int source;
DEFUN (no_ospf_default_information_originate,
no_ospf_default_information_originate_cmd,
- "no default-information originate",
+ "no default-information originate"
+ "{always|metric <0-16777214>|metric-type (1|2)|route-map WORD}",
NO_STR
"Control distribution of default information\n"
- "Distribute a default route\n")
+ "Distribute a default route\n"
+ "Always advertise default route\n"
+ "OSPF default metric\n"
+ "OSPF metric\n"
+ "OSPF metric type for default routes\n"
+ "Set OSPF External Type 1 metrics\n"
+ "Set OSPF External Type 2 metrics\n"
+ "Route map reference\n"
+ "Pointer to route-map entries\n")
{
struct ospf *ospf = vty->index;
struct prefix_ipv4 p;
DEFUN (no_ospf_distance_ospf,
no_ospf_distance_ospf_cmd,
- "no distance ospf {intra-area|inter-area|external}",
+ "no distance ospf {intra-area <1-255>|inter-area <1-255>|external <1-255>}",
NO_STR
"Define an administrative distance\n"
"OSPF Administrative distance\n"
- "OSPF Distance\n"
"Intra-area routes\n"
+ "Distance for intra-area routes\n"
"Inter-area routes\n"
- "External routes\n")
+ "Distance for inter-area routes\n"
+ "External routes\n"
+ "Distance for external routes\n")
{
struct ospf *ospf = vty->index;
DEFUN (ospf_distance_ospf,
ospf_distance_ospf_cmd,
"distance ospf "
- "{intra-area <1-255>|inter-area <1-255>|external <1-255>}",
+ "(intra-area <1-255>|inter-area <1-255>|external <1-255>)",
"Define an administrative distance\n"
"OSPF Administrative distance\n"
"Intra-area routes\n"
DEFUN (no_ospf_max_metric_router_lsa_startup,
no_ospf_max_metric_router_lsa_startup_cmd,
- "no max-metric router-lsa on-startup",
+ "no max-metric router-lsa on-startup <5-86400>",
NO_STR
"OSPF maximum / infinite-distance metric\n"
"Advertise own Router-LSA with infinite distance (stub router)\n"
- "Automatically advertise stub Router-LSA on startup of OSPF\n")
+ "Automatically advertise stub Router-LSA on startup of OSPF\n"
+ "Time (seconds) to advertise self as stub-router\n")
{
struct listnode *ln;
struct ospf_area *area;
DEFUN (no_ospf_max_metric_router_lsa_shutdown,
no_ospf_max_metric_router_lsa_shutdown_cmd,
- "no max-metric router-lsa on-shutdown",
+ "no max-metric router-lsa on-shutdown <5-100>",
NO_STR
"OSPF maximum / infinite-distance metric\n"
"Advertise own Router-LSA with infinite distance (stub router)\n"
- "Advertise stub-router prior to full shutdown of OSPF\n")
+ "Advertise stub-router prior to full shutdown of OSPF\n"
+ "Time (seconds) to wait till full shutdown\n")
{
struct ospf *ospf = vty->index;
install_element (INTERFACE_NODE, &no_ip_ospf_authentication_cmd);
install_element (INTERFACE_NODE, &ip_ospf_authentication_key_addr_cmd);
install_element (INTERFACE_NODE, &ip_ospf_authentication_key_cmd);
- install_element (INTERFACE_NODE, &no_ip_ospf_authentication_key_addr_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_authentication_key_authkey_addr_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_authentication_key_authkey_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_authentication_key_cmd);
/* "ip ospf message-digest-key" commands. */
install_element (INTERFACE_NODE, &ip_ospf_message_digest_key_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_message_digest_key_addr_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_message_digest_key_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_message_digest_key_md5_addr_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_message_digest_key_md5_cmd);
/* "ip ospf cost" commands. */
install_element (INTERFACE_NODE, &ip_ospf_cost_u32_inet4_cmd);
/* "ip ospf network" commands. */
install_element (INTERFACE_NODE, &ip_ospf_network_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_network_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_network_val_cmd);
/* "ip ospf priority" commands. */
install_element (INTERFACE_NODE, &ip_ospf_priority_addr_cmd);
install_element (INTERFACE_NODE, &ip_ospf_priority_cmd);
- install_element (INTERFACE_NODE, &no_ip_ospf_priority_addr_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_priority_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_priority_addr_cmd);
/* "ip ospf retransmit-interval" commands. */
install_element (INTERFACE_NODE, &ip_ospf_retransmit_interval_addr_cmd);
install_element (INTERFACE_NODE, &ip_ospf_retransmit_interval_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_retransmit_interval_addr_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_retransmit_interval_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_retransmit_interval_sec_addr_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_retransmit_interval_sec_cmd);
/* "ip ospf transmit-delay" commands. */
install_element (INTERFACE_NODE, &ip_ospf_transmit_delay_addr_cmd);
install_element (INTERFACE_NODE, &ip_ospf_transmit_delay_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_addr_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_sec_addr_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_sec_cmd);
/* "ip ospf area" commands. */
install_element (INTERFACE_NODE, &ip_ospf_area_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_area_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_area_val_cmd);
install_element (INTERFACE_NODE, &ip_ospf_instance_area_cmd);
install_element (INTERFACE_NODE, &no_ip_ospf_instance_area_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_instance_area_val_cmd);
/* These commands are compatibitliy for previous version. */
install_element (INTERFACE_NODE, &ospf_authentication_key_cmd);
install_element (INTERFACE_NODE, &no_ospf_authentication_key_cmd);
+ install_element (INTERFACE_NODE, &no_ospf_authentication_key_authkey_cmd);
+ install_element (INTERFACE_NODE, &no_ospf_authentication_key_authkey_ip_cmd);
install_element (INTERFACE_NODE, &ospf_message_digest_key_cmd);
install_element (INTERFACE_NODE, &no_ospf_message_digest_key_cmd);
install_element (INTERFACE_NODE, &ospf_cost_u32_cmd);
install_element (INTERFACE_NODE, &no_ospf_cost_inet4_cmd);
install_element (INTERFACE_NODE, &ospf_dead_interval_cmd);
install_element (INTERFACE_NODE, &no_ospf_dead_interval_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_dead_interval_minimal_addr_cmd);
+ install_element (INTERFACE_NODE, &no_ip_ospf_dead_interval_minimal_cmd);
install_element (INTERFACE_NODE, &ospf_hello_interval_cmd);
install_element (INTERFACE_NODE, &no_ospf_hello_interval_cmd);
install_element (INTERFACE_NODE, &ospf_network_cmd);
install_element (INTERFACE_NODE, &no_ospf_network_cmd);
+ install_element (INTERFACE_NODE, &no_ospf_network_val_cmd);
install_element (INTERFACE_NODE, &ospf_priority_cmd);
install_element (INTERFACE_NODE, &no_ospf_priority_cmd);
install_element (INTERFACE_NODE, &ospf_retransmit_interval_cmd);
install_element (OSPF_NODE, &no_ospf_area_vlink_param4_cmd);
install_element (OSPF_NODE, &ospf_area_vlink_authtype_args_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_authtype_args_cmd);
install_element (OSPF_NODE, &ospf_area_vlink_authtype_cmd);
install_element (OSPF_NODE, &no_ospf_area_vlink_authtype_cmd);
install_element (OSPF_NODE, &no_ospf_area_vlink_authkey_cmd);
install_element (OSPF_NODE, &ospf_area_vlink_authtype_args_authkey_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_authtype_args_authkey_cmd);
install_element (OSPF_NODE, &ospf_area_vlink_authtype_authkey_cmd);
install_element (OSPF_NODE, &no_ospf_area_vlink_authtype_authkey_cmd);
install_element (OSPF_NODE, &ospf_area_vlink_authtype_args_md5_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_authtype_args_md5_cmd);
install_element (OSPF_NODE, &ospf_area_vlink_authtype_md5_cmd);
install_element (OSPF_NODE, &no_ospf_area_vlink_authtype_md5_cmd);
/* LSA timers commands */
install_element (OSPF_NODE, &ospf_timers_min_ls_interval_cmd);
install_element (OSPF_NODE, &no_ospf_timers_min_ls_interval_cmd);
+ install_element (OSPF_NODE, &no_ospf_timers_min_ls_interval_val_cmd);
install_element (OSPF_NODE, &ospf_timers_min_ls_arrival_cmd);
install_element (OSPF_NODE, &no_ospf_timers_min_ls_arrival_cmd);
+ install_element (OSPF_NODE, &no_ospf_timers_min_ls_arrival_val_cmd);
install_element (OSPF_NODE, &ospf_timers_lsa_cmd);
install_element (OSPF_NODE, &no_ospf_timers_lsa_cmd);
install_element (OSPF_NODE, &no_ospf_timers_lsa_val_cmd);
/* reference bandwidth commands */
install_element (OSPF_NODE, &ospf_auto_cost_reference_bandwidth_cmd);
install_element (OSPF_NODE, &no_ospf_auto_cost_reference_bandwidth_cmd);
+ install_element (OSPF_NODE, &no_ospf_auto_cost_reference_bandwidth_val_cmd);
/* "neighbor" commands. */
install_element (OSPF_NODE, &ospf_neighbor_cmd);
install_element (OSPF_NODE, &no_ospf_neighbor_cmd);
install_element (OSPF_NODE, &no_ospf_neighbor_priority_cmd);
install_element (OSPF_NODE, &no_ospf_neighbor_poll_interval_cmd);
+ install_element (OSPF_NODE, &no_ospf_neighbor_poll_interval_priority_cmd);
+ install_element (OSPF_NODE, &no_ospf_neighbor_priority_pollinterval_cmd);
/* write multiplier commands */
install_element (OSPF_NODE, &ospf_write_multiplier_cmd);
install_element (OSPF_NODE, &no_ospf_write_multiplier_cmd);
install_element (OSPF_NODE, &write_multiplier_cmd);
install_element (OSPF_NODE, &no_write_multiplier_cmd);
+ install_element (OSPF_NODE, &no_write_multiplier_val_cmd);
/* Init interface related vty commands. */
ospf_vty_if_init ();
rid.prefixlen = 0;
rid.family = AF_INET;
- if (argc > 0)
- VTY_GET_INTEGER ("VRF ID", vrf_id, argv[0]);
+ if (argc > 1)
+ VTY_GET_INTEGER ("VRF ID", vrf_id, argv[1]);
router_id_set (&rid, vrf_id);
return CMD_SUCCESS;
}
+ALIAS (no_router_id,
+ no_router_id_val_cmd,
+ "no router-id A.B.C.D",
+ NO_STR
+ "Remove the manually configured router-id\n"
+ "IP address to use for router-id\n")
+
ALIAS (no_router_id,
no_router_id_vrf_cmd,
- "no router-id " VRF_CMD_STR,
+ "no router-id A.B.C.D " VRF_CMD_STR,
NO_STR
"Remove the manually configured router-id\n"
+ "IP address to use for router-id\n"
VRF_CMD_HELP_STR)
static int
install_element (CONFIG_NODE, &router_id_cmd);
install_element (CONFIG_NODE, &no_router_id_cmd);
install_element (CONFIG_NODE, &router_id_vrf_cmd);
+ install_element (CONFIG_NODE, &no_router_id_val_cmd);
install_element (CONFIG_NODE, &no_router_id_vrf_cmd);
}
return CMD_SUCCESS;
}
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_val_nortaddr_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (off-link|) (no-autoconfig|) (router-address|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Valid lifetime in seconds\n"
+ "Infinite valid lifetime\n"
+ "Preferred lifetime in seconds\n"
+ "Infinite preferred lifetime\n"
+ "Do not use prefix for onlink determination\n"
+ "Do not use prefix for autoconfiguration\n"
+ "Set Router Address flag\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_val_rev_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (no-autoconfig|) (off-link|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Valid lifetime in seconds\n"
+ "Infinite valid lifetime\n"
+ "Preferred lifetime in seconds\n"
+ "Infinite preferred lifetime\n"
+ "Do not use prefix for autoconfiguration\n"
+ "Do not use prefix for onlink determination\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_val_rev_rtaddr_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (no-autoconfig|) (off-link|) (router-address|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Valid lifetime in seconds\n"
+ "Infinite valid lifetime\n"
+ "Preferred lifetime in seconds\n"
+ "Infinite preferred lifetime\n"
+ "Do not use prefix for autoconfiguration\n"
+ "Do not use prefix for onlink determination\n"
+ "Set Router Address flag\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_val_noauto_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (no-autoconfig|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Valid lifetime in seconds\n"
+ "Infinite valid lifetime\n"
+ "Preferred lifetime in seconds\n"
+ "Infinite preferred lifetime\n"
+ "Do not use prefix for autoconfiguration")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_val_offlink_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (off-link|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Valid lifetime in seconds\n"
+ "Infinite valid lifetime\n"
+ "Preferred lifetime in seconds\n"
+ "Infinite preferred lifetime\n"
+ "Do not use prefix for onlink determination\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_val_rtaddr_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (router-address|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Valid lifetime in seconds\n"
+ "Infinite valid lifetime\n"
+ "Preferred lifetime in seconds\n"
+ "Infinite preferred lifetime\n"
+ "Set Router Address flag\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_val_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Valid lifetime in seconds\n"
+ "Infinite valid lifetime\n"
+ "Preferred lifetime in seconds\n"
+ "Infinite preferred lifetime\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_noval_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (no-autoconfig|) (off-link|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Do not use prefix for autoconfiguration\n"
+ "Do not use prefix for onlink determination\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_noval_rev_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (off-link|) (no-autoconfig|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Do not use prefix for onlink determination\n"
+ "Do not use prefix for autoconfiguration\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_noval_noauto_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (no-autoconfig|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Do not use prefix for autoconfiguration\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_noval_offlink_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (off-link|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Do not use prefix for onlink determination\n")
+
+ALIAS (no_ipv6_nd_prefix,
+ no_ipv6_nd_prefix_noval_rtaddr_cmd,
+ "no ipv6 nd prefix X:X::X:X/M (router-address|)",
+ NO_STR
+ "Interface IPv6 config commands\n"
+ "Neighbor discovery\n"
+ "Prefix information\n"
+ "IPv6 prefix\n"
+ "Set Router Address flag\n")
+
DEFUN (ipv6_nd_router_preference,
ipv6_nd_router_preference_cmd,
"ipv6 nd router-preference (high|medium|low)",
install_element (INTERFACE_NODE, &ipv6_nd_prefix_noval_rtaddr_cmd);
install_element (INTERFACE_NODE, &ipv6_nd_prefix_prefix_cmd);
install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_val_rev_rtaddr_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_val_nortaddr_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_val_rev_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_val_noauto_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_val_offlink_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_val_rtaddr_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_val_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_noval_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_noval_rev_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_noval_noauto_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_noval_offlink_cmd);
+ install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_noval_rtaddr_cmd);
install_element (INTERFACE_NODE, &ipv6_nd_router_preference_cmd);
install_element (INTERFACE_NODE, &no_ipv6_nd_router_preference_cmd);
install_element (INTERFACE_NODE, &no_ipv6_nd_router_preference_val_cmd);
return (CMD_SUCCESS);
}
+ALIAS (no_zebra_route_map_timer,
+ no_zebra_route_map_timer_val_cmd,
+ "no zebra route-map delay-timer <0-600>",
+ NO_STR
+ "Time to wait before route-map updates are processed\n"
+ "Reset delay-timer to default value, 30 secs\n"
+ "0 means event-driven updates are disabled\n")
+
DEFUN (ip_protocol,
ip_protocol_cmd,
"ip protocol " QUAGGA_IP_PROTOCOL_MAP_STR_ZEBRA " route-map ROUTE-MAP",
VTY_NEWLINE);
return CMD_WARNING;
}
- if (nht_rm[AFI_IP6][i])
- XFREE (MTYPE_ROUTE_MAP_NAME, nht_rm[AFI_IP6][i]);
- if ((argc == 2 && strcmp(argv[1], nht_rm[AFI_IP6][i]) == 0) ||
- (argc < 2))
+ if (nht_rm[AFI_IP6][i] && argc == 2 && strcmp(argv[1], nht_rm[AFI_IP6][i]))
+ {
+ vty_out (vty, "invalid route-map \"%s\"%s", argv[1], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ if (nht_rm[AFI_IP6][i])
{
XFREE (MTYPE_ROUTE_MAP_NAME, nht_rm[AFI_IP6][i]);
nht_rm[AFI_IP6][i] = NULL;
- zebra_evaluate_rnh(0, AF_INET6, 1, RNH_NEXTHOP_TYPE, NULL);
}
+ zebra_evaluate_rnh(0, AF_INET6, 1, RNH_NEXTHOP_TYPE, NULL);
+
return CMD_SUCCESS;
}
install_element (ENABLE_NODE, &show_ip_protocol_nht_cmd);
install_element (CONFIG_NODE, &ipv6_protocol_nht_rmap_cmd);
install_element (CONFIG_NODE, &no_ipv6_protocol_nht_rmap_cmd);
- install_element (ENABLE_NODE, &no_ipv6_protocol_nht_rmap_val_cmd);
+ install_element (CONFIG_NODE, &no_ipv6_protocol_nht_rmap_val_cmd);
install_element (VIEW_NODE, &show_ipv6_protocol_nht_cmd);
install_element (ENABLE_NODE, &show_ipv6_protocol_nht_cmd);
install_element (CONFIG_NODE, &zebra_route_map_timer_cmd);
install_element (CONFIG_NODE, &no_zebra_route_map_timer_cmd);
+ install_element (CONFIG_NODE, &no_zebra_route_map_timer_val_cmd);
route_map_init ();
route_map_init_vty ();
return zebra_static_ipv4 (vty, 0, argv[0], NULL, argv[1], NULL, NULL, NULL, argv[2]);
}
-DEFUN (no_ip_route_tag_vrf,
- no_ip_route_tag_vrf_cmd,
- "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> " VRF_CMD_STR,
+DEFUN (no_ip_route_flags_vrf,
+ no_ip_route_flags_vrf_cmd,
+ "no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) " VRF_CMD_STR,
NO_STR
IP_STR
"Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
"IP gateway address\n"
"IP gateway interface name\n"
- "Null interface\n"
- "Tag of this route\n"
- "Tag value\n"
+ "Emit an ICMP unreachable when matched\n"
+ "Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, 0, argv[0], NULL, argv[1], NULL, argv[2], NULL, argv[3]);
+ return zebra_static_ipv4 (vty, 0, argv[0], NULL, argv[1], argv[2], NULL, NULL, argv[3]);
}
-ALIAS (no_ip_route_vrf,
- no_ip_route_flags_vrf_cmd,
- "no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) " VRF_CMD_STR,
+DEFUN (no_ip_route_tag_vrf,
+ no_ip_route_tag_vrf_cmd,
+ "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> " VRF_CMD_STR,
NO_STR
IP_STR
"Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
"IP gateway address\n"
"IP gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
+ "Null interface\n"
+ "Tag of this route\n"
+ "Tag value\n"
VRF_CMD_HELP_STR)
+{
+ return zebra_static_ipv4 (vty, 0, argv[0], NULL, argv[1], NULL, argv[2], NULL, argv[3]);
+}
-ALIAS (no_ip_route_tag_vrf,
+DEFUN (no_ip_route_flags_tag_vrf,
no_ip_route_flags_tag_vrf_cmd,
"no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> " VRF_CMD_STR,
NO_STR
"Tag of this route\n"
"Tag value\n"
VRF_CMD_HELP_STR)
+{
+ return zebra_static_ipv4 (vty, 0, argv[0], NULL, argv[1], argv[2], argv[3], NULL, argv[4]);
+}
DEFUN (no_ip_route_flags2_vrf,
no_ip_route_flags2_vrf_cmd,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, 0, argv[0], NULL, NULL, NULL, NULL, NULL, argv[1]);
+ return zebra_static_ipv4 (vty, 0, argv[0], NULL, NULL, argv[1], NULL, NULL, argv[2]);
}
DEFUN (no_ip_route_flags2_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, 0, argv[0], NULL, NULL, NULL, argv[1], NULL, argv[1]);
+ return zebra_static_ipv4 (vty, 0, argv[0], NULL, NULL, argv[1], argv[2], NULL, argv[3]);
}
DEFUN (no_ip_route_mask_vrf,
return zebra_static_ipv4 (vty, 0, argv[0], argv[1], argv[2], NULL, NULL, NULL, argv[3]);
}
-DEFUN (no_ip_route_mask_tag_vrf,
- no_ip_route_mask_tag_vrf_cmd,
- "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> " VRF_CMD_STR,
+DEFUN (no_ip_route_mask_flags_vrf,
+ no_ip_route_mask_flags_vrf_cmd,
+ "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) " VRF_CMD_STR,
NO_STR
IP_STR
"Establish static routes\n"
"IP destination prefix mask\n"
"IP gateway address\n"
"IP gateway interface name\n"
- "Null interface\n"
- "Tag of this route\n"
- "Tag value\n"
+ "Emit an ICMP unreachable when matched\n"
+ "Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, 0, argv[0], argv[1], argv[2], NULL, argv[3], NULL, argv[4]);
+ return zebra_static_ipv4 (vty, 0, argv[0], argv[1], argv[2], argv[3], NULL, NULL, argv[4]);
}
-ALIAS (no_ip_route_mask_vrf,
- no_ip_route_mask_flags_vrf_cmd,
- "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) " VRF_CMD_STR,
+DEFUN (no_ip_route_mask_tag_vrf,
+ no_ip_route_mask_tag_vrf_cmd,
+ "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> " VRF_CMD_STR,
NO_STR
IP_STR
"Establish static routes\n"
"IP destination prefix mask\n"
"IP gateway address\n"
"IP gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
+ "Null interface\n"
+ "Tag of this route\n"
+ "Tag value\n"
VRF_CMD_HELP_STR)
+{
+ return zebra_static_ipv4 (vty, 0, argv[0], argv[1], argv[2], NULL, argv[3], NULL, argv[4]);
+}
-ALIAS (no_ip_route_mask_tag_vrf,
+DEFUN (no_ip_route_mask_flags_tag_vrf,
no_ip_route_mask_flags_tag_vrf_cmd,
"no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> " VRF_CMD_STR,
NO_STR
"Tag of this route\n"
"Tag value\n"
VRF_CMD_HELP_STR)
+{
+ return zebra_static_ipv4 (vty, 0, argv[0], argv[1], argv[2], argv[3], argv[4], NULL, argv[5]);
+}
DEFUN (no_ip_route_mask_flags2_vrf,
no_ip_route_mask_flags2_vrf_cmd,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, 0, argv[0], argv[1], NULL, NULL, NULL, NULL, argv[2]);
+ return zebra_static_ipv4 (vty, 0, argv[0], argv[1], NULL, argv[2], NULL, NULL, argv[3]);
}
DEFUN (no_ip_route_mask_flags2_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, 0, argv[0], argv[1], NULL, NULL, argv[2], NULL, argv[3]);
+ return zebra_static_ipv4 (vty, 0, argv[0], argv[1], NULL, argv[2], argv[3], NULL, argv[4]);
}
return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, NULL, argv[2], NULL, NULL);
}
-ALIAS (no_ipv6_route,
+DEFUN (no_ipv6_route_flags,
no_ipv6_route_flags_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole)",
NO_STR
"IPv6 gateway interface name\n"
"Emit an ICMP unreachable when matched\n"
"Silently discard pkts when matched\n")
+{
+ return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], NULL, NULL, NULL);
+}
-ALIAS (no_ipv6_route_tag,
+DEFUN (no_ipv6_route_flags_tag,
no_ipv6_route_flags_tag_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535>",
NO_STR
"Silently discard pkts when matched\n"
"Set tag for this route\n"
"Tag value\n")
+{
+ return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], argv[3], NULL, NULL);
+}
DEFUN (no_ipv6_route_ifname,
no_ipv6_route_ifname_cmd,
return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], NULL, argv[3], NULL, NULL);
}
-ALIAS (no_ipv6_route_ifname,
+DEFUN (no_ipv6_route_ifname_flags,
no_ipv6_route_ifname_flags_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole)",
NO_STR
"IPv6 gateway interface name\n"
"Emit an ICMP unreachable when matched\n"
"Silently discard pkts when matched\n")
+{
+ return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], argv[3], NULL, NULL, NULL);
+}
-ALIAS (no_ipv6_route_ifname_tag,
+DEFUN (no_ipv6_route_ifname_flags_tag,
no_ipv6_route_ifname_flags_tag_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535>",
NO_STR
"Silently discard pkts when matched\n"
"Set tag for this route\n"
"Tag value\n")
+{
+ return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], argv[3], argv[4], NULL, NULL);
+}
DEFUN (no_ipv6_route_pref,
no_ipv6_route_pref_cmd,
return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, NULL, argv[2], NULL, argv[3]);
}
-ALIAS (no_ipv6_route_vrf,
+DEFUN (no_ipv6_route_flags_vrf,
no_ipv6_route_flags_vrf_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) " VRF_CMD_STR,
NO_STR
"Emit an ICMP unreachable when matched\n"
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
+{
+ return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], NULL, NULL, argv[3]);
+}
-ALIAS (no_ipv6_route_tag_vrf,
+DEFUN (no_ipv6_route_flags_tag_vrf,
no_ipv6_route_flags_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535> " VRF_CMD_STR,
NO_STR
"Set tag for this route\n"
"Tag value\n"
VRF_CMD_HELP_STR)
+{
+ return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], argv[3], NULL, argv[4]);
+}
DEFUN (no_ipv6_route_ifname_vrf,
no_ipv6_route_ifname_vrf_cmd,
return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], NULL, argv[3], NULL, argv[4]);
}
-ALIAS (no_ipv6_route_ifname_vrf,
+DEFUN (no_ipv6_route_ifname_flags_vrf,
no_ipv6_route_ifname_flags_vrf_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) " VRF_CMD_STR,
NO_STR
"Emit an ICMP unreachable when matched\n"
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
+{
+ return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], argv[3], NULL, NULL, argv[4]);
+}
-ALIAS (no_ipv6_route_ifname_tag_vrf,
+DEFUN (no_ipv6_route_ifname_flags_tag_vrf,
no_ipv6_route_ifname_flags_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535> " VRF_CMD_STR,
NO_STR
"Set tag for this route\n"
"Tag value\n"
VRF_CMD_HELP_STR)
+{
+ return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], argv[3], argv[4], NULL, argv[5]);
+}
DEFUN (no_ipv6_route_pref_vrf,
no_ipv6_route_pref_vrf_cmd,
return CMD_SUCCESS;
}
+DEFUN (no_config_table,
+ no_config_table_cmd,
+ "no table TABLENO",
+ NO_STR
+ "Configure target kernel routing table\n"
+ "TABLE integer\n")
+{
+ zebrad.rtm_table_default = 0;
+ return CMD_SUCCESS;
+}
+
DEFUN (ip_forwarding,
ip_forwarding_cmd,
"ip forwarding",
install_element (VIEW_NODE, &show_table_cmd);
install_element (ENABLE_NODE, &show_table_cmd);
install_element (CONFIG_NODE, &config_table_cmd);
+ install_element (CONFIG_NODE, &no_config_table_cmd);
#endif /* HAVE_NETLINK */
#ifdef HAVE_IPV6