Added W_RTT_TRICK2 and ADD_RTT_TRICK_RX_CHUNKS metrics.
Signed-off-by: Stefano Traverso <firstname.lastname@example.org>
Added controls to check measures availability.
1) If my capacity iS large and peer to remove is the source, do not remove(TODO: this is tricky and dirty, better to find a better solution).2) Fixed bug about metadata when adding peer to neighbourood.3) Fixed bug in KEEP policy.
Added control to remove the source from neighbourood only if peer's bw is not enough large.
1) Source cannot control its neighbourood now (it is simply chosen or removed by others).2) Send a bmap after insertion in incoming neighbourood (especially useful if just inserted father is the source).
Added subnet trick to substitute RTT when trying to localize with ADD/KEEP.
Fixed bug when attaching metadata to streamer topology messages.
Added metadata decoding function. TODO: fix bug.
Added metadata when transmitting a MSG STREAMER TOPOLOGY.
Added KEEP W_BW and W_RTT policies.
Added ADD W_RTT scheme.
Solve the problem of NAN measurements.
1) Moved pseudo-random generator functions to the top2) Added add_weights array for ranking based on negexp RVs (however canbe used with all other metrics).3) Added Csaba's cdf patch.
topology: add example weight function for weighted choice
topology: implement nidset_select to choose nodeIDs using scheduler functions
Added a simple two-state control to regulate the frequency at whichneighbourood is updated.
Fixed small bug.
Added cmp_bw_weight function (TODO: add memory to it!).
Added AFFINITY metric for ranking.
Fixed BW_RTT metric.
Added noise to UPDATE_PEERS_TIMEOUT to avoid weird synchronicity effects.
Added -T option to set the refresh neighbourood period.
1) Removed -r and --desired_bw options since they are useless now.2) Removed desiredness and is_desired functions which were based on aboveoptions.
Fixed bug when verifying presence of a peer in a pset.
1) Desiredness is based on non-blacklistdness only.2) When adding peers, take the first ones in the rank.
Added noise when ranking. Percentage of noise is given by parameter alpha.
Fixed a bug in packet_loss ranking and added noisefunction based on alpha parameter.
Added get_outgoing_peers() and get_incoming_peers() functions tomake them accessible from extern.
1) Added "add best" based on offers in flight metric.2) Fixed a bug when removing peers form controlled neighbourood.
Modified ref_neigh_size to publish stats about incoming and outgoing neighboroods.
Main mods:1) add a double neighbourood (incoming [fathers] and outgoing [sons]).2) added function to retrieve metadata of known peers.3) modified update_peers to handle only one of the two neighboroods.
TOCHECK: caches behaviour is buggy!!
1) First update_peers() call is done immediately without waiting UPDATE_PEERS_TIMEOUT seconds.2) Fixed some minor bugs.
Fixed stupid bug when printing QSORT ADD BEST.
1) Fixed qsort for topo_add_best and topo_keep_best;2) Added capability to specify metrics for ranking (RTT, BW and RTT*BW for topo_add_best and RXCHUNKS and PACKET_LOSS for topo_keep_best).
TODO: get_capacity_of(a) funtion is faulty....
1) peers update their neighbourood when: a - they receive an explicit "add/remove peer to neighbours" message; b - when they see it's time to (when UPDATE_PEERS_TIMEOUT expires);2) when a gossiping message is received, newscast cache is updated, but NO...
BLACKLIST IMPLEMENTATION: Compiling checkpoint!
Added --topo_black_list option to streamer.c.
Added blacklisting features to topology manager.
When removing a peer from neighbourood, add it to blacklist if it wasa bad neighbour.
Remove peer from neighborood when timeout expires.
OFFER THREADS IMPLEMENTATION:
Modified metadata to follow offer threads policy.
Merge branch 'fixes-polito'
topology: add peer only if it wasn't in the peerset yet
topology: remove unused define
added topo_keep_best and topo_add_best options
topology: fix calculation of random_size
topology: fix max_ids calculation in case of topo_in
fix: getting rid of size_t and related signedness problems
topology: fixing --topo_in behaviour
topology: just some better messages
topology: restoring original default behaviour of out-neigh selection
topology: making control variables for neighbourhood directionality
topology: refactoring add_peer/remove_peer code
add streamer topology messages
topology: fix call to bind_msg_types
toplogy: improved debug info
topology: change logic to keep "topo_mem" portion of peers between irerations
default is topo_mem=0, i.e. the old way
topology: add MAX macro
topology: fix remove code
should have worked also before, but it was operating in a largerset than needed
factoring nodeid_set operation into separate file
topology: print some timestamps
changing default neighbour activity timeout to 20 sec
topology: changing default neighbourhood target size to 30
topology: fixed a printf
topology: improving debug message and fixing some fprintf compile warnings on 32bit
topology: fix: adding parenthesis around MIN macro
topology: fix: inverting alpha (again)
it was inverted during the rewrite of the desired algorithm
topology: fix problem with adding random nodes
size value was not initialized
topology: more debug messages
adding desired_bw parameter to define BW threshold in topology selection
topology: gossiping capacity
requires change of struct peer in GRAPES as well
topology: fix: changing metadata to packed
topology: use nodeid_equal instead of just "=="
topology: better debug messages
topology: fix some size parameters in the update algorithm
topology: fix nidset_add to work as set add should
topology: change code to add only the necessary ones
topology: some more debug output
topology: remove inactive peers at every call
topology: remove commented code
topology: fixing const in nideset_ functions
topology: fix the calculation of the new size when TARGET_SIZE is set to 0
topology: fix get_rtt_of
was not working, always giving NAN!
topology: the new "desired" based selection logic
topology: splitting is_desired in two
topology: defining the MIN macro
topology: a bunch of nodeidset manipulation functions
topology: revert alpha (now 0 means max RTT awareness)
gossip chunks_per_sec (offers_per_sec)
fix some compile warnings
topology: fix use of get_rtt in case there is no MONL
some topology debug
change defaul desired rtt to 200ms
try to keep a target ratio of desired peers
turning on bmap timout with 10sec
adding recv_delay to matadata
changing cb_size to fixed 16bit
do not add nodeIDs to topo if known indirectly
we do not know metadata for these nodes, which could create problems.Besides, peers should start gossiping their own data, and should not startgossiping threads for others.
adding cb_size to metadata
changing metadata to a structure
Merge branch 'win' into merge-wine-0.9.9