bool test_randLIB_get_random_in_range() { uint16_t ret = randLIB_get_random_in_range(2, 2); if( ret != 2 ){ return false; } ret = randLIB_get_random_in_range(2, 3); if( ret != 2 && ret != 3){ return false; } ret = randLIB_get_random_in_range(0, 0xFFFF); return true; }
static void fhss_generate_broadcast_start_superframe(fhss_structure_t *fhss_structure) { // If the number of superframes is low, allow broadcast on any superframe if (fhss_structure->bs->synch_configuration.fhss_number_of_superframes < 8) { fhss_structure->bs->broadcast_start_superframe = 0; } else { fhss_structure->bs->broadcast_start_superframe = randLIB_get_random_in_range(0, NUMBER_OF_BC_START_SUPERFRAMES - 1); } }
/* RFC 6206 Rule 2 */ void trickle_begin_interval(trickle_t *t) { t->c = 0; if (t->I > 2) { //Take random only when t->I is bigger than 2 otherwise result will be 1 t->t = randLIB_get_random_in_range(t->I / 2, t->I - 1); } else { t->t= 1; } t->now = 0; }
static thread_discovery_request_info_t * thread_discovery_request_allocate(thread_discover_reques_t *scan_request, thread_discovery_ready_cb *response_cb) { thread_discovery_request_info_t * discover_request = ns_dyn_mem_temporary_alloc(sizeof(thread_discovery_request_info_t) + scan_request->filter_tlv_length); if (discover_request) { discover_request->waiting_response = false; discover_request->active_timer = 0; discover_request->channel_mask = scan_request->channel_mask; discover_request->joiner_flag = scan_request->joiner_flag; discover_request->native_commisioner_scan = scan_request->native_commisioner; discover_request->filter_tlv_length = scan_request->filter_tlv_length; discover_request->random_panid = randLIB_get_random_in_range(1, 0xfffd); //Generate random pan-id randLIB_get_n_bytes_random(discover_request->temporary_mac64, 8); //Generate random temporary mac64 discover_request->response_cb = response_cb; if (discover_request->filter_tlv_length) { memcpy(discover_optional_start_pointer(discover_request), scan_request->filter_tlv_data, discover_request->filter_tlv_length); } } return discover_request; }
/* RFC 6206 Rule 1 */ void trickle_start(trickle_t *t, const trickle_params_t *params) { t->e = 0; t->I = randLIB_get_random_in_range(params->Imin, params->Imax); trickle_begin_interval(t); }