⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ospf_vty.c

📁 router source code for the ospdf.
💻 C
📖 第 1 页 / 共 5 页
字号:
  struct in_addr area_id;  int ret, format;  VTY_GET_OSPF_AREA_ID_NO_BB ("stub", area_id, format, argv[0]);  ret = ospf_area_stub_set (ospf, area_id);  if (ret == 0)    {      vty_out (vty, "%% Area cannot be nssa as it contains a virtual link%s",	       VTY_NEWLINE);      return CMD_WARNING;    }  ospf_area_no_summary_set (ospf, area_id);  return CMD_SUCCESS;}DEFUN (no_ospf_area_stub,       no_ospf_area_stub_cmd,       "no area (A.B.C.D|<0-4294967295>) stub",       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 stub\n"){  struct ospf *ospf = vty->index;  struct in_addr area_id;  int format;  VTY_GET_OSPF_AREA_ID_NO_BB ("stub", area_id, format, argv[0]);  ospf_area_stub_unset (ospf, area_id);  ospf_area_no_summary_unset (ospf, area_id);  return CMD_SUCCESS;}DEFUN (no_ospf_area_stub_no_summary,       no_ospf_area_stub_no_summary_cmd,       "no area (A.B.C.D|<0-4294967295>) stub 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 stub\n"       "Do not inject inter-area routes into area\n"){  struct ospf *ospf = vty->index;  struct in_addr area_id;  int format;  VTY_GET_OSPF_AREA_ID_NO_BB ("stub", area_id, format, argv[0]);  ospf_area_no_summary_unset (ospf, area_id);  return CMD_SUCCESS;}#ifdef HAVE_NSSADEFUN (ospf_area_nssa,       ospf_area_nssa_cmd,       "area (A.B.C.D|<0-4294967295>) nssa",       "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"){  struct ospf *ospf = vty->index;  struct in_addr area_id;  int ret, format;  VTY_GET_OSPF_AREA_ID_NO_BB ("NSSA", area_id, format, argv[0]);  ret = ospf_area_nssa_set (ospf, area_id);  if (ret == 0)    {      vty_out (vty, "%% Area cannot be nssa as it contains a virtual link%s",	       VTY_NEWLINE);      return CMD_WARNING;    }  if (argc > 1)    {      if (strncmp (argv[1], "translate-c", 11) == 0)	ospf_area_nssa_translator_role_set (ospf, area_id,					    OSPF_NSSA_ROLE_CANDIDATE);      else if (strncmp (argv[1], "translate-n", 11) == 0)	ospf_area_nssa_translator_role_set (ospf, area_id,					    OSPF_NSSA_ROLE_NEVER);      else if (strncmp (argv[1], "translate-a", 11) == 0)	ospf_area_nssa_translator_role_set (ospf, area_id,					    OSPF_NSSA_ROLE_ALWAYS);    }  if (argc > 2)    ospf_area_no_summary_set (ospf, area_id);  return CMD_SUCCESS;}ALIAS (ospf_area_nssa,       ospf_area_nssa_translate_no_summary_cmd,       "area (A.B.C.D|<0-4294967295>) nssa (translate-candidate|translate-never|translate-always) (no-summary|)",       "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"       "dummy\n");ALIAS (ospf_area_nssa,       ospf_area_nssa_translate_cmd,       "area (A.B.C.D|<0-4294967295>) nssa (translate-candidate|translate-never|translate-always)",       "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");DEFUN (ospf_area_nssa_no_summary,       ospf_area_nssa_no_summary_cmd,       "area (A.B.C.D|<0-4294967295>) nssa no-summary",       "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"       "Do not inject inter-area routes into nssa\n"){  struct ospf *ospf = vty->index;  struct in_addr area_id;  int ret, format;  VTY_GET_OSPF_AREA_ID_NO_BB ("NSSA", area_id, format, argv[0]);  ret = ospf_area_nssa_set (ospf, area_id);  if (ret == 0)    {      vty_out (vty, "%% Area cannot be nssa as it contains a virtual link%s",	       VTY_NEWLINE);      return CMD_WARNING;    }  ospf_area_no_summary_set (ospf, area_id);  return CMD_SUCCESS;}DEFUN (no_ospf_area_nssa,       no_ospf_area_nssa_cmd,       "no area (A.B.C.D|<0-4294967295>) nssa",       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"){  struct ospf *ospf = vty->index;  struct in_addr area_id;  int format;  VTY_GET_OSPF_AREA_ID_NO_BB ("NSSA", area_id, format, argv[0]);  ospf_area_nssa_unset (ospf, area_id);  ospf_area_no_summary_unset (ospf, area_id);  return CMD_SUCCESS;}DEFUN (no_ospf_area_nssa_no_summary,       no_ospf_area_nssa_no_summary_cmd,       "no area (A.B.C.D|<0-4294967295>) nssa 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"       "Do not inject inter-area routes into nssa\n"){  struct ospf *ospf = vty->index;  struct in_addr area_id;  int format;  VTY_GET_OSPF_AREA_ID_NO_BB ("NSSA", area_id, format, argv[0]);  ospf_area_no_summary_unset (ospf, area_id);  return CMD_SUCCESS;}#endif /* HAVE_NSSA */DEFUN (ospf_area_default_cost,       ospf_area_default_cost_cmd,       "area (A.B.C.D|<0-4294967295>) default-cost <0-16777215>",       "OSPF area parameters\n"       "OSPF area ID in IP address format\n"       "OSPF area ID as a decimal value\n"       "Set the summary-default cost of a NSSA or stub area\n"       "Stub's advertised default summary cost\n"){  struct ospf *ospf = vty->index;  struct ospf_area *area;  struct in_addr area_id;  u_int32_t cost;  int format;  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);  area = ospf_area_get (ospf, area_id, format);  if (area->external_routing == OSPF_AREA_DEFAULT)    {      vty_out (vty, "The area is neither stub, nor NSSA%s", VTY_NEWLINE);      return CMD_WARNING;    }  area->default_cost = cost;  return CMD_SUCCESS;}DEFUN (no_ospf_area_default_cost,       no_ospf_area_default_cost_cmd,       "no area (A.B.C.D|<0-4294967295>) default-cost <0-16777215>",       NO_STR       "OSPF area parameters\n"       "OSPF area ID in IP address format\n"       "OSPF area ID as a decimal value\n"       "Set the summary-default cost of a NSSA or stub area\n"       "Stub's advertised default summary cost\n"){  struct ospf *ospf = vty->index;  struct ospf_area *area;  struct in_addr area_id;  u_int32_t cost;  int format;  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);  area = ospf_area_lookup_by_area_id (ospf, area_id);  if (area == NULL)    return CMD_SUCCESS;  if (area->external_routing == OSPF_AREA_DEFAULT)    {      vty_out (vty, "The area is neither stub, nor NSSA%s", VTY_NEWLINE);      return CMD_WARNING;    }  area->default_cost = 1;  ospf_area_check_free (ospf, area_id);  return CMD_SUCCESS;}DEFUN (ospf_area_export_list,       ospf_area_export_list_cmd,       "area (A.B.C.D|<0-4294967295>) export-list NAME",       "OSPF area parameters\n"       "OSPF area ID in IP address format\n"       "OSPF area ID as a decimal value\n"       "Set the filter for networks announced to other areas\n"       "Name of the access-list\n"){  struct ospf *ospf = vty->index;  struct ospf_area *area;  struct in_addr area_id;  int format;  VTY_GET_OSPF_AREA_ID_NO_BB ("export-list", area_id, format, argv[0]);  area = ospf_area_get (ospf, area_id, format);  ospf_area_export_list_set (ospf, area, argv[1]);  return CMD_SUCCESS;}DEFUN (no_ospf_area_export_list,       no_ospf_area_export_list_cmd,       "no area (A.B.C.D|<0-4294967295>) export-list NAME",       NO_STR       "OSPF area parameters\n"       "OSPF area ID in IP address format\n"       "OSPF area ID as a decimal value\n"       "Unset the filter for networks announced to other areas\n"       "Name of the access-list\n"){  struct ospf *ospf = vty->index;  struct ospf_area *area;  struct in_addr area_id;  int format;  VTY_GET_OSPF_AREA_ID_NO_BB ("export-list", area_id, format, argv[0]);  area = ospf_area_lookup_by_area_id (ospf, area_id);  if (area == NULL)    return CMD_SUCCESS;  ospf_area_export_list_unset (ospf, area);  return CMD_SUCCESS;}DEFUN (ospf_area_import_list,       ospf_area_import_list_cmd,       "area (A.B.C.D|<0-4294967295>) import-list NAME",       "OSPF area parameters\n"       "OSPF area ID in IP address format\n"       "OSPF area ID as a decimal value\n"       "Set the filter for networks from other areas announced to the specified one\n"       "Name of the access-list\n"){  struct ospf *ospf = vty->index;  struct ospf_area *area;  struct in_addr area_id;  int format;  VTY_GET_OSPF_AREA_ID_NO_BB ("import-list", area_id, format, argv[0]);  area = ospf_area_get (ospf, area_id, format);  ospf_area_import_list_set (ospf, area, argv[1]);  return CMD_SUCCESS;}DEFUN (no_ospf_area_import_list,       no_ospf_area_import_list_cmd,       "no area (A.B.C.D|<0-4294967295>) import-list NAME",       NO_STR       "OSPF area parameters\n"       "OSPF area ID in IP address format\n"       "OSPF area ID as a decimal value\n"       "Unset the filter for networks announced to other areas\n"       "Name of the access-list\n"){  struct ospf *ospf = vty->index;  struct ospf_area *area;  struct in_addr area_id;  int format;  VTY_GET_OSPF_AREA_ID_NO_BB ("import-list", area_id, format, argv[0]);  area = ospf_area_lookup_by_area_id (ospf, area_id);  if (area == NULL)    return CMD_SUCCESS;  ospf_area_import_list_unset (ospf, area);  return CMD_SUCCESS;}DEFUN (ospf_area_filter_list,       ospf_area_filter_list_cmd,       "area (A.B.C.D|<0-4294967295>) filter-list prefix WORD (in|out)",       "OSPF area parameters\n"       "OSPF area ID in IP address format\n"       "OSPF area ID as a decimal value\n"       "Filter networks between OSPF areas\n"       "Filter prefixes between OSPF areas\n"       "Name of an IP prefix-list\n"       "Filter networks sent to this area\n"       "Filter networks sent from this area\n"){  struct ospf *ospf = vty->index;  struct ospf_area *area;  struct in_addr area_id;  struct prefix_list *plist;  int format;  VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]);  area = ospf_area_get (ospf, area_id, format);  plist = prefix_list_lookup (AFI_IP, argv[1]);  if (strncmp (argv[2], "in", 2) == 0)    {      PREFIX_LIST_IN (area) = plist;      if (PREFIX_NAME_IN (area))	free (PREFIX_NAME_IN (area));      PREFIX_NAME_IN (area) = strdup (argv[1]);      ospf_schedule_abr_task (ospf);    }  else    {      PREFIX_LIST_OUT (area) = plist;      if (PREFIX_NAME_OUT (area))	free (PREFIX_NAME_OUT (area));      PREFIX_NAME_OUT (area) = strdup (argv[1]);      ospf_schedule_abr_task (ospf);    }  return CMD_SUCCESS;}DEFUN (no_ospf_area_filter_list,       no_ospf_area_filter_list_cmd,       "no area (A.B.C.D|<0-4294967295>) filter-list prefix WORD (in|out)",       NO_STR       "OSPF area parameters\n"       "OSPF area ID in IP address format\n"       "OSPF area ID as a decimal value\n"       "Filter networks between OSPF areas\n"       "Filter prefixes between OSPF areas\n"       "Name of an IP prefix-list\n"       "Filter networks sent to this area\n"       "Filter networks sent from this area\n"){  struct ospf *ospf = vty->index;  struct ospf_area *area;  struct in_addr area_id;  struct prefix_list *plist;  int format;  VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]);  area = ospf_area_lookup_by_area_id (ospf, area_id);  plist = prefix_list_lookup (AFI_IP, argv[1]);  if (strncmp (argv[2], "in", 2) == 0)    {      if (PREFIX_NAME_IN (area))	if (strcmp (PREFIX_NAME_IN (area), argv[1]) != 0)	  return CMD_SUCCESS;      PREFIX_LIST_IN (area) = NULL;      if (PREFIX_NAME_IN (area))	free (PREFIX_NAME_IN (area));      PREFIX_NAME_IN (area) = NULL;      ospf_schedule_abr_task (ospf);    }  else    {      if (PREFIX_NAME_OUT (area))	if (strcmp (PREFIX_NAME_OUT (area), argv[1]) != 0)	  return CMD_SUCCESS;      PREFIX_LIST_OUT (area) = NULL;      if (PREFIX_NAME_OUT (area))	free (PREFIX_NAME_OUT (area));      PREFIX_NAME_OUT (area) = NULL;      ospf_schedule_abr_task (ospf);    }  return CMD_SUCCESS;}DEFUN (ospf_area_authentication_message_digest,       ospf_area_authentication_message_digest_cmd,       "area (A.B.C.D|<0-4294967295>) authentication message-digest",       "OSPF area parameters\n"       "Enable authentication\n"       "Use message-digest authentication\n"){  struct ospf *ospf = vty->index;  struct ospf_area *area;  struct in_addr area_id;  int format;  VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]);  area = ospf_area_get (ospf, area_id, format);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -