anchor.diff:      {0, 0};
   get_aggregate(Tag, [{Dump, _} | Rest]) ->
       case gb_trees:lookup(Tag, Dump) of
  -	none ->
  -	    get_aggregate(Tag, Rest);
  -	{value, {Size, Count}} ->
  -	    {AggSize, AggCount} = get_aggregate(Tag, Rest),
  -	    {AggSize + Size, AggCount + Count}
  -    end.
  -	    
  -diff_dump(BeforeDump, AfterDump, _RunTime) ->    
  -    Tags = lists:usort(lists:flatten([gb_trees:keys(BeforeDump), 
  -					       gb_trees:keys(AfterDump)])),
  +        none ->
  +            get_aggregate(Tag, Rest);
  +        {value, {Size, Count}} ->
  +            {AggSize, AggCount} = get_aggregate(Tag, Rest),
  +            {AggSize + Size, AggCount + Count}
  +    end.
  +
  +diff_dump(BeforeDump, AfterDump, _RunTime) ->
  +    Tags = lists:usort(lists:flatten([gb_trees:keys(BeforeDump),
  +                                      gb_trees:keys(AfterDump)])),
       diff(Tags, BeforeDump, AfterDump).
  -    
  +
   diff([], _Before, _After) ->
       [];
   diff([Tag | Rest], Before, After) ->
       {NewSize, NewCount} = gb_trees:get(Tag, After),
       case gb_trees:lookup(Tag, Before) of
  -	none ->
  -	    [{Tag, NewSize, NewCount} | diff(Rest, Before, After)];
  -	{value, {Size, Count}} ->
  -	    [{Tag, NewSize - Size, NewCount - Count} | diff(Rest, Before, After)]
  -    end.
  -
  -%%===============================================================================
  +        none ->
  +            [{Tag, NewSize, NewCount} | diff(Rest, Before, After)];
  +        {value, {Size, Count}} ->
  +            [{Tag, NewSize - Size, NewCount - Count} | diff(Rest, Before, After)]
  +    end.
  +
  +%%=============================================================================
   %% admin server functions
  -%%===============================================================================
  +%%=============================================================================
   start_link() ->
       {ok, spawn_link(?MODULE, start, [])}.
   
  
positive.code: %  Copyright 2008 Konrad-Zuse-Zentrum fr Informationstechnik Berlin
  %
  %   Licensed under the Apache License, Version 2.0 (the "License");
  %   you may not use this file except in compliance with the License.
  
negative.code: %% comm_logger functions
  %%===============================================================================
  get_dump() ->
      [cs_send:send(cs_send:get(admin_server, Server), {get_comm_layer_dump, cs_send:this()})
       || Server <- util:get_nodes()],
      %% list({Map, StartTime})
      Dumps = [receive
                   {get_comm_layer_dump_response, Dump} ->
                       Dump
               end || _ <- util:get_nodes()],
      StartTime = lists:min([Start || {_, Start} <- Dumps]),
      Keys = lists:usort(lists:flatten([gb_trees:keys(Map) || {Map, _} <- Dumps])),
      {lists:foldl(fun (Tag, Map) ->
                           gb_trees:enter(Tag, get_aggregate(Tag, Dumps), Map)
                   end, gb_trees:empty(), Keys), StartTime}.
  
  get_dump_bw() ->
      {Map, StartTime} = get_dump(),
  