Exemple #1
0
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);
    }
}
Exemple #3
0
/* 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;
}
Exemple #4
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;
}
Exemple #5
0
/* 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);
}