/*---------------------------------------------------------------------------*/ void uip_ds6_send_ra_periodic(void) { if(racount > 0) { /* send previously scheduled RA */ #if CONF_6LOWPAN_ND for(locbr = uip_ds6_br_list; locbr < uip_ds6_br_list + UIP_DS6_BR_NB; locbr++) { uip_nd6_ra_output(NULL, locbr); } #else uip_nd6_ra_output(NULL); #endif /* CONF_6LOWPAN_ND */ PRINTF("Sending periodic RA\n"); } rand_time = UIP_ND6_MIN_RA_INTERVAL + random_rand() % (uint16_t) (UIP_ND6_MAX_RA_INTERVAL - UIP_ND6_MIN_RA_INTERVAL); PRINTF("Random time 1 = %u\n", rand_time); if(racount < UIP_ND6_MAX_INITIAL_RAS) { if(rand_time > UIP_ND6_MAX_INITIAL_RA_INTERVAL) { rand_time = UIP_ND6_MAX_INITIAL_RA_INTERVAL; PRINTF("Random time 2 = %u\n", rand_time); } racount++; } PRINTF("Random time 3 = %u\n", rand_time); stimer_set(&uip_ds6_timer_ra, rand_time); }
void uip_ds6_send_ra_unicast_sollicited(uip_ipaddr_t *dest) { for(locbr = uip_ds6_br_list; locbr < uip_ds6_br_list + UIP_DS6_BR_NB; locbr++) { uip_nd6_ra_output(dest, locbr); tcpip_ipv6_output(); } }
/*---------------------------------------------------------------------------*/ void uip_ds6_send_ra_periodic(void) { if(racount > 0) { /* send previously scheduled RA */ uip_nd6_ra_output(NULL); PRINTF("Sending periodic RA\n"); } rand_time = UIP_ND6_MIN_RA_INTERVAL + random_rand() % (uint16_t) (UIP_ND6_MAX_RA_INTERVAL - UIP_ND6_MIN_RA_INTERVAL); PRINTF("Random time 1 = %u\n", rand_time); if(racount < UIP_ND6_MAX_INITIAL_RAS) { if(rand_time > UIP_ND6_MAX_INITIAL_RA_INTERVAL) { rand_time = UIP_ND6_MAX_INITIAL_RA_INTERVAL; PRINTF("Random time 2 = %u\n", rand_time); } racount++; } PRINTF("Random time 3 = %u\n", rand_time); stimer_set(&uip_ds6_timer_ra, rand_time); }