diff --git a/libraries/io/eth/tb/vhdl/tb_eth_tester_pkg.vhd b/libraries/io/eth/tb/vhdl/tb_eth_tester_pkg.vhd
index 7c4e0d8f7686ea3a1cb76d937840c32ecd95fce7..2f443c90cc2964521e3422a6f6a9fc335a58edfb 100644
--- a/libraries/io/eth/tb/vhdl/tb_eth_tester_pkg.vhd
+++ b/libraries/io/eth/tb/vhdl/tb_eth_tester_pkg.vhd
@@ -38,9 +38,30 @@ PACKAGE tb_eth_tester_pkg is
   CONSTANT c_eth_tester_ip_dst_addr       : STD_LOGIC_VECTOR(31 DOWNTO 0) := x"0A6300FE";  -- 0A6300FE = '10.99.0.254' = DOP36-enp2s0
   CONSTANT c_eth_tester_udp_dst_port      : STD_LOGIC_VECTOR(15 DOWNTO 0) := TO_UVEC(6001, 16);  -- 0x1771 = 6001
 
+  -- Map global node index on UniBoard2 to node MAC address and node IP address
+  FUNCTION func_eth_tester_gn_index_to_mac_15_0(gn_index : NATURAL) RETURN STD_LOGIC_VECTOR;
+  FUNCTION func_eth_tester_gn_index_to_ip_15_0(gn_index : NATURAL) RETURN STD_LOGIC_VECTOR;
+
 END tb_eth_tester_pkg;
 
 
 PACKAGE BODY tb_eth_tester_pkg IS
+
+  FUNCTION func_eth_tester_gn_index_to_mac_15_0(gn_index : NATURAL) RETURN STD_LOGIC_VECTOR IS
+    CONSTANT c_unb_nr    : NATURAL := gn_index / 4;  -- 4 PN per Uniboard2
+    CONSTANT c_node_nr   : NATURAL := gn_index MOD 4;
+    CONSTANT c_mac_15_0  : STD_LOGIC_VECTOR(15 DOWNTO 0) := TO_UVEC(c_unb_nr, 8) & TO_UVEC(c_node_nr, 8);
+  BEGIN
+    RETURN c_mac_15_0;
+  END func_eth_tester_gn_index_to_mac_15_0;
+
+  FUNCTION func_eth_tester_gn_index_to_ip_15_0(gn_index : NATURAL) RETURN STD_LOGIC_VECTOR IS
+    CONSTANT c_unb_nr    : NATURAL := gn_index / 4;  -- 4 PN per Uniboard2
+    CONSTANT c_node_nr   : NATURAL := gn_index MOD 4;
+    CONSTANT c_ip_15_0   : STD_LOGIC_VECTOR(15 DOWNTO 0) := TO_UVEC(c_unb_nr, 8) & TO_UVEC(c_node_nr+1, 8);  -- +1 to avoid IP = *.*.*.0
+  BEGIN
+    RETURN c_ip_15_0;
+  END func_eth_tester_gn_index_to_ip_15_0;
+
 END tb_eth_tester_pkg;