diff --git a/libraries/base/dp/src/vhdl/dp_offload_rx.vhd b/libraries/base/dp/src/vhdl/dp_offload_rx.vhd
index 20f57ae4b2a8daa417120500f2e9ceeb9d99d7d7..37fe038a0f9641d39c805dea801b4abba307403b 100644
--- a/libraries/base/dp/src/vhdl/dp_offload_rx.vhd
+++ b/libraries/base/dp/src/vhdl/dp_offload_rx.vhd
@@ -51,7 +51,8 @@ ENTITY dp_offload_rx IS
     src_out_arr        : OUT t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0); 
     src_in_arr         : IN  t_dp_siso_arr(g_nof_streams-1 DOWNTO 0);
 
-    hdr_fields_out_arr : OUT t_slv_1024_arr(g_nof_streams-1 DOWNTO 0)  --Valid at src_out_arr(i).sop.
+    hdr_fields_out_arr : OUT t_slv_1024_arr(g_nof_streams-1 DOWNTO 0); -- Valid at src_out_arr(i).sop, use for sosi.sync
+    hdr_fields_raw_arr : OUT t_slv_1024_arr(g_nof_streams-1 DOWNTO 0)  -- Valid at src_out_arr(i).sop and beyond, use for sosi.bsn
   );
 END dp_offload_rx;
 
@@ -187,11 +188,13 @@ BEGIN
     nxt_reg_dp_field_blk_slv_out(i) <= dp_field_blk_slv_out(i) WHEN dp_field_blk_slv_out_val(i) = '1' ELSE reg_dp_field_blk_slv_out(i);
   END GENERATE;
 
-  -- Put the fields on the entity output at src_out.sop
+  -- Put the fields that can only be active at sop on the entity output at src_out.sop (e.g. sosi sync field)
   gen_hdr_fields_out_arr : FOR i IN 0 TO g_nof_streams-1 GENERATE
     hdr_fields_out_arr(i) <= reg_dp_field_blk_slv_out(i) WHEN dp_tail_remove_src_out_arr(i).sop='1' ELSE (OTHERS=>'0');
   END GENERATE;
-
+  -- Put the fields that can be valid during entire packet on the entity combinatorially (e.g. all sosi slv fields)
+  hdr_fields_raw_arr <= reg_dp_field_blk_slv_out;
+  
   ---------------------------------------------------------------------------------------
   -- MM control & monitoring
   ---------------------------------------------------------------------------------------
diff --git a/libraries/base/dp/tb/vhdl/tb_dp_concat_field_blk.vhd b/libraries/base/dp/tb/vhdl/tb_dp_concat_field_blk.vhd
index ad87a38771c6fcea2ddd8c4d9a751b24e0eb8766..5a9c6de0ca693e18626390c20aa1e11b230a0013 100644
--- a/libraries/base/dp/tb/vhdl/tb_dp_concat_field_blk.vhd
+++ b/libraries/base/dp/tb/vhdl/tb_dp_concat_field_blk.vhd
@@ -151,6 +151,7 @@ ARCHITECTURE tb OF tb_dp_concat_field_blk IS
   SIGNAL dp_offload_rx_src_in_arr       : t_dp_siso_arr(0 DOWNTO 0);
   
   SIGNAL rx_hdr_fields_out_arr          : t_slv_1024_arr(0 DOWNTO 0);
+  SIGNAL rx_hdr_fields_raw_arr          : t_slv_1024_arr(0 DOWNTO 0);
   
   SIGNAL reg_dp_offload_rx_hdr_dat_mosi : t_mem_mosi := c_mem_mosi_rst;
   SIGNAL reg_dp_offload_rx_hdr_dat_miso : t_mem_miso;
@@ -243,7 +244,7 @@ BEGIN
 
   -- . after the test
   verify_last_snk_in_evt.sync    <= last_snk_in_evt;
-  verify_last_snk_in_evt.bsn     <= '0';   -- in rx_hdr_fields_out_arr from dp_offload_rx output the bsn is only valid at sop
+  verify_last_snk_in_evt.bsn     <= last_snk_in_evt;   -- thanks to using rx_hdr_fields_raw_arr for bsn field
   verify_last_snk_in_evt.data    <= last_snk_in_evt;
   verify_last_snk_in_evt.re      <= '0';
   verify_last_snk_in_evt.im      <= '0';
@@ -374,14 +375,15 @@ BEGIN
     src_out_arr           => dp_offload_rx_src_out_arr,
     src_in_arr            => dp_offload_rx_src_in_arr,
   
-    hdr_fields_out_arr    => rx_hdr_fields_out_arr
+    hdr_fields_out_arr    => rx_hdr_fields_out_arr,
+    hdr_fields_raw_arr    => rx_hdr_fields_raw_arr
   );
   
   p_restore_sync_bsn : PROCESS(dp_offload_rx_src_out_arr, rx_hdr_fields_out_arr)
   BEGIN
     verify_snk_in      <= dp_offload_rx_src_out_arr(0);
     verify_snk_in.sync <=          sl(rx_hdr_fields_out_arr(0)(field_hi(c_udp_offload_hdr_field_arr, "dp_sync") DOWNTO field_lo(c_udp_offload_hdr_field_arr, "dp_sync" )));
-    verify_snk_in.bsn  <= RESIZE_UVEC(rx_hdr_fields_out_arr(0)(field_hi(c_udp_offload_hdr_field_arr, "dp_bsn" ) DOWNTO field_lo(c_udp_offload_hdr_field_arr, "dp_bsn"  )), c_dp_stream_bsn_w);
+    verify_snk_in.bsn  <= RESIZE_UVEC(rx_hdr_fields_raw_arr(0)(field_hi(c_udp_offload_hdr_field_arr, "dp_bsn" ) DOWNTO field_lo(c_udp_offload_hdr_field_arr, "dp_bsn"  )), c_dp_stream_bsn_w);
   END PROCESS;
 
   dp_offload_rx_src_in_arr    <= (OTHERS=>c_dp_siso_rdy);