Ignore:
Timestamp:
Jun 19, 2013, 11:05:49 AM (11 years ago)
Author:
hock@…
Message:

Reintegrate branch: 20130111-hock-message_classes

improvements:

  • new message classes (reboost, zero-copy)
  • "fast path" for direct links (skip overlay layer)
  • link-properties accessible from the application
  • SystemQueue can call boost::bind functions
  • protlib compatibility removed (32bit overhead saved in every message)
  • addressing2
  • AddressDiscovery discoveres only addresses on which we're actually listening
  • ariba serialization usage reduced (sill used in OverlayMsg)
  • Node::connect, easier and cleaner interface to start-up ariba from the application
  • ariba configs via JSON, XML, etc (boost::property_tree)
  • keep-alive overhead greatly reduced
  • (relayed) overlay links can actually be closed now
  • lost messages are detected in most cases
  • notification to the application when link is transformed into direct-link
  • overlay routing: send message to second best hop if it would be dropped otherwise
  • SequenceNumbers (only mechanisms, so for: upward compatibility)
  • various small fixes


regressions:

  • bluetooth is not yet working again
  • bootstrap modules deactivated
  • liblog4xx is not working (use cout-logging)

This patch brings great performance and stability improvements at cost of backward compatibility.
Also bluetooth and the bootstrap modules have not been ported to the new interfaces, yet.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/overlay/modules/OverlayInterface.h

    r10573 r12060  
    145145         */
    146146        virtual const LinkID& getNextLinkId( const NodeID& id ) const = 0;
    147        
     147
     148    /**
     149     * Returns link ids of possible next hops a route message could take,
     150     * sorted by "quality" (e.g. overlay-distance).
     151     *
     152     * The »num« parameter can be used to specify the desired number of elements
     153     * in the returned vector. This is intendet for optimizations. The
     154     * implementation may choose to return a different number of elements than
     155     * requested.
     156     *
     157     * NOTE: The returned vector may contain »unspecified« links. These refer to
     158     * to the own node. (e.g. If there's no closer node, the top element in the
     159     * returned vector is unsoecified.)
     160     *
     161     * @param id The destination node id
     162     * @param num The desired number of elements in the returned vector.
     163     *            (0 means »not specified/max)«
     164     * @return A sorted vector of link ids to possible next hops.
     165     */
     166    virtual std::vector<const LinkID*> getSortedLinkIdsTowardsNode(
     167        const NodeID& id, int num = 0 ) const = 0;
     168
    148169        /**
    149170         * Returns the NodeID of the next hop a route message would take.
     
    176197
    177198        /// @see CommunicationListener
    178         virtual void onMessage(const DataMessage& msg, const NodeID& remote,
     199        virtual void onMessage(OverlayMsg* msg,
     200                reboost::shared_buffer_t sub_msg,
     201                const NodeID& remote,
    179202                        const LinkID& lnk = LinkID::UNSPECIFIED);
    180203
Note: See TracChangeset for help on using the changeset viewer.