Ignore:
File:
1 edited

Legend:

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

    rf0a2720 r02a09ed  
    6262
    6363        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);
    6666        hdr->etype_len = host2uint16_t_be(frame->etype_len);
    6767
     
    6969            frame->size);
    7070
    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);
    7572
    7673        *rdata = data;
     
    8481        eth_header_t *hdr;
    8582
    86         log_msg(LVL_DEBUG, "eth_pdu_decode()");
     83        log_msg(LOG_DEFAULT, LVL_DEBUG, "eth_pdu_decode()");
    8784
    8885        if (size < sizeof(eth_header_t)) {
    89                 log_msg(LVL_DEBUG, "PDU too short (%zu)", size);
     86                log_msg(LOG_DEFAULT, LVL_DEBUG, "PDU too short (%zu)", size);
    9087                return EINVAL;
    9188        }
     
    9895                return ENOMEM;
    9996
    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);
    10299        frame->etype_len = uint16_t_be2host(hdr->etype_len);
    103100
     
    105102            frame->size);
    106103
    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;
    137107}
    138108
     
    145115        uint16_t fopcode;
    146116
    147         log_msg(LVL_DEBUG, "arp_pdu_encode()");
     117        log_msg(LOG_DEFAULT, LVL_DEBUG, "arp_pdu_encode()");
    148118
    149119        size = sizeof(arp_eth_packet_fmt_t);
     
    168138        pfmt->proto_addr_size = IPV4_ADDR_SIZE;
    169139        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);
    171141        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);
    174144        pfmt->target_proto_addr =
    175             host2uint32_t_be(packet->target_proto_addr.ipv4);
     145            host2uint32_t_be(packet->target_proto_addr);
    176146
    177147        *rdata = data;
     
    185155        arp_eth_packet_fmt_t *pfmt;
    186156
    187         log_msg(LVL_DEBUG, "arp_pdu_decode()");
     157        log_msg(LOG_DEFAULT, LVL_DEBUG, "arp_pdu_decode()");
    188158
    189159        if (size < sizeof(arp_eth_packet_fmt_t)) {
    190                 log_msg(LVL_DEBUG, "ARP PDU too short (%zu)", size);
     160                log_msg(LOG_DEFAULT, LVL_DEBUG, "ARP PDU too short (%zu)", size);
    191161                return EINVAL;
    192162        }
     
    195165
    196166        if (uint16_t_be2host(pfmt->hw_addr_space) != AHRD_ETHERNET) {
    197                 log_msg(LVL_DEBUG, "HW address space != %u (%" PRIu16 ")",
     167                log_msg(LOG_DEFAULT, LVL_DEBUG, "HW address space != %u (%" PRIu16 ")",
    198168                    AHRD_ETHERNET, uint16_t_be2host(pfmt->hw_addr_space));
    199169                return EINVAL;
     
    201171
    202172        if (uint16_t_be2host(pfmt->proto_addr_space) != 0x0800) {
    203                 log_msg(LVL_DEBUG, "Proto address space != %u (%" PRIu16 ")",
     173                log_msg(LOG_DEFAULT, LVL_DEBUG, "Proto address space != %u (%" PRIu16 ")",
    204174                    ETYPE_IP, uint16_t_be2host(pfmt->proto_addr_space));
    205175                return EINVAL;
     
    207177
    208178        if (pfmt->hw_addr_size != ETH_ADDR_SIZE) {
    209                 log_msg(LVL_DEBUG, "HW address size != %zu (%zu)",
     179                log_msg(LOG_DEFAULT, LVL_DEBUG, "HW address size != %zu (%zu)",
    210180                    (size_t)ETH_ADDR_SIZE, (size_t)pfmt->hw_addr_size);
    211181                return EINVAL;
     
    213183
    214184        if (pfmt->proto_addr_size != IPV4_ADDR_SIZE) {
    215                 log_msg(LVL_DEBUG, "Proto address size != %zu (%zu)",
     185                log_msg(LOG_DEFAULT, LVL_DEBUG, "Proto address size != %zu (%zu)",
    216186                    (size_t)IPV4_ADDR_SIZE, (size_t)pfmt->proto_addr_size);
    217187                return EINVAL;
     
    222192        case AOP_REPLY: packet->opcode = aop_reply; break;
    223193        default:
    224                 log_msg(LVL_DEBUG, "Invalid ARP opcode (%" PRIu16 ")",
     194                log_msg(LOG_DEFAULT, LVL_DEBUG, "Invalid ARP opcode (%" PRIu16 ")",
    225195                    uint16_t_be2host(pfmt->opcode));
    226196                return EINVAL;
    227197        }
    228198
    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 =
    231201            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 =
    234204            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}
    240209
    241210/** @}
Note: See TracChangeset for help on using the changeset viewer.