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

📄 irdp_interface.c

📁 linux 路由软件 可支持RIP OSPF BGP等
💻 C
📖 第 1 页 / 共 2 页
字号:
DEFUN (ip_irdp_broadcast,       ip_irdp_broadcast_cmd,       "ip irdp broadcast",       IP_STR       "ICMP Router discovery on this interface using broadcast\n"){  struct interface *ifp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  irdp_if_start(ifp, FALSE, TRUE);  return CMD_SUCCESS;}DEFUN (ip_irdp_no,       ip_irdp_cmd_no,       "no ip irdp",       IP_STR       "Disable ICMP Router discovery on this interface\n"){  struct interface *ifp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  irdp_if_stop(ifp);  return CMD_SUCCESS;}DEFUN (ip_irdp_shutdown,       ip_irdp_shutdown_cmd,       "ip irdp shutdown",       IP_STR       "ICMP Router discovery shutdown on this interface\n"){  struct interface *ifp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  irdp_if_shutdown(ifp);  return CMD_SUCCESS;}DEFUN (ip_irdp_no_shutdown,       ip_irdp_no_shutdown_cmd,       "no ip irdp shutdown",       IP_STR       "ICMP Router discovery no shutdown on this interface\n"){  struct interface *ifp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  irdp_if_no_shutdown(ifp);  return CMD_SUCCESS;}DEFUN (ip_irdp_holdtime,       ip_irdp_holdtime_cmd,       "ip irdp holdtime <0-9000>",       IP_STR       "ICMP Router discovery on this interface\n"       "Set holdtime value\n"       "Holdtime value in seconds. Default is 1800 seconds\n"){  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  irdp->Lifetime = atoi(argv[0]);  return CMD_SUCCESS;}DEFUN (ip_irdp_minadvertinterval,       ip_irdp_minadvertinterval_cmd,       "ip irdp minadvertinterval <3-1800>",       IP_STR       "ICMP Router discovery on this interface\n"       "Set minimum time between advertisement\n"       "Minimum advertisement interval in seconds\n"){  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  if( atoi(argv[0]) <= irdp->MaxAdvertInterval) {      irdp->MinAdvertInterval = atoi(argv[0]);      return CMD_SUCCESS;  }  vty_out (vty, "ICMP warning maxadvertinterval is greater or equal than minadvertinterval%s", 	     VTY_NEWLINE);  vty_out (vty, "Please correct!%s", 	     VTY_NEWLINE);  return CMD_WARNING;}DEFUN (ip_irdp_maxadvertinterval,       ip_irdp_maxadvertinterval_cmd,       "ip irdp maxadvertinterval <4-1800>",       IP_STR       "ICMP Router discovery on this interface\n"       "Set maximum time between advertisement\n"       "Maximum advertisement interval in seconds\n"){  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  if( irdp->MinAdvertInterval <= atoi(argv[0]) ) {    irdp->MaxAdvertInterval = atoi(argv[0]);      return CMD_SUCCESS;  }  vty_out (vty, "ICMP warning maxadvertinterval is greater or equal than minadvertinterval%s", 	     VTY_NEWLINE);  vty_out (vty, "Please correct!%s", 	     VTY_NEWLINE);  return CMD_WARNING;}DEFUN (ip_irdp_preference,       ip_irdp_preference_cmd,       /* DEFUN needs to be fixed for negative ranages...	  Be positive for now. :-)	  "ip irdp preference <-2147483648-2147483647>",	*/       "ip irdp preference <0-2147483647>",       IP_STR       "ICMP Router discovery on this interface\n"       "Set default preference level for this interface\n"       "Preference level\n"){  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  irdp->Preference = atoi(argv[0]);  return CMD_SUCCESS;}DEFUN (ip_irdp_address_preference,       ip_irdp_address_preference_cmd,       "ip irdp address A.B.C.D preference <0-2147483647>",       IP_STR       "Alter ICMP Router discovery preference this interface\n"       "Specify IRDP non-default preference to advertise\n"       "Set IRDP address for advertise\n"       "Preference level\n"){  listnode node;  struct in_addr ip;   int pref;  int ret;  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  struct Adv *adv;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  ret = inet_aton(argv[0], &ip);  if(!ret) return CMD_WARNING;  pref = atoi(argv[1]);  for (node = listhead (irdp->AdvPrefList); node; nextnode (node)) {	  adv = getdata (node);      if(adv->ip.s_addr == ip.s_addr) return CMD_SUCCESS;  }  adv = Adv_new();  adv->ip = ip;  adv->pref = pref;  listnode_add(irdp->AdvPrefList, adv);  return CMD_SUCCESS;}DEFUN (ip_irdp_address_preference_no,       ip_irdp_address_preference_cmd_no,       "no ip irdp address A.B.C.D preference <0-2147483647>",       IP_STR       "Alter ICMP Router discovery preference this interface\n"       "Removes IRDP non-default preference\n"       "Select IRDP address\n"       "Old preference level\n"){  listnode node;  struct in_addr ip;   int pref;  int ret;  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  struct Adv *adv;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  ret = inet_aton(argv[0], &ip);  if(!ret) return CMD_WARNING;  pref = atoi(argv[1]);  for (node = listhead (irdp->AdvPrefList); node; nextnode (node)) {	  adv = getdata (node);	  if(adv->ip.s_addr == ip.s_addr ) {		  listnode_delete(irdp->AdvPrefList, adv);		  break;	  }  }  return CMD_SUCCESS;}DEFUN (ip_irdp_debug_messages,       ip_irdp_debug_messages_cmd,       "ip irdp debug messages",       IP_STR       "ICMP Router discovery debug Averts. and Solicits (short)\n"){  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  irdp->flags |= IF_DEBUG_MESSAGES;  return CMD_SUCCESS;}DEFUN (ip_irdp_debug_misc,       ip_irdp_debug_misc_cmd,       "ip irdp debug misc",       IP_STR       "ICMP Router discovery debug Averts. and Solicits (short)\n"){  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  irdp->flags |= IF_DEBUG_MISC;  return CMD_SUCCESS;}DEFUN (ip_irdp_debug_packet,       ip_irdp_debug_packet_cmd,       "ip irdp debug packet",       IP_STR       "ICMP Router discovery debug Averts. and Solicits (short)\n"){  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  irdp->flags |= IF_DEBUG_PACKET;  return CMD_SUCCESS;}DEFUN (ip_irdp_debug_disable,       ip_irdp_debug_disable_cmd,       "ip irdp debug disable",       IP_STR       "ICMP Router discovery debug Averts. and Solicits (short)\n"){  struct interface *ifp;  struct zebra_if *zi;  struct irdp_interface *irdp;  ifp = (struct interface *) vty->index;  if(!ifp) {	  return CMD_WARNING;  }  zi=ifp->info;  irdp=&zi->irdp;  irdp->flags &= ~IF_DEBUG_PACKET;  irdp->flags &= ~IF_DEBUG_MESSAGES;  irdp->flags &= ~IF_DEBUG_MISC;  return CMD_SUCCESS;}voidirdp_if_init (){  install_element (INTERFACE_NODE, &ip_irdp_broadcast_cmd);  install_element (INTERFACE_NODE, &ip_irdp_multicast_cmd);  install_element (INTERFACE_NODE, &ip_irdp_cmd_no);  install_element (INTERFACE_NODE, &ip_irdp_shutdown_cmd);  install_element (INTERFACE_NODE, &ip_irdp_no_shutdown_cmd);  install_element (INTERFACE_NODE, &ip_irdp_holdtime_cmd);  install_element (INTERFACE_NODE, &ip_irdp_maxadvertinterval_cmd);  install_element (INTERFACE_NODE, &ip_irdp_minadvertinterval_cmd);  install_element (INTERFACE_NODE, &ip_irdp_preference_cmd);  install_element (INTERFACE_NODE, &ip_irdp_address_preference_cmd);  install_element (INTERFACE_NODE, &ip_irdp_address_preference_cmd_no);  install_element (INTERFACE_NODE, &ip_irdp_debug_messages_cmd);  install_element (INTERFACE_NODE, &ip_irdp_debug_misc_cmd);  install_element (INTERFACE_NODE, &ip_irdp_debug_packet_cmd);  install_element (INTERFACE_NODE, &ip_irdp_debug_disable_cmd);}#endif /* HAVE_IRDP */

⌨️ 快捷键说明

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