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

📄 main.c

📁 wm PNE 3.3 source code, running at more than vxworks6.x version.
💻 C
📖 第 1 页 / 共 5 页
字号:
    sty_puts(sty, "Off\n");#endif    break;  }  return 1;			/* restart the command scanner */}/* * Dump the routing table, for SNMP-challenged test environments. */static void dump_routes_1(struct route_tree *rt, void *cookie){  struct sty *sty = cookie;  route_entry_t *r = rt->rte;  char dest[16], mask[16], gw[16];  inaddr_t mask_in;  ipaddr_t mask_ip;  while (r) {    /* don't try to display v6 routes (yet?) */    if (GET_IPADDR_TYPE(PTR_RTE_ENTRY_ADDR(r)) != IPV4)      return;    ipaddr_to_string(PTR_RTE_ENTRY_ADDR(r), dest, sizeof(dest));    ipaddr_to_string(PTR_RTE_ENTRY_ADDR(r), gw, sizeof(gw));    mask_in = PFXLEN_TO_IPV4_MASK(GET_RTE_ENTRY_PFXLEN(r));    SET_IPV4_IPADDR(&mask_ip, &mask_in);    ipaddr_to_string(&mask_ip, mask, sizeof(mask));    sty_printf(sty, "%15s %15s %15s %6s %6s %2x %3u %3u %2x\n",	       dest, mask, gw,	       (!r->net ? "" : r->net->s_name ? r->net->s_name : "???"),	       (!r->owner ? "" : r->owner->name ? r->owner->name : "???"),	       r->tos, r->priority, r->tag, 	       (r->rte_flags | (bits16_t) r->rte_type));    r = r->link;  }}static boolean_t cmd_add_route  (struct sty *sty, enum help_level help, int argc, char **argv){  ipaddr_t addr, nhaddr;  bits8_t pfxlen, pref, type, tos, tag;  bits32_t metric;  net_if *nhif;  int rc;  switch (help) {   case help_short:    sty_puts(sty, "add-route       add a route to the routing table\n");    return(1);   case help_long:    sty_puts(sty, "\The \"add-route\" command adds a new route to the Attache routing table.\nUsage:\nadd-route <dstip> <pfxlen> <nhip> <if> <metric> <pref> <type> <tos> [tag]\n");    return(1);   case help_none:    break;  }  if ((argc < 9) || (argc > 10))    {         sty_printf (sty, "Wrong number of arguments.  Usage:\nadd-route <dstip> <pfxlen> <nhip> <if> <metric> <pref> <type> <tos> [tag]\n");      return 1;    }  string_to_ipaddr (argv [1], &addr);  if (GET_IPADDR_TYPE(&addr) == IPNONE)    {         sty_printf (sty, "Bad IP address format in 'addr' parameter\n");       return 1;    }    pfxlen = (bits8_t) atoi (argv [2]);    string_to_ipaddr (argv [3], &nhaddr);  if (GET_IPADDR_TYPE(&nhaddr) == IPNONE)    {         sty_printf (sty, "Bad IP address format in 'nhaddr' parameter\n");       return 1;    }    if ((nhif = if_lookup(argv[4])) == 0)    {      sty_printf (sty, "Unknown interface, %s\n.", argv[4]);      return(1);    }  metric = (bits32_t) atoi (argv [5]);  pref   = (bits8_t) atoi (argv [6]);  if ((STRCMP(argv[7], "RF_INDIRECT") == 0) ||      (STRCMP(argv[7], "RF_REMOTE") == 0))    type = RF_INDIRECT;  else if ((STRCMP(argv[7], "RF_DIRECT") == 0) ||	   (STRCMP(argv[7], "RF_LOCAL") == 0))    type = RF_DIRECT;  else if (STRCMP(argv[7], "RF_BROADCAST") == 0)    type = RF_BROADCAST;  else if (STRCMP(argv[7], "RF_MULTICAST") == 0)    type = RF_MULTICAST;  else if ((STRCMP(argv[7], "RF_MARTIAN") == 0) ||	   (STRCMP(argv[7], "RF_REJECT") == 0))    type = RF_MARTIAN;  else    {      sty_printf(sty, "Bad route type, %s.\n", argv[7]);      return(1);    }  tos = (bits8_t) atoi (argv [8]);  if (argc == 10)    tag = (bits8_t) atoi (argv [9]);  else    tag = static_routes_owner.default_tag;  if (route_add(&addr, pfxlen, &nhaddr, nhif, metric, pref, type, tos,		tag, 0, &static_routes_owner, (route_ext_t *)0, &rc)       == RTE_NULL)    {      sty_printf (sty, "Route creations failed, rc = %d\n", rc);      return(1);    }  sty_printf (sty, "New route added successfully.\n");  return(1);}static boolean_t cmd_delete_route  (struct sty *sty, enum help_level help, int argc, char **argv){  ipaddr_t addr;  bits8_t pfxlen, tag;  int rc;  switch (help) {   case help_short:    sty_puts(sty, "delete-route    delete a route from the routing table\n");    return(1);   case help_long:    sty_puts(sty, "\The \"delete-route\" command deletes a route from the Attache routing table.\nUsage:\ndelete-route <dstip> <pfxlen> <tag>\n");    return(1);   case help_none:    break;  }  if (argc != 4)    {         sty_printf (sty, "Wrong number of arguments.  Usage:\ndelete-route <dstip> <pfxlen> <tag>\n");      return 1;    }  string_to_ipaddr (argv [1], &addr);  if (GET_IPADDR_TYPE(&addr) == IPNONE)    {         sty_printf (sty, "Bad IP address format in 'addr' parameter\n");       return 1;    }    pfxlen = (bits8_t) atoi (argv [2]);  tag = (bits8_t) atoi (argv [3]);  if ((rc = route_delete(&addr, pfxlen, tag)) != RTE_ERR_NONE)    {      sty_printf (sty, "Route deleteion failed, rc = %d\n", rc);      return(1);    }  sty_printf (sty, "Route deleted successfully.\n");  return(1);}boolean_t cmd_dump_routes  (struct sty *sty, enum help_level help, int argc, char **argv){  switch (help) {   case help_short:    sty_puts(sty, "dump-routes     print contents of routing table(s)\n");    break;   case help_long:    sty_puts(sty, "\The \"dump_routes\" command prints out the current contents of the\n\Attache routing table.\n");    break;   case help_none:    sty_puts(sty, "IPv4 Routing Table:\n\           Dest            Mask             Gw    Net  Owner TOS Pri Tag Fl\n\---------------------------------------------------------------------------\n\");    route_function_iterate(dump_routes_1, sty);#if INSTALL_ATTACHE_IPV6    printf("\n\nIPv6 Routing Table:\n");    if (avl_print(ipv6_routing_table) != 0)      {	printf("AVL Printing Function NOT Available.\n");	printf("Compile attache/net/avltree.c and ip_rte.c with PRINTF defined.\n");      }#endif    break;  }  return 1;			/* restart the command scanner */}#if (INSTALL_ATTACHE_IPV4_ROUTER_DISCOVERY && \     (!INSTALL_ATTACHE_IP_FORWARDING))static boolean_t cmd_dump_rdcache  (struct sty *sty, enum help_level help, int argc, char **argv){  switch (help) {   case help_short:    sty_puts(sty, "dump-rdcache    print contents of Router Discovery cache\n");    break;   case help_long:    sty_puts(sty, "\The \"dump_rdcache\" command prints out the current contents of the\n\IPv4 Router Discovery cache.\n");    break;   case help_none:    if (router_cache_print(ipv4_rd_cache) != 0)      {	printf("RD Cache Printing Function NOT Available.\n");	printf("Compile attache/net/ip4_rd.c with PRINTF defined.\n");      }    break;  }  return 1;			/* restart the command scanner */}#endif#if INSTALL_ATTACHE_IPV6static boolean_t cmd_dump_v6_globals  (struct sty *sty, enum help_level help, int argc, char **argv){  switch (help) {   case help_none:    v6_print_globals();    break;   case help_short:    sty_puts(sty, "dump-v6-globals print out v6 global information\n");    break;   case help_long:    sty_puts(sty, "\print out v6 global information\n");    break;  }  return 1;}static boolean_t cmd_dump_v6_nd  (struct sty *sty, enum help_level help, int argc, char **argv){  switch (help) {   case help_none:    v6_print_nd_cache();    break;   case help_short:    sty_puts(sty, "dump-v6-nd      print out entries in v6 nd cache\n");    break;   case help_long:    sty_puts(sty, "\print out entries in v6 nd cache\n");    break;  }  return 1;}#if INSTALL_ATTACHE_IPV6_DADstatic boolean_t cmd_set_v6_dad_globals  (struct sty *sty, enum help_level help, int argc, char **argv){  bits32_t xmits, interval;  switch (help) {   case help_none:    if (argc != 3) {      sty_printf (sty, "Wrong number of arguments.  Usage: set-v6-dad <xmits> <interval>\n");      return 1;    }    xmits    = atoi(argv[1]);    interval = atoi(argv[2]);    v6_set_dad_xmits((bits16_t)xmits);    v6_set_dad_interval(interval);    break;   case help_short:    sty_puts(sty, "set-v6-dad      set v6 DAD global information\n");    break;   case help_long:    sty_puts(sty, "\Usage: set-v6-dad <xmits> <interval>\n");    break;  }  return 1;}static boolean_t cmd_dump_v6_dad  (struct sty *sty, enum help_level help, int argc, char **argv){  switch (help) {   case help_none:    v6_print_dad_list();    break;   case help_short:    sty_puts(sty, "dump-v6-dad     print out entries in v6 dad list\n");    break;   case help_long:    sty_puts(sty, "\print out entries in v6 dad list\n");    break;  }  return 1;}#endif /* #if INSTALL_ATTACHE_IPV6_DAD */#if INSTALL_ATTACHE_IPV6_RDstatic boolean_t cmd_set_v6_rd_globals  (struct sty *sty, enum help_level help, int argc, char **argv){  bits32_t xmits, interval, delay;  switch (help) {   case help_none:    if (argc != 4) {      sty_printf (sty, "Wrong number of arguments.  Usage: set-v6-rd <xmits> <interval> <delay>\n");      return 1;    }    xmits    = atoi(argv[1]);    interval = atoi(argv[2]);    delay    = atoi(argv[3]);    v6_set_rd_xmits((bits8_t)xmits);    v6_set_rd_interval(interval);    v6_set_rd_delay(delay);           break;   case help_short:    sty_puts(sty, "set-v6-rd       set v6 router discovery global information\n");    break;   case help_long:    sty_puts(sty, "\Usage: set-v6-rd <xmits> <interval> <delay>\n");    break;  }  return 1;}static boolean_t cmd_dump_v6_prefixes  (struct sty *sty, enum help_level help, int argc, char **argv){  switch (help) {   case help_none:    v6_print_rd_prefix_list();    break;   case help_short:    sty_puts(sty, "dump-v6-prefix  print out entries in v6 prefix list\n");    break;   case help_long:    sty_puts(sty, "\print out entries in v6 prefix list\n");    break;  }  return 1;}static boolean_t cmd_dump_v6_tokens  (struct sty *sty, enum help_level help, int argc, char **argv){  switch (help) {   case help_none:    v6_print_rd_token_list();    break;   case help_short:    sty_puts(sty, "dump-v6-token   print out entries in v6 token list\n");    break;   case help_long:    sty_puts(sty, "\print out entries in v6 token list\n");    break;  }  return 1;}#endif /* #if INSTALL_ATTACHE_IPV6_RD */#if INSTALL_ATTACHE_IPV6_REDIRECTstatic boolean_t cmd_set_v6_redirect_globals  (struct sty *sty, enum help_level help, int argc, char **argv){  bits32_t interval, count;  switch (help) {   case help_none:    if (argc != 3) {      sty_printf (sty, "Wrong number of arguments.  Usage: set-v6-redirect <interval> <count>\n");      return 1;    }    interval = atoi(argv[1]);    count    = atoi(argv[2]);    v6_set_redirect_interval(interval);    v6_set_redirect_count((bits16_t)count);    break;   case help_short:    sty_puts(sty, "set-v6-redirect set v6 redirect global information\n");    break;   case help_long:    sty_puts(sty, "\Usage: set-v6-redirect <interval> <count>\n");    break;  }  return 1;}#endif /* #if INSTALL_ATTACHE_IPV6_REDIRECT */#if INSTALL_ATTACHE_IPV6_FRAGMENTATIONstatic boolean_t cmd_set_v6_reasm_globals  (struct sty *sty, enum help_level help, int argc, char **argv){  bits32_t max_pkts, max_time;  switch (help) {   case help_none:    if (argc != 3) {      sty_printf (sty, "Wrong number of arguments.  Usage: set-v6-reasm <max_pkts> <max_time>\n");      return 1;    }    max_pkts = atoi(argv[1]);    max_time = atoi(argv[2]);    v6_set_reasm_max_pkts(max_pkts);    v6_set_reasm_max_time(max_time);    break;   case help_short:    sty_puts(sty, "set-v6-reasm    set v6 reassembly global information\n");    break;   case help_long:    sty_puts(sty, "\Usage: set-v6-reasm <max_ptks> <max_time>\n");    break;  }  return 1;}#endif /* #if INSTALL_ATTACHE_IPV6_FRAGMENTATION */static boolean_t cmd_clean_nd  (struct sty *sty, enum help_level help, int argc, char **argv){  switch (help) {   case help_none:    nd_shutdown();    nd_init();    break;   case help_short:    sty_puts(sty, "clean-nd        clean up the nd cache for v6\n");    break;   case help_long:    sty_puts(sty, "\clean up the nd cache for v6\n");    break;  }  return 1;}#endif /* #if INSTALL_ATTACHE_IPV6 *//* * Keep this table in lexical order, lookup uses binary search. */extern boolean_t cmd_if_stat(struct sty *, enum help_level, int, char **);extern boolean_t cmd_if_down(struct sty *, enum help_level, int, char **);extern boolean_t cmd_if_up(struct sty *, enum help_level, int, char **);extern boolean_t cmd_if_detach(struct sty *, enum help_level, int, char **);extern boolean_t cmd_if_attach(struct sty *, enum help_level, int, char **);#if INSTALL_ATTACHE_IPSECstatic boolean_t cmd_addsa  (struct sty *sty, enum he

⌨️ 快捷键说明

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