void slip_got_mac(const uint8_t * data) { memcpy(uip_lladdr.addr, data, sizeof(uip_lladdr.addr)); linkaddr_set_node_addr((linkaddr_t *) uip_lladdr.addr); linkaddr_copy((linkaddr_t *) & wsn_mac_addr, &linkaddr_node_addr); LOG6LBR_LLADDR(INFO, &uip_lladdr, "Got MAC: "); radio_mac_addr_ready = 1; }
void slip_set_mac(linkaddr_t const * mac_addr) { uint8_t buffer[10]; int i; LOG6LBR_LLADDR(INFO, (uip_lladdr_t*)mac_addr, "Set MAC: "); buffer[0] = '!'; buffer[1] = 'M'; for(i = 0; i < 8; i++) { buffer[2 + i] = mac_addr->u8[i]; } write_to_slip(buffer, 10); }
void switch_lookup_learn_addr(const uip_lladdr_t *lladdr, uint8_t ifindex) { #if UIP_SWITCH_LOOKUP if(lladdr != NULL && !linkaddr_cmp((linkaddr_t *)lladdr, &linkaddr_null)) { uip_ds6_nbr_t *nbr; nbr = uip_ds6_nbr_ll_lookup(lladdr); if(nbr) { nbr->ifindex = ifindex; } else { LOG6LBR_LLADDR(PACKET, lladdr, "No neighbor found for "); } } else { LOG6LBR_DEBUG("Can not learn broadcast or null addr\n"); } #endif }