Ignore:
File:
1 edited

Legend:

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

    rfafb8e5 r4c6fd56  
    11/*
    2  * Copyright (c) 2012 Jiri Svoboda
     2 * Copyright (c) 2023 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3939#include <async.h>
    4040#include <errno.h>
     41#include <inet/eth_addr.h>
    4142#include <inet/iplink_srv.h>
    4243#include <io/log.h>
     
    5859static errno_t ethip_send6(iplink_srv_t *srv, iplink_sdu6_t *sdu);
    5960static errno_t ethip_get_mtu(iplink_srv_t *srv, size_t *mtu);
    60 static errno_t ethip_get_mac48(iplink_srv_t *srv, addr48_t *mac);
    61 static errno_t ethip_set_mac48(iplink_srv_t *srv, addr48_t *mac);
     61static errno_t ethip_get_mac48(iplink_srv_t *srv, eth_addr_t *mac);
     62static errno_t ethip_set_mac48(iplink_srv_t *srv, eth_addr_t *mac);
    6263static errno_t ethip_addr_add(iplink_srv_t *srv, inet_addr_t *addr);
    6364static errno_t ethip_addr_remove(iplink_srv_t *srv, inet_addr_t *addr);
     
    7778};
    7879
     80static loc_srv_t *ethip_srv;
     81
    7982static errno_t ethip_init(void)
    8083{
    8184        async_set_fallback_port_handler(ethip_client_conn, NULL);
    8285
    83         errno_t rc = loc_server_register(NAME);
     86        errno_t rc = loc_server_register(NAME, &ethip_srv);
    8487        if (rc != EOK) {
    8588                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering server.");
     
    114117        }
    115118
    116         rc = loc_service_register(svc_name, &sid);
     119        rc = loc_service_register(ethip_srv, svc_name, &sid);
    117120        if (rc != EOK) {
    118121                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service %s.", svc_name);
     
    128131        }
    129132
    130         rc = loc_service_add_to_cat(sid, iplink_cat);
     133        rc = loc_service_add_to_cat(ethip_srv, sid, iplink_cat);
    131134        if (rc != EOK) {
    132135                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed adding %s to category.", svc_name);
     
    177180        eth_frame_t frame;
    178181
    179         errno_t rc = arp_translate(nic, sdu->src, sdu->dest, frame.dest);
     182        errno_t rc = arp_translate(nic, sdu->src, sdu->dest, &frame.dest);
    180183        if (rc != EOK) {
    181184                log_msg(LOG_DEFAULT, LVL_WARN, "Failed to look up IPv4 address 0x%"
     
    184187        }
    185188
    186         addr48(nic->mac_addr, frame.src);
     189        frame.src = nic->mac_addr;
    187190        frame.etype_len = ETYPE_IP;
    188191        frame.data = sdu->data;
     
    208211        eth_frame_t frame;
    209212
    210         addr48(sdu->dest, frame.dest);
    211         addr48(nic->mac_addr, frame.src);
     213        frame.dest = sdu->dest;
     214        frame.src = nic->mac_addr;
    212215        frame.etype_len = ETYPE_IPV6;
    213216        frame.data = sdu->data;
     
    276279}
    277280
    278 static errno_t ethip_get_mac48(iplink_srv_t *srv, addr48_t *mac)
     281static errno_t ethip_get_mac48(iplink_srv_t *srv, eth_addr_t *mac)
    279282{
    280283        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_get_mac48()");
    281284
    282285        ethip_nic_t *nic = (ethip_nic_t *) srv->arg;
    283         addr48(nic->mac_addr, *mac);
    284 
    285         return EOK;
    286 }
    287 
    288 static errno_t ethip_set_mac48(iplink_srv_t *srv, addr48_t *mac)
     286        *mac = nic->mac_addr;
     287
     288        return EOK;
     289}
     290
     291static errno_t ethip_set_mac48(iplink_srv_t *srv, eth_addr_t *mac)
    289292{
    290293        log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_set_mac48()");
    291294
    292295        ethip_nic_t *nic = (ethip_nic_t *) srv->arg;
    293         addr48(*mac, nic->mac_addr);
     296        nic->mac_addr = *mac;
    294297
    295298        return EOK;
Note: See TracChangeset for help on using the changeset viewer.