anchor.diff:  %%% This module provides functions for gathering and calculating
   %%% statistical data. They are invoked by node_manager.
   %%% Some statistics require previous measurements to be calculated.
  -%%% In order to encapsulate this aspect in this module, there is a
  +%%% In order to encapsulate this aspect inside this module, there is a
   %%% dedicated record that shall be passed to all function calls.
   %%% @end
   %%%-------------------------------------------------------------------
  
positive.code: calculate_network_stats([{tx_p, Name, StatA} | CurrentNetworkStats], [{tx_p, Name, StatB} | NetworkStats], Stats, TimeElapsed) ->
      calculate_network_stats(CurrentNetworkStats, NetworkStats, [{<<"net_tx_pps_", Name/binary>>, (StatA - StatB) / TimeElapsed} | Stats], TimeElapsed);
  % maxspeed is maximum interface throughput, considering duplex mode
  calculate_network_stats([{maxspeed, Name, MaxSpeed} | CurrentNetworkStats], [{maxspeed, Name, _} | NetworkStats], Stats, TimeElapsed) ->
      calculate_network_stats(CurrentNetworkStats, NetworkStats, [{<<"net_maxthp_", Name/binary>>, MaxSpeed} | Stats], TimeElapsed);
  calculate_network_stats([{NameA, _} | CurrentNetworkStats], [{NameB, _} | NetworkStats], Stats, TimeElapsed) when NameA > NameB ->
      calculate_network_stats(CurrentNetworkStats, NetworkStats, Stats, TimeElapsed);
  
negative.code:     net_stats = 0.0 :: float(),
      cpu_last = [] :: [{Name :: binary(), WorkJiffies :: integer(), TotalJiffies :: integer()}],
      net_last = [] :: [{Name :: binary(), Value :: integer()}],
      last_update = {0, 0, 0} :: {integer(), integer(), integer()} % Timestamp of the last measurement
  }).
  
  