亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ripngd.c

?? zebra測試源代碼用于 SOCKET 通信
?? C
?? 第 1 頁 / 共 5 頁
字號:
		ripng_packet_dump ((struct ripng_packet *)STREAM_DATA (s),				   stream_get_endp(s), "SEND");	      num = 0;	      stream_reset (s);	    }	}    }    /* If unwritten RTE exist, flush it. */  if (num != 0)    {      ret = ripng_send_packet (STREAM_DATA (s), stream_get_endp (s),			       to, ifp);      if (ret >= 0 && IS_RIPNG_DEBUG_SEND)	ripng_packet_dump ((struct ripng_packet *)STREAM_DATA (s),			   stream_get_endp (s), "SEND");      num = 0;      stream_reset (s);    }}/* Create new RIPng instance and set it to global variable. */intripng_create (){  /* ripng should be NULL. */  assert (ripng == NULL);  /* Allocaste RIPng instance. */  ripng = XMALLOC (0, sizeof (struct ripng));  memset (ripng, 0, sizeof (struct ripng));  /* Default version and timer values. */  ripng->version = RIPNG_V1;  ripng->update_time = RIPNG_UPDATE_TIMER_DEFAULT;  ripng->timeout_time = RIPNG_TIMEOUT_TIMER_DEFAULT;  ripng->garbage_time = RIPNG_GARBAGE_TIMER_DEFAULT;  ripng->default_metric = RIPNG_DEFAULT_METRIC_DEFAULT;    /* Make buffer.  */  ripng->ibuf = stream_new (RIPNG_MAX_PACKET_SIZE * 5);  ripng->obuf = stream_new (RIPNG_MAX_PACKET_SIZE);  /* Initialize RIPng routig table. */  ripng->table = route_table_init ();  ripng->route = route_table_init ();  ripng->aggregate = route_table_init ();   /* Make socket. */  ripng->sock = ripng_make_socket ();  if (ripng->sock < 0)    return ripng->sock;  /* Threads. */  ripng_event (RIPNG_READ, ripng->sock);  ripng_event (RIPNG_UPDATE_EVENT, 1);  return 0;}/* Sned RIPng request to the interface. */intripng_request (struct interface *ifp){  struct rte *rte;  struct ripng_packet ripng_packet;  if (IS_RIPNG_DEBUG_EVENT)    zlog_info ("RIPng send request to %s", ifp->name);  memset (&ripng_packet, 0, sizeof (ripng_packet));  ripng_packet.command = RIPNG_REQUEST;  ripng_packet.version = RIPNG_V1;  rte = ripng_packet.rte;  rte->metric = RIPNG_METRIC_INFINITY;  return ripng_send_packet ((caddr_t) &ripng_packet, sizeof (ripng_packet), 			    NULL, ifp);}/* Clean up installed RIPng routes. */voidripng_terminate (){  struct route_node *rp;  struct ripng_info *rinfo;  for (rp = route_top (ripng->table); rp; rp = route_next (rp))    if ((rinfo = rp->info) != NULL)      {	if (rinfo->type == ZEBRA_ROUTE_RIPNG &&	    rinfo->sub_type == RIPNG_ROUTE_RTE)	  ripng_zebra_ipv6_delete ((struct prefix_ipv6 *)&rp->p,				   &rinfo->nexthop, rinfo->ifindex);      }}intripng_update_jitter (int time){  return ((rand () % (time + 1)) - (time / 2));}voidripng_event (enum ripng_event event, int sock){  int ripng_request_all (struct thread *);  int jitter = 0;  switch (event)    {    case RIPNG_READ:      if (!ripng->t_read)	ripng->t_read = thread_add_read (master, ripng_read, NULL, sock);      break;    case RIPNG_UPDATE_EVENT:      if (ripng->t_update)	{	  thread_cancel (ripng->t_update);	  ripng->t_update = NULL;	}      /* Update timer jitter. */      jitter = ripng_update_jitter (ripng->update_time);      ripng->t_update = 	thread_add_timer (master, ripng_update, NULL, 			  sock ? 2 : ripng->update_time + jitter);      break;    case RIPNG_TRIGGERED_UPDATE:      if (ripng->t_triggered_interval)	ripng->trigger = 1;      else if (! ripng->t_triggered_update)	ripng->t_triggered_update = 	  thread_add_event (master, ripng_triggered_update, NULL, 0);      break;    default:      break;    }}/* Each route type's strings and default preference. */struct{    int key;  char *str;  char *str_long;  int distance;} route_info[] ={  { ZEBRA_ROUTE_SYSTEM,  "X", "system",    10},  { ZEBRA_ROUTE_KERNEL,  "K", "kernel",    20},  { ZEBRA_ROUTE_CONNECT, "C", "connected", 30},  { ZEBRA_ROUTE_STATIC,  "S", "static",    40},  { ZEBRA_ROUTE_RIP,     "R", "rip",       50},  { ZEBRA_ROUTE_RIPNG,   "R", "ripng",     50},  { ZEBRA_ROUTE_OSPF,    "O", "ospf",      60},  { ZEBRA_ROUTE_OSPF6,   "O", "ospf6",     60},  { ZEBRA_ROUTE_BGP,     "B", "bgp",       70},};/* For messages. */struct message ripng_route_info[] ={  { RIPNG_ROUTE_RTE,       " "},  { RIPNG_ROUTE_STATIC,    "S"},  { RIPNG_ROUTE_AGGREGATE, "a"}};/* Print out routes update time. */static voidripng_vty_out_uptime (struct vty *vty, struct ripng_info *rinfo){  struct timeval timer_now;  time_t clock;  struct tm *tm;#define TIME_BUF 25  char timebuf [TIME_BUF];  struct thread *thread;    gettimeofday (&timer_now, NULL);  if ((thread = rinfo->t_timeout) != NULL)    {      clock = thread->u.sands.tv_sec - timer_now.tv_sec;      tm = gmtime (&clock);      strftime (timebuf, TIME_BUF, "%M:%S", tm);      vty_out (vty, "%5s", timebuf);    }  else if ((thread = rinfo->t_garbage_collect) != NULL)    {      clock = thread->u.sands.tv_sec - timer_now.tv_sec;      tm = gmtime (&clock);      strftime (timebuf, TIME_BUF, "%M:%S", tm);      vty_out (vty, "%5s", timebuf);    }}DEFUN (show_ipv6_ripng,       show_ipv6_ripng_cmd,       "show ipv6 ripng",       SHOW_STR       IP_STR       "Show RIPng routes\n"){  struct route_node *rp;  struct ripng_info *rinfo;  struct ripng_aggregate *aggregate;  struct prefix_ipv6 *p;  int len;  /* Header of display. */   vty_out (vty, "%sCodes: R - RIPng%s%s"	   "   Network                           "	   "Next Hop                  If Met Tag Time%s", VTY_NEWLINE,	   VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);    for (rp = route_top (ripng->table); rp; rp = route_next (rp))    {      if ((aggregate = rp->aggregate) != NULL)	{	  p = (struct prefix_ipv6 *) &rp->p;#ifdef DEBUG	  len = vty_out (vty, "Ra %d/%d %s/%d ",			 aggregate->count, aggregate->suppress,			 inet6_ntop (&p->prefix), p->prefixlen);#else	  len = vty_out (vty, "Ra %s/%d ", 			 inet6_ntop (&p->prefix), p->prefixlen);#endif /* DEBUG */	  len = 37 - len;	  if (len > 0)	    vty_out (vty, "%*s", len, " ");	  vty_out (vty, "%*s", 26, " ");	  vty_out (vty, "%4d %3d%s", aggregate->metric,		   aggregate->tag,		   VTY_NEWLINE);	}      if ((rinfo = rp->info) != NULL)	{	  p = (struct prefix_ipv6 *) &rp->p;#ifdef DEBUG	  len = vty_out (vty, "%s%s 0/%d %s/%d ",			 route_info[rinfo->type].str,			 rinfo->suppress ? "s" : " ",			 rinfo->suppress,			 inet6_ntop (&p->prefix), p->prefixlen);#else	  len = vty_out (vty, "%s%s %s/%d ",			 route_info[rinfo->type].str,			 rinfo->suppress ? "s" : " ",			 inet6_ntop (&p->prefix), p->prefixlen);#endif /* DEBUG */	  len = 37 - len;	  if (len > 0)	    vty_out (vty, "%*s", len, " ");	  len = vty_out (vty, "%s", inet6_ntop (&rinfo->nexthop));	  len = 26 - len;	  if (len > 0)	    vty_out (vty, "%*s", len, " ");	  vty_out (vty, "%2d %2d %3d ",		   rinfo->ifindex, rinfo->metric, rinfo->tag);	  if (rinfo->sub_type == RIPNG_ROUTE_RTE)	    ripng_vty_out_uptime (vty, rinfo);	  vty_out (vty, "%s", VTY_NEWLINE);	}    }  return CMD_SUCCESS;}DEFUN (router_ripng,       router_ripng_cmd,       "router ripng",       "Enable a routing process\n"       "Make RIPng instance command\n"){  int ret;  vty->node = RIPNG_NODE;  if (!ripng)    {      ret = ripng_create ();      /* Notice to user we couldn't create RIPng. */      if (ret < 0)	{	  zlog_warn ("can't create RIPng");	  return CMD_WARNING;	}    }  return CMD_SUCCESS;}DEFUN (ripng_route,       ripng_route_cmd,       "route IPV6ADDR",       "Static route setup\n"       "Set static RIPng route announcement\n"){  int ret;  struct prefix_ipv6 p;  struct route_node *rp;  ret = str2prefix_ipv6 (argv[0], (struct prefix_ipv6 *)&p);  if (ret <= 0)    {      vty_out (vty, "Malformed address%s", VTY_NEWLINE);      return CMD_WARNING;    }  apply_mask_ipv6 (&p);  rp = route_node_get (ripng->route, (struct prefix *) &p);  if (rp->info)    {      vty_out (vty, "There is already same static route.%s", VTY_NEWLINE);      route_unlock_node (rp);      return CMD_WARNING;    }  rp->info = (void *)1;  ripng_redistribute_add (ZEBRA_ROUTE_RIPNG, RIPNG_ROUTE_STATIC, &p, 0);  return CMD_SUCCESS;}DEFUN (no_ripng_route,       no_ripng_route_cmd,       "no route IPV6ADDR",       NO_STR       "Static route setup\n"       "Delete static RIPng route announcement\n"){  int ret;  struct prefix_ipv6 p;  struct route_node *rp;  ret = str2prefix_ipv6 (argv[0], (struct prefix_ipv6 *)&p);  if (ret <= 0)    {      vty_out (vty, "Malformed address%s", VTY_NEWLINE);      return CMD_WARNING;    }  apply_mask_ipv6 (&p);  rp = route_node_lookup (ripng->route, (struct prefix *) &p);  if (! rp)    {      vty_out (vty, "Can't find static route.%s", VTY_NEWLINE);      return CMD_WARNING;    }  ripng_redistribute_delete (ZEBRA_ROUTE_RIPNG, RIPNG_ROUTE_STATIC, &p, 0);  route_unlock_node (rp);  rp->info = NULL;  route_unlock_node (rp);  return CMD_SUCCESS;}DEFUN (ripng_aggregate_address,       ripng_aggregate_address_cmd,       "aggregate-address X:X::X:X/M",       "Set aggregate RIPng route announcement\n"       "Aggregate network\n"){  int ret;  struct prefix p;  struct route_node *node;  ret = str2prefix_ipv6 (argv[0], (struct prefix_ipv6 *)&p);  if (ret <= 0)    {      vty_out (vty, "Malformed address%s", VTY_NEWLINE);      return CMD_WARNING;    }  /* Check aggregate alredy exist or not. */  node = route_node_get (ripng->aggregate, &p);  if (node->info)    {      vty_out (vty, "There is already same aggregate route.%s", VTY_NEWLINE);      route_unlock_node (node);      return CMD_WARNING;    }  node->info = (void *)1;  ripng_aggregate_add (&p);  return CMD_SUCCESS;}DEFUN (no_ripng_aggregate_address,       no_ripng_aggregate_address_cmd,       "no aggregate-address X:X::X:X/M",       NO_STR       "Delete aggregate RIPng route announcement\n"       "Aggregate network"){  int ret;  struct prefix p;  struct route_node *rn;  ret = str2prefix_ipv6 (argv[0], (struct prefix_ipv6 *) &p);  if (ret <= 0)    {      vty_out (vty, "Malformed address%s", VTY_NEWLINE);      return CMD_WARNING;    }  rn = route_node_lookup (ripng->aggregate, &p);  if (! rn)    {      vty_out (vty, "Can't find aggregate route.%s", VTY_NEWLINE);      return CMD_WARNING;    }  route_unlock_node (rn);  rn->info = NULL;  route_unlock_node (rn);  ripng_aggregate_delete (&p);  return CMD_SUCCESS;}DEFUN (ripng_default_metric,       ripng_default_metric_cmd,       "default-metric <1-16>",       "Set a metric of redistribute routes\n"       "Default metric\n"){  if (ripng)    {      ripng->default_metric = atoi (argv[0]);    }  return CMD_SUCCESS;}DEFUN (no_ripng_default_metric,       no_ripng_default_metric_cmd,       "no default-metric",       NO_STR       "Set a metric of redistribute routes\n"       "Default metric\n"){  if (ripng)    {      ripng->default_metric = RIPNG_DEFAULT_METRIC_DEFAULT;    }  return CMD_SUCCESS;}ALIAS (no_ripng_default_metric,       no_ripng_default_metric_val_cmd,       "no default-metric <1-16>",       NO_STR       "Set a metric of redistribute routes\n"       "Default metric\n");#if 0/* RIPng update timer setup. */DEFUN (ripng_update_timer,       ripng_update_timer_cmd,       "update-timer SECOND",       "Set RIPng update timer in seconds\n"       "Seconds\n"){  unsigned long update;  char *endptr = NULL;  update = strtoul (argv[0], &endptr, 10);  if (update == ULONG_MAX || *endptr != '\0')    {      vty_out (vty, "update timer value error%s", VTY_NEWLINE);      return CMD_WARNING;    }  ripng->update_time = update;  ripng_event (RIPNG_UPDATE_EVENT, 0);  return CMD_SUCCESS;}DEFUN (no_ripng_update_timer,       no_ripng_update_timer_cmd,       "no update-timer SECOND",       NO_STR       "Unset RIPng update timer in seconds\n"       "Seconds\n"){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品新av中文字幕| 亚洲乱码国产乱码精品精可以看 | 日韩色视频在线观看| 一区二区三区色| eeuss鲁片一区二区三区在线观看| 欧美精品久久天天躁| 亚洲视频一二区| 不卡一卡二卡三乱码免费网站 | 五月婷婷综合激情| 欧美视频在线一区| 亚洲制服丝袜在线| 欧美日韩精品欧美日韩精品| 亚洲黄色小说网站| 欧美视频中文字幕| 亚洲成av人片在线| 在线不卡中文字幕播放| 日韩精品欧美成人高清一区二区| 欧美视频一区二区三区四区| 亚洲国产精品久久艾草纯爱 | 亚洲欧美激情插| 欧美三级视频在线播放| 亚洲高清在线视频| 日韩一区二区在线看| 黑人精品欧美一区二区蜜桃| 亚洲精品一区二区三区影院 | 日韩欧美精品在线| 国产成人av电影在线观看| 国产精品色哟哟| 色综合久久久久久久久| 国产福利一区二区三区视频 | 97久久人人超碰| 婷婷中文字幕综合| 精品国产乱码久久久久久图片| 国产资源在线一区| 洋洋av久久久久久久一区| 欧美色综合网站| 国产大陆亚洲精品国产| 樱桃视频在线观看一区| 久久先锋影音av鲁色资源| 色综合久久综合| 精东粉嫩av免费一区二区三区| 亚洲人成网站在线| 久久众筹精品私拍模特| 欧美亚洲一区二区三区四区| 国产不卡视频一区| 日韩精品乱码av一区二区| 欧美极品美女视频| 精品久久久久一区| 欧美午夜不卡视频| 91免费看`日韩一区二区| 国产乱妇无码大片在线观看| 亚洲亚洲精品在线观看| 国产精品福利一区| 国产精品久久久久久久浪潮网站| 欧美一区2区视频在线观看| 在线观看视频91| 91黄色免费看| 在线精品亚洲一区二区不卡| 波波电影院一区二区三区| 久久成人免费电影| 免费在线成人网| 午夜精品久久久久久久99樱桃| 国产精品久久久久久久久久免费看 | 久久这里只有精品视频网| 91精品国产品国语在线不卡| 欧美日韩高清一区二区不卡| 在线看国产一区| 精品国产乱码久久久久久闺蜜| 欧美三级视频在线| 欧美日韩午夜精品| 欧美一区午夜视频在线观看| 欧美日韩国产一级| 91精选在线观看| 91精品免费观看| 欧美白人最猛性xxxxx69交| 日韩精品中午字幕| 久久久蜜臀国产一区二区| 国产亚洲一区二区三区| 国产精品免费视频一区| 中文字幕一区二区三区蜜月 | 亚洲成人av福利| 久久99热国产| 高清在线成人网| 日本高清不卡视频| 欧美一区二区三区色| 国产网红主播福利一区二区| 国产精品水嫩水嫩| 伊人开心综合网| 免费观看91视频大全| 粉嫩一区二区三区性色av| 在线精品国精品国产尤物884a| 在线观看91精品国产麻豆| 国产午夜一区二区三区| 夜夜精品浪潮av一区二区三区| 美女一区二区久久| 99麻豆久久久国产精品免费| 色猫猫国产区一区二在线视频| 日韩一区二区免费在线电影| 国产精品色在线观看| 日韩激情一二三区| 久久久亚洲欧洲日产国码αv| 国产欧美日韩麻豆91| 亚洲成人免费av| 99视频精品全部免费在线| 日韩欧美在线一区二区三区| 国产精品一区不卡| 欧美日本视频在线| 亚洲精品欧美综合四区| 国产一区二区毛片| 欧美精品在线观看一区二区| 国产精品每日更新在线播放网址| 久久精品理论片| 欧美日本乱大交xxxxx| 亚洲精品少妇30p| av不卡在线播放| 久久伊人蜜桃av一区二区| 日韩黄色一级片| 欧美男男青年gay1069videost | 亚洲欧洲精品一区二区三区| 激情综合网激情| 日韩一二三四区| 日韩高清不卡在线| 欧美男男青年gay1069videost| 亚洲高清免费观看 | 99久久精品国产毛片| 中文字幕在线不卡视频| 99re成人精品视频| 亚洲精品成人天堂一二三| 91久久精品一区二区三区| ●精品国产综合乱码久久久久| 国产精品456| 国产色产综合产在线视频| 日韩精品自拍偷拍| 国产精品一区免费视频| 中文字幕精品三区| av电影在线观看一区| 亚洲乱码中文字幕综合| 欧美日本一道本在线视频| 日韩电影在线观看电影| 精品999在线播放| 成人av综合在线| 亚洲精品伦理在线| 777xxx欧美| 丁香啪啪综合成人亚洲小说| 国产精品久久一级| 欧美主播一区二区三区美女| 日韩在线一区二区三区| 久久青草国产手机看片福利盒子| 国产成人一区二区精品非洲| 中文字幕免费不卡| 欧美美女bb生活片| 国产成人亚洲精品青草天美| 亚洲天堂精品在线观看| 欧美日本一道本| 成人免费毛片高清视频| 亚洲成av人片观看| 亚洲国产精品99久久久久久久久| 色猫猫国产区一区二在线视频| 美女在线视频一区| 亚洲人成在线观看一区二区| 日韩免费视频线观看| 色噜噜狠狠一区二区三区果冻| 美女国产一区二区| 香港成人在线视频| 亚洲欧美另类小说视频| 久久婷婷国产综合精品青草| 日本二三区不卡| 国产盗摄一区二区| 老司机午夜精品99久久| 亚洲色图都市小说| 国产欧美日韩亚州综合| 亚洲精品在线免费观看视频| 亚洲色图欧洲色图| 国产精品久久久久久久第一福利| 日韩欧美在线综合网| 欧美一级日韩不卡播放免费| 日本韩国欧美三级| 不卡的av在线播放| 国产成人综合精品三级| 九九视频精品免费| 丝袜亚洲另类丝袜在线| 一个色妞综合视频在线观看| 日本一区二区三区在线观看| 久久亚洲精华国产精华液| 91精品国产乱| 欧美电视剧在线观看完整版| 4hu四虎永久在线影院成人| 欧美精品vⅰdeose4hd| 欧美一区二区在线观看| 欧美日韩一级黄| 在线播放91灌醉迷j高跟美女| 欧美午夜电影在线播放| 欧美日韩国产综合一区二区 | 亚洲色欲色欲www| 一区二区三区色| 日韩av午夜在线观看| 精品一区二区三区的国产在线播放 | 国产a区久久久| 成人精品小蝌蚪| 色综合久久久久久久久久久|