|
OverSim
|
#include <BasePastry.h>
Classes | |
| struct | PingContext |
Public Member Functions | |
| virtual | ~BasePastry () |
| int | getMaxNumSiblings () |
| Query the maximum number of siblings (nodes close to a key) that are maintained by this overlay protocol. | |
| int | getMaxNumRedundantNodes () |
| Query the maximum number of redundant next hop nodes that are returned by findNode(). | |
| virtual void | handleAppMessage (BaseOverlayMessage *msg) |
| processes messages from application | |
| virtual void | updateTooltip () |
| updates information shown in tk-environment | |
| virtual NodeVector * | findNode (const OverlayKey &key, int numRedundantNodes, int numSiblings, BaseOverlayMessage *msg) |
| Implements the find node call. | |
| virtual void | handleStateMessage (PastryStateMessage *msg)=0 |
| processes state messages, merging with own state tables | |
| virtual void | finishOverlay () |
| collects statistical data in derived class | |
| virtual bool | isSiblingFor (const NodeHandle &node, const OverlayKey &key, int numSiblings, bool *err) |
| Query if a node is among the siblings for a given key. | |
| virtual AbstractLookup * | createLookup (RoutingType routingType=DEFAULT_ROUTING, const BaseOverlayMessage *msg=NULL, const cPacket *dummy=NULL, bool appLookup=false) |
| Creates an abstract iterative lookup instance. | |
| uint8_t | getBitsPerDigit () |
| void | proxCallback (const TransportAddress &node, int rpcId, cPolymorphic *contextPointer, Prox prox) |
| virtual OverlayKey | estimateMeanDistance () |
| returns mean distance between OverlayKeys in the network | |
| uint8_t | getRTLastRow () const |
| std::vector< TransportAddress > * | getRTRow (uint8_t index) const |
| std::vector< TransportAddress > * | getLeafSet () const |
Public Member Functions inherited from BaseOverlay | |
| BaseOverlay () | |
| virtual | ~BaseOverlay () |
| Virtual destructor. | |
| States | getState () |
| bool | isMalicious () |
| Returns true, if node is malicious. | |
| bool | isInSimpleMultiOverlayHost () |
| Returns true if overlay is one in an array, inside a SimpleMultiOverlayHost. | |
| const simtime_t & | getCreationTime () |
| void | join (const OverlayKey &nodeID=OverlayKey::UNSPECIFIED_KEY) |
| Join the overlay with a given nodeID. | |
| virtual NodeVector * | local_lookup (const OverlayKey &key, int num, bool safe) |
| finds nodes closest to the given OverlayKey | |
| virtual NodeVector * | neighborSet (int num) |
| void | sendMessageToUDP (const TransportAddress &dest, cPacket *msg, simtime_t delay=SIMTIME_ZERO) |
| Sends message to underlay. | |
| void | sendToKey (const OverlayKey &key, BaseOverlayMessage *message, int numSiblings=1, const std::vector< TransportAddress > &sourceRoute=TransportAddress::UNSPECIFIED_NODES, RoutingType routingType=DEFAULT_ROUTING) |
| Sends a message to an overlay node, with the generic routing algorithm. | |
| void | registerComp (CompType compType, cModule *module) |
| cModule * | getCompModule (CompType compType) |
| cGate * | getCompRpcGate (CompType compType) |
| void | sendMessageToAllComp (cMessage *msg, CompType srcComp) |
| bool | providesKbr () |
| bool | getMeasureAuthBlock () |
| BootstrapList & | getBootstrapList () const |
| virtual uint32_t | estimateOverlaySize () |
| estimates the current number of nodes online | |
Public Member Functions inherited from BaseRpc | |
| BaseRpc () | |
| const NodeHandle & | getThisNode () |
| Returns the NodeHandle of this node. | |
| simtime_t | getUdpTimeout () |
Public Member Functions inherited from RpcListener | |
| virtual | ~RpcListener () |
| destructor | |
Public Member Functions inherited from BaseTcpSupport | |
| virtual void | socketDataArrived (int connId, void *yourPtr, cPacket *msg, bool urgent) |
| virtual void | socketEstablished (int connId, void *yourPtr) |
| virtual void | socketPeerClosed (int connId, void *yourPtr) |
| virtual void | socketFailure (int connId, void *yourPtr, int code) |
| virtual void | socketStatusArrived (int connId, void *yourPtr, TCPStatusInfo *status) |
Public Member Functions inherited from TopologyVis | |
| TopologyVis () | |
| void | showOverlayNeighborArrow (const NodeHandle &neighbor, bool flush=true, const char *displayString=NULL) |
| Draws an arrow from this node to neighbor. | |
| void | deleteOverlayNeighborArrow (const NodeHandle &neighbor) |
| Removes an arrow from this node to neighbor. | |
Public Attributes | |
| int | joins |
| int | joinTries |
| int | joinPartial |
| int | joinSeen |
| int | joinBytesSeen |
| int | joinReceived |
| int | joinBytesReceived |
| int | joinSent |
| int | joinBytesSent |
| int | stateSent |
| int | stateBytesSent |
| int | stateReceived |
| int | stateBytesReceived |
| int | repairReqSent |
| int | repairReqBytesSent |
| int | repairReqReceived |
| int | repairReqBytesReceived |
| int | stateReqSent |
| int | stateReqBytesSent |
| int | stateReqReceived |
| int | stateReqBytesReceived |
| int | totalLookups |
| int | responsibleLookups |
| int | routingTableLookups |
| int | closerNodeLookups |
| int | closerNodeLookupsFromNeighborhood |
| int | leafsetReqSent |
| int | leafsetReqBytesSent |
| int | leafsetReqReceived |
| int | leafsetReqBytesReceived |
| int | leafsetSent |
| int | leafsetBytesSent |
| int | leafsetReceived |
| int | leafsetBytesReceived |
| int | routingTableRowReqSent |
| int | routingTableRowReqBytesSent |
| int | routingTableRowReqReceived |
| int | routingTableRowReqBytesReceived |
| int | routingTableRowSent |
| int | routingTableRowBytesSent |
| int | routingTableRowReceived |
| int | routingTableRowBytesReceived |
Protected Types | |
| enum | StateObject { ROUTINGTABLE, LEAFSET, NEIGHBORHOODSET } |
| enum | { PING_RECEIVED_STATE = 1, PING_NEXT_HOP = 2, PING_SINGLE_NODE = 3, PING_DISCOVERY = 4 } |
Protected Types inherited from BaseOverlay | |
| typedef UNORDERED_SET < AbstractLookup *, lookupHashFcn, lookupHashFcn > | LookupSet |
Protected Member Functions | |
| virtual void | changeState (int toState) |
| changes node state | |
| virtual bool | handleRpcCall (BaseCallMessage *msg) |
| Processes Remote-Procedure-Call invocation messages. | |
| virtual void | handleRpcResponse (BaseResponseMessage *msg, cPolymorphic *context, int rpcId, simtime_t rtt) |
| This method is called if an RPC response has been received. | |
| virtual void | handleRpcTimeout (BaseCallMessage *call, const TransportAddress &dest, cPolymorphic *context, int rpcId, const OverlayKey &key) |
| This method is called if an RPC timeout has been reached. | |
| void | handleRequestLeafSetCall (RequestLeafSetCall *call) |
| void | handleRequestRoutingRowCall (RequestRoutingRowCall *call) |
| virtual void | handleRequestLeafSetResponse (RequestLeafSetResponse *response) |
| virtual void | handleRequestRoutingRowResponse (RequestRoutingRowResponse *response) |
| PastryStateMessage * | createStateMessage (enum PastryStateMsgType type=PASTRY_STATE_STD, simtime_t timestamp=-1, int16_t row=-1, bool lastHop=false) |
| virtual void | checkProxCache (void)=0 |
| checks whether proxCache is complete, takes appropriate actions depending on the protocol state | |
| virtual void | purgeVectors (void) |
| delete all information/messages caching vectors, used for restarting overlay or finish() | |
| void | baseInit (void) |
| initializes parameters and variables used in both Bamboo and Pastry | |
| void | baseChangeState (int) |
| changes node state, but leaves specific behavour, scheduling tasks in particular, to the inheriting protocols | |
| OverlayKey | distance (const OverlayKey &x, const OverlayKey &y, bool useAlternative=false) const |
| This method should implement the distance between two keys. | |
| virtual void | iterativeJoinHook (BaseOverlayMessage *msg, bool incrHopCount) |
| void | prePing (const PastryStateMessage *stateMsg) |
| ping all nodes in a given state message. | |
| void | pingNodes (void) |
| ping all nodes in the pastry state message pointed to by private member stateCache | |
| void | determineAliveTable (const PastryStateMessage *stateMsg) |
| change the aliveTable to match the given stateMsg. | |
| void | newLeafs (void) |
| Pastry API: send newLeafs() to application if enabled. | |
Protected Member Functions inherited from BaseOverlay | |
| int | numInitStages () const |
| Sets init stage. | |
| virtual void | initializeOverlay (int stage) |
| Initializes derived-class-attributes. | |
| void | bindToPort (int port) |
| Tells UDP we want to get all packets arriving on the given port. | |
| virtual void | route (const OverlayKey &key, CompType destComp, CompType srcComp, cPacket *msg, const std::vector< TransportAddress > &sourceRoute=TransportAddress::UNSPECIFIED_NODES, RoutingType routingType=DEFAULT_ROUTING) |
| Routes message through overlay. | |
| void | callDeliver (BaseOverlayMessage *msg, const OverlayKey &destKey) |
| Calls deliver function in application. | |
| void | callForward (const OverlayKey &key, BaseRouteMessage *msg, const NodeHandle &nextHopNode) |
| Calls forward function in application. | |
| void | callUpdate (const NodeHandle &node, bool joined) |
| Informs application about state changes of nodes or newly joined nodes. | |
| void | handleMessage (cMessage *msg) |
| Checks for message type and calls corresponding method. | |
| void | handleBaseOverlayMessage (BaseOverlayMessage *msg, const OverlayKey &destKey=OverlayKey::UNSPECIFIED_KEY) |
| Handles a BaseOverlayMessage | |
| virtual void | handleUDPMessage (BaseOverlayMessage *msg) |
| Processes messages from underlay. | |
| virtual void | handleAppMessage (cMessage *msg) |
| Processes "timer" self-messages. | |
| virtual void | receiveChangeNotification (int category, const cPolymorphic *details) |
| callback-method for events at the NotificationBoard | |
| virtual void | handleTransportAddressChangedNotification () |
| This method gets call if the node has a new TransportAddress (IP address) because he changed his access network. | |
| virtual void | handleNodeLeaveNotification () |
| This method gets call **.gracefulLeaveDelay seconds before it is killed. | |
| virtual void | handleNodeGracefulLeaveNotification () |
| This method gets call **.gracefulLeaveDelay seconds before it is killed if this node is among the gracefulLeaveProbability nodes. | |
| virtual void | recordOverlaySentStats (BaseOverlayMessage *msg) |
| Collect overlay specific sent messages statistics. | |
| void | setOverlayReady (bool ready) |
| Sets the overlay ready icon and register/deregisters the node at the GlobalNodeList. | |
| virtual void | removeLookup (AbstractLookup *lookup) |
| Removes the abstract lookup instance. | |
| virtual void | joinOverlay () |
| Join the overlay with a given nodeID in thisNode.key. | |
| virtual void | joinForeignPartition (const NodeHandle &node) |
| Join another overlay partition with the given node as bootstrap node. | |
| virtual bool | handleFailedNode (const TransportAddress &failed) |
| Handles a failed node. | |
| virtual void | lookupRpc (LookupCall *call) |
| virtual void | nextHopRpc (NextHopCall *call) |
| void | countFindNodeCall (const FindNodeCall *call) |
| void | countFailedNodeCall (const FailedNodeCall *call) |
| bool | internalHandleRpcCall (BaseCallMessage *msg) |
| Handles internal rpc requests. | |
| void | internalHandleRpcResponse (BaseResponseMessage *msg, cPolymorphic *context, int rpcId, simtime_t rtt) |
| Handles rpc responses internal in base classes | |
| void | internalHandleRpcTimeout (BaseCallMessage *msg, const TransportAddress &dest, cPolymorphic *context, int rpcId, const OverlayKey &destKey) |
| Handles rpc timeouts internal in base classes | |
| void | internalSendRouteRpc (BaseRpcMessage *message, const OverlayKey &destKey, const std::vector< TransportAddress > &sourceRoute, RoutingType routingType) |
| CompType | getThisCompType () |
| Return the component type of this module. | |
Protected Member Functions inherited from BaseRpc | |
| void | initRpcs () |
| Initializes Remote-Procedure state. | |
| void | finishRpcs () |
| Deinitializes Remote-Procedure state. | |
| virtual void | internalHandleRpcMessage (BaseRpcMessage *msg) |
| Handles incoming rpc messages and delegates them to the corresponding listeners or handlers. | |
| uint32_t | sendRouteRpcCall (CompType destComp, const TransportAddress &dest, const OverlayKey &destKey, BaseCallMessage *msg, cPolymorphic *context=NULL, RoutingType routingType=DEFAULT_ROUTING, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
| Routes a Remote-Procedure-Call message to an OverlayKey. | |
| uint32_t | sendRouteRpcCall (CompType destComp, const OverlayKey &destKey, BaseCallMessage *msg, cPolymorphic *context=NULL, RoutingType routingType=DEFAULT_ROUTING, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
| Routes a Remote-Procedure-Call message to an OverlayKey. | |
| uint32_t | sendRouteRpcCall (CompType destComp, const TransportAddress &dest, BaseCallMessage *msg, cPolymorphic *context=NULL, RoutingType routingType=DEFAULT_ROUTING, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
| Sends a Remote-Procedure-Call message using the overlay's UDP port This replaces ROUTE_DIRECT calls! | |
| uint32_t | sendUdpRpcCall (const TransportAddress &dest, BaseCallMessage *msg, cPolymorphic *context=NULL, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
| Sends a Remote-Procedure-Call message to the underlay | |
| uint32_t | sendInternalRpcCall (CompType destComp, BaseCallMessage *msg, cPolymorphic *context=NULL, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
| Sends an internal Remote-Procedure-Call between two tiers | |
| void | cancelRpcMessage (uint32_t nonce) |
| Cancels a Remote-Procedure-Call. | |
| void | cancelAllRpcs () |
| Cancels all RPCs. | |
| void | sendRpcResponse (TransportType transportType, CompType destComp, const TransportAddress &dest, const OverlayKey &destKey, BaseCallMessage *call, BaseResponseMessage *response) |
| Send Remote-Procedure response message and deletes call message. | |
| void | sendRpcResponse (BaseCallMessage *call, BaseResponseMessage *response) |
| Send Remote-Procedure response message to UDP and deletes call message. | |
| int | pingNode (const TransportAddress &dest, simtime_t timeout=-1, int retries=0, cPolymorphic *context=NULL, const char *caption="PING", RpcListener *rpcListener=NULL, int rpcId=-1, TransportType transportType=INVALID_TRANSPORT) |
| ping a node by its TransportAddress | |
| virtual void | pingResponse (PingResponse *pingResponse, cPolymorphic *context, int rpcId, simtime_t rtt) |
| virtual void | pingTimeout (PingCall *pingCall, const TransportAddress &dest, cPolymorphic *context, int rpcId) |
| bool | internalHandleMessage (cMessage *msg) |
Protected Member Functions inherited from RpcListener | |
| virtual void | handleRpcResponse (BaseResponseMessage *msg, const RpcState &rpcState, simtime_t rtt) |
| This method is called if an RPC response has been received. | |
| virtual void | handleRpcTimeout (const RpcState &rpcState) |
| This method is called if an RPC timeout has been reached. | |
Protected Member Functions inherited from BaseTcpSupport | |
| void | handleTCPMessage (cMessage *msg) |
| Member function to handle incoming TCP messages. | |
| void | bindAndListenTcp (int port) |
| Member function to bind service to the specified port and listen afterwards. | |
| bool | isAlreadyConnected (TransportAddress address) |
| Member function to check if the service is already connected. | |
| void | establishTcpConnection (TransportAddress address) |
| Member function to establish a connection to the specified node. | |
| void | sendTcpData (cPacket *msg, TransportAddress address) |
| Member function to send TCP data to the specified node. | |
| virtual void | handleConnectionEvent (EvCode code, TransportAddress address) |
| Member function to handle passive connection events. | |
| virtual void | handleDataReceived (TransportAddress address, cPacket *msg, bool urgent) |
| Member function to handle incoming data. | |
| virtual void | handleIncomingConnection (TransportAddress address) |
| Member function to handle newly opened connections. | |
| void | closeTcpConnection (TransportAddress address) |
| Member function to close an established connection. | |
| void | setTcpOut (cGate *gate) |
| Member function to set local gate towards the TCP module during init phase. | |
| cGate * | getTcpOut () |
| Member function to get local gate towards the TCP module. | |
Protected Member Functions inherited from TopologyVis | |
| void | initVis (cModule *terminal) |
Protected Attributes | |
| uint32_t | bitsPerDigit |
| uint32_t | numberOfLeaves |
| uint32_t | numberOfNeighbors |
| double | readyWaitAmount |
| double | joinTimeoutAmount |
| double | repairTimeout |
| bool | enableNewLeafs |
| bool | useRegularNextHop |
| bool | alwaysSendUpdate |
| bool | optimizeLookup |
| bool | proximityNeighborSelection |
| simtime_t | nearNodeRtt |
| bool | nearNodeImproved |
| bool | periodicMaintenance |
| TransportAddress * | leaf2ask |
| TransportAddress | bootstrapNode |
| TransportAddress | nearNode |
| simtime_t | lastStateChange |
| PastryStateMsgHandle | stateCache |
| Handle for processing a single state message. | |
| std::queue< PastryStateMsgHandle > | stateCacheQueue |
| Queue of state messages waiting to be processed in READY state. | |
| PastryStateMsgProximity | aliveTable |
| Early update of leaf set: helper structure for marking known-dead nodes. | |
| uint32_t | joinHopCount |
| cMessage * | readyWait |
| cMessage * | joinUpdateWait |
| PastryRoutingTable * | routingTable |
| PastryLeafSet * | leafSet |
| PastryNeighborhoodSet * | neighborhoodSet |
Protected Attributes inherited from BaseOverlay | |
| int | numAppDataForwarded |
| number of forwarded app data packets | |
| int | bytesAppDataForwarded |
| number of forwarded app data bytes at out-gate | |
| int | numAppLookupForwarded |
| number of forwarded app lookup packets | |
| int | bytesAppLookupForwarded |
| number of forwarded app lookup bytes at out-gate | |
| int | numMaintenanceForwarded |
| number of forwarded maintenance packets | |
| int | bytesMaintenanceForwarded |
| number of forwarded maintenance bytes at out-gate | |
| int | numFindNodeSent |
| int | bytesFindNodeSent |
| int | numFindNodeResponseSent |
| int | bytesFindNodeResponseSent |
| int | numFailedNodeSent |
| int | bytesFailedNodeSent |
| int | numFailedNodeResponseSent |
| int | bytesFailedNodeResponseSent |
| std::vector< HopDelayRecord * > | singleHopDelays |
| simtime_t | creationTime |
| simtime when the node has been created | |
| GlobalNodeList * | globalNodeList |
| pointer to GlobalNodeList in this node | |
| NotificationBoard * | notificationBoard |
| pointer to NotificationBoard in this node | |
| UnderlayConfigurator * | underlayConfigurator |
| pointer to UnderlayConfigurator in this node | |
| BootstrapList * | bootstrapList |
| pointer to the BootstrapList module | |
| GlobalParameters * | globalParameters |
| pointer to the GlobalParameters module | |
| uint32_t | overlayId |
| identifies the overlay this node belongs to (used for multiple overlays) | |
| bool | debugOutput |
| debug output ? | |
| RoutingType | defaultRoutingType |
| bool | useCommonAPIforward |
| forward messages to applications? | |
| bool | collectPerHopDelay |
| collect delay for single hops | |
| bool | routeMsgAcks |
| send ACK when receiving route message | |
| uint32_t | recNumRedundantNodes |
| numRedundantNodes for recursive routing | |
| bool | recordRoute |
| record visited hops on route | |
| bool | drawOverlayTopology |
| bool | rejoinOnFailure |
| bool | sendRpcResponseToLastHop |
| needed by KBR protocols for NAT support | |
| bool | dropFindNodeAttack |
| if node is malicious, it tries a findNode attack | |
| bool | isSiblingAttack |
| if node is malicious, it tries a isSibling attack | |
| bool | invalidNodesAttack |
| if node is malicious, it tries a invalidNode attack | |
| bool | dropRouteMessageAttack |
| if node is malicious, it drops all received BaseRouteMessages | |
| int | localPort |
| used UDP-port | |
| int | hopCountMax |
| maximum hop count | |
| bool | measureAuthBlock |
| if true, measure the overhead of signatures in rpc messages | |
| bool | restoreContext |
| if true, a node rejoins with its old nodeId and malicious state | |
| int | numDropped |
| number of dropped packets | |
| int | bytesDropped |
| number of dropped bytes | |
| cOutVector | delayVector |
| statistical output vector for packet-delays | |
| cOutVector | hopCountVector |
| statistical output vector for hop-counts | |
| States | state |
| IterativeLookupConfiguration | iterativeLookupConfig |
| RecursiveLookupConfiguration | recursiveLookupConfig |
| LookupSet | lookups |
| bool | kbr |
| set this to true, if the overlay provides KBR services | |
Protected Attributes inherited from BaseRpc | |
| NodeHandle | thisNode |
| NodeHandle to this node. | |
| BaseOverlay * | overlay |
| bool | debugOutput |
| debug output ? | |
| GlobalStatistics * | globalStatistics |
| pointer to GlobalStatistics module in this node | |
| CompType | thisCompType |
| NeighborCache * | neighborCache |
| pointer to the neighbor cache | |
| CryptoModule * | cryptoModule |
| pointer to CryptoModule | |
| int | numPingSent |
| int | bytesPingSent |
| int | numPingResponseSent |
| int | bytesPingResponseSent |
Protected Attributes inherited from TopologyVis | |
| cModule * | thisTerminal |
| GlobalNodeList * | globalNodeList |
| pointer to corresponding node | |
Friends | |
| class | PastryLeafSet |
Additional Inherited Members | |
Public Types inherited from BaseOverlay | |
| enum | States { INIT = 0, BOOTSTRAP = 1, DISCOVERY = 2, PREJOIN = 3, JOIN = 4, POSTJOIN = 5, READY = 6, REFRESH = 7, SHUTDOWN = 8, FAILED = 9, RSET = JOIN, BSET = POSTJOIN } |
Definition at line 49 of file BasePastry.h.
|
protected |
Definition at line 285 of file BasePastry.h.
|
protected |
Definition at line 267 of file BasePastry.h.
|
virtual |
Definition at line 808 of file BasePastry.cc.
|
protected |
changes node state, but leaves specific behavour, scheduling tasks in particular, to the inheriting protocols
Definition at line 187 of file BasePastry.cc.
Referenced by Bamboo::changeState(), and Pastry::changeState().
|
protected |
initializes parameters and variables used in both Bamboo and Pastry
Definition at line 57 of file BasePastry.cc.
Referenced by Pastry::initializeOverlay(), and Bamboo::initializeOverlay().
|
inlineprotectedvirtual |
changes node state
| toState | state to change to |
Reimplemented in Pastry, and Bamboo.
Definition at line 162 of file BasePastry.h.
Referenced by baseChangeState().
|
protectedpure virtual |
checks whether proxCache is complete, takes appropriate actions depending on the protocol state
Referenced by pingNodes(), and proxCallback().
|
virtual |
Creates an abstract iterative lookup instance.
| routingType | The routing type for this lookup (e.g. recursive/iterative) |
| msg | pointer to the message for which the lookup is created. Derived classes can use it to construct an object with additional info for the lookup class. |
| findNodeExt | object that will be sent with the findNodeCalls |
| appLookup | Set to true, if lookup is triggered by application (for statistics) |
Reimplemented from BaseOverlay.
Definition at line 1020 of file BasePastry.cc.
Referenced by Bamboo::doGlobalTuning().
|
protected |
Definition at line 664 of file BasePastry.cc.
Referenced by Bamboo::changeState(), Pastry::doJoinUpdate(), Bamboo::doLeafsetMaintenance(), Pastry::doSecondStage(), Pastry::endProcessingState(), Pastry::handlePastryJoinCall(), handleRequestLeafSetCall(), Pastry::handleRequestRepairCall(), handleRequestRoutingRowCall(), Pastry::handleRequestStateCall(), Pastry::handleTimerEvent(), Pastry::iterativeJoinHook(), and Pastry::recursiveRoutingHook().
|
protected |
change the aliveTable to match the given stateMsg.
each node that's knowm to be dead from our neighborCache gets a value of PASTRY_PROX_INFINITE, all other nodes just get a value of 1
Definition at line 438 of file BasePastry.cc.
Referenced by Pastry::handleStateMessage(), and Bamboo::handleStateMessage().
|
protectedvirtual |
This method should implement the distance between two keys.
It may be overloaded to implement a new metric. The default implementation uses the standard-metric d = abs(x-y).
| x | Left-hand-side Key |
| y | Right-hand-side key |
| useAlternative | use an alternative distance metric |
Reimplemented from BaseOverlay.
Definition at line 1110 of file BasePastry.cc.
|
virtual |
returns mean distance between OverlayKeys in the network
Reimplemented from BaseOverlay.
Definition at line 1103 of file BasePastry.cc.
|
virtual |
Implements the find node call.
This method simply returns the closest nodes known in the corresponding routing topology. If the node is a sibling for this key (isSiblingFor(key) = true), this method returns all numSiblings siblings, with the closest neighbor to the key first.
| key | The lookup key. |
| numRedundantNodes | Maximum number of next hop nodes to return. |
| numSiblings | number of siblings to return |
| msg | A pointer to the BaseRouteMessage or FindNodeCall message of this lookup. |
Reimplemented from BaseOverlay.
Definition at line 906 of file BasePastry.cc.
|
virtual |
collects statistical data in derived class
Reimplemented from BaseOverlay.
Definition at line 813 of file BasePastry.cc.
|
inlinevirtual |
Reimplemented from BaseOverlay.
Definition at line 101 of file BasePastry.h.
| std::vector< TransportAddress > * BasePastry::getLeafSet | ( | ) | const |
Definition at line 1068 of file BasePastry.cc.
Referenced by DiscoveryMode::handleRpcCall().
|
virtual |
Query the maximum number of redundant next hop nodes that are returned by findNode().
Reimplemented from BaseOverlay.
Definition at line 900 of file BasePastry.cc.
Referenced by findNode().
|
virtual |
Query the maximum number of siblings (nodes close to a key) that are maintained by this overlay protocol.
Reimplemented from BaseOverlay.
Definition at line 894 of file BasePastry.cc.
Referenced by findNode().
| uint8_t BasePastry::getRTLastRow | ( | ) | const |
Definition at line 1056 of file BasePastry.cc.
Referenced by DiscoveryMode::handleRpcCall().
| std::vector< TransportAddress > * BasePastry::getRTRow | ( | uint8_t | index | ) | const |
Definition at line 1062 of file BasePastry.cc.
Referenced by DiscoveryMode::handleRpcCall().
|
virtual |
processes messages from application
| msg | message from application |
Definition at line 779 of file BasePastry.cc.
|
protected |
Definition at line 543 of file BasePastry.cc.
Referenced by handleRpcCall().
|
protectedvirtual |
Reimplemented in Pastry, and Bamboo.
Definition at line 634 of file BasePastry.cc.
Referenced by handleRpcResponse().
|
protected |
Definition at line 591 of file BasePastry.cc.
Referenced by handleRpcCall().
|
protectedvirtual |
Reimplemented in Pastry.
Definition at line 649 of file BasePastry.cc.
Referenced by handleRpcResponse().
|
protectedvirtual |
Processes Remote-Procedure-Call invocation messages.
This method should be overloaded when the overlay provides RPC functionality.
Reimplemented from BaseRpc.
Reimplemented in Pastry.
Definition at line 476 of file BasePastry.cc.
Referenced by Pastry::handleRpcCall().
|
protectedvirtual |
This method is called if an RPC response has been received.
| msg | The response message. |
| context | Pointer to an optional state object. The object has to be handled/deleted by the handleRpcResponse() code |
| rpcId | The RPC id. |
| rtt | The Round-Trip-Time of this RPC |
Reimplemented from RpcListener.
Reimplemented in Pastry, and Bamboo.
Definition at line 497 of file BasePastry.cc.
|
protectedvirtual |
This method is called if an RPC timeout has been reached.
| msg | The original RPC message. |
| dest | The destination node |
| context | Pointer to an optional state object. The object has to be handled/deleted by the handleRpcResponse() code |
| rpcId | The RPC id. |
| destKey | the destination OverlayKey |
Reimplemented from RpcListener.
Reimplemented in Pastry.
Definition at line 524 of file BasePastry.cc.
|
pure virtual |
processes state messages, merging with own state tables
| msg | the pastry state message |
Implemented in Bamboo, and Pastry.
Referenced by handleRequestLeafSetCall(), handleRequestLeafSetResponse(), and handleRequestRoutingRowResponse().
|
virtual |
Query if a node is among the siblings for a given key.
Query if a node is among the siblings for a given key. This means, that the nodeId of this node is among the closest numSiblings nodes to the key and that by a local findNode() call all other siblings to this key can be retrieved.
| node | the NodeHandle |
| key | destination key |
| numSiblings | The nodes knows all numSiblings nodes close to this key |
| err | return false if the range could not be determined |
Reimplemented from BaseOverlay.
Definition at line 742 of file BasePastry.cc.
Referenced by findNode().
|
inlineprotectedvirtual |
Reimplemented in Pastry.
Definition at line 264 of file BasePastry.h.
Referenced by findNode().
|
protected |
Pastry API: send newLeafs() to application if enabled.
Definition at line 258 of file BasePastry.cc.
Referenced by Pastry::handleFailedNode(), Pastry::handleStateMessage(), Bamboo::handleStateMessage(), and Pastry::mergeState().
|
protected |
ping all nodes in the pastry state message pointed to by private member stateCache
Definition at line 369 of file BasePastry.cc.
Referenced by Bamboo::checkProxCache(), Pastry::handleStateMessage(), Bamboo::handleStateMessage(), and Pastry::processState().
|
protected |
ping all nodes in a given state message.
this is called when a state message arrives while another one is still being processed.
Definition at line 342 of file BasePastry.cc.
Referenced by Pastry::doSecondStage(), Pastry::handleStateMessage(), and Bamboo::handleStateMessage().
|
virtual |
Implements ProxListener.
Definition at line 273 of file BasePastry.cc.
|
protectedvirtual |
delete all information/messages caching vectors, used for restarting overlay or finish()
Reimplemented in Pastry.
Definition at line 41 of file BasePastry.cc.
Referenced by baseChangeState(), and ~BasePastry().
|
virtual |
updates information shown in tk-environment
Definition at line 785 of file BasePastry.cc.
Referenced by baseChangeState(), Bamboo::checkProxCache(), Pastry::checkProxCache(), Pastry::doJoinUpdate(), Pastry::handleStateMessage(), Bamboo::handleStateMessage(), and proxCallback().
|
friend |
Definition at line 325 of file BasePastry.h.
|
protected |
Early update of leaf set: helper structure for marking known-dead nodes.
Definition at line 227 of file BasePastry.h.
Referenced by determineAliveTable(), Pastry::handleStateMessage(), and Bamboo::handleStateMessage().
|
protected |
Definition at line 197 of file BasePastry.h.
Referenced by baseInit(), and Pastry::endProcessingState().
|
protected |
Definition at line 189 of file BasePastry.h.
Referenced by baseChangeState(), baseInit(), and Bamboo::doGlobalTuning().
|
protected |
Definition at line 209 of file BasePastry.h.
Referenced by baseChangeState(), Bamboo::changeState(), Pastry::changeState(), Bamboo::joinOverlay(), and Pastry::joinOverlay().
| int BasePastry::closerNodeLookups |
Definition at line 128 of file BasePastry.h.
Referenced by baseInit(), findNode(), and finishOverlay().
| int BasePastry::closerNodeLookupsFromNeighborhood |
Definition at line 129 of file BasePastry.h.
Referenced by baseInit(), findNode(), and finishOverlay().
|
protected |
Definition at line 195 of file BasePastry.h.
Referenced by baseInit(), and newLeafs().
| int BasePastry::joinBytesReceived |
Definition at line 110 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and Pastry::handlePastryJoinCall().
| int BasePastry::joinBytesSeen |
Definition at line 108 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and Pastry::recursiveRoutingHook().
| int BasePastry::joinBytesSent |
Definition at line 112 of file BasePastry.h.
Referenced by baseInit(), Pastry::changeState(), and finishOverlay().
|
protected |
Definition at line 235 of file BasePastry.h.
Referenced by Pastry::changeState(), Pastry::handlePastryJoinCall(), and Pastry::handleStateMessage().
| int BasePastry::joinPartial |
Definition at line 106 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and Pastry::handleTimerEvent().
| int BasePastry::joinReceived |
Definition at line 109 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and Pastry::handlePastryJoinCall().
| int BasePastry::joins |
Definition at line 101 of file BasePastry.h.
Referenced by baseChangeState(), baseInit(), and finishOverlay().
| int BasePastry::joinSeen |
Definition at line 107 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), Pastry::iterativeJoinHook(), and Pastry::recursiveRoutingHook().
| int BasePastry::joinSent |
Definition at line 111 of file BasePastry.h.
Referenced by baseInit(), Pastry::changeState(), and finishOverlay().
|
protected |
Definition at line 193 of file BasePastry.h.
Referenced by baseInit().
| int BasePastry::joinTries |
Definition at line 105 of file BasePastry.h.
Referenced by baseChangeState(), baseInit(), and finishOverlay().
|
protected |
Definition at line 237 of file BasePastry.h.
Referenced by Pastry::changeState(), Pastry::handleTimerEvent(), Pastry::initializeOverlay(), and Pastry::~Pastry().
|
protected |
Definition at line 212 of file BasePastry.h.
Referenced by baseChangeState(), baseInit(), Bamboo::checkProxCache(), Pastry::checkProxCache(), Pastry::endProcessingState(), Pastry::handleStateMessage(), Bamboo::handleStateMessage(), and Pastry::mergeState().
|
protected |
Definition at line 207 of file BasePastry.h.
|
protected |
Definition at line 240 of file BasePastry.h.
Referenced by baseChangeState(), baseInit(), Pastry::changeState(), createStateMessage(), Bamboo::doLeafsetMaintenance(), Pastry::doSecondStage(), estimateMeanDistance(), findNode(), getLeafSet(), Bamboo::handleFailedNode(), Pastry::handleFailedNode(), Pastry::handleStateMessage(), Bamboo::handleStateMessage(), isSiblingFor(), Pastry::mergeState(), newLeafs(), and updateTooltip().
| int BasePastry::leafsetBytesReceived |
Definition at line 138 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestLeafSetResponse().
| int BasePastry::leafsetBytesSent |
Definition at line 136 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestLeafSetCall().
| int BasePastry::leafsetReceived |
Definition at line 137 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestLeafSetResponse().
| int BasePastry::leafsetReqBytesReceived |
Definition at line 134 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestLeafSetCall().
| int BasePastry::leafsetReqBytesSent |
Definition at line 132 of file BasePastry.h.
Referenced by baseInit(), Bamboo::changeState(), Pastry::changeState(), Bamboo::doLeafsetMaintenance(), finishOverlay(), and Pastry::handleFailedNode().
| int BasePastry::leafsetReqReceived |
Definition at line 133 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestLeafSetCall().
| int BasePastry::leafsetReqSent |
Definition at line 131 of file BasePastry.h.
Referenced by baseInit(), Bamboo::changeState(), Pastry::changeState(), Bamboo::doLeafsetMaintenance(), finishOverlay(), and Pastry::handleFailedNode().
| int BasePastry::leafsetSent |
Definition at line 135 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestLeafSetCall().
|
protected |
Definition at line 210 of file BasePastry.h.
Referenced by Pastry::changeState(), Pastry::handleTimerEvent(), Pastry::joinOverlay(), and Pastry::pingResponse().
|
protected |
Definition at line 203 of file BasePastry.h.
Referenced by Pastry::handleRequestRoutingRowResponse(), Pastry::handleTimerEvent(), and Pastry::pingResponse().
|
protected |
Definition at line 201 of file BasePastry.h.
Referenced by Pastry::changeState(), and Pastry::pingResponse().
|
protected |
Definition at line 241 of file BasePastry.h.
Referenced by baseChangeState(), baseInit(), Bamboo::checkProxCache(), Pastry::checkProxCache(), createStateMessage(), Pastry::doSecondStage(), findNode(), Bamboo::handleFailedNode(), Pastry::handleFailedNode(), Pastry::handleStateMessage(), and Pastry::mergeState().
|
protected |
Definition at line 190 of file BasePastry.h.
Referenced by baseChangeState(), baseInit(), getMaxNumRedundantNodes(), and getMaxNumSiblings().
|
protected |
Definition at line 191 of file BasePastry.h.
Referenced by baseChangeState(), and baseInit().
|
protected |
Definition at line 198 of file BasePastry.h.
Referenced by baseInit(), and findNode().
|
protected |
Definition at line 205 of file BasePastry.h.
|
protected |
Definition at line 199 of file BasePastry.h.
Referenced by baseInit(), Bamboo::checkProxCache(), Pastry::doSecondStage(), Pastry::handleStateMessage(), Bamboo::handleStateMessage(), Bamboo::lookupFinished(), Pastry::processState(), and proxCallback().
|
protected |
Definition at line 236 of file BasePastry.h.
Referenced by Pastry::changeState(), Pastry::handleStateMessage(), Pastry::handleTimerEvent(), Pastry::initializeOverlay(), and Pastry::~Pastry().
|
protected |
Definition at line 192 of file BasePastry.h.
Referenced by Pastry::handleStateMessage(), and Pastry::initializeOverlay().
| int BasePastry::repairReqBytesReceived |
Definition at line 120 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and Pastry::handleRequestRepairCall().
| int BasePastry::repairReqBytesSent |
Definition at line 118 of file BasePastry.h.
Referenced by baseInit(), Pastry::checkProxCache(), finishOverlay(), Pastry::handleFailedNode(), and Pastry::handleStateMessage().
| int BasePastry::repairReqReceived |
Definition at line 119 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and Pastry::handleRequestRepairCall().
| int BasePastry::repairReqSent |
Definition at line 117 of file BasePastry.h.
Referenced by baseInit(), Pastry::checkProxCache(), finishOverlay(), Pastry::handleFailedNode(), and Pastry::handleStateMessage().
|
protected |
Definition at line 194 of file BasePastry.h.
Referenced by baseChangeState(), and baseInit().
| int BasePastry::responsibleLookups |
Definition at line 126 of file BasePastry.h.
Referenced by baseInit(), findNode(), and finishOverlay().
|
protected |
Definition at line 239 of file BasePastry.h.
Referenced by baseChangeState(), baseInit(), Pastry::changeState(), Bamboo::checkProxCache(), Pastry::checkProxCache(), createStateMessage(), Bamboo::doLocalTuning(), Pastry::doRoutingTableMaintenance(), Pastry::doSecondStage(), findNode(), Bamboo::getNextRowToMaintain(), getRTLastRow(), getRTRow(), Bamboo::handleFailedNode(), Pastry::handleFailedNode(), handleRequestRoutingRowCall(), Pastry::handleStateMessage(), Bamboo::lookupFinished(), Pastry::mergeState(), and proxCallback().
| int BasePastry::routingTableLookups |
Definition at line 127 of file BasePastry.h.
Referenced by baseInit(), findNode(), and finishOverlay().
| int BasePastry::routingTableRowBytesReceived |
Definition at line 147 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestRoutingRowResponse().
| int BasePastry::routingTableRowBytesSent |
Definition at line 145 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestRoutingRowCall().
| int BasePastry::routingTableRowReceived |
Definition at line 146 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestRoutingRowResponse().
| int BasePastry::routingTableRowReqBytesReceived |
Definition at line 143 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestRoutingRowCall().
| int BasePastry::routingTableRowReqBytesSent |
Definition at line 141 of file BasePastry.h.
Referenced by baseInit(), Bamboo::doLocalTuning(), Pastry::doRoutingTableMaintenance(), finishOverlay(), and Pastry::handleTimerEvent().
| int BasePastry::routingTableRowReqReceived |
Definition at line 142 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestRoutingRowCall().
| int BasePastry::routingTableRowReqSent |
Definition at line 140 of file BasePastry.h.
Referenced by baseInit(), Bamboo::doLocalTuning(), Pastry::doRoutingTableMaintenance(), finishOverlay(), and Pastry::handleTimerEvent().
| int BasePastry::routingTableRowSent |
Definition at line 144 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and handleRequestRoutingRowCall().
| int BasePastry::stateBytesReceived |
Definition at line 116 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), Pastry::handlePastryJoinResponse(), Pastry::handleRequestRepairResponse(), Pastry::handleRequestStateResponse(), and Pastry::handleUDPMessage().
| int BasePastry::stateBytesSent |
Definition at line 114 of file BasePastry.h.
Referenced by baseInit(), Pastry::doJoinUpdate(), Pastry::endProcessingState(), finishOverlay(), Pastry::handlePastryJoinCall(), Pastry::handleRequestRepairCall(), Pastry::handleRequestStateCall(), Pastry::handleTimerEvent(), Pastry::iterativeJoinHook(), and Pastry::recursiveRoutingHook().
|
protected |
Handle for processing a single state message.
Definition at line 217 of file BasePastry.h.
Referenced by baseInit(), Bamboo::checkProxCache(), Pastry::checkProxCache(), Pastry::clearVectors(), Pastry::doSecondStage(), Pastry::endProcessingState(), Pastry::handleStateMessage(), Bamboo::handleStateMessage(), Pastry::handleTimerEvent(), Pastry::mergeState(), pingNodes(), Pastry::processState(), proxCallback(), and purgeVectors().
|
protected |
Queue of state messages waiting to be processed in READY state.
Definition at line 222 of file BasePastry.h.
Referenced by Bamboo::checkProxCache(), Pastry::doSecondStage(), Pastry::endProcessingState(), Pastry::handleStateMessage(), Bamboo::handleStateMessage(), proxCallback(), and purgeVectors().
| int BasePastry::stateReceived |
Definition at line 115 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), Pastry::handlePastryJoinResponse(), Pastry::handleRequestRepairResponse(), Pastry::handleRequestStateResponse(), and Pastry::handleUDPMessage().
| int BasePastry::stateReqBytesReceived |
Definition at line 124 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and Pastry::handleRequestStateCall().
| int BasePastry::stateReqBytesSent |
Definition at line 122 of file BasePastry.h.
Referenced by baseInit(), Pastry::doSecondStage(), and finishOverlay().
| int BasePastry::stateReqReceived |
Definition at line 123 of file BasePastry.h.
Referenced by baseInit(), finishOverlay(), and Pastry::handleRequestStateCall().
| int BasePastry::stateReqSent |
Definition at line 121 of file BasePastry.h.
Referenced by baseInit(), Pastry::doSecondStage(), and finishOverlay().
| int BasePastry::stateSent |
Definition at line 113 of file BasePastry.h.
Referenced by baseInit(), Pastry::doJoinUpdate(), Pastry::endProcessingState(), finishOverlay(), Pastry::handlePastryJoinCall(), Pastry::handleRequestRepairCall(), Pastry::handleRequestStateCall(), Pastry::handleTimerEvent(), Pastry::iterativeJoinHook(), and Pastry::recursiveRoutingHook().
| int BasePastry::totalLookups |
Definition at line 125 of file BasePastry.h.
Referenced by baseInit(), findNode(), and finishOverlay().
|
protected |
Definition at line 196 of file BasePastry.h.
Referenced by baseInit(), and findNode().