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); } }
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; } }