Changes in uspace/srv/net/ethip/pdu.c [f0a2720:02a09ed] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/ethip/pdu.c
rf0a2720 r02a09ed 62 62 63 63 hdr = (eth_header_t *)data; 64 mac48_encode(&frame->src, hdr->src);65 mac48_encode(&frame->dest, hdr->dest);64 addr48(frame->src, hdr->src); 65 addr48(frame->dest, hdr->dest); 66 66 hdr->etype_len = host2uint16_t_be(frame->etype_len); 67 67 … … 69 69 frame->size); 70 70 71 log_msg(LVL_DEBUG, "Encoding Ethernet frame " 72 "src=%" PRIx64 " dest=%" PRIx64 " etype=%x", 73 frame->src.addr, frame->dest.addr, frame->etype_len); 74 log_msg(LVL_DEBUG, "Encoded Ethernet frame (%zu bytes)", size); 71 log_msg(LOG_DEFAULT, LVL_DEBUG, "Encoded Ethernet frame (%zu bytes)", size); 75 72 76 73 *rdata = data; … … 84 81 eth_header_t *hdr; 85 82 86 log_msg(L VL_DEBUG, "eth_pdu_decode()");83 log_msg(LOG_DEFAULT, LVL_DEBUG, "eth_pdu_decode()"); 87 84 88 85 if (size < sizeof(eth_header_t)) { 89 log_msg(L VL_DEBUG, "PDU too short (%zu)", size);86 log_msg(LOG_DEFAULT, LVL_DEBUG, "PDU too short (%zu)", size); 90 87 return EINVAL; 91 88 } … … 98 95 return ENOMEM; 99 96 100 mac48_decode(hdr->src, &frame->src);101 mac48_decode(hdr->dest, &frame->dest);97 addr48(hdr->src, frame->src); 98 addr48(hdr->dest, frame->dest); 102 99 frame->etype_len = uint16_t_be2host(hdr->etype_len); 103 100 … … 105 102 frame->size); 106 103 107 log_msg(LVL_DEBUG, "Decoding Ethernet frame " 108 "src=%" PRIx64 " dest=%" PRIx64 " etype=%x", 109 frame->src.addr, frame->dest.addr, frame->etype_len); 110 log_msg(LVL_DEBUG, "Decoded Ethernet frame payload (%zu bytes)", frame->size); 111 112 return EOK; 113 } 114 115 void mac48_encode(mac48_addr_t *addr, void *buf) 116 { 117 uint64_t val; 118 uint8_t *bbuf = (uint8_t *)buf; 119 int i; 120 121 val = addr->addr; 122 for (i = 0; i < MAC48_BYTES; i++) 123 bbuf[i] = (val >> (8 * (MAC48_BYTES - i - 1))) & 0xff; 124 } 125 126 void mac48_decode(void *data, mac48_addr_t *addr) 127 { 128 uint64_t val; 129 uint8_t *bdata = (uint8_t *)data; 130 int i; 131 132 val = 0; 133 for (i = 0; i < MAC48_BYTES; i++) 134 val |= (uint64_t)bdata[i] << (8 * (MAC48_BYTES - i - 1)); 135 136 addr->addr = val; 104 log_msg(LOG_DEFAULT, LVL_DEBUG, "Decoded Ethernet frame payload (%zu bytes)", frame->size); 105 106 return EOK; 137 107 } 138 108 … … 145 115 uint16_t fopcode; 146 116 147 log_msg(L VL_DEBUG, "arp_pdu_encode()");117 log_msg(LOG_DEFAULT, LVL_DEBUG, "arp_pdu_encode()"); 148 118 149 119 size = sizeof(arp_eth_packet_fmt_t); … … 168 138 pfmt->proto_addr_size = IPV4_ADDR_SIZE; 169 139 pfmt->opcode = host2uint16_t_be(fopcode); 170 mac48_encode(&packet->sender_hw_addr, pfmt->sender_hw_addr);140 addr48(packet->sender_hw_addr, pfmt->sender_hw_addr); 171 141 pfmt->sender_proto_addr = 172 host2uint32_t_be(packet->sender_proto_addr .ipv4);173 mac48_encode(&packet->target_hw_addr, pfmt->target_hw_addr);142 host2uint32_t_be(packet->sender_proto_addr); 143 addr48(packet->target_hw_addr, pfmt->target_hw_addr); 174 144 pfmt->target_proto_addr = 175 host2uint32_t_be(packet->target_proto_addr .ipv4);145 host2uint32_t_be(packet->target_proto_addr); 176 146 177 147 *rdata = data; … … 185 155 arp_eth_packet_fmt_t *pfmt; 186 156 187 log_msg(L VL_DEBUG, "arp_pdu_decode()");157 log_msg(LOG_DEFAULT, LVL_DEBUG, "arp_pdu_decode()"); 188 158 189 159 if (size < sizeof(arp_eth_packet_fmt_t)) { 190 log_msg(L VL_DEBUG, "ARP PDU too short (%zu)", size);160 log_msg(LOG_DEFAULT, LVL_DEBUG, "ARP PDU too short (%zu)", size); 191 161 return EINVAL; 192 162 } … … 195 165 196 166 if (uint16_t_be2host(pfmt->hw_addr_space) != AHRD_ETHERNET) { 197 log_msg(L VL_DEBUG, "HW address space != %u (%" PRIu16 ")",167 log_msg(LOG_DEFAULT, LVL_DEBUG, "HW address space != %u (%" PRIu16 ")", 198 168 AHRD_ETHERNET, uint16_t_be2host(pfmt->hw_addr_space)); 199 169 return EINVAL; … … 201 171 202 172 if (uint16_t_be2host(pfmt->proto_addr_space) != 0x0800) { 203 log_msg(L VL_DEBUG, "Proto address space != %u (%" PRIu16 ")",173 log_msg(LOG_DEFAULT, LVL_DEBUG, "Proto address space != %u (%" PRIu16 ")", 204 174 ETYPE_IP, uint16_t_be2host(pfmt->proto_addr_space)); 205 175 return EINVAL; … … 207 177 208 178 if (pfmt->hw_addr_size != ETH_ADDR_SIZE) { 209 log_msg(L VL_DEBUG, "HW address size != %zu (%zu)",179 log_msg(LOG_DEFAULT, LVL_DEBUG, "HW address size != %zu (%zu)", 210 180 (size_t)ETH_ADDR_SIZE, (size_t)pfmt->hw_addr_size); 211 181 return EINVAL; … … 213 183 214 184 if (pfmt->proto_addr_size != IPV4_ADDR_SIZE) { 215 log_msg(L VL_DEBUG, "Proto address size != %zu (%zu)",185 log_msg(LOG_DEFAULT, LVL_DEBUG, "Proto address size != %zu (%zu)", 216 186 (size_t)IPV4_ADDR_SIZE, (size_t)pfmt->proto_addr_size); 217 187 return EINVAL; … … 222 192 case AOP_REPLY: packet->opcode = aop_reply; break; 223 193 default: 224 log_msg(L VL_DEBUG, "Invalid ARP opcode (%" PRIu16 ")",194 log_msg(LOG_DEFAULT, LVL_DEBUG, "Invalid ARP opcode (%" PRIu16 ")", 225 195 uint16_t_be2host(pfmt->opcode)); 226 196 return EINVAL; 227 197 } 228 198 229 mac48_decode(pfmt->sender_hw_addr, &packet->sender_hw_addr);230 packet->sender_proto_addr .ipv4=199 addr48(pfmt->sender_hw_addr, packet->sender_hw_addr); 200 packet->sender_proto_addr = 231 201 uint32_t_be2host(pfmt->sender_proto_addr); 232 mac48_decode(pfmt->target_hw_addr, &packet->target_hw_addr);233 packet->target_proto_addr .ipv4=202 addr48(pfmt->target_hw_addr, packet->target_hw_addr); 203 packet->target_proto_addr = 234 204 uint32_t_be2host(pfmt->target_proto_addr); 235 log_msg(LVL_DEBUG, "packet->tpa = %x\n", pfmt->target_proto_addr); 236 237 return EOK; 238 } 239 205 log_msg(LOG_DEFAULT, LVL_DEBUG, "packet->tpa = %x\n", pfmt->target_proto_addr); 206 207 return EOK; 208 } 240 209 241 210 /** @}
Note:
See TracChangeset
for help on using the changeset viewer.