diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf_ring/tb_lofar2_unb2c_sdp_station_bf_ring.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf_ring/tb_lofar2_unb2c_sdp_station_bf_ring.vhd
index 9243cd4d17697912183c0f60883cbede0a6c117e..ae3d8b5d299778cd66403c2b11ecdc62114d5307 100644
--- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf_ring/tb_lofar2_unb2c_sdp_station_bf_ring.vhd
+++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf_ring/tb_lofar2_unb2c_sdp_station_bf_ring.vhd
@@ -1372,7 +1372,8 @@ BEGIN
   -- Prepare exp_sdp_cep_header before rx_beamlet_sosi.eop, so that
   -- p_verify_cep_header can verify it at rx_beamlet_sosi.eop.
 
-  exp_sdp_cep_header <= func_sdp_compose_cep_header(c_exp_ip_header_checksum,
+  exp_sdp_cep_header <= func_sdp_compose_cep_header(c_cep_ip_src_addr,
+                                                    c_exp_ip_header_checksum,
                                                     c_exp_sdp_info,
                                                     c_last_gn,
                                                     c_exp_beamlet_scale,
diff --git a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_pkg.vhd b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_pkg.vhd
index 493c24da17a557243eaa9ec614cd625bacd397e6..762d2e704f509e7df83aa29ce4d8c0a85382368e 100644
--- a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_pkg.vhd
+++ b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_pkg.vhd
@@ -60,6 +60,14 @@ PACKAGE tb_sdp_pkg is
   -----------------------------------------------------------------------------
   -- Beamlet output via 10GbE to CEP (= central processor)
   -----------------------------------------------------------------------------
+  FUNCTION func_sdp_compose_cep_header(ip_src_addr        : STD_LOGIC_VECTOR;
+                                       ip_header_checksum : NATURAL;
+                                       sdp_info           : t_sdp_info;  -- app header
+                                       gn_index           : NATURAL;
+                                       beamlet_scale      : NATURAL;
+                                       beamlet_index      : NATURAL;
+                                       dp_bsn             : NATURAL) RETURN t_sdp_cep_header;
+
   FUNCTION func_sdp_compose_cep_header(ip_header_checksum : NATURAL;
                                        sdp_info           : t_sdp_info;  -- app header
                                        gn_index           : NATURAL;
@@ -248,17 +256,15 @@ PACKAGE BODY tb_sdp_pkg IS
     RETURN TRUE;
   END func_sdp_verify_stat_header;
 
-
-  FUNCTION func_sdp_compose_cep_header(ip_header_checksum : NATURAL;
+  FUNCTION func_sdp_compose_cep_header(ip_src_addr        : STD_LOGIC_VECTOR;
+                                       ip_header_checksum : NATURAL;
                                        sdp_info           : t_sdp_info;  -- app header
                                        gn_index           : NATURAL;
                                        beamlet_scale      : NATURAL;
                                        beamlet_index      : NATURAL;
                                        dp_bsn             : NATURAL) RETURN t_sdp_cep_header IS
     -- Use sim default dst and src MAC, IP, UDP port from sdp_pkg.vhd and based on gn_index
-    CONSTANT c_mac_15_0             : STD_LOGIC_VECTOR(15 DOWNTO 0) := func_sdp_gn_index_to_mac_15_0(gn_index);
-    CONSTANT c_ip_15_0              : STD_LOGIC_VECTOR(15 DOWNTO 0) := func_sdp_gn_index_to_ip_15_0(gn_index);
-
+    CONSTANT c_mac_15_0 : STD_LOGIC_VECTOR(15 DOWNTO 0) := func_sdp_gn_index_to_mac_15_0(gn_index);
     VARIABLE v_hdr : t_sdp_cep_header;
   BEGIN
     -- eth header
@@ -277,7 +283,7 @@ PACKAGE BODY tb_sdp_pkg IS
     v_hdr.ip.time_to_live    := TO_UVEC(                      127, c_network_ip_time_to_live_w);
     v_hdr.ip.protocol        := TO_UVEC(                       17, c_network_ip_protocol_w);
     v_hdr.ip.header_checksum := TO_UVEC(       ip_header_checksum, c_network_ip_header_checksum_w);
-    v_hdr.ip.src_ip_addr     := c_sdp_cep_ip_src_addr_31_16 & c_ip_15_0;  -- c_network_ip_addr_w
+    v_hdr.ip.src_ip_addr     := ip_src_addr;  -- c_network_ip_addr_w
     v_hdr.ip.dst_ip_addr     := c_sdp_cep_ip_dst_addr;  -- c_network_ip_addr_w
 
     -- udp header
@@ -312,6 +318,25 @@ PACKAGE BODY tb_sdp_pkg IS
     RETURN v_hdr;
   END func_sdp_compose_cep_header;
 
+  FUNCTION func_sdp_compose_cep_header(ip_header_checksum : NATURAL;
+                                       sdp_info           : t_sdp_info;  -- app header
+                                       gn_index           : NATURAL;
+                                       beamlet_scale      : NATURAL;
+                                       beamlet_index      : NATURAL;
+                                       dp_bsn             : NATURAL) RETURN t_sdp_cep_header IS
+    -- Use sim default dst and src MAC, IP, UDP port from sdp_pkg.vhd and based on gn_index
+    CONSTANT c_ip_15_0     : STD_LOGIC_VECTOR(15 DOWNTO 0) := func_sdp_gn_index_to_ip_15_0(gn_index);
+    CONSTANT c_ip_src_addr : STD_LOGIC_VECTOR(31 DOWNTO 0) := c_sdp_cep_ip_src_addr_31_16 & c_ip_15_0;
+  BEGIN
+    RETURN func_sdp_compose_cep_header(c_ip_src_addr,
+                                       ip_header_checksum,
+                                       sdp_info,
+                                       gn_index,
+                                       beamlet_scale,
+                                       beamlet_index,
+                                       dp_bsn);
+  END func_sdp_compose_cep_header;
+
   FUNCTION func_sdp_verify_cep_header(in_hdr, exp_hdr : t_sdp_cep_header) RETURN BOOLEAN IS
     VARIABLE v_beamlet_index : NATURAL;
   BEGIN