Changeset f023251 in mainline for uspace/srv
- Timestamp:
- 2013-09-29T21:06:10Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e948fde
- Parents:
- 13be2583
- Location:
- uspace/srv/net
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/dhcp/dhcp.c
r13be2583 rf023251 231 231 memset(offer, 0, sizeof(*offer)); 232 232 233 yiaddr.family = AF_INET; 234 yiaddr.addr = uint32_t_be2host(hdr->yiaddr); 233 inet_addr_set(uint32_t_be2host(hdr->yiaddr), &yiaddr); 235 234 rc = inet_addr_format(&yiaddr, &saddr); 236 235 if (rc != EOK) … … 240 239 free(saddr); 241 240 242 siaddr.family = AF_INET; 243 siaddr.addr = uint32_t_be2host(hdr->siaddr); 241 inet_addr_set(uint32_t_be2host(hdr->siaddr), &siaddr); 244 242 rc = inet_addr_format(&siaddr, &saddr); 245 243 if (rc != EOK) … … 249 247 free(saddr); 250 248 251 giaddr.family = AF_INET; 252 giaddr.addr = uint32_t_be2host(hdr->giaddr); 249 inet_addr_set(uint32_t_be2host(hdr->giaddr), &giaddr); 253 250 rc = inet_addr_format(&giaddr, &saddr); 254 251 if (rc != EOK) … … 258 255 free(saddr); 259 256 260 offer->oaddr.family = AF_INET; 261 offer->oaddr.addr = yiaddr.addr; 257 inet_naddr_set(yiaddr.addr, 0, &offer->oaddr); 262 258 263 259 msgb = (uint8_t *)msg; … … 299 295 if (opt_len != 4) 300 296 return EINVAL; 301 offer->srv_addr.family = AF_INET;302 offer->srv_addr.addr = dhcp_uint32_decode(&msgb[i]);297 inet_addr_set(dhcp_uint32_decode(&msgb[i]), 298 &offer->srv_addr); 303 299 have_server_id = true; 304 300 break; … … 306 302 if (opt_len != 4) 307 303 return EINVAL; 308 offer->router.family = AF_INET;309 offer->router.addr = dhcp_uint32_decode(&msgb[i]);304 inet_addr_set(dhcp_uint32_decode(&msgb[i]), 305 &offer->router); 310 306 break; 311 307 case opt_dns_server: 312 308 if (opt_len != 4) 313 309 return EINVAL; 314 offer->dns_server.family = AF_INET;315 offer->dns_server.addr = dhcp_uint32_decode(&msgb[i]);310 inet_addr_set(dhcp_uint32_decode(&msgb[i]), 311 &offer->dns_server); 316 312 break; 317 313 case opt_end: … … 379 375 380 376 if (offer->router.addr != 0) { 381 defr.family = AF_INET; 382 defr.addr = 0; 383 defr.prefix = 0; 377 inet_naddr_set(0, 0, &defr); 384 378 385 379 rc = inetcfg_sroute_create("dhcpdef", &defr, &offer->router, &sroute_id); -
uspace/srv/net/ethip/arp.c
r13be2583 rf023251 73 73 74 74 addr32_t laddr_v4; 75 uint16_t laddr_af= inet_addr_get(&laddr->addr, &laddr_v4, NULL);76 if (laddr_ af != AF_INET)75 ip_ver_t laddr_ver = inet_addr_get(&laddr->addr, &laddr_v4, NULL); 76 if (laddr_ver != ip_v4) 77 77 return; 78 78 -
uspace/srv/net/ethip/ethip_nic.c
r13be2583 rf023251 354 354 355 355 list_foreach(nic->addr_list, link, ethip_link_addr_t, laddr) { 356 uint16_t af= inet_addr_get(&laddr->addr, NULL, NULL);357 if ( af == AF_INET6)356 ip_ver_t ver = inet_addr_get(&laddr->addr, NULL, NULL); 357 if (ver == ip_v6) 358 358 count++; 359 359 } … … 373 373 list_foreach(nic->addr_list, link, ethip_link_addr_t, laddr) { 374 374 addr128_t v6; 375 uint16_t af= inet_addr_get(&laddr->addr, NULL, &v6);376 if ( af != AF_INET6)375 ip_ver_t ver = inet_addr_get(&laddr->addr, NULL, &v6); 376 if (ver != ip_v6) 377 377 continue; 378 378 -
uspace/srv/net/inetsrv/addrobj.c
r13be2583 rf023251 218 218 inet_addr_t lsrc_addr; 219 219 inet_naddr_addr(&addr->naddr, &lsrc_addr); 220 220 221 221 addr32_t lsrc_v4; 222 222 addr128_t lsrc_v6; 223 uint16_t lsrc_af= inet_addr_get(&lsrc_addr, &lsrc_v4, &lsrc_v6);224 223 ip_ver_t lsrc_ver = inet_addr_get(&lsrc_addr, &lsrc_v4, &lsrc_v6); 224 225 225 addr32_t ldest_v4; 226 226 addr128_t ldest_v6; 227 uint16_t ldest_af= inet_addr_get(ldest, &ldest_v4, &ldest_v6);228 229 if (lsrc_ af != ldest_af)227 ip_ver_t ldest_ver = inet_addr_get(ldest, &ldest_v4, &ldest_v6); 228 229 if (lsrc_ver != ldest_ver) 230 230 return EINVAL; 231 231 232 232 int rc; 233 233 addr48_t ldest_mac; 234 235 switch (ldest_ af) {236 case AF_INET:234 235 switch (ldest_ver) { 236 case ip_v4: 237 237 return inet_link_send_dgram(addr->ilink, lsrc_v4, ldest_v4, 238 238 dgram, proto, ttl, df); 239 case AF_INET6:239 case ip_v6: 240 240 /* 241 241 * Translate local destination IPv6 address. … … 244 244 if (rc != EOK) 245 245 return rc; 246 246 247 247 return inet_link_send_dgram6(addr->ilink, ldest_mac, dgram, 248 248 proto, ttl, df); 249 } 250 249 default: 250 assert(false); 251 break; 252 } 253 251 254 return ENOTSUP; 252 255 } -
uspace/srv/net/inetsrv/icmp.c
r13be2583 rf023251 123 123 { 124 124 log_msg(LOG_DEFAULT, LVL_DEBUG, "icmp_recv_echo_reply()"); 125 125 126 126 if (dgram->size < sizeof(icmp_echo_t)) 127 127 return EINVAL; 128 128 129 129 icmp_echo_t *reply = (icmp_echo_t *) dgram->data; 130 130 131 131 inetping_sdu_t sdu; 132 133 uint16_t family= inet_addr_get(&dgram->src, &sdu.src, NULL);134 if ( family != AF_INET)132 133 ip_ver_t ver = inet_addr_get(&dgram->src, &sdu.src, NULL); 134 if (ver != ip_v4) 135 135 return EINVAL; 136 137 family= inet_addr_get(&dgram->dest, &sdu.dest, NULL);138 if ( family != AF_INET)136 137 ver = inet_addr_get(&dgram->dest, &sdu.dest, NULL); 138 if (ver != ip_v4) 139 139 return EINVAL; 140 140 141 141 sdu.seq_no = uint16_t_be2host(reply->seq_no); 142 142 sdu.data = reply + sizeof(icmp_echo_t); 143 143 sdu.size = dgram->size - sizeof(icmp_echo_t); 144 144 145 145 uint16_t ident = uint16_t_be2host(reply->ident); 146 146 … … 154 154 if (rdata == NULL) 155 155 return ENOMEM; 156 156 157 157 icmp_echo_t *request = (icmp_echo_t *) rdata; 158 158 159 159 request->type = ICMP_ECHO_REQUEST; 160 160 request->code = 0; … … 162 162 request->ident = host2uint16_t_be(ident); 163 163 request->seq_no = host2uint16_t_be(sdu->seq_no); 164 164 165 165 memcpy(rdata + sizeof(icmp_echo_t), sdu->data, sdu->size); 166 166 167 167 uint16_t checksum = inet_checksum_calc(INET_CHECKSUM_INIT, rdata, rsize); 168 168 request->checksum = host2uint16_t_be(checksum); 169 169 170 170 inet_dgram_t dgram; 171 171 172 172 inet_addr_set(sdu->src, &dgram.src); 173 173 inet_addr_set(sdu->dest, &dgram.dest); 174 174 175 175 dgram.iplink = 0; 176 176 dgram.tos = ICMP_TOS; 177 177 dgram.data = rdata; 178 178 dgram.size = rsize; 179 179 180 180 int rc = inet_route_packet(&dgram, IP_PROTO_ICMP, INET_TTL_MAX, 0); 181 181 182 182 free(rdata); 183 183 return rc; -
uspace/srv/net/inetsrv/icmpv6.c
r13be2583 rf023251 59 59 60 60 addr128_t src_v6; 61 uint16_t src_af= inet_addr_get(&dgram->src, NULL, &src_v6);61 ip_ver_t src_ver = inet_addr_get(&dgram->src, NULL, &src_v6); 62 62 63 63 addr128_t dest_v6; 64 uint16_t dest_af= inet_addr_get(&dgram->dest, NULL, &dest_v6);65 66 if ((src_ af != dest_af) || (src_af != AF_INET6))64 ip_ver_t dest_ver = inet_addr_get(&dgram->dest, NULL, &dest_v6); 65 66 if ((src_ver != dest_ver) || (src_ver != ip_v6)) 67 67 return EINVAL; 68 68 … … 118 118 inetping6_sdu_t sdu; 119 119 120 uint16_t src_af= inet_addr_get(&dgram->src, NULL, &sdu.src);121 uint16_t dest_af= inet_addr_get(&dgram->dest, NULL, &sdu.dest);122 123 if ((src_ af != dest_af) || (src_af != AF_INET6))120 ip_ver_t src_ver = inet_addr_get(&dgram->src, NULL, &sdu.src); 121 ip_ver_t dest_ver = inet_addr_get(&dgram->dest, NULL, &sdu.dest); 122 123 if ((src_ver != dest_ver) || (src_ver != ip_v6)) 124 124 return EINVAL; 125 125 -
uspace/srv/net/inetsrv/inet_link.c
r13be2583 rf023251 294 294 { 295 295 addr32_t src_v4; 296 uint16_t src_af= inet_addr_get(&dgram->src, &src_v4, NULL);297 if (src_ af != AF_INET)296 ip_ver_t src_ver = inet_addr_get(&dgram->src, &src_v4, NULL); 297 if (src_ver != ip_v4) 298 298 return EINVAL; 299 299 300 300 addr32_t dest_v4; 301 uint16_t dest_af= inet_addr_get(&dgram->dest, &dest_v4, NULL);302 if (dest_ af != AF_INET)301 ip_ver_t dest_ver = inet_addr_get(&dgram->dest, &dest_v4, NULL); 302 if (dest_ver != ip_v4) 303 303 return EINVAL; 304 304 … … 369 369 { 370 370 addr128_t src_v6; 371 uint16_t src_af= inet_addr_get(&dgram->src, NULL, &src_v6);372 if (src_ af != AF_INET6)371 ip_ver_t src_ver = inet_addr_get(&dgram->src, NULL, &src_v6); 372 if (src_ver != ip_v6) 373 373 return EINVAL; 374 374 375 375 addr128_t dest_v6; 376 uint16_t dest_af= inet_addr_get(&dgram->dest, NULL, &dest_v6);377 if (dest_ af != AF_INET6)376 ip_ver_t dest_ver = inet_addr_get(&dgram->dest, NULL, &dest_v6); 377 if (dest_ver != ip_v6) 378 378 return EINVAL; 379 379 -
uspace/srv/net/inetsrv/inetping.c
r13be2583 rf023251 72 72 return rc; 73 73 74 uint16_t family= inet_addr_get(&local_addr, local, NULL);75 if ( family != AF_INET)74 ip_ver_t ver = inet_addr_get(&local_addr, local, NULL); 75 if (ver != ip_v4) 76 76 return EINVAL; 77 77 -
uspace/srv/net/inetsrv/inetping6.c
r13be2583 rf023251 72 72 return rc; 73 73 74 uint16_t family= inet_addr_get(&local_addr, NULL, local);75 if ( family != AF_INET6)74 ip_ver_t ver = inet_addr_get(&local_addr, NULL, local); 75 if (ver != ip_v6) 76 76 return EINVAL; 77 77 -
uspace/srv/net/inetsrv/inetsrv.c
r13be2583 rf023251 63 63 64 64 static inet_naddr_t solicited_node_mask = { 65 . family = AF_INET6,65 .version = ip_v6, 66 66 .addr6 = {0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01, 0xff, 0, 0, 0}, 67 67 .prefix = 104 … … 69 69 70 70 static inet_addr_t broadcast4_all_hosts = { 71 . family = AF_INET,71 .version = ip_v4, 72 72 .addr = 0xffffffff 73 73 }; 74 74 75 75 static inet_addr_t multicast_all_nodes = { 76 . family = AF_INET6,76 .version = ip_v6, 77 77 .addr6 = {0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01} 78 78 }; … … 180 180 181 181 if (dgram->iplink != 0) { 182 /* XXX TODO - IPv6 */ 182 183 log_msg(LOG_DEFAULT, LVL_DEBUG, "dgram directly to iplink %zu", 183 184 dgram->iplink); … … 187 188 return ENOENT; 188 189 189 if (dgram->src. family != AF_INET||190 dgram->dest. family != AF_INET)190 if (dgram->src.version != ip_v4 || 191 dgram->dest.version != ip_v4) 191 192 return EINVAL; 192 193 … … 225 226 226 227 /* Take source address from the address object */ 227 if (remote->family == AF_INET && remote->addr == 0xffffffff) { 228 local->family = AF_INET; 228 if (remote->version == ip_v4 && remote->addr == 0xffffffff) { 229 /* XXX TODO - IPv6 */ 230 local->version = ip_v4; 229 231 local->addr = 0; 230 232 return EOK; 231 233 } 234 232 235 inet_naddr_addr(&dir.aobj->naddr, local); 233 236 return EOK; -
uspace/srv/net/inetsrv/pdu.c
r13be2583 rf023251 533 533 int ndp_pdu_decode(inet_dgram_t *dgram, ndp_packet_t *ndp) 534 534 { 535 uint16_t src_af= inet_addr_get(&dgram->src, NULL,535 ip_ver_t src_ver = inet_addr_get(&dgram->src, NULL, 536 536 &ndp->sender_proto_addr); 537 if (src_ af != AF_INET6)537 if (src_ver != ip_v6) 538 538 return EINVAL; 539 539 -
uspace/srv/net/inetsrv/sroute.c
r13be2583 rf023251 95 95 inet_sroute_t *inet_sroute_find(inet_addr_t *addr) 96 96 { 97 uint16_t addr_af= inet_addr_get(addr, NULL, NULL);97 ip_ver_t addr_ver = inet_addr_get(addr, NULL, NULL); 98 98 99 99 inet_sroute_t *best = NULL; … … 104 104 list_foreach(sroute_list, sroute_list, inet_sroute_t, sroute) { 105 105 uint8_t dest_bits; 106 uint16_t dest_af= inet_naddr_get(&sroute->dest, NULL, NULL,106 ip_ver_t dest_ver = inet_naddr_get(&sroute->dest, NULL, NULL, 107 107 &dest_bits); 108 108 109 109 /* Skip comparison with different address family */ 110 if (addr_ af != dest_af)110 if (addr_ver != dest_ver) 111 111 continue; 112 112 -
uspace/srv/net/tcp/pdu.c
r13be2583 rf023251 145 145 } 146 146 147 static uint16_t tcp_phdr_setup(tcp_pdu_t *pdu, tcp_phdr_t *phdr,147 static ip_ver_t tcp_phdr_setup(tcp_pdu_t *pdu, tcp_phdr_t *phdr, 148 148 tcp_phdr6_t *phdr6) 149 149 { 150 150 addr32_t src_v4; 151 151 addr128_t src_v6; 152 uint16_t src_ af= inet_addr_get(&pdu->src, &src_v4, &src_v6);153 152 uint16_t src_ver = inet_addr_get(&pdu->src, &src_v4, &src_v6); 153 154 154 addr32_t dest_v4; 155 155 addr128_t dest_v6; 156 uint16_t dest_ af= inet_addr_get(&pdu->dest, &dest_v4, &dest_v6);157 158 assert(src_ af == dest_af);159 160 switch (src_ af) {161 case AF_INET:156 uint16_t dest_ver = inet_addr_get(&pdu->dest, &dest_v4, &dest_v6); 157 158 assert(src_ver == dest_ver); 159 160 switch (src_ver) { 161 case ip_v4: 162 162 phdr->src = host2uint32_t_be(src_v4); 163 163 phdr->dest = host2uint32_t_be(dest_v4); … … 167 167 host2uint16_t_be(pdu->header_size + pdu->text_size); 168 168 break; 169 case AF_INET6:169 case ip_v6: 170 170 host2addr128_t_be(src_v6, phdr6->src); 171 171 host2addr128_t_be(dest_v6, phdr6->dest); … … 178 178 assert(false); 179 179 } 180 181 return src_ af;180 181 return src_ver; 182 182 } 183 183 … … 266 266 tcp_phdr_t phdr; 267 267 tcp_phdr6_t phdr6; 268 269 uint16_t af= tcp_phdr_setup(pdu, &phdr, &phdr6);270 switch ( af) {271 case AF_INET:268 269 ip_ver_t ver = tcp_phdr_setup(pdu, &phdr, &phdr6); 270 switch (ver) { 271 case ip_v4: 272 272 cs_phdr = tcp_checksum_calc(TCP_CHECKSUM_INIT, (void *) &phdr, 273 273 sizeof(tcp_phdr_t)); 274 274 break; 275 case AF_INET6:275 case ip_v6: 276 276 cs_phdr = tcp_checksum_calc(TCP_CHECKSUM_INIT, (void *) &phdr6, 277 277 sizeof(tcp_phdr6_t)); … … 280 280 assert(false); 281 281 } 282 282 283 283 cs_headers = tcp_checksum_calc(cs_phdr, pdu->header, pdu->header_size); 284 284 return tcp_checksum_calc(cs_headers, pdu->text, pdu->text_size); -
uspace/srv/net/udp/pdu.c
r13be2583 rf023251 85 85 } 86 86 87 static uint16_t udp_phdr_setup(udp_pdu_t *pdu, udp_phdr_t *phdr,87 static ip_ver_t udp_phdr_setup(udp_pdu_t *pdu, udp_phdr_t *phdr, 88 88 udp_phdr6_t *phdr6) 89 89 { 90 90 addr32_t src_v4; 91 91 addr128_t src_v6; 92 uint16_t src_af= inet_addr_get(&pdu->src, &src_v4, &src_v6);93 92 ip_ver_t src_ver = inet_addr_get(&pdu->src, &src_v4, &src_v6); 93 94 94 addr32_t dest_v4; 95 95 addr128_t dest_v6; 96 uint16_t dest_af= inet_addr_get(&pdu->dest, &dest_v4, &dest_v6);97 98 assert(src_ af == dest_af);99 100 switch (src_ af) {101 case AF_INET:96 ip_ver_t dest_ver = inet_addr_get(&pdu->dest, &dest_v4, &dest_v6); 97 98 assert(src_ver == dest_ver); 99 100 switch (src_ver) { 101 case ip_v4: 102 102 phdr->src_addr = host2uint32_t_be(src_v4); 103 103 phdr->dest_addr = host2uint32_t_be(dest_v4); … … 106 106 phdr->udp_length = host2uint16_t_be(pdu->data_size); 107 107 break; 108 case AF_INET6:108 case ip_v6: 109 109 host2addr128_t_be(src_v6, phdr6->src_addr); 110 110 host2addr128_t_be(dest_v6, phdr6->dest_addr); … … 116 116 assert(false); 117 117 } 118 119 return src_ af;118 119 return src_ver; 120 120 } 121 121 … … 136 136 udp_phdr_t phdr; 137 137 udp_phdr6_t phdr6; 138 139 uint16_t af= udp_phdr_setup(pdu, &phdr, &phdr6);140 switch ( af) {141 case AF_INET:138 139 ip_ver_t ver = udp_phdr_setup(pdu, &phdr, &phdr6); 140 switch (ver) { 141 case ip_v4: 142 142 cs_phdr = udp_checksum_calc(UDP_CHECKSUM_INIT, (void *) &phdr, 143 143 sizeof(udp_phdr_t)); 144 144 break; 145 case AF_INET6:145 case ip_v6: 146 146 cs_phdr = udp_checksum_calc(UDP_CHECKSUM_INIT, (void *) &phdr6, 147 147 sizeof(udp_phdr6_t)); … … 150 150 assert(false); 151 151 } 152 152 153 153 return udp_checksum_calc(cs_phdr, pdu->data, pdu->data_size); 154 154 }
Note:
See TracChangeset
for help on using the changeset viewer.