Changeset 331 for EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h
- Timestamp:
- Jan 21, 2018, 12:10:09 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h
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 * … … 75 75 */ 76 76 77 #define IP_UDP_HDR_SIZE (IP_HDR_SIZE + UDP_HDR_SIZE)78 #define IF_IP_UDP_HDR_SIZE (IF_IP_HDR_SIZE + UDP_HDR_SIZE)79 #define IF_IP_UDP_HDR_OFFSET (IF_IP_HDR_SIZE)80 81 77 #define GET_UDP_HDR(nbuf,uhoff) ((T_UDP_HDR*)((uint8_t*)((nbuf)->buf) + uhoff)) 78 #define GET_UDP_HDR_OFFSET(nbuf) (GET_IF_IP_HDR_SIZE(nbuf)) 82 79 #define GET_UDP_SDU(nbuf,uhoff) ((uint8_t*)((nbuf)->buf) + uhoff+ UDP_HDR_SIZE) 83 80 84 #define GET_UDP_HDR_OFFSET(nbuf) (GET_IF_IP_HDR_SIZE(nbuf)) 85 86 #define GET_IP_UDP_HDR_SIZE(nbuf) (GET_IP_HDR_SIZE(GET_IP_HDR(nbuf)) + UDP_HDR_SIZE) 87 #define GET_IF_IP_UDP_HDR_SIZE(nbuf) (IF_HDR_SIZE + GET_IP_UDP_HDR_SIZE(nbuf)) 81 #define IF_IP_UDP_HDR_SIZE(nbuf) (IF_IP_HDR_SIZE(nbuf) + UDP_HDR_SIZE) 82 #define IF_IP_UDP_HDR_OFFSET(nbuf) (IF_IP_HDR_SIZE(nbuf)) 88 83 89 84 /* … … 91 86 */ 92 87 93 #if defined( SUPPORT_INET4)88 #if defined(_IP4_CFG) 94 89 95 90 #define IP4_UDP_HDR_SIZE IP_UDP_HDR_SIZE … … 98 93 #define GET_IF_IP4_UDP_HDR_SIZE(nbuf) GET_IF_IP_UDP_HDR_SIZE(nbuf) 99 94 100 #endif /* of #if defined( SUPPORT_INET4) */95 #endif /* of #if defined(_IP4_CFG) */ 101 96 102 97 /* … … 110 105 */ 111 106 112 113 /* 114 * IPv4 UDP 通信端点 115 */ 116 typedef struct t_udp4_cep { 107 /* IPv6 用 UDP 通信端点 */ 108 109 typedef struct t_udp6_cep { 117 110 118 111 /* … … 120 113 */ 121 114 ATR cepatr; /* UDP 通信端点属性 */ 122 T_IPV 4EP myaddr; /* 自分のアドレス */115 T_IPV6EP myaddr; /* 自分のアドレス */ 123 116 t_udp_callback callback; /* コールバック関数 */ 124 117 … … 135 128 #ifdef UDP_CFG_NON_BLOCKING 136 129 137 T_IPV 4EP *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/138 T_IPV 4EP *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/130 T_IPV6EP *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/ 131 T_IPV6EP *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/ 139 132 void *snd_data; /* 送信データ領域の先頭アドレス */ 140 133 int_t snd_len; /* 送信データ領域の長さ */ … … 148 141 #endif 149 142 150 } T_UDP4_CEP; 151 152 #if defined(SUPPORT_INET4) 153 #define T_UDP_CEP T_UDP4_CEP 154 #endif 155 156 /* 157 * IPv6 UDP 通信端点 158 */ 159 160 typedef struct t_udp6_cep { 143 } T_UDP6_CEP; 144 145 /* IPv4 用 UDP 通信端点 */ 146 147 typedef struct t_udp4_cep { 161 148 162 149 /* … … 164 151 */ 165 152 ATR cepatr; /* UDP 通信端点属性 */ 166 T_IPV 6EP myaddr; /* 自分のアドレス */153 T_IPV4EP myaddr; /* 自分のアドレス */ 167 154 t_udp_callback callback; /* コールバック関数 */ 168 155 … … 179 166 #ifdef UDP_CFG_NON_BLOCKING 180 167 181 T_IPV 6EP *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/182 T_IPV 6EP*rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/168 T_IPV4EP *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/ 169 T_IPV4EP *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/ 183 170 void *snd_data; /* 送信データ領域の先頭アドレス */ 184 171 int_t snd_len; /* 送信データ領域の長さ */ … … 191 178 ER error; /* 待ち中に発生したエラー */ 192 179 #endif 193 194 } T_UDP6_CEP; 195 196 #if defined(SUPPORT_INET6) 180 #ifdef SUPPORT_IGMP 181 bool_t igmp_loopback; 182 uint8_t igmp_ttl; 183 T_IN4_ADDR igmp_mcaddr; /* */ 184 #endif 185 } T_UDP4_CEP; 186 187 #if defined(_IP6_CFG) 188 197 189 #define T_UDP_CEP T_UDP6_CEP 198 #endif 190 191 #else /* of #if defined(_IP6_CFG) */ 192 193 #if defined(_IP4_CFG) 194 195 #define T_UDP_CEP T_UDP4_CEP 196 197 #endif /* of #if defined(_IP4_CFG) */ 198 199 #endif /* of #if defined(_IP6_CFG) */ 199 200 200 201 /* … … 210 211 */ 211 212 212 #define TMIN_UDP_CEPID 1 /* UDP通信端点 ID の最小値 */213 214 # ifdef SUPPORT_MIB213 #define TMIN_UDP_CEPID 1 /* UDP 通信端点 ID の最小値 */ 214 #define TMIN_UDP6_CEPID 1 /* UDP/IPv6 通信端点 ID の最小値 */ 215 #define TMIN_UDP4_CEPID (TNUM_UDP6_CEPID+1) /* UDP/IPv4 通信端点 ID の最小値 */ 215 216 216 217 /* … … 225 226 } T_UDP_STATS; 226 227 227 #endif /* of #ifdef SUPPORT_MIB */228 229 228 /* 230 229 * 関数シミュレーションマクロ 231 230 */ 232 231 233 #define VALID_UDP_CEPID(id) (TMIN_UDP_CEPID<=(id)&&(id)<=tmax_udp_cepid) 234 235 #define INDEX_UDP_CEP(id) ((id)-TMIN_UDP_CEPID) 236 237 #define GET_UDP_CEP(id) (&(udp_cep[INDEX_UDP_CEP(id)])) 238 239 #define GET_UDP_CEPID(cep) ((ID)(((cep)-udp_cep)+TMIN_UDP_CEPID)) 232 #define VALID_UDP6_CEPID(id) (TMIN_UDP6_CEPID<=(id)&&(id)<=tmax_udp6_cepid) 233 #define VALID_UDP4_CEPID(id) (TMIN_UDP4_CEPID<=(id)&&(id)<=tmax_udp4_cepid) 234 235 #define INDEX_UDP6_CEP(id) ((id)-TMIN_UDP6_CEPID) 236 #define INDEX_UDP4_CEP(id) ((id)-TMIN_UDP4_CEPID) 237 238 #define GET_UDP6_CEP(id) (&(udp6_cep[INDEX_UDP6_CEP(id)])) 239 #define GET_UDP4_CEP(id) (&(udp4_cep[INDEX_UDP4_CEP(id)])) 240 241 #define GET_UDP6_CEPID(cep) ((ID)(((cep)-udp6_cep)+TMIN_UDP6_CEPID)) 242 #define GET_UDP4_CEPID(cep) ((ID)(((cep)-udp4_cep)+TMIN_UDP4_CEPID)) 240 243 241 244 #define VALID_TFN_UDP_CAN(t) ((t)==TFN_UDP_SND_DAT||(t)==TFN_UDP_RCV_DAT||\ … … 249 252 */ 250 253 251 extern T_UDP_CEP udp_cep[]; 254 extern T_UDP_STATS udp_stats; 255 256 /* UDP 通信端点 */ 257 258 extern T_UDP6_CEP udp6_cep[]; 259 extern T_UDP4_CEP udp4_cep[]; 260 261 #if defined(SUPPORT_INET6) 262 #define udp_cep udp6_cep 263 #elif defined(SUPPORT_INET4) 264 #define udp_cep udp4_cep 265 #endif 266 252 267 extern const ID tmax_udp_cepid; 253 268 254 #ifdef SUPPORT_MIB 255 256 extern T_UDP_STATS udp_stats; 257 258 #endif /* of #ifdef SUPPORT_MIB */ 269 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) 270 extern const ID tmax_udp6_cepid; 271 extern const ID tmax_udp4_cepid; 272 #else 273 #define tmax_udp6_cepid tmax_udp_cepid 274 #define tmax_udp4_cepid tmax_udp_cepid 275 #endif 259 276 260 277 /* … … 269 286 */ 270 287 271 extern uint_t udp_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp); 272 extern ER_UINT udp_send_data (T_UDP_CEP *cep, T_IPEP *p_dstaddr, 273 void *data, int_t len, TMO tmout); 274 extern ER udp_can_snd (T_UDP_CEP *cep, ER error); 275 extern ER udp_can_rcv (T_UDP_CEP *cep, ER error); 276 extern ER udp_alloc_auto_port (T_UDP_CEP *cep); 277 extern ER udp_alloc_port (T_UDP_CEP *cep, uint16_t portno); 288 /* IPv6 */ 289 290 extern uint_t udp6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp); 291 extern ER_UINT udp6_send_data (T_UDP6_CEP *cep, T_IPV6EP *p_dstaddr, 292 void *data, int_t len, TMO tmout); 293 extern ER udp6_can_snd (T_UDP6_CEP *cep, ER error); 294 extern ER udp6_can_rcv (T_UDP6_CEP *cep, ER error); 295 extern ER udp6_alloc_auto_port (T_UDP6_CEP *cep); 296 extern ER udp6_alloc_port (T_UDP6_CEP *cep, uint16_t portno); 297 extern T_UDP6_CEP*udp6_find_cep (T_NET_BUF *input, uint_t off); 298 extern void udp6_notify (T_NET_BUF *input, ER error); 299 extern void udp6_input_select (T_UDP6_CEP *cep, T_NET_BUF *input, uint_t off); 300 301 /* IPv4 */ 302 303 extern uint_t udp4_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp); 304 extern ER_UINT udp4_send_data (T_UDP4_CEP *cep, T_IPV4EP *p_dstaddr, 305 void *data, int_t len, TMO tmout); 306 extern ER udp4_can_snd (T_UDP4_CEP *cep, ER error); 307 extern ER udp4_can_rcv (T_UDP4_CEP *cep, ER error); 308 extern ER udp4_alloc_auto_port (T_UDP4_CEP *cep); 309 extern ER udp4_alloc_port (T_UDP4_CEP *cep, uint16_t portno); 310 extern T_UDP4_CEP*udp4_find_cep (T_NET_BUF *input, uint_t off); 311 extern void udp4_notify (T_NET_BUF *input, ER error); 312 extern void udp4_input_select (T_UDP4_CEP *cep, T_NET_BUF *input, uint_t off); 278 313 279 314 /* ノンブロッキングコールを行う場合に組み込むタスク */
Note:
See TracChangeset
for help on using the changeset viewer.