1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: socket_Entry.autogen.h 4 5 Copyright (C)2010 Nintendo Co., Ltd. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Rev: 26698 $ 14 *---------------------------------------------------------------------------*/ 15 16 /** 17 * GetInstanceOpt(), SetInstanceOpt()で使用する情報構造体 18 */ 19 20 #ifndef NN_SOCKET_SOCKET_ENTRY_AUTOGEN_H_ 21 #define NN_SOCKET_SOCKET_ENTRY_AUTOGEN_H_ 22 23 #include <nn/socket/socket_User.autogen.h> /* for NN_SOCKET_IP_ALEN, NN_SOCKET_ETH_ALEN */ 24 25 namespace nn { 26 namespace socket { 27 28 enum ArpState { 29 ARP_STATE_INCOMPLETE = 1, //!< ARP解決実行中状態 30 ARP_STATE_REACHABLE = 2, //!< 到達可能状態 31 ARP_STATE_PROBE = 3 //!< 確認中状態 32 }; 33 34 /** 35 * GetInstanceOpt(), SetInstanceOpt()でCONFIG_ARP_TABLE使用時の構造体 36 */ 37 struct ArpEntry 38 { 39 int state; //!< ARP_STATE_*のいずれか 40 u8 prAddr[NN_SOCKET_IP_ALEN]; //!< IPアドレス 41 u8 hwAddr[NN_SOCKET_ETH_ALEN]; //!< MACアドレス 42 }; 43 44 45 /** 46 * GetInstanceOpt(), SetInstanceOpt()でCONFIG_IP_ADDR_TABLE 使用時の構造体 47 */ 48 struct IpAddrEntry 49 { 50 u8 addr[NN_SOCKET_IP_ALEN]; //!< IPアドレス 51 u8 netMask[NN_SOCKET_IP_ALEN]; //!< サブネットマスク 52 u8 bcastAddr[NN_SOCKET_IP_ALEN]; //!< ブロードキャストアドレス 53 }; 54 55 enum IpRouteFlag { 56 IP_ROUTE_FLAG_G = 0x01, //!< ルータからの情報により作成 57 IP_ROUTE_FLAG_D = 0x02, //!< ICMPにより作成 58 IP_ROUTE_FLAG_M = 0x04 //!< ICMPにより変更 59 }; 60 61 /** 62 * GetInstanceOpt(), SetInstanceOpt()でCONFIG_IP_ROUTING_TABLE 使用時の構造体 63 */ 64 struct IpRouteEntry 65 { 66 u8 dst[NN_SOCKET_IP_ALEN]; //!< 宛先IPアドレス 67 u8 netmask[NN_SOCKET_IP_ALEN]; //!< サブネットマスク 68 u8 gateway[NN_SOCKET_IP_ALEN]; //!< next-hopゲートウエイ 69 u32 flag; //!< IP_ROUTE_FLAG_XXX、SetInstanceOpt()では0を指定してください。 70 s64 time; //!< 最後にアクセスされた時刻(tick)、SetInstanceOpt()では0を指定してください。 71 }; 72 73 #ifdef NN_SOCKET_IP6_ENABLE 74 /** 75 * GetInstanceOpt(), SetInstanceOpt()でCONFIG_IP6_ADD_ROUTE 使用時の構造体 76 */ 77 struct Ip6RouteEntry 78 { 79 u8 prefix[NN_SOCKET_IP6_ALEN]; //!< プレフィックス 80 u32 prefixLen; //!< プレフィックス長 81 u32 flag; //!< IP_ROUTE_FLAG_XXX、SetInstanceOpt()では0を指定してください。 82 u32 expireTime; //!< 期限切れとなる時刻(秒)、SetInstanceOpt()時は0を指定してください。 83 }; 84 85 /** 86 * GetInstanceOpt(), SetInstanceOpt()でCONFIG_IP6_ADD_ADDRESS、 87 * CONFIG_IP6_ADDR_TABLE 使用時の構造体 88 */ 89 struct Ip6MyAddrEntry 90 { 91 u8 addr[NN_SOCKET_IP6_ALEN]; //!< アドレス 92 u32 preferredTime; //!< Preferred Lifetime(秒) 93 u32 validTime; //!< Valid Lifetime(秒) 94 u32 state; //!< 自アドレスの状態 IP6_MYADR_ST_XXXX、SetInstanceOpt()時は0を指定してください。 95 Bool anycast; //!< エニーキャストアドレスか否か 96 }; 97 98 /** 99 * GetInstanceOpt(), SetInstanceOpt()でCONFIG_IP6_ADD_PREFIX、 100 * CONFIG_IP6_PREFIX_TABLE 使用時の構造体 101 */ 102 struct Ip6PrefixEntry 103 { 104 u8 prefix[NN_SOCKET_IP6_ALEN]; //!< プレフィックス 105 u32 prefixLen; //!< プレフィックス長。GetInstanceOpt()時は1-64のビット長で指定してください。 106 u32 preferredTime; //!< Preferred Lifetime(秒) 107 u32 validTime; //!< Valid Lifetime(秒) 108 u8 flags; //!< NDP_OPT_PI_FLAG_XXXXのいずれか 109 }; 110 111 /** 112 * GetInstanceOpt() 113 * CONFIG_IP6_NEIGHBOR_CACHE_TABLE 使用時の構造体 114 */ 115 struct Ip6NeighborCacheEntry 116 { 117 u8 addr[NN_SOCKET_IP6_ALEN]; //!< 近隣アドレス 118 u32 state; //!< キャッシュの状態 NDP_NCST_XXXX 119 Bool isRouter; //!< ルータか否か 120 }; 121 122 /** 123 * GetInstanceOpt()で 124 * CONFIG_IP6_DESTINATION_CACHE_TABLE 使用時の構造体 125 */ 126 struct Ip6DestinationCacheEntry 127 { 128 u8 dst[NN_SOCKET_IP6_ALEN]; //!< 宛先アドレス 129 u8 nextHop[NN_SOCKET_IP6_ALEN]; //!< 次ホップアドレス 130 u32 pmtu; //!< パスMTU値 131 }; 132 133 /** 134 * GetInstanceOpt()で 135 * CONFIG_IP6_DEFAULT_ROUTER_TABLE 使用時の構造体 136 */ 137 struct Ip6DefaultRouterEntry 138 { 139 u8 addr[NN_SOCKET_IP6_ALEN]; //!< デフォルトルータアドレス 140 }; 141 142 #endif /* NN_SOCKET_IP6_ENABLE */ 143 144 /** 145 * GetInstanceOpt(), SetInstanceOpt()でCONFIG_UDP_TABLE 使用時の構造体 146 */ 147 struct UdpEntry 148 { 149 SockAddrStorage local; //!< 自ソケットアドレス情報 150 SockAddrStorage remote; //!< 相手先ソケットアドレス情報 151 }; 152 153 154 #define TCP_STATE_CLOSED 1 //!< CLOSEDステート 155 #define TCP_STATE_LISTEN 2 //!< LISTENステート 156 #define TCP_STATE_SYN_SENT 3 //!< SYN_SENTステート 157 #define TCP_STATE_SYN_RECEIVED 4 //!< SYN_RECEIVED ステート 158 #define TCP_STATE_ESTABLISHED 5 //!< ESTABLISHEDステート 159 #define TCP_STATE_FINWAIT1 6 //!< FINWAIT_1ステート 160 #define TCP_STATE_FINWAIT2 7 //!< FINWAIT_2ステート 161 #define TCP_STATE_CLOSE_WAIT 8 //!< CLOSE_WAITステート 162 #define TCP_STATE_LAST_ACK 9 //!< LAST_ACKステート 163 #define TCP_STATE_CLOSING 10 //!< CLOSINGステート 164 #define TCP_STATE_TIME_WAIT 11 //!< TIME_WAITステート 165 166 /** 167 * GetInstanceOpt(), SetInstanceOpt()でCONFIG_TCP_TABLE 使用時の構造体 168 */ 169 struct TcpEntry 170 { 171 s32 state; //!< TCP_STATE_*のいずれか 172 SockAddrStorage local; //!< 自ソケットアドレス情報 173 SockAddrStorage remote; //!< 相手先ソケットアドレス情報 174 }; 175 176 177 } // socket 178 } // nn 179 #endif /* NN_SOCKET_SOCKET_ENTRY_AUTOGEN_H_ */ 180