diff options
| -rw-r--r-- | bgpd/bgp_filter.c | 76 | 
1 files changed, 76 insertions, 0 deletions
| diff --git a/bgpd/bgp_filter.c b/bgpd/bgp_filter.c index b544c716..0a120a76 100644 --- a/bgpd/bgp_filter.c +++ b/bgpd/bgp_filter.c @@ -610,6 +610,77 @@ DEFUN (no_ip_as_path_all,    return CMD_SUCCESS;  } +void +as_list_show (struct vty *vty, struct as_list *aslist) +{ +  struct as_filter *asfilter; + +  vty_out (vty, "AS path access list %s%s", aslist->name, VTY_NEWLINE); + +  for (asfilter = aslist->head; asfilter; asfilter = asfilter->next) +    { +      vty_out (vty, "    %s %s%s", filter_type_str (asfilter->type), +	       asfilter->reg_str, VTY_NEWLINE); +    } +} + +void +as_list_show_all (struct vty *vty) +{ +  struct as_list *aslist; +  struct as_filter *asfilter; + +  for (aslist = as_list_master.num.head; aslist; aslist = aslist->next) +    { +      vty_out (vty, "AS path access list %s%s", aslist->name, VTY_NEWLINE); + +      for (asfilter = aslist->head; asfilter; asfilter = asfilter->next) +	{ +	  vty_out (vty, "    %s %s%s", filter_type_str (asfilter->type), +		   asfilter->reg_str, VTY_NEWLINE); +	} +    } + +  for (aslist = as_list_master.str.head; aslist; aslist = aslist->next) +    { +      vty_out (vty, "AS path access list %s%s", aslist->name, VTY_NEWLINE); + +      for (asfilter = aslist->head; asfilter; asfilter = asfilter->next) +	{ +	  vty_out (vty, "    %s %s%s", filter_type_str (asfilter->type), +		   asfilter->reg_str, VTY_NEWLINE); +	} +    } +} + +DEFUN (show_ip_as_path_access_list, +       show_ip_as_path_access_list_cmd, +       "show ip as-path-access-list WORD", +       SHOW_STR +       IP_STR +       "List AS path access lists\n" +       "AS path access list name\n") +{ +  struct as_list *aslist; + +  aslist = as_list_lookup (argv[0]); +  if (aslist) +    as_list_show (vty, aslist); + +  return CMD_SUCCESS; +} + +DEFUN (show_ip_as_path_access_list_all, +       show_ip_as_path_access_list_all_cmd, +       "show ip as-path-access-list", +       SHOW_STR +       IP_STR +       "List AS path access lists\n") +{ +  as_list_show_all (vty); +  return CMD_SUCCESS; +} +  int  config_write_as_list (struct vty *vty)  { @@ -655,4 +726,9 @@ bgp_filter_init ()    install_element (CONFIG_NODE, &ip_as_path_cmd);    install_element (CONFIG_NODE, &no_ip_as_path_cmd);    install_element (CONFIG_NODE, &no_ip_as_path_all_cmd); + +  install_element (VIEW_NODE, &show_ip_as_path_access_list_cmd); +  install_element (VIEW_NODE, &show_ip_as_path_access_list_all_cmd); +  install_element (ENABLE_NODE, &show_ip_as_path_access_list_cmd); +  install_element (ENABLE_NODE, &show_ip_as_path_access_list_all_cmd);  } | 
