Ignore:
File:
1 edited

Legend:

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

    r4c6fd56 rfafb8e5  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2012 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3939#include <async.h>
    4040#include <errno.h>
    41 #include <inet/eth_addr.h>
    4241#include <inet/iplink_srv.h>
    4342#include <io/log.h>
     
    5958static errno_t ethip_send6(iplink_srv_t *srv, iplink_sdu6_t *sdu);
    6059static errno_t ethip_get_mtu(iplink_srv_t *srv, size_t *mtu);
    61 static errno_t ethip_get_mac48(iplink_srv_t *srv, eth_addr_t *mac);
    62 static errno_t ethip_set_mac48(iplink_srv_t *srv, eth_addr_t *mac);
     60static errno_t ethip_get_mac48(iplink_srv_t *srv, addr48_t *mac);
     61static errno_t ethip_set_mac48(iplink_srv_t *srv, addr48_t *mac);
    6362static errno_t ethip_addr_add(iplink_srv_t *srv, inet_addr_t *addr);
    6463static errno_t ethip_addr_remove(iplink_srv_t *srv, inet_addr_t *addr);
     
    7877};
    7978
    80 static loc_srv_t *ethip_srv;
    81 
    8279static errno_t ethip_init(void)
    8380{
    8481        async_set_fallback_port_handler(ethip_client_conn, NULL);
    8582
    86         errno_t rc = loc_server_register(NAME, &ethip_srv);
     83        errno_t rc = loc_server_register(NAME);
    8784        if (rc != EOK) {
    8885                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering server.");
     
    117114        }
    118115
    119         rc = loc_service_register(ethip_srv, svc_name, &sid);
     116        rc = loc_service_register(svc_name, &sid);
    120117        if (rc != EOK) {
    121118                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service %s.", svc_name);
     
    131128        }
    132129
    133         rc = loc_service_add_to_cat(ethip_srv, sid, iplink_cat);
     130        rc = loc_service_add_to_cat(sid, iplink_cat);
    134131        if (rc != EOK) {
    135132                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed adding %s to category.", svc_name);
     
    180177        eth_frame_t frame;
    181178
    182         errno_t rc = arp_translate(nic, sdu->src, sdu->dest, &frame.dest);
     179        errno_t rc = arp_translate(nic, sdu->src, sdu->dest, frame.dest);
    183180        if (rc != EOK) {
    184181                log_msg(LOG_DEFAULT, LVL_WARN, "Failed to look up IPv4 address 0x%"
     
    187184        }
    188185
    189         frame.src = nic->mac_addr;
     186        addr48(nic->mac_addr, frame.src);
    190187        frame.etype_len = ETYPE_IP;
    191188        frame.data = sdu->data;
     
    211208        eth_frame_t frame;
    212209
    213         frame.dest = sdu->dest;
    214         frame.src = nic->mac_addr;
     210        addr48(sdu->dest, frame.dest);
     211        addr48(nic->mac_addr, frame.src);
    215212        frame.etype_len = ETYPE_IPV6;
    216213        frame.data = sdu->data;
     
    279276}
    280277
    281 static errno_t ethip_get_mac48(iplink_srv_t *srv, eth_addr_t *mac)
     278static errno_t ethip_get_mac48(iplink_srv_t *srv, addr48_t *mac)
    282279{
    283280        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_get_mac48()");
    284281
    285282        ethip_nic_t *nic = (ethip_nic_t *) srv->arg;
    286         *mac = nic->mac_addr;
    287 
    288         return EOK;
    289 }
    290 
    291 static errno_t ethip_set_mac48(iplink_srv_t *srv, eth_addr_t *mac)
     283        addr48(nic->mac_addr, *mac);
     284
     285        return EOK;
     286}
     287
     288static errno_t ethip_set_mac48(iplink_srv_t *srv, addr48_t *mac)
    292289{
    293290        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_set_mac48()");
    294291
    295292        ethip_nic_t *nic = (ethip_nic_t *) srv->arg;
    296         nic->mac_addr = *mac;
     293        addr48(*mac, nic->mac_addr);
    297294
    298295        return EOK;
Note: See TracChangeset for help on using the changeset viewer.