diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
index 168e95ffae4a2113eada4384790b586642b4351d..cfffdf2e7b32a003df111b5afd60da164af0a3d2 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
@@ -407,6 +407,12 @@ ARCHITECTURE str OF sdp_station IS
   CONSTANT c_lane_payload_nof_longwords_max : NATURAL := largest(c_lane_payload_nof_longwords_xst, c_lane_payload_nof_longwords_bf);
   CONSTANT c_lane_packet_nof_longwords_max  : NATURAL := c_lane_payload_nof_longwords_max + c_ring_dp_hdr_field_size;  -- = 549 + 3 = 552
 
+  -- Use large enough c_lane_total_nof_packets_w, so that lane total nof packets count will not overflow:
+  -- . For low band XST crosslets on ring : L_packet = (P_sq - 1) * f_sub = 8 * 195312.5 = 1.5625 M packets/s,
+  --   so 2**48 / (1.5625e6 * 3600 * 24 *365.25) = 5.7 years.
+  -- . Use same value for BF beamlets on ring.
+  CONSTANT c_lane_total_nof_packets_w       : NATURAL := 48;  -- <= c_longword_w = 64
+
   CONSTANT c_err_bi                    : NATURAL := 0;
   CONSTANT c_nof_err_counts            : NATURAL := 8; 
   CONSTANT c_bsn_at_sync_check_channel : NATURAL := 1; 
@@ -1172,6 +1178,7 @@ BEGIN
         g_lane_direction            => 1, -- transport in positive direction.
         g_lane_data_w               => c_longword_w,
         g_lane_packet_length        => c_lane_payload_nof_longwords_xst,
+        g_lane_total_nof_packets_w  => c_lane_total_nof_packets_w,
         g_use_dp_layer              => TRUE,
         g_nof_rx_monitors           => c_sdp_N_pn_max,
         g_nof_tx_monitors           => c_sdp_N_pn_max,
@@ -1223,6 +1230,7 @@ BEGIN
           g_lane_direction            => 1, -- transport in positive direction.
           g_lane_data_w               => c_longword_w,
           g_lane_packet_length        => c_lane_payload_nof_longwords_bf,
+          g_lane_total_nof_packets_w  => c_lane_total_nof_packets_w,
           g_use_dp_layer              => TRUE,
           g_nof_rx_monitors           => 1,
           g_nof_tx_monitors           => 1,
diff --git a/libraries/base/ring/src/vhdl/ring_lane.vhd b/libraries/base/ring/src/vhdl/ring_lane.vhd
index e0ccc75d9f3b84a0a67a5f98304032f607ddad68..30a17041ba169a4d8b4cf595f3afdb3f6afa4113 100644
--- a/libraries/base/ring/src/vhdl/ring_lane.vhd
+++ b/libraries/base/ring/src/vhdl/ring_lane.vhd
@@ -45,6 +45,7 @@ ENTITY ring_lane IS
     g_lane_direction            : NATURAL := 1;
     g_lane_data_w               : NATURAL := 64;
     g_lane_packet_length        : NATURAL := 1024; 
+    g_lane_total_nof_packets_w  : NATURAL := c_longword_w;  -- <= c_longword_w = 64
     g_use_dp_layer              : BOOLEAN := TRUE;
     g_nof_rx_monitors           : NATURAL := 0;
     g_nof_tx_monitors           : NATURAL := 1;
@@ -114,15 +115,16 @@ BEGIN
 
   u_ring_rx : ENTITY work.ring_rx
   GENERIC MAP (
-    g_use_dp_layer    => g_use_dp_layer, 
-    g_lane_direction  => g_lane_direction, 
-    g_data_w          => g_lane_data_w, 
-    g_nof_rx_monitors => g_nof_rx_monitors, 
-    g_err_bi          => g_err_bi, 
-    g_block_size      => g_lane_packet_length, 
-    g_nof_err_counts  => g_nof_err_counts, 
-    g_check_channel   => g_bsn_at_sync_check_channel, 
-    g_sync_timeout    => g_sync_timeout
+    g_use_dp_layer        => g_use_dp_layer,
+    g_lane_direction      => g_lane_direction,
+    g_total_nof_packets_w => g_lane_total_nof_packets_w,
+    g_data_w              => g_lane_data_w,
+    g_nof_rx_monitors     => g_nof_rx_monitors,
+    g_err_bi              => g_err_bi,
+    g_block_size          => g_lane_packet_length,
+    g_nof_err_counts      => g_nof_err_counts,
+    g_check_channel       => g_bsn_at_sync_check_channel,
+    g_sync_timeout        => g_sync_timeout
   )
   PORT MAP (
     mm_rst => mm_rst,                 
diff --git a/libraries/base/ring/src/vhdl/ring_rx.vhd b/libraries/base/ring/src/vhdl/ring_rx.vhd
index 92a6ae69ea45c47430d237efccb1fb2bb2624eee..65dab32489ae24b6fa40c78c6966491002108c9c 100644
--- a/libraries/base/ring/src/vhdl/ring_rx.vhd
+++ b/libraries/base/ring/src/vhdl/ring_rx.vhd
@@ -37,15 +37,16 @@ USE work.ring_pkg.ALL;
 
 ENTITY ring_rx IS
   GENERIC (
-    g_use_dp_layer     : BOOLEAN := TRUE;
-    g_lane_direction   : NATURAL := 1;
-    g_data_w           : NATURAL := 64;
-    g_nof_rx_monitors  : NATURAL := 1;
-    g_err_bi           : NATURAL := 0;  
-    g_block_size       : NATURAL := 1024; 
-    g_nof_err_counts   : NATURAL := 1; 
-    g_check_channel    : NATURAL := 1;
-    g_sync_timeout     : NATURAL := 220*10**6  -- 10% margin
+    g_use_dp_layer        : BOOLEAN := TRUE;
+    g_lane_direction      : NATURAL := 1;
+    g_total_nof_packets_w : NATURAL := 48;  -- <= c_longword_w = 64
+    g_data_w              : NATURAL := 64;
+    g_nof_rx_monitors     : NATURAL := 1;
+    g_err_bi              : NATURAL := 0;
+    g_block_size          : NATURAL := 1024;
+    g_nof_err_counts      : NATURAL := 1;
+    g_check_channel       : NATURAL := 1;
+    g_sync_timeout        : NATURAL := 220*10**6  -- 10% margin
   );
   PORT (
     -- Clocks and reset
@@ -116,6 +117,8 @@ BEGIN
   -- Validate error field 
   u_dp_block_validate_err : ENTITY dp_lib.dp_block_validate_err
   GENERIC MAP (
+    g_cnt_w           => c_word_w,  -- <= c_word_w = 32
+    g_blk_cnt_w       => g_total_nof_packets_w,  -- <= c_longword_w = 64
     g_max_block_size  => c_packet_size,
     g_min_block_size  => c_packet_size,
     g_nof_err_counts  => g_nof_err_counts,