X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fmesh%2Fmesh_tunnel_tree.h;h=84fd0acb22521e07cbe6f03671970274e697e354;hb=2ccf509cc0cfb052df901c871fdf523d7063333f;hp=094a617cba68d351b6f3ffc57175f6df30d8dec7;hpb=83b19539f4d322b43683f5838b72e9ec2c8e6073;p=oweals%2Fgnunet.git diff --git a/src/mesh/mesh_tunnel_tree.h b/src/mesh/mesh_tunnel_tree.h index 094a617cb..84fd0acb2 100644 --- a/src/mesh/mesh_tunnel_tree.h +++ b/src/mesh/mesh_tunnel_tree.h @@ -19,7 +19,7 @@ */ /** - * @file mesh/mesh_tree_tree.h + * @file mesh/mesh_tunnel_tree.h * @brief Tunnel tree handling functions * @author Bartlomiej Polot */ @@ -72,9 +72,9 @@ struct MeshTunnelTree; /******************************************************************************/ /** - * Create a new path + * Create a new path. * - * @param lenght How many hops will the path have. + * @param length How many hops will the path have. * * @return A newly allocated path with a peer array of the specified length. */ @@ -83,59 +83,33 @@ path_new (unsigned int length); /** - * Invert the path + * Invert the path. * - * @param p the path to invert + * @param path The path to invert. */ void -path_invert (struct MeshPeerPath *p); +path_invert (struct MeshPeerPath *path); /** * Duplicate a path, incrementing short peer's rc. * - * @param p The path to duplicate. + * @param path The path to duplicate. */ struct MeshPeerPath * path_duplicate (struct MeshPeerPath *path); /** - * Find the first peer whom to send a packet to go down this path + * Get the length of a path. * - * @param t The tunnel tree to use - * @param peer The peerinfo of the peer we are trying to reach + * @param path The path to measure, with the local peer at any point of it. * - * @return peerinfo of the peer who is the first hop in the tunnel - * NULL on error - */ -struct GNUNET_PeerIdentity * -path_get_first_hop (struct MeshTunnelTree *t, GNUNET_PEER_Id peer); - - -/** - * Get the length of a path - * - * @param p The path to measure, with the local peer at any point of it - * - * @return Number of hops to reach destination - * UINT_MAX in case the peer is not in the path + * @return Number of hops to reach destination. + * UINT_MAX in case the peer is not in the path. */ unsigned int -path_get_length (struct MeshPeerPath *p); - - -/** - * Get the cost of the path relative to the already built tunnel tree - * - * @param t The tunnel tree to which compare - * @param path The individual path to reach a peer - * - * @return Number of hops to reach destination, UINT_MAX in case the peer is not - * in the path - */ -unsigned int -path_get_cost (struct MeshTunnelTree *t, struct MeshPeerPath *path); +path_get_length (struct MeshPeerPath *path); /** @@ -171,32 +145,12 @@ struct MeshTunnelTree * tree_new (GNUNET_PEER_Id peer); -/** - * Set own identity in the tree - * - * @param tree Tree. - * @param peer A short peer id of local peer. - */ -void -tree_set_me (struct MeshTunnelTree *tree, GNUNET_PEER_Id peer); - - -/** - * Get the id of the local id of the tree. - * - * @param tree Tree whose local id we want to now. - * - * @return Short peer id of local peer. - */ -GNUNET_PEER_Id -tree_get_me (struct MeshTunnelTree *tree); - - /** * Set the status of a node. * * @param tree Tree. - * @param peer A short peer id of local peer. + * @param peer A short peer id of the node. + * @param status New status to set. */ void tree_set_status (struct MeshTunnelTree *tree, GNUNET_PEER_Id peer, @@ -207,6 +161,7 @@ tree_set_status (struct MeshTunnelTree *tree, GNUNET_PEER_Id peer, * Get the status of a node. * * @param tree Tree whose local id we want to now. + * @param peer A short peer id of the node. * * @return Short peer id of local peer. */ @@ -225,11 +180,24 @@ GNUNET_PEER_Id tree_get_predecessor (struct MeshTunnelTree *tree); +/** + * Find the first peer whom to send a packet to go down this path + * + * @param t The tunnel tree to use + * @param peer The peerinfo of the peer we are trying to reach + * + * @return peerinfo of the peer who is the first hop in the tunnel + * NULL on error + */ +struct GNUNET_PeerIdentity * +tree_get_first_hop (struct MeshTunnelTree *t, GNUNET_PEER_Id peer); + + /** * Find the given peer in the tree. * * @param tree Tree where to look for the peer. - * @param peer Peer to find. + * @param peer_id Peer to find. * * @return Pointer to the node of the peer. NULL if not found. */ @@ -267,7 +235,7 @@ tree_update_first_hops (struct MeshTunnelTree *tree, GNUNET_PEER_Id parent_id, * a new path to it or destroy it explicitly, taking care of it's child nodes. * * @param t Tunnel tree where to delete the path from. - * @param peer Destination peer whose path we want to remove. + * @param peer_id Short ID of the destination peer whose path we want to remove. * @param cb Callback to use to notify about which peers are going to be * disconnected. * @param cbcls Closure for cb. @@ -276,7 +244,7 @@ tree_update_first_hops (struct MeshTunnelTree *tree, GNUNET_PEER_Id parent_id, * NULL when not found */ struct MeshTunnelTreeNode * -tree_del_path (struct MeshTunnelTree *t, GNUNET_PEER_Id peer, +tree_del_path (struct MeshTunnelTree *t, GNUNET_PEER_Id peer_id, MeshTreeCallback cb, void *cbcls); @@ -345,6 +313,20 @@ int tree_del_peer (struct MeshTunnelTree *t, GNUNET_PEER_Id peer, MeshTreeCallback cb, void *cbcls); + +/** + * Get the cost of the path relative to the already built tunnel tree + * + * @param t The tunnel tree to which compare + * @param path The individual path to reach a peer + * + * @return Number of hops to reach destination, UINT_MAX in case the peer is not + * in the path + */ +unsigned int +tree_get_path_cost (struct MeshTunnelTree *t, struct MeshPeerPath *path); + + /** * Print the tree on stderr *