Exemplo n.º 1
0
int sixlowpan_mac_send_ieee802154_frame(int if_id,
                                        const void *dest, uint8_t dest_len,
                                        const void *payload,
                                        uint8_t payload_len, uint8_t mcast)
{
    if (net_if_get_interface(if_id) &&
        net_if_get_interface(if_id)->transceivers & IEEE802154_TRANSCEIVER) {
        return sixlowpan_mac_send_data(if_id, dest, dest_len, payload,
                                       payload_len, mcast);
    }
    else {
        ieee802154_frame_t frame;
        uint16_t dest_pan = HTONS(0xabcd);
        uint8_t length;
        int hdrlen = sixlowpan_mac_prepare_ieee802144_frame(&frame, if_id,
                                                            dest_pan, dest,
                                                            dest_len, payload,
                                                            payload_len, mcast);

        if (hdrlen < 0) {
            return -1;
        }

        length = hdrlen + frame.payload_len + IEEE_802154_FCS_LEN;

        return sixlowpan_mac_send_data(if_id, dest, dest_len, lowpan_mac_buf,
                                       length, mcast);
    }
}
Exemplo n.º 2
0
Arquivo: ip.c Projeto: A-L-E-X/RIOT
ipv6_net_if_ext_t *ipv6_net_if_get_ext(int if_id)
{
    if (net_if_get_interface(if_id)) {
        return &ipv6_net_if_ext[if_id];
    }
    else {
        return NULL;
    }
}