diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
index b56659d1cbd979a31db04feb6da4a07b52a2db6d..2d7c4e025a92d8189eddbde55e5d217f758dd9fa 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
@@ -237,9 +237,11 @@ PACKAGE sdp_pkg is
 --CONSTANT c_sdp_stat_hdr_field_sel     : STD_LOGIC_VECTOR(c_sdp_stat_nof_hdr_fields-1 DOWNTO 0) := "1"&"101"&"111011111001"&"0101"&"0100"&"000000000"&"0000100"&"0";  -- previous 26 nov 2021
 --CONSTANT c_sdp_stat_hdr_field_sel     : STD_LOGIC_VECTOR(c_sdp_stat_nof_hdr_fields-1 DOWNTO 0) := "0"&"100"&"000000010001"&"0100"&"0100"&"000000010"&"1000000"&"0";  -- initial
 
+  -- Default use destination MAC/IP/UDP = 0, so these have to be MM programmed before
+  -- statistics offload packets can be send.
   CONSTANT c_sdp_stat_hdr_field_arr : t_common_field_arr(c_sdp_stat_nof_hdr_fields-1 DOWNTO 0) := (
       ( field_name_pad("word_align"                              ), "RW", 16, field_default(0) ),  -- Tx TSE IP will strip these 2 padding bytes
-      ( field_name_pad("eth_dst_mac"                             ), "RW", 48, field_default(c_sdp_stat_eth_dst_mac) ),
+      ( field_name_pad("eth_dst_mac"                             ), "RW", 48, field_default(0) ),  -- c_sdp_stat_eth_dst_mac
       ( field_name_pad("eth_src_mac"                             ), "RW", 48, field_default(0) ),
       ( field_name_pad("eth_type"                                ), "RW", 16, field_default(x"0800") ),
 
@@ -254,10 +256,10 @@ PACKAGE sdp_pkg is
       ( field_name_pad("ip_protocol"                             ), "RW",  8, field_default(17) ),
       ( field_name_pad("ip_header_checksum"                      ), "RW", 16, field_default(0) ),
       ( field_name_pad("ip_src_addr"                             ), "RW", 32, field_default(0) ),
-      ( field_name_pad("ip_dst_addr"                             ), "RW", 32, field_default(c_sdp_stat_ip_dst_addr) ),
+      ( field_name_pad("ip_dst_addr"                             ), "RW", 32, field_default(0) ),  -- c_sdp_stat_ip_dst_addr
 
       ( field_name_pad("udp_src_port"                            ), "RW", 16, field_default(0) ), 
-      ( field_name_pad("udp_dst_port"                            ), "RW", 16, field_default(c_sdp_stat_udp_dst_port) ),
+      ( field_name_pad("udp_dst_port"                            ), "RW", 16, field_default(0) ),  -- c_sdp_stat_udp_dst_port
       ( field_name_pad("udp_total_length"                        ), "RW", 16, field_default(0) ),  -- differs for SST, BST, XST so set by data path
       ( field_name_pad("udp_checksum"                            ), "RW", 16, field_default(0) ),
 
@@ -370,8 +372,10 @@ PACKAGE sdp_pkg is
 --CONSTANT c_sdp_cep_hdr_field_sel  : STD_LOGIC_VECTOR(c_sdp_cep_nof_hdr_fields-1 DOWNTO 0) := "101"&"111111111001"&"0111"&"1100"&"00000010"&"000110"&"0";  -- previous 27 sep 2022
 --CONSTANT c_sdp_cep_hdr_field_sel  : STD_LOGIC_VECTOR(c_sdp_cep_nof_hdr_fields-1 DOWNTO 0) := "100"&"000000010001"&"0100"&"0100"&"00000000"&"101000"&"0";  -- initial
 
-  CONSTANT c_sdp_cep_hdr_field_arr : t_common_field_arr(c_sdp_cep_nof_hdr_fields-1 DOWNTO 0) := ( 
-      ( field_name_pad("eth_dst_mac"                        ), "RW", 48, field_default(c_sdp_cep_eth_dst_mac) ),
+  -- Default use source MAC/IP/UDP = 0 and destination MAC/IP/UDP = 0, so these have to be MM programmed
+  -- before beamlet output packets can be send.
+  CONSTANT c_sdp_cep_hdr_field_arr : t_common_field_arr(c_sdp_cep_nof_hdr_fields-1 DOWNTO 0) := (
+      ( field_name_pad("eth_dst_mac"                        ), "RW", 48, field_default(0) ),  -- c_sdp_cep_eth_dst_mac
       ( field_name_pad("eth_src_mac"                        ), "RW", 48, field_default(0) ),
       ( field_name_pad("eth_type"                           ), "RW", 16, field_default(x"0800") ),
 
@@ -386,10 +390,10 @@ PACKAGE sdp_pkg is
       ( field_name_pad("ip_protocol"                        ), "RW",  8, field_default(17) ),
       ( field_name_pad("ip_header_checksum"                 ), "RW", 16, field_default(0) ),
       ( field_name_pad("ip_src_addr"                        ), "RW", 32, field_default(0) ),
-      ( field_name_pad("ip_dst_addr"                        ), "RW", 32, field_default(c_sdp_cep_ip_dst_addr) ),
+      ( field_name_pad("ip_dst_addr"                        ), "RW", 32, field_default(0) ),  -- c_sdp_cep_ip_dst_addr
 
       ( field_name_pad("udp_src_port"                       ), "RW", 16, field_default(0) ), 
-      ( field_name_pad("udp_dst_port"                       ), "RW", 16, field_default(c_sdp_cep_udp_dst_port) ),
+      ( field_name_pad("udp_dst_port"                       ), "RW", 16, field_default(0) ),  -- c_sdp_cep_udp_dst_port
       ( field_name_pad("udp_total_length"                   ), "RW", 16, field_default(c_sdp_cep_udp_total_length) ),
       ( field_name_pad("udp_checksum"                       ), "RW", 16, field_default(0) ),
 
diff --git a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_statistics_offload.vhd b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_statistics_offload.vhd
index fa06e0c1e3a4df6b9e42e0e8ebec979e3bbd489a..f7463f09656b2d0eea9446b78ae297644308ba19 100644
--- a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_statistics_offload.vhd
+++ b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_statistics_offload.vhd
@@ -322,6 +322,13 @@ BEGIN
   BEGIN
     proc_common_wait_until_low(dp_clk, mm_rst);
     proc_common_wait_some_cycles(mm_clk, 10);
+    -- Write statistics offload destination MAC/IP/UDP
+    -- . obtain relative MM word addresses e.g. from lofar2_unb2c_sdp_station.mmap or from sdp.peripheral.yaml
+    proc_mem_mm_bus_wr(16#18#, TO_UINT(c_sdp_stat_udp_dst_port), mm_clk, hdr_dat_miso, hdr_dat_mosi);
+    proc_mem_mm_bus_wr(16#1A#, TO_UINT(c_sdp_stat_ip_dst_addr), mm_clk, hdr_dat_miso, hdr_dat_mosi);
+    proc_mem_mm_bus_wr(16#29#, TO_SINT(c_sdp_stat_eth_dst_mac(31 DOWNTO 0)), mm_clk, hdr_dat_miso, hdr_dat_mosi);  -- use signed to fit 32 b in INTEGER
+    proc_mem_mm_bus_wr(16#2A#, TO_UINT(c_sdp_stat_eth_dst_mac(47 DOWNTO 32)), mm_clk, hdr_dat_miso, hdr_dat_mosi);
+
     -- Enable common variable delay.
     proc_mem_mm_bus_wr(c_reg_enable_mm_addr_enable, 1, mm_clk, enable_miso, enable_mosi);
     proc_common_wait_some_cycles(mm_clk, c_cross_clock_domain_latency);