Changeset f023251 in mainline for uspace/srv


Ignore:
Timestamp:
2013-09-29T21:06:10Z (12 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e948fde
Parents:
13be2583
Message:

HelenOS internet address version should not be based on BSD sockets definition.

Location:
uspace/srv/net
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/dhcp/dhcp.c

    r13be2583 rf023251  
    231231        memset(offer, 0, sizeof(*offer));
    232232
    233         yiaddr.family = AF_INET;
    234         yiaddr.addr = uint32_t_be2host(hdr->yiaddr);
     233        inet_addr_set(uint32_t_be2host(hdr->yiaddr), &yiaddr);
    235234        rc = inet_addr_format(&yiaddr, &saddr);
    236235        if (rc != EOK)
     
    240239        free(saddr);
    241240
    242         siaddr.family = AF_INET;
    243         siaddr.addr = uint32_t_be2host(hdr->siaddr);
     241        inet_addr_set(uint32_t_be2host(hdr->siaddr), &siaddr);
    244242        rc = inet_addr_format(&siaddr, &saddr);
    245243        if (rc != EOK)
     
    249247        free(saddr);
    250248
    251         giaddr.family = AF_INET;
    252         giaddr.addr = uint32_t_be2host(hdr->giaddr);
     249        inet_addr_set(uint32_t_be2host(hdr->giaddr), &giaddr);
    253250        rc = inet_addr_format(&giaddr, &saddr);
    254251        if (rc != EOK)
     
    258255        free(saddr);
    259256
    260         offer->oaddr.family = AF_INET;
    261         offer->oaddr.addr = yiaddr.addr;
     257        inet_naddr_set(yiaddr.addr, 0, &offer->oaddr);
    262258
    263259        msgb = (uint8_t *)msg;
     
    299295                        if (opt_len != 4)
    300296                                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);
    303299                        have_server_id = true;
    304300                        break;
     
    306302                        if (opt_len != 4)
    307303                                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);
    310306                        break;
    311307                case opt_dns_server:
    312308                        if (opt_len != 4)
    313309                                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);
    316312                        break;
    317313                case opt_end:
     
    379375
    380376        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);
    384378
    385379                rc = inetcfg_sroute_create("dhcpdef", &defr, &offer->router, &sroute_id);
  • uspace/srv/net/ethip/arp.c

    r13be2583 rf023251  
    7373       
    7474        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)
    7777                return;
    7878       
  • uspace/srv/net/ethip/ethip_nic.c

    r13be2583 rf023251  
    354354       
    355355        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)
    358358                        count++;
    359359        }
     
    373373        list_foreach(nic->addr_list, link, ethip_link_addr_t, laddr) {
    374374                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)
    377377                        continue;
    378378               
  • uspace/srv/net/inetsrv/addrobj.c

    r13be2583 rf023251  
    218218        inet_addr_t lsrc_addr;
    219219        inet_naddr_addr(&addr->naddr, &lsrc_addr);
    220        
     220
    221221        addr32_t lsrc_v4;
    222222        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
    225225        addr32_t ldest_v4;
    226226        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)
    230230                return EINVAL;
    231        
     231
    232232        int rc;
    233233        addr48_t ldest_mac;
    234        
    235         switch (ldest_af) {
    236         case AF_INET:
     234
     235        switch (ldest_ver) {
     236        case ip_v4:
    237237                return inet_link_send_dgram(addr->ilink, lsrc_v4, ldest_v4,
    238238                    dgram, proto, ttl, df);
    239         case AF_INET6:
     239        case ip_v6:
    240240                /*
    241241                 * Translate local destination IPv6 address.
     
    244244                if (rc != EOK)
    245245                        return rc;
    246                
     246
    247247                return inet_link_send_dgram6(addr->ilink, ldest_mac, dgram,
    248248                    proto, ttl, df);
    249         }
    250        
     249        default:
     250                assert(false);
     251                break;
     252        }
     253
    251254        return ENOTSUP;
    252255}
  • uspace/srv/net/inetsrv/icmp.c

    r13be2583 rf023251  
    123123{
    124124        log_msg(LOG_DEFAULT, LVL_DEBUG, "icmp_recv_echo_reply()");
    125        
     125
    126126        if (dgram->size < sizeof(icmp_echo_t))
    127127                return EINVAL;
    128        
     128
    129129        icmp_echo_t *reply = (icmp_echo_t *) dgram->data;
    130        
     130
    131131        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)
    135135                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)
    139139                return EINVAL;
    140        
     140
    141141        sdu.seq_no = uint16_t_be2host(reply->seq_no);
    142142        sdu.data = reply + sizeof(icmp_echo_t);
    143143        sdu.size = dgram->size - sizeof(icmp_echo_t);
    144        
     144
    145145        uint16_t ident = uint16_t_be2host(reply->ident);
    146146
     
    154154        if (rdata == NULL)
    155155                return ENOMEM;
    156        
     156
    157157        icmp_echo_t *request = (icmp_echo_t *) rdata;
    158        
     158
    159159        request->type = ICMP_ECHO_REQUEST;
    160160        request->code = 0;
     
    162162        request->ident = host2uint16_t_be(ident);
    163163        request->seq_no = host2uint16_t_be(sdu->seq_no);
    164        
     164
    165165        memcpy(rdata + sizeof(icmp_echo_t), sdu->data, sdu->size);
    166        
     166
    167167        uint16_t checksum = inet_checksum_calc(INET_CHECKSUM_INIT, rdata, rsize);
    168168        request->checksum = host2uint16_t_be(checksum);
    169        
     169
    170170        inet_dgram_t dgram;
    171        
     171
    172172        inet_addr_set(sdu->src, &dgram.src);
    173173        inet_addr_set(sdu->dest, &dgram.dest);
    174        
     174
    175175        dgram.iplink = 0;
    176176        dgram.tos = ICMP_TOS;
    177177        dgram.data = rdata;
    178178        dgram.size = rsize;
    179        
     179
    180180        int rc = inet_route_packet(&dgram, IP_PROTO_ICMP, INET_TTL_MAX, 0);
    181        
     181
    182182        free(rdata);
    183183        return rc;
  • uspace/srv/net/inetsrv/icmpv6.c

    r13be2583 rf023251  
    5959       
    6060        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);
    6262       
    6363        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))
    6767                return EINVAL;
    6868       
     
    118118        inetping6_sdu_t sdu;
    119119       
    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))
    124124                return EINVAL;
    125125       
  • uspace/srv/net/inetsrv/inet_link.c

    r13be2583 rf023251  
    294294{
    295295        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)
    298298                return EINVAL;
    299299       
    300300        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)
    303303                return EINVAL;
    304304       
     
    369369{
    370370        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)
    373373                return EINVAL;
    374374       
    375375        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)
    378378                return EINVAL;
    379379       
  • uspace/srv/net/inetsrv/inetping.c

    r13be2583 rf023251  
    7272                return rc;
    7373       
    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)
    7676                return EINVAL;
    7777       
  • uspace/srv/net/inetsrv/inetping6.c

    r13be2583 rf023251  
    7272                return rc;
    7373       
    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)
    7676                return EINVAL;
    7777       
  • uspace/srv/net/inetsrv/inetsrv.c

    r13be2583 rf023251  
    6363
    6464static inet_naddr_t solicited_node_mask = {
    65         .family = AF_INET6,
     65        .version = ip_v6,
    6666        .addr6 = {0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01, 0xff, 0, 0, 0},
    6767        .prefix = 104
     
    6969
    7070static inet_addr_t broadcast4_all_hosts = {
    71         .family = AF_INET,
     71        .version = ip_v4,
    7272        .addr = 0xffffffff
    7373};
    7474
    7575static inet_addr_t multicast_all_nodes = {
    76         .family = AF_INET6,
     76        .version = ip_v6,
    7777        .addr6 = {0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01}
    7878};
     
    180180
    181181        if (dgram->iplink != 0) {
     182                /* XXX TODO - IPv6 */
    182183                log_msg(LOG_DEFAULT, LVL_DEBUG, "dgram directly to iplink %zu",
    183184                    dgram->iplink);
     
    187188                        return ENOENT;
    188189
    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)
    191192                        return EINVAL;
    192193
     
    225226
    226227        /* 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;
    229231                local->addr = 0;
    230232                return EOK;
    231233        }
     234
    232235        inet_naddr_addr(&dir.aobj->naddr, local);
    233236        return EOK;
  • uspace/srv/net/inetsrv/pdu.c

    r13be2583 rf023251  
    533533int ndp_pdu_decode(inet_dgram_t *dgram, ndp_packet_t *ndp)
    534534{
    535         uint16_t src_af = inet_addr_get(&dgram->src, NULL,
     535        ip_ver_t src_ver = inet_addr_get(&dgram->src, NULL,
    536536            &ndp->sender_proto_addr);
    537         if (src_af != AF_INET6)
     537        if (src_ver != ip_v6)
    538538                return EINVAL;
    539539       
  • uspace/srv/net/inetsrv/sroute.c

    r13be2583 rf023251  
    9595inet_sroute_t *inet_sroute_find(inet_addr_t *addr)
    9696{
    97         uint16_t addr_af = inet_addr_get(addr, NULL, NULL);
     97        ip_ver_t addr_ver = inet_addr_get(addr, NULL, NULL);
    9898       
    9999        inet_sroute_t *best = NULL;
     
    104104        list_foreach(sroute_list, sroute_list, inet_sroute_t, sroute) {
    105105                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,
    107107                    &dest_bits);
    108108               
    109109                /* Skip comparison with different address family */
    110                 if (addr_af != dest_af)
     110                if (addr_ver != dest_ver)
    111111                        continue;
    112112               
  • uspace/srv/net/tcp/pdu.c

    r13be2583 rf023251  
    145145}
    146146
    147 static uint16_t tcp_phdr_setup(tcp_pdu_t *pdu, tcp_phdr_t *phdr,
     147static ip_ver_t tcp_phdr_setup(tcp_pdu_t *pdu, tcp_phdr_t *phdr,
    148148    tcp_phdr6_t *phdr6)
    149149{
    150150        addr32_t src_v4;
    151151        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
    154154        addr32_t dest_v4;
    155155        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:
    162162                phdr->src = host2uint32_t_be(src_v4);
    163163                phdr->dest = host2uint32_t_be(dest_v4);
     
    167167                    host2uint16_t_be(pdu->header_size + pdu->text_size);
    168168                break;
    169         case AF_INET6:
     169        case ip_v6:
    170170                host2addr128_t_be(src_v6, phdr6->src);
    171171                host2addr128_t_be(dest_v6, phdr6->dest);
     
    178178                assert(false);
    179179        }
    180        
    181         return src_af;
     180
     181        return src_ver;
    182182}
    183183
     
    266266        tcp_phdr_t phdr;
    267267        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:
    272272                cs_phdr = tcp_checksum_calc(TCP_CHECKSUM_INIT, (void *) &phdr,
    273273                    sizeof(tcp_phdr_t));
    274274                break;
    275         case AF_INET6:
     275        case ip_v6:
    276276                cs_phdr = tcp_checksum_calc(TCP_CHECKSUM_INIT, (void *) &phdr6,
    277277                    sizeof(tcp_phdr6_t));
     
    280280                assert(false);
    281281        }
    282        
     282
    283283        cs_headers = tcp_checksum_calc(cs_phdr, pdu->header, pdu->header_size);
    284284        return tcp_checksum_calc(cs_headers, pdu->text, pdu->text_size);
  • uspace/srv/net/udp/pdu.c

    r13be2583 rf023251  
    8585}
    8686
    87 static uint16_t udp_phdr_setup(udp_pdu_t *pdu, udp_phdr_t *phdr,
     87static ip_ver_t udp_phdr_setup(udp_pdu_t *pdu, udp_phdr_t *phdr,
    8888    udp_phdr6_t *phdr6)
    8989{
    9090        addr32_t src_v4;
    9191        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
    9494        addr32_t dest_v4;
    9595        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:
    102102                phdr->src_addr = host2uint32_t_be(src_v4);
    103103                phdr->dest_addr = host2uint32_t_be(dest_v4);
     
    106106                phdr->udp_length = host2uint16_t_be(pdu->data_size);
    107107                break;
    108         case AF_INET6:
     108        case ip_v6:
    109109                host2addr128_t_be(src_v6, phdr6->src_addr);
    110110                host2addr128_t_be(dest_v6, phdr6->dest_addr);
     
    116116                assert(false);
    117117        }
    118        
    119         return src_af;
     118
     119        return src_ver;
    120120}
    121121
     
    136136        udp_phdr_t phdr;
    137137        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:
    142142                cs_phdr = udp_checksum_calc(UDP_CHECKSUM_INIT, (void *) &phdr,
    143143                    sizeof(udp_phdr_t));
    144144                break;
    145         case AF_INET6:
     145        case ip_v6:
    146146                cs_phdr = udp_checksum_calc(UDP_CHECKSUM_INIT, (void *) &phdr6,
    147147                    sizeof(udp_phdr6_t));
     
    150150                assert(false);
    151151        }
    152        
     152
    153153        return udp_checksum_calc(cs_phdr, pdu->data, pdu->data_size);
    154154}
Note: See TracChangeset for help on using the changeset viewer.