Oasys Patches (all patches are against changeset 2298) • oasys_patch1_configuration.patch o Fixes oasys.ac so that the oasys source can be installed in a non-standard directory and DTN2 can find it by specifying the location using --with-oasys=<location> • oasys_patch2_bug_fixes.patch o debug/Log.cc – fixes uninitialized variable per valgrind o test/Makefile – removed sqlite-db-test which disappeared o test/marshal-test.cc – setting the logpath must have changed o test/serialize-test.cc - setting the logpath must have changed o thread/SpinLock.cc – bug fix in try_lock() which I don’t think is used in DTN2 o thread/SXLock.h – I recommend deleting this as the exclusive lock is not guaranteed for multiple writers. Timing tests show that the SpinLock is better performing than any SXLock I was able to devise. Results and/or code available if desired. • oasys_patch3_timer_reaping.patch o thread/Timer – Adds a new TimerReaperThread which periodically removes canceled timers from the queue otherwise it does not happen until after they expire. NOTE: This does not allow them to be safely re-used.
DTN2 Patches (all patches are against changeset 3550 but some are cumulative and must be applied in order) • dtn2_patch0_ipn_scheme_updates.patch o Combines features from implementations in both the main and apr-port branches and fixes a few bugs. o This is the same as the ipn_scheme_updates.patch uploaded to Sourceforge a few weeks ago so do not apply this twice. o Patch 3 tweaks a couple of these files so this needs to be applied first. • dtn2_patch1_configuration.patch o Adds acs.ac for supporting Aggregate Custody Signals: configure using --with-acs to include it in your build o Adds ecos.acs for supporting the Extended Class of Service block: configure using --with-ecos to include it in your build o Adds __STDC_FORMAT_MACROS and __STDC_LIMIT_MACROS to the dtn-configuration.h header which are being used more prevalently now • dtn2_patch2_aggregate_custody_signals.patch o Requires Patch 0 to be applied first o WARNING to Age Block users: The Custody Transfer Enhancement block type requires id 0x00a so I had to move the Age block id to 0x00d. o Implements Aggregate Custody Signals and the required the Custody Transfer Enhancement block processing o Adds a new “acs” command to configure the ACS features and updates the documentation o Adds a new persistent store for pending ACSs o Implements the ground work for the Extended Class of Service block * This is a partial implementation that adds the ECOS block to outgoing custody signals and processes the most likely used features on incoming blocks but does not do anything with it. o applib/APIServer – fixed a memory leak in handle_recv() per valgrind o Tweaks a couple of files in the IPN Scheme update (Patch 0) o servlib/reg/AdminRegistration – marks bundles as delivered after processing o servlib/reg/PingRegistration – marks bundles as delivered after processing o test/unit-tests/bundle-list-test – updated to take into account the all_bundles_list_ o BundleDaemon::cancel_custody_timers – releases the bundle reference so the bundles can be deleted sooner • dtn2_patch3_bundlelist.patch o Requires Patch 2 to be applied first o Implements a set of specialized bundle lists so that the best suited for a specific purpose one can be used * BundleList – the original std::list<Bundle*> * BundleListIntMap – new std::map<uint32, Bundle*> * BundleListStrMap – new std::map<string, Bundle*> * BundleListStrMultiMap – new std::multimap<string, Bundle*> * Added new unit tests o servlib/bundling/Bundle * incorporated a GbofId object to improve performance with the new bundle list types o servlib/bundling/BundleDaemon * Added a new dupefinder_bundle_ list for detecting receipt of duplicate bundles faster • Thanks to Jacob Green for his insights o While using the pending_bundles_ list to pull double duty would not have affected the main event Q itself it got me thinking and I realized that it may change the order bundles were delivered in the case where a registration or link became available after bundles were pending for it. * Changed the run() method to use the oasys::TimerThread and the new oasys::TimerReaperThread o servlib/bundling/BundlePayload – changed the directory structure used for storage to speed up access • dtn2_patch4_experimental_tablebasedrouter.patch o servlib/routing/TableBasedRouter * Thanks to Elwyn Davies for providing some analysis * fwd_to_next_hop() now always puts bundles onto the deferred list to maintain delivery order * check_next_hop() now breaks out of its loop after moving 1 bundle from the deferred list to the queue * reroute_all_bundles() no longer keeps the pending_bundles_ list locked during all of its processing which should help in the future if/when the BundleDaemon is multi-threaded * handle_link_created()no longer calls reroute_all_bundles() twice
NOTE: The contents of this page have been dynamically generated 'stripping' a SourceForge.Net's project site contents, In case this page wasn't displayed correctly, or if the content desired isn't showed at all, you should Click Here to go to the original page contents. Also you may notice some links are unusable, like for posting comments on the forums, You'll need to go to the original page to use them.