def test_calculate_timers_init_v4(initial_calculate_tee_times, initial_t1_percent, initial_t2_percent, initial_valid_lifetime): # check initial values of different timers in config file cfg = setup_server_for_config_backend_cmds( calculate_tee_times=initial_calculate_tee_times, t1_percent=initial_t1_percent, t2_percent=initial_t2_percent, valid_lifetime=initial_valid_lifetime) # define one, default subnet cfg.add_subnet() calculate_tee_times = initial_calculate_tee_times if initial_calculate_tee_times is not None else False valid_lifetime = initial_valid_lifetime if initial_valid_lifetime is not None else get_cfg_default( 'valid-lifetime') if calculate_tee_times: t1_percent = initial_t1_percent if initial_t1_percent is not None else get_cfg_default( 't1-percent') t2_percent = initial_t2_percent if initial_t2_percent is not None else get_cfg_default( 't2-percent') renew_timer = int(t1_percent * valid_lifetime) rebind_timer = int(t2_percent * valid_lifetime) else: renew_timer = None rebind_timer = None # check getting address from this subnet get_address(exp_renew_timer=renew_timer, exp_rebind_timer=rebind_timer, exp_lease_time=valid_lifetime)
def test_calculate_timers_init_v6(initial_calculate_tee_times, initial_t1_percent, initial_t2_percent, initial_preferred_lifetime, initial_valid_lifetime): # check initial values of different timers in config file cfg = setup_server_for_config_backend_cmds(calculate_tee_times=initial_calculate_tee_times, t1_percent=initial_t1_percent, t2_percent=initial_t2_percent, preferred_lifetime=initial_preferred_lifetime, valid_lifetime=initial_valid_lifetime) # define one, default subnet cfg.add_subnet() calculate_tee_times = initial_calculate_tee_times if initial_calculate_tee_times is not None else False if initial_preferred_lifetime is not None: preferred_lifetime = initial_preferred_lifetime else: preferred_lifetime = get_cfg_default('preferred-lifetime') valid_lifetime = initial_valid_lifetime if initial_valid_lifetime is not None else get_cfg_default('valid-lifetime') if calculate_tee_times: t1_percent = initial_t1_percent if initial_t1_percent is not None else get_cfg_default('t1-percent') t2_percent = initial_t2_percent if initial_t2_percent is not None else get_cfg_default('t2-percent') renew_timer = int(t1_percent * preferred_lifetime) rebind_timer = int(t2_percent * preferred_lifetime) else: renew_timer = None rebind_timer = None # check getting address from this subnet get_address(exp_renew_timer=renew_timer, exp_rebind_timer=rebind_timer, exp_ia_na_iaaddr_preflft=preferred_lifetime, exp_lease_time=valid_lifetime)
def test_subnet_and_calculate_timers(dhcp_version): # change renew timer on different levels (global and subnet) # and check if these changes are properly reflected in received ACKs cfg = setup_server_for_config_backend_cmds() # define one, default subnet cfg.add_subnet() if dhcp_version == 'v4': base_lifetime = get_cfg_default('valid-lifetime') else: base_lifetime = get_cfg_default('preferred-lifetime') # change global renew_timer to 1sec and now check # if received lease has renew_timer accordingly set cfg.set_global_parameter(calculate_tee_times=True) t1_percent = get_cfg_default('t1-percent') t2_percent = get_cfg_default('t2-percent') get_address(exp_renew_timer=int(t1_percent * base_lifetime), exp_rebind_timer=int(t2_percent * base_lifetime)) # change t1 and t2 and check new renew/rebind-timers t1_percent = 0.1 t2_percent = 0.9 cfg.set_global_parameter(t1_percent=t1_percent, t2_percent=t2_percent) get_address(exp_renew_timer=int(t1_percent * base_lifetime), exp_rebind_timer=int(t2_percent * base_lifetime)) # change again but only t1 and check new renew/rebind-timers t1_percent = 0.3 cfg.set_global_parameter(t1_percent=t1_percent) get_address(exp_renew_timer=int(t1_percent * base_lifetime), exp_rebind_timer=int(t2_percent * base_lifetime)) # switch off calculate_tee_times and check if renew/rebind-timers # are not present in responses anymore cfg.set_global_parameter(calculate_tee_times=False) get_address(exp_renew_timer=None, exp_rebind_timer=None)