diff --git a/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml b/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml
index 51766f1eec63cc09ca5e8a895394e1123f72e8d2..953084dfb15b258fc2f18a990383f0973c966c7c 100644
--- a/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml
+++ b/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml
@@ -9,7 +9,7 @@ parameters:
   - { name: c_nof_lanes,            value: 8 }
   - { name: c_nof_rx_monitors,      value: 16 } # per lane
   - { name: c_nof_tx_monitors,      value: 16 } # per lane
-  - { name: c_nof_err_counts,       value: 8 }  # per lane
+  - { name: c_nof_err_counts,       value: 8 }  # per lane, per bit in sosi.err field
   - { name: c_nof_mac,              value: 12 } # 4 TX/RX for RING0 + 4 TX/RX for RING1 + 4 TX/RX for QSFP0
 
 peripherals:
diff --git a/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml b/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml
index 4a1e54c46bed030a4ae613518e16590e61adf506..c8ed157e255422e409f972b72348c86edd889005 100644
--- a/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml
+++ b/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml
@@ -11,10 +11,11 @@ parameters:
   - { name: c_N_beamsets,           value: 2 }
   - { name: c_N_sub,                value: 512 }
   - { name: c_N_fft,                value: 1024 }
-  - { name: c_N_pn_lb,              value: 16 }
+  - { name: c_N_pn_max,             value: 16 }
   - { name: c_S_pn,                 value: 12 }
   - { name: c_Q_fft,                value: 2 }
-  - { name: c_P_sq,                 value: 1 + c_N_pn_lb // 2 }  # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used
+  - { name: c_P_sum,                value: 2 }
+  - { name: c_P_sq,                 value: 1 + c_N_pn_max // 2 }  # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used
   - { name: c_X_sq,                 value: c_S_pn * c_S_pn }  # = 144
   - { name: c_N_crosslets,          value: 7 }
   - { name: c_N_taps,               value: 16 }
@@ -37,10 +38,8 @@ parameters:
   - { name: c_W_beamlet,            value: 8 }
   - { name: c_stat_data_sz,         value: 2 }
   - { name: c_nof_clk_per_pps,      value: c_f_adc_MHz * 10**6 }  # = 200000000
-  - { name: c_lane_nof_rx_monitors,      value: 16 } # per lane
-  - { name: c_lane_nof_tx_monitors,      value: 16 } # per lane
-  - { name: c_lane_nof_err_counts,       value: 8 }  # per lane
-  - { name: c_ring_nof_mac,              value: 3 } # 1 TX/RX for RING0 + 1 TX/RX for RING1 + 1 TX/RX for QSFP0
+  - { name: c_lane_nof_err_counts,  value: 8 }  # per lane, per bit in RX sosi.err field
+  - { name: c_ring_nof_mac,         value: 3 }  # 1 TX/RX for RING0 + 1 TX/RX for RING1 + 1 TX/RX for QSFP0
 
 peripherals:
   #############################################################################
@@ -312,14 +311,14 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_rx
     parameter_overrides:
-      - { name: g_nof_streams, value: c_lane_nof_rx_monitors }
+      - { name: g_nof_streams, value: c_N_pn_max }
     mm_port_names:
       - REG_BSN_MONITOR_V2_RING_RX_XST
 
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_tx
     parameter_overrides:
-      - { name: g_nof_streams, value: c_lane_nof_tx_monitors }
+      - { name: g_nof_streams, value: c_N_pn_max }
     mm_port_names:
       - REG_BSN_MONITOR_V2_RING_TX_XST
 
@@ -369,7 +368,7 @@ peripherals:
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
     parameter_overrides:
-      - { name: g_nof_streams, value: 2 }
+      - { name: g_nof_streams, value: c_P_sum }
     mm_port_names:
       - REG_BSN_ALIGN_V2_BF
   
@@ -377,7 +376,7 @@ peripherals:
     peripheral_group: rx_align_bf
     number_of_peripherals: c_N_beamsets
     parameter_overrides:
-      - { name: g_nof_streams, value: 2 }
+      - { name: g_nof_streams, value: c_P_sum }
     mm_port_names:
       - REG_BSN_MONITOR_V2_RX_ALIGN_BF
   
diff --git a/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml b/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml
index 7ce0a03e8f89d22aa77db970324a3dca874c394e..da16eb02707f4d94c2dc05ac22492678e925388e 100644
--- a/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml
+++ b/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml
@@ -9,7 +9,7 @@ parameters:
   - { name: c_nof_lanes,            value: 8 }
   - { name: c_nof_rx_monitors,      value: 16 } # per lane
   - { name: c_nof_tx_monitors,      value: 16 } # per lane
-  - { name: c_nof_err_counts,       value: 8 }  # per lane
+  - { name: c_nof_err_counts,       value: 8 }  # per lane, per bit in sosi.err field
   - { name: c_nof_mac,              value: 12 } # 4 TX/RX for RING0 + 4 TX/RX for RING1 + 4 TX/RX for QSFP0
 
 peripherals:
diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml b/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml
index 751f16099e932392bf770b5203193847d771ec5a..6f9cb187f829e008ca22aa579fdcd4605bafe222 100644
--- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml
+++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml
@@ -11,10 +11,11 @@ parameters:
   - { name: c_N_beamsets,           value: 2 }
   - { name: c_N_sub,                value: 512 }
   - { name: c_N_fft,                value: 1024 }
-  - { name: c_N_pn_lb,              value: 16 }
+  - { name: c_N_pn_max,             value: 16 }
   - { name: c_S_pn,                 value: 12 }
   - { name: c_Q_fft,                value: 2 }
-  - { name: c_P_sq,                 value: 1 + c_N_pn_lb // 2 }  # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used
+  - { name: c_P_sum,                value: 2 }
+  - { name: c_P_sq,                 value: 1 + c_N_pn_max // 2 }  # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used
   - { name: c_X_sq,                 value: c_S_pn * c_S_pn }  # = 144
   - { name: c_N_crosslets,          value: 7 }
   - { name: c_N_taps,               value: 16 }
@@ -37,10 +38,8 @@ parameters:
   - { name: c_W_beamlet,            value: 8 }
   - { name: c_stat_data_sz,         value: 2 }
   - { name: c_nof_clk_per_pps,      value: c_f_adc_MHz * 10**6 }  # = 200000000
-  - { name: c_lane_nof_rx_monitors,      value: 16 } # per lane
-  - { name: c_lane_nof_tx_monitors,      value: 16 } # per lane
-  - { name: c_lane_nof_err_counts,       value: 8 }  # per lane
-  - { name: c_ring_nof_mac,              value: 3 } # 1 TX/RX for RING0 + 1 TX/RX for RING1 + 1 TX/RX for QSFP0
+  - { name: c_lane_nof_err_counts,  value: 8 }  # per lane, per bit in RX sosi.err field
+  - { name: c_ring_nof_mac,         value: 3 }  # 1 TX/RX for RING0 + 1 TX/RX for RING1 + 1 TX/RX for QSFP0
 
 peripherals:
   #############################################################################
@@ -312,14 +311,14 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_rx
     parameter_overrides:
-      - { name: g_nof_streams, value: c_lane_nof_rx_monitors }
+      - { name: g_nof_streams, value: c_N_pn_max }
     mm_port_names:
       - REG_BSN_MONITOR_V2_RING_RX_XST
 
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_tx
     parameter_overrides:
-      - { name: g_nof_streams, value: c_lane_nof_tx_monitors }
+      - { name: g_nof_streams, value: c_N_pn_max }
     mm_port_names:
       - REG_BSN_MONITOR_V2_RING_TX_XST
 
@@ -369,7 +368,7 @@ peripherals:
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
     parameter_overrides:
-      - { name: g_nof_streams, value: 2 }
+      - { name: g_nof_streams, value: c_P_sum }
     mm_port_names:
       - REG_BSN_ALIGN_V2_BF
   
@@ -377,7 +376,7 @@ peripherals:
     peripheral_group: rx_align_bf
     number_of_peripherals: c_N_beamsets
     parameter_overrides:
-      - { name: g_nof_streams, value: 2 }
+      - { name: g_nof_streams, value: c_P_sum }
     mm_port_names:
       - REG_BSN_MONITOR_V2_RX_ALIGN_BF
   
diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
index 7fe6896838ac5d2c86cb3e6e0444368a82759418..376b64247fa6e8bef2e5f4d903a4b97d95a2b225 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
@@ -69,7 +69,6 @@ PACKAGE sdp_pkg is
   CONSTANT c_sdp_N_cross_sets_sdp          : NATURAL := 1;
   CONSTANT c_sdp_N_crosslets_max           : NATURAL := 7;
   CONSTANT c_sdp_N_fft                     : NATURAL := 1024;
-  CONSTANT c_sdp_N_pn_lb                   : NATURAL := 16;
   CONSTANT c_sdp_N_pn_max                  : NATURAL := 16;  -- gn 0:31 --> pn 0:15, pn 0:15 per antenna band
   CONSTANT c_sdp_N_pol                     : NATURAL := 2;
   CONSTANT c_sdp_N_pol_bf                  : NATURAL := 2;
@@ -592,8 +591,7 @@ PACKAGE BODY sdp_pkg IS
     --   pn_index = gn_index MOD c_sdp_N_pn_max
     --
     -- The c_sdp_N_pn_max = 16 fits the LB and HB of LOFAR2:
-    -- . The LB starts at GN index = 0 and has c_sdp_N_pn_lb = c_sdp_N_pn_max
-    --   = 16 nodes.
+    -- . The LB starts at GN index = 0 and has c_sdp_N_pn_max = 16 nodes.
     -- . The HB starts at GN index = c_sdp_N_pn_max, and has 8 or 16 nodes
     --   dependent on the type of station.
     --
diff --git a/libraries/base/dp/dp.peripheral.yaml b/libraries/base/dp/dp.peripheral.yaml
index 9cca7c30d99b6efd5ea8c17f1b7c3d549c246ff1..697f014501864ff93650e4ef28770ad95e7575f5 100644
--- a/libraries/base/dp/dp.peripheral.yaml
+++ b/libraries/base/dp/dp.peripheral.yaml
@@ -107,7 +107,7 @@ peripherals:
 
 
   - peripheral_name: dp_bsn_align_v2    # pi_dp_bsn_align_v2.py
-    peripheral_description: "Align frames from multiple input streams."
+    peripheral_description: "Align packets from multiple input streams."
     parameters:
       # Parameters of dp_bsn_align_v2.vhd
       - { name: g_nof_streams, value: 2 }
@@ -120,12 +120,12 @@ peripherals:
         number_of_mm_ports: g_nof_streams
         fields:
           - - field_name: enable
-              field_description: "Stream enable per stream via bits g_nof_streams-1 : 0. Bit value 0 disables the stream, 1 enables the stream. Disabled streams are not aligned."
+              field_description: "Stream enable per stream. Value 0 disables the stream, 1 enables the stream. Disabled streams are not aligned."
               address_offset: 0 * MM_BUS_SIZE
               mm_width: 1
               access_mode: RW
           - - field_name: replaced_pkt_cnt
-              field_description: "Count of packets that contain replacement data per sync interval."
+              field_description: "Count of packets per stream that contain replacement data per sync interval."
               address_offset: 1 * MM_BUS_SIZE
               access_mode: RO
 
@@ -453,12 +453,12 @@ peripherals:
         mm_port_description: ""
         fields:
           - - field_name: err_count_index
-              field_description: "The total amount of discarded DP blocks per bit in the in_sosi.err field (g_nof_err_counts-1 DOWNTO 0)."
+              field_description: "Number of errors count per bit in the input sosi.err field (g_nof_err_counts-1 DOWNTO 0)."
               number_of_fields: g_nof_err_counts
               address_offset: 0
               access_mode: RO
           - - field_name: total_discarded_blocks
-              field_description: "The total amount of discarded DP blocks."
+              field_description: "The total amount of discarded DP blocks. All input DP blocks with sosi.err /= 0 are discarded."
               address_offset: g_nof_err_counts * MM_BUS_SIZE  # 8 * MM_BUS_SIZE
               access_mode: RO
           - - field_name: total_block_count