00001 /* Copyright 2008 Michael Marsh, University of Maryland. 00002 * 00003 * This file is part of pydtn. 00004 * 00005 * pydtn is free software: you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation, either version 3 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * pydtn is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with pydtn. If not, see <http://www.gnu.org/licenses/>. 00017 * 00018 * The views and conclusions contained in the software and documentation 00019 * are those of the authors and should not be interpreted as representing 00020 * official policies, either expressed or implied, of the University 00021 * of Maryland. 00022 * 00023 * pydtn extends and embeds the Python interpreter, which is 00024 * Copyright 2001-2006 Python Software Foundation, All Rights Reserved, 00025 * and is released under the PSF License Agreement. 00026 * 00027 * RANLUX random number generation uses the Boost library, 00028 * Copyright 1994-2006 by various authors (details in individual files), 00029 * which is released under the Boost Software License, Version 1.0. 00030 */ 00031 00032 #include "aodv.h" 00033 00034 void 00035 set_aodv_param_defaults( aodv_state_t* state ) 00036 { 00037 state->params.node_traversal_time = 10; 00038 state->params.net_diameter = 20; 00039 state->params.rreq_tries = 3; 00040 state->params.rreq_ratelimit = 10; 00041 state->params.rerr_ratelimit = 10; 00042 state->params.hello_interval = 1000; 00043 state->params.allowed_hello_loss = 2; 00044 00045 recompute_aodv_params( state ); 00046 } 00047 00048 void 00049 recompute_aodv_params( aodv_state_t* state ) 00050 { 00051 aodv_parameters_t* p = &(state->params); 00052 00053 p->net_traversal_time = 2 * p->node_traversal_time * p->net_diameter; 00054 p->path_discovery_time = 2 * p->net_traversal_time; 00055 p->active_route_timeout = 2 * p->net_traversal_time; 00056 p->delete_period = 5 * p->net_traversal_time; 00057 p->next_hop_wait = 2 * p->node_traversal_time; 00058 p->blacklist_timeout = p->rreq_tries * p->net_traversal_time; 00059 }
1.5.4