Changeset 331 for EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c
- Timestamp:
- Jan 21, 2018, 12:10:09 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c
r321 r331 2 2 * TINET (TCP/IP Protocol Stack) 3 3 * 4 * Copyright (C) 2001-20 09by Dep. of Computer Science and Engineering4 * Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * … … 93 93 #include <net/ppp_ipcp.h> 94 94 #include <net/net.h> 95 #include <net/net_endian.h> 95 96 #include <net/net_var.h> 96 97 #include <net/net_buf.h> … … 100 101 #include <netinet/in.h> 101 102 #include <netinet/in_var.h> 102 #include <netinet6/in6.h> 103 #include <netinet6/in6_var.h> 103 #include <netinet/ip.h> 104 #include <netinet/ip_var.h> 105 #include <netinet/ip_icmp.h> 106 104 107 #include <netinet6/nd6.h> 105 108 #include <netinet6/in6_ifattach.h> 106 #include <netinet/ip6.h> 107 #include <netinet/icmp6.h> 108 #include <netinet6/ip6_var.h> 109 110 #include <net/if6_var.h> 109 110 #include <net/if_var.h> 111 111 112 112 /* … … 116 116 extern const char *itron_strerror (ER ercd); 117 117 118 #ifdef SUPPORT_INET6118 #ifdef _IP6_CFG 119 119 120 120 #if NUM_ND6_DEF_RTR_ENTRY > 0 … … 284 284 */ 285 285 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { 286 ia = &ifp->in _ifaddrs[ix];286 ia = &ifp->in6_ifaddrs[ix]; 287 287 if ((ia->flags & (IN6_IFF_DEFINED | IN6_IFF_AUTOCONF)) != 0 && 288 288 ia->prefix_index != ND6_PREFIX_IX_INVALID) { … … 299 299 */ 300 300 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { 301 ia = &ifp->in _ifaddrs[ix];301 ia = &ifp->in6_ifaddrs[ix]; 302 302 if ((ia->flags & (IN6_IFF_DEFINED | IN6_IFF_AUTOCONF)) != 0 && 303 303 ia->prefix_index != ND6_PREFIX_IX_INVALID) { … … 316 316 */ 317 317 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { 318 ia = &ifp->in _ifaddrs[ix];318 ia = &ifp->in6_ifaddrs[ix]; 319 319 if ((ia->flags & (IN6_IFF_DEFINED | IN6_IFF_AUTOCONF)) != 0) 320 320 ia->flags &= ~IN6_IFF_DETACHED; … … 448 448 /* 各メンバに値を設定する。*/ 449 449 fdr->plistmap = 0; 450 fdr->addr = *src;450 memcpy(&fdr->addr, src, sizeof(T_IN6_ADDR)); 451 451 fdr->lifetime = lifetime * SYSTIM_HZ; /* lifetime の単位は秒 */ 452 452 fdr->flags = flags; … … 478 478 int_t ix; 479 479 480 lla = &ifp->in _ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];480 lla = &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL]; 481 481 482 482 /* … … 585 585 586 586 /* リンクローカルアドレスが未登録であれば何もしない。*/ 587 lla = &ifp->in _ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];587 lla = &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL]; 588 588 if ((lla->flags & IN6_IFF_DEFINED) == 0) 589 589 return E_OK; … … 594 594 */ 595 595 for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) { 596 ia = &ifp->in _ifaddrs[ix];596 ia = &ifp->in6_ifaddrs[ix]; 597 597 if (ia->prefix_index == (pr - nd6_prefix)) 598 598 break; … … 634 634 */ 635 635 for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) { 636 ia = &ifp->in _ifaddrs[ix];636 ia = &ifp->in6_ifaddrs[ix]; 637 637 if (ia->prefix_index == (pr - nd6_prefix)) 638 638 break; … … 692 692 T_ND6_PREFIX *pr = NULL; 693 693 int_t ix; 694 ER error;695 694 696 695 /* プレフィックスリストから空きのプレフィックスエントリを探索する。*/ … … 723 722 724 723 if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) != 0) { 725 if ( (error = nd6_prefix_onlink(pr)) != E_OK)724 if (nd6_prefix_onlink(pr) != E_OK) 726 725 return NULL; 727 726 } … … 812 811 } 813 812 813 #if 1 /* プレフィックスが未登録の場合だけ表示する。*/ 814 syslog(LOG_NOTICE, "[ND6 RTR] add prefix: flags[MOH]: %02x, addr: %s\n" 815 " from: %s.", 816 nd6_def_router[router_index].flags, 817 ipv62str(NULL, &pi->prefix), 818 ipv62str(NULL, &nd6_def_router[router_index].addr)); 819 #endif 814 820 if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0) { 815 821 /* … … 836 842 */ 837 843 for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) { 838 ia = &ifp->in _ifaddrs[ix];844 ia = &ifp->in6_ifaddrs[ix]; 839 845 if ((ia->flags & IN6_IFF_DEFINED) != 0 && 840 846 ia->prefix_len == pr->prefix_len && … … 892 898 } 893 899 894 lla = &ifp->in _ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];900 lla = &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL]; 895 901 896 902 /* プレフィックスマスクを生成する。*/ … … 922 928 923 929 for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) { 924 ia = &ifp->in _ifaddrs[ix];930 ia = &ifp->in6_ifaddrs[ix]; 925 931 if ((ia->flags & IN6_IFF_DEFINED) == 0) { 926 932 in6_ifadd(pr, ia, router_index); … … 971 977 T_NET_BUF *output; 972 978 T_IN6_IFADDR *ifa; 973 T_IN6_ADDR*saddr;979 const T_IN6_ADDR *saddr; 974 980 uint16_t len; 975 981 … … 1017 1023 1018 1024 T_DEF_ROUTER * 1019 nd6_defrtrlist_lookup ( T_IN6_ADDR *src)1025 nd6_defrtrlist_lookup (const T_IN6_ADDR *src) 1020 1026 { 1021 1027 T_DEF_ROUTER *dr = NULL; … … 1036 1042 */ 1037 1043 1038 T_IN6_ADDR *1044 const T_IN6_ADDR * 1039 1045 nd6_router_lookup (void) 1040 1046 { … … 1260 1266 syslog(LOG_NOTICE, "[ND6 RTR] preferred(%d) > valid time(%d).", ntohl(pi->preferred), ntohl(pi->valid)); 1261 1267 else { 1262 syslog(LOG_NOTICE, "[ND6 RTR] update prefix: %s from %s.", 1263 ipv62str(NULL, &pi->prefix), ipv62str(NULL, &ip6h->src)); 1268 #if 0 /* プレフィックスが未登録の場合だけ表示する。*/ 1269 syslog(LOG_NOTICE, "[ND6 RTR] update prefix: flags[MOH]: %02x, addr: %s\n" 1270 " from: %s.", 1271 rah->nd_ra_flags, ipv62str(NULL, &pi->prefix), ipv62str(NULL, &ip6h->src)); 1272 #endif 1264 1273 if (rix >= 0) { 1265 1274 /* … … 1391 1400 1392 1401 T_ND6_PREFIX * 1393 nd6_onlink_prefix_lookup ( T_IN6_ADDR *dst)1402 nd6_onlink_prefix_lookup (const T_IN6_ADDR *dst) 1394 1403 { 1395 1404 SYSTIM now; … … 1427 1436 } 1428 1437 1429 #endif /* of #ifdef SUPPORT_INET6*/1438 #endif /* of #ifdef _IP6_CFG */
Note:
See TracChangeset
for help on using the changeset viewer.