Changeset f05edcb in mainline for uspace/srv/net/ethip
- Timestamp:
- 2021-08-08T08:28:24Z (5 years ago)
- Branches:
- master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d5ed54b
- Parents:
- 98a935e
- Location:
- uspace/srv/net/ethip
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/ethip/arp.c
r98a935e rf05edcb 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 79 79 80 80 (void) atrans_add(packet.sender_proto_addr, 81 packet.sender_hw_addr);81 &packet.sender_hw_addr); 82 82 83 83 if (packet.opcode == aop_request) { … … 85 85 86 86 reply.opcode = aop_reply; 87 addr48( nic->mac_addr,reply.sender_hw_addr);87 addr48(&nic->mac_addr, &reply.sender_hw_addr); 88 88 reply.sender_proto_addr = laddr_v4; 89 addr48( packet.sender_hw_addr,reply.target_hw_addr);89 addr48(&packet.sender_hw_addr, &reply.target_hw_addr); 90 90 reply.target_proto_addr = packet.sender_proto_addr; 91 91 … … 95 95 96 96 errno_t arp_translate(ethip_nic_t *nic, addr32_t src_addr, addr32_t ip_addr, 97 addr48_t mac_addr)97 addr48_t *mac_addr) 98 98 { 99 99 /* Broadcast address */ 100 100 if (ip_addr == addr32_broadcast_all_hosts) { 101 addr48( addr48_broadcast, mac_addr);101 addr48(&addr48_broadcast, mac_addr); 102 102 return EOK; 103 103 } … … 110 110 111 111 packet.opcode = aop_request; 112 addr48( nic->mac_addr,packet.sender_hw_addr);112 addr48(&nic->mac_addr, &packet.sender_hw_addr); 113 113 packet.sender_proto_addr = src_addr; 114 addr48( addr48_broadcast,packet.target_hw_addr);114 addr48(&addr48_broadcast, &packet.target_hw_addr); 115 115 packet.target_proto_addr = ip_addr; 116 116 … … 138 138 return rc; 139 139 140 addr48( packet->target_hw_addr,frame.dest);141 addr48( packet->sender_hw_addr,frame.src);140 addr48(&packet->target_hw_addr, &frame.dest); 141 addr48(&packet->sender_hw_addr, &frame.src); 142 142 frame.etype_len = ETYPE_ARP; 143 143 frame.data = pdata; -
uspace/srv/net/ethip/arp.h
r98a935e rf05edcb 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 43 43 44 44 extern void arp_received(ethip_nic_t *, eth_frame_t *); 45 extern errno_t arp_translate(ethip_nic_t *, addr32_t, addr32_t, addr48_t );45 extern errno_t arp_translate(ethip_nic_t *, addr32_t, addr32_t, addr48_t *); 46 46 47 47 #endif -
uspace/srv/net/ethip/atrans.c
r98a935e rf05edcb 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 59 59 } 60 60 61 errno_t atrans_add(addr32_t ip_addr, addr48_t mac_addr)61 errno_t atrans_add(addr32_t ip_addr, addr48_t *mac_addr) 62 62 { 63 63 ethip_atrans_t *atrans; … … 69 69 70 70 atrans->ip_addr = ip_addr; 71 addr48(mac_addr, atrans->mac_addr);71 addr48(mac_addr, &atrans->mac_addr); 72 72 73 73 fibril_mutex_lock(&atrans_list_lock); … … 103 103 } 104 104 105 static errno_t atrans_lookup_locked(addr32_t ip_addr, addr48_t mac_addr)105 static errno_t atrans_lookup_locked(addr32_t ip_addr, addr48_t *mac_addr) 106 106 { 107 107 ethip_atrans_t *atrans = atrans_find(ip_addr); … … 109 109 return ENOENT; 110 110 111 addr48( atrans->mac_addr, mac_addr);111 addr48(&atrans->mac_addr, mac_addr); 112 112 return EOK; 113 113 } 114 114 115 errno_t atrans_lookup(addr32_t ip_addr, addr48_t mac_addr)115 errno_t atrans_lookup(addr32_t ip_addr, addr48_t *mac_addr) 116 116 { 117 117 errno_t rc; … … 135 135 136 136 errno_t atrans_lookup_timeout(addr32_t ip_addr, usec_t timeout, 137 addr48_t mac_addr)137 addr48_t *mac_addr) 138 138 { 139 139 fibril_timer_t *t; -
uspace/srv/net/ethip/atrans.h
r98a935e rf05edcb 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 42 42 #include "ethip.h" 43 43 44 extern errno_t atrans_add(addr32_t, addr48_t );44 extern errno_t atrans_add(addr32_t, addr48_t *); 45 45 extern errno_t atrans_remove(addr32_t); 46 extern errno_t atrans_lookup(addr32_t, addr48_t );47 extern errno_t atrans_lookup_timeout(addr32_t, usec_t, addr48_t );46 extern errno_t atrans_lookup(addr32_t, addr48_t *); 47 extern errno_t atrans_lookup_timeout(addr32_t, usec_t, addr48_t *); 48 48 49 49 #endif -
uspace/srv/net/ethip/ethip.c
r98a935e rf05edcb 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 177 177 eth_frame_t frame; 178 178 179 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); 180 180 if (rc != EOK) { 181 181 log_msg(LOG_DEFAULT, LVL_WARN, "Failed to look up IPv4 address 0x%" … … 184 184 } 185 185 186 addr48( nic->mac_addr,frame.src);186 addr48(&nic->mac_addr, &frame.src); 187 187 frame.etype_len = ETYPE_IP; 188 188 frame.data = sdu->data; … … 208 208 eth_frame_t frame; 209 209 210 addr48( sdu->dest,frame.dest);211 addr48( nic->mac_addr,frame.src);210 addr48(&sdu->dest, &frame.dest); 211 addr48(&nic->mac_addr, &frame.src); 212 212 frame.etype_len = ETYPE_IPV6; 213 213 frame.data = sdu->data; … … 281 281 282 282 ethip_nic_t *nic = (ethip_nic_t *) srv->arg; 283 addr48( nic->mac_addr, *mac);283 addr48(&nic->mac_addr, mac); 284 284 285 285 return EOK; … … 291 291 292 292 ethip_nic_t *nic = (ethip_nic_t *) srv->arg; 293 addr48( *mac,nic->mac_addr);293 addr48(mac, &nic->mac_addr); 294 294 295 295 return EOK; -
uspace/srv/net/ethip/ethip_nic.c
r98a935e rf05edcb 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 193 193 } 194 194 195 addr48(nic_address.address,nic->mac_addr);195 mac48_decode(nic_address.address, &nic->mac_addr); 196 196 197 197 rc = nic_set_state(nic->sess, NIC_STATE_ACTIVE); … … 400 400 401 401 addr48_t mac; 402 addr48_solicited_node(v6, mac);402 addr48_solicited_node(v6, &mac); 403 403 404 404 /* Avoid duplicate addresses in the list */ … … 407 407 408 408 for (size_t j = 0; j < i; j++) { 409 if (addr48_compare(mac_list[j].address, mac)) { 409 addr48_t mac_entry; 410 mac48_decode(mac_list[j].address, &mac_entry); 411 if (addr48_compare(&mac_entry, &mac)) { 410 412 found = true; 411 413 break; … … 414 416 415 417 if (!found) { 416 addr48(mac, mac_list[i].address);418 mac48_encode(&mac, mac_list[i].address); 417 419 i++; 418 } else 420 } else { 419 421 count--; 422 } 420 423 } 421 424 -
uspace/srv/net/ethip/pdu.c
r98a935e rf05edcb 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 60 60 61 61 hdr = (eth_header_t *)data; 62 addr48(frame->src, hdr->src);63 addr48(frame->dest, hdr->dest);62 mac48_encode(&frame->src, hdr->src); 63 mac48_encode(&frame->dest, hdr->dest); 64 64 hdr->etype_len = host2uint16_t_be(frame->etype_len); 65 65 … … 93 93 return ENOMEM; 94 94 95 addr48(hdr->src,frame->src);96 addr48(hdr->dest,frame->dest);95 mac48_decode(hdr->src, &frame->src); 96 mac48_decode(hdr->dest, &frame->dest); 97 97 frame->etype_len = uint16_t_be2host(hdr->etype_len); 98 98 … … 140 140 pfmt->proto_addr_size = IPV4_ADDR_SIZE; 141 141 pfmt->opcode = host2uint16_t_be(fopcode); 142 addr48(packet->sender_hw_addr, pfmt->sender_hw_addr);142 mac48_encode(&packet->sender_hw_addr, pfmt->sender_hw_addr); 143 143 pfmt->sender_proto_addr = 144 144 host2uint32_t_be(packet->sender_proto_addr); 145 addr48(packet->target_hw_addr, pfmt->target_hw_addr);145 mac48_encode(&packet->target_hw_addr, pfmt->target_hw_addr); 146 146 pfmt->target_proto_addr = 147 147 host2uint32_t_be(packet->target_proto_addr); … … 203 203 } 204 204 205 addr48(pfmt->sender_hw_addr,packet->sender_hw_addr);205 mac48_decode(pfmt->sender_hw_addr, &packet->sender_hw_addr); 206 206 packet->sender_proto_addr = 207 207 uint32_t_be2host(pfmt->sender_proto_addr); 208 addr48(pfmt->target_hw_addr,packet->target_hw_addr);208 mac48_decode(pfmt->target_hw_addr, &packet->target_hw_addr); 209 209 packet->target_proto_addr = 210 210 uint32_t_be2host(pfmt->target_proto_addr); -
uspace/srv/net/ethip/pdu.h
r98a935e rf05edcb 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 44 44 extern errno_t arp_pdu_encode(arp_eth_packet_t *, void **, size_t *); 45 45 extern errno_t arp_pdu_decode(void *, size_t, arp_eth_packet_t *); 46 extern void mac48_encode(addr48_t *, void *); 47 extern void mac48_decode(void *, addr48_t *); 46 48 47 49 #endif -
uspace/srv/net/ethip/std.h
r98a935e rf05edcb 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 39 39 40 40 #include <stdint.h> 41 #include <inet/addr.h>42 41 43 42 #define ETH_ADDR_SIZE 6 … … 48 47 typedef struct { 49 48 /** Destination Address */ 50 addr48_t dest;49 uint8_t dest[ETH_ADDR_SIZE]; 51 50 /** Source Address */ 52 addr48_t src;51 uint8_t src[ETH_ADDR_SIZE]; 53 52 /** Ethertype or Length */ 54 53 uint16_t etype_len; … … 68 67 uint16_t opcode; 69 68 /** Sender hardware address */ 70 addr48_t sender_hw_addr;69 uint8_t sender_hw_addr[ETH_ADDR_SIZE]; 71 70 /** Sender protocol address */ 72 addr32_t sender_proto_addr;71 uint32_t sender_proto_addr; 73 72 /** Target hardware address */ 74 addr48_t target_hw_addr;73 uint8_t target_hw_addr[ETH_ADDR_SIZE]; 75 74 /** Target protocol address */ 76 addr32_t target_proto_addr;75 uint32_t target_proto_addr; 77 76 } __attribute__((packed)) arp_eth_packet_fmt_t; 78 77
Note:
See TracChangeset
for help on using the changeset viewer.
