Changeset f05edcb in mainline for uspace/srv/net/inetsrv


Ignore:
Timestamp:
2021-08-08T08:28:24Z (5 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d5ed54b
Parents:
98a935e
Message:

Make addr48_t a structure

Location:
uspace/srv/net/inetsrv
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/inetsrv/addrobj.c

    r98a935e rf05edcb  
    11/*
    2  * Copyright (c) 2012 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    239239                 * Translate local destination IPv6 address.
    240240                 */
    241                 rc = ndp_translate(lsrc_v6, ldest_v6, ldest_mac, addr->ilink);
     241                rc = ndp_translate(lsrc_v6, ldest_v6, &ldest_mac, addr->ilink);
    242242                if (rc != EOK)
    243243                        return rc;
    244244
    245                 return inet_link_send_dgram6(addr->ilink, ldest_mac, dgram,
     245                return inet_link_send_dgram6(addr->ilink, &ldest_mac, dgram,
    246246                    proto, ttl, df);
    247247        default:
  • uspace/srv/net/inetsrv/inet_link.c

    r98a935e rf05edcb  
    11/*
    2  * Copyright (c) 2012 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    5656
    5757static errno_t inet_iplink_recv(iplink_t *, iplink_recv_sdu_t *, ip_ver_t);
    58 static errno_t inet_iplink_change_addr(iplink_t *, addr48_t);
     58static errno_t inet_iplink_change_addr(iplink_t *, addr48_t *);
    5959static inet_link_t *inet_link_get_by_id_locked(sysarg_t);
    6060
     
    7070    { 0xfe, 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xfe, 0, 0, 0 };
    7171
    72 static void inet_link_local_node_ip(addr48_t mac_addr,
     72static void inet_link_local_node_ip(addr48_t *mac_addr,
    7373    addr128_t ip_addr)
    7474{
    7575        memcpy(ip_addr, link_local_node_ip, 16);
    7676
    77         ip_addr[8] = mac_addr[0] ^ 0x02;
    78         ip_addr[9] = mac_addr[1];
    79         ip_addr[10] = mac_addr[2];
    80         ip_addr[13] = mac_addr[3];
    81         ip_addr[14] = mac_addr[4];
    82         ip_addr[15] = mac_addr[5];
     77        ip_addr[8] = mac_addr->b[0] ^ 0x02;
     78        ip_addr[9] = mac_addr->b[1];
     79        ip_addr[10] = mac_addr->b[2];
     80        ip_addr[13] = mac_addr->b[3];
     81        ip_addr[14] = mac_addr->b[4];
     82        ip_addr[15] = mac_addr->b[5];
    8383}
    8484
     
    121121}
    122122
    123 static errno_t inet_iplink_change_addr(iplink_t *iplink, addr48_t mac)
     123static errno_t inet_iplink_change_addr(iplink_t *iplink, addr48_t *mac)
    124124{
    125125        log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_iplink_change_addr(): "
    126126            "new addr=%02x:%02x:%02x:%02x:%02x:%02x",
    127             mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
     127            mac->b[0], mac->b[1], mac->b[2], mac->b[3], mac->b[4], mac->b[5]);
    128128
    129129        list_foreach(inet_links, link_list, inet_link_t, ilink) {
     
    261261
    262262                addr128_t link_local;
    263                 inet_link_local_node_ip(ilink->mac, link_local);
     263                inet_link_local_node_ip(&ilink->mac, link_local);
    264264
    265265                inet_naddr_set6(link_local, 64, &addr6->naddr);
     
    387387 *
    388388 */
    389 errno_t inet_link_send_dgram6(inet_link_t *ilink, addr48_t ldest,
     389errno_t inet_link_send_dgram6(inet_link_t *ilink, addr48_t *ldest,
    390390    inet_dgram_t *dgram, uint8_t proto, uint8_t ttl, int df)
    391391{
     
    401401
    402402        iplink_sdu6_t sdu6;
    403         addr48(ldest, sdu6.dest);
     403        addr48(ldest, &sdu6.dest);
    404404
    405405        /*
  • uspace/srv/net/inetsrv/inet_link.h

    r98a935e rf05edcb  
    11/*
    2  * Copyright (c) 2012 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4545extern errno_t inet_link_send_dgram(inet_link_t *, addr32_t,
    4646    addr32_t, inet_dgram_t *, uint8_t, uint8_t, int);
    47 extern errno_t inet_link_send_dgram6(inet_link_t *, addr48_t, inet_dgram_t *,
     47extern errno_t inet_link_send_dgram6(inet_link_t *, addr48_t *, inet_dgram_t *,
    4848    uint8_t, uint8_t, int);
    4949extern inet_link_t *inet_link_get_by_id(sysarg_t);
  • uspace/srv/net/inetsrv/inetcfg.c

    r98a935e rf05edcb  
    11/*
    2  * Copyright (c) 2013 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    177177        linfo->def_mtu = ilink->def_mtu;
    178178        if (ilink->mac_valid) {
    179                 addr48(ilink->mac, linfo->mac_addr);
     179                addr48(&ilink->mac, &linfo->mac_addr);
    180180        } else {
    181                 memset(linfo->mac_addr, 0, sizeof(linfo->mac_addr));
     181                memset(&linfo->mac_addr, 0, sizeof(linfo->mac_addr));
    182182        }
    183183
  • uspace/srv/net/inetsrv/ndp.c

    r98a935e rf05edcb  
    6969        ndp_pdu_encode(packet, &dgram);
    7070
    71         inet_link_send_dgram6(link, packet->target_hw_addr, &dgram,
     71        inet_link_send_dgram6(link, &packet->target_hw_addr, &dgram,
    7272            IP_PROTO_ICMPV6, INET6_HOP_LIMIT_MAX, 0);
    7373
     
    108108                if (laddr != NULL) {
    109109                        rc = ntrans_add(packet.sender_proto_addr,
    110                             packet.sender_hw_addr);
     110                            &packet.sender_hw_addr);
    111111                        if (rc != EOK)
    112112                                return rc;
     
    115115
    116116                        reply.opcode = ICMPV6_NEIGHBOUR_ADVERTISEMENT;
    117                         addr48(laddr->ilink->mac, reply.sender_hw_addr);
     117                        addr48(&laddr->ilink->mac, &reply.sender_hw_addr);
    118118                        addr128(packet.target_proto_addr, reply.sender_proto_addr);
    119                         addr48(packet.sender_hw_addr, reply.target_hw_addr);
     119                        addr48(&packet.sender_hw_addr, &reply.target_hw_addr);
    120120                        addr128(packet.sender_proto_addr, reply.target_proto_addr);
    121121
     
    128128                if (laddr != NULL)
    129129                        return ntrans_add(packet.sender_proto_addr,
    130                             packet.sender_hw_addr);
     130                            &packet.sender_hw_addr);
    131131
    132132                break;
     
    151151 *
    152152 */
    153 errno_t ndp_translate(addr128_t src_addr, addr128_t ip_addr, addr48_t mac_addr,
     153errno_t ndp_translate(addr128_t src_addr, addr128_t ip_addr, addr48_t *mac_addr,
    154154    inet_link_t *ilink)
    155155{
     
    167167
    168168        packet.opcode = ICMPV6_NEIGHBOUR_SOLICITATION;
    169         addr48(ilink->mac, packet.sender_hw_addr);
     169        addr48(&ilink->mac, &packet.sender_hw_addr);
    170170        addr128(src_addr, packet.sender_proto_addr);
    171171        addr128(ip_addr, packet.solicited_ip);
    172         addr48_solicited_node(ip_addr, packet.target_hw_addr);
     172        addr48_solicited_node(ip_addr, &packet.target_hw_addr);
    173173        ndp_solicited_node_ip(ip_addr, packet.target_proto_addr);
    174174
  • uspace/srv/net/inetsrv/ndp.h

    r98a935e rf05edcb  
    6464
    6565extern errno_t ndp_received(inet_dgram_t *);
    66 extern errno_t ndp_translate(addr128_t, addr128_t, addr48_t, inet_link_t *);
     66extern errno_t ndp_translate(addr128_t, addr128_t, addr48_t *, inet_link_t *);
    6767
    6868#endif
  • uspace/srv/net/inetsrv/ntrans.c

    r98a935e rf05edcb  
    7373 *
    7474 */
    75 errno_t ntrans_add(addr128_t ip_addr, addr48_t mac_addr)
     75errno_t ntrans_add(addr128_t ip_addr, addr48_t *mac_addr)
    7676{
    7777        inet_ntrans_t *ntrans;
     
    8383
    8484        addr128(ip_addr, ntrans->ip_addr);
    85         addr48(mac_addr, ntrans->mac_addr);
     85        addr48(mac_addr, &ntrans->mac_addr);
    8686
    8787        fibril_mutex_lock(&ntrans_list_lock);
     
    134134 *
    135135 */
    136 errno_t ntrans_lookup(addr128_t ip_addr, addr48_t mac_addr)
     136errno_t ntrans_lookup(addr128_t ip_addr, addr48_t *mac_addr)
    137137{
    138138        fibril_mutex_lock(&ntrans_list_lock);
     
    144144
    145145        fibril_mutex_unlock(&ntrans_list_lock);
    146         addr48(ntrans->mac_addr, mac_addr);
     146        addr48(&ntrans->mac_addr, mac_addr);
    147147        return EOK;
    148148}
  • uspace/srv/net/inetsrv/ntrans.h

    r98a935e rf05edcb  
    4848} inet_ntrans_t;
    4949
    50 extern errno_t ntrans_add(addr128_t, addr48_t);
     50extern errno_t ntrans_add(addr128_t, addr48_t *);
    5151extern errno_t ntrans_remove(addr128_t);
    52 extern errno_t ntrans_lookup(addr128_t, addr48_t);
     52extern errno_t ntrans_lookup(addr128_t, addr48_t *);
    5353extern errno_t ntrans_wait_timeout(usec_t);
    5454
  • uspace/srv/net/inetsrv/pdu.c

    r98a935e rf05edcb  
    11/*
    2  * Copyright (c) 2012 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4040#include <errno.h>
    4141#include <fibril_synch.h>
     42#include <inet/eth_addr.h>
    4243#include <io/log.h>
    4344#include <macros.h>
     
    504505
    505506        message->length = 1;
    506         addr48(ndp->sender_hw_addr, message->mac);
     507        mac48_encode(&ndp->sender_hw_addr, message->mac);
    507508
    508509        icmpv6_phdr_t phdr;
     
    552553
    553554        addr128_t_be2host(message->target_address, ndp->target_proto_addr);
    554         addr48(message->mac, ndp->sender_hw_addr);
     555        mac48_decode(message->mac, &ndp->sender_hw_addr);
    555556
    556557        return EOK;
Note: See TracChangeset for help on using the changeset viewer.