diff --git a/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/unb2_test_10GbE.vhd b/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/unb2_test_10GbE.vhd
index e39c4ac2857675a1023bccfb25c12cead6856052..81251b2151868e9bf9b14ca5198e199c312e2c8e 100644
--- a/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/unb2_test_10GbE.vhd
+++ b/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/unb2_test_10GbE.vhd
@@ -31,7 +31,7 @@ USE technology_lib.technology_pkg.ALL;
 ENTITY unb2_test_10GbE IS
   GENERIC (
     g_design_name      : STRING  := "unb2_test_10GbE";
-    g_design_note      : STRING  := "Test design with 10GbE";
+    g_design_note      : STRING  := "10GbE: 6xQSFP and 2xRING";
     g_sim              : BOOLEAN := FALSE; --Overridden by TB
     g_sim_unb_nr       : NATURAL := 0;
     g_sim_node_nr      : NATURAL := 0;
@@ -74,10 +74,10 @@ ENTITY unb2_test_10GbE IS
     BCK_ERR      : INOUT STD_LOGIC_VECTOR(c_unb2_board_tr_back.i2c_w-1 downto 0);
 
     -- ring transceivers
-    --RING_0_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
-    --RING_0_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
-    --RING_1_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
-    --RING_1_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
+    RING_0_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
+    RING_0_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
+    RING_1_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
+    RING_1_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
     -- pmbus
     PMBUS_SC     : INOUT STD_LOGIC;
     PMBUS_SD     : INOUT STD_LOGIC;
@@ -87,14 +87,14 @@ ENTITY unb2_test_10GbE IS
     QSFP_0_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
     QSFP_1_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
     QSFP_1_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
-    --QSFP_2_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
-    --QSFP_2_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
-    --QSFP_3_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
-    --QSFP_3_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
-    --QSFP_4_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
-    --QSFP_4_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
-    --QSFP_5_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
-    --QSFP_5_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
+    QSFP_2_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
+    QSFP_2_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
+    QSFP_3_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
+    QSFP_3_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
+    QSFP_4_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
+    QSFP_4_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
+    QSFP_5_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
+    QSFP_5_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0);
 
     QSFP_SDA     : INOUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.i2c_w-1 downto 0);
     QSFP_SCL     : INOUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.i2c_w-1 downto 0);
@@ -153,10 +153,10 @@ BEGIN
     BCK_ERR      => BCK_ERR,
 
     -- ring transceivers
-    --RING_0_RX    => RING_0_RX,
-    --RING_0_TX    => RING_0_TX,
-    --RING_1_RX    => RING_1_RX,
-    --RING_1_TX    => RING_1_TX,
+    RING_0_RX    => RING_0_RX,
+    RING_0_TX    => RING_0_TX,
+    RING_1_RX    => RING_1_RX,
+    RING_1_TX    => RING_1_TX,
     -- pmbus
     PMBUS_SC     => PMBUS_SC,
     PMBUS_SD     => PMBUS_SD,
@@ -166,14 +166,14 @@ BEGIN
     QSFP_0_TX    => QSFP_0_TX,
     QSFP_1_RX    => QSFP_1_RX,
     QSFP_1_TX    => QSFP_1_TX,
-    --QSFP_2_RX    => QSFP_2_RX,
-    --QSFP_2_TX    => QSFP_2_TX,
-    --QSFP_3_RX    => QSFP_3_RX,
-    --QSFP_3_TX    => QSFP_3_TX,
-    --QSFP_4_RX    => QSFP_4_RX,
-    --QSFP_4_TX    => QSFP_4_TX,
-    --QSFP_5_RX    => QSFP_5_RX,
-    --QSFP_5_TX    => QSFP_5_TX,
+    QSFP_2_RX    => QSFP_2_RX,
+    QSFP_2_TX    => QSFP_2_TX,
+    QSFP_3_RX    => QSFP_3_RX,
+    QSFP_3_TX    => QSFP_3_TX,
+    QSFP_4_RX    => QSFP_4_RX,
+    QSFP_4_TX    => QSFP_4_TX,
+    QSFP_5_RX    => QSFP_5_RX,
+    QSFP_5_TX    => QSFP_5_TX,
 
     QSFP_SDA     => QSFP_SDA,
     QSFP_SCL     => QSFP_SCL,
diff --git a/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd b/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd
index cab5731b9cbdd7c0a6747e7521f7b4cd85063c82..979b0a865f0a38490253e5cb2576587bcc4a981b 100644
--- a/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd
+++ b/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd
@@ -85,10 +85,10 @@ ENTITY unb2_test IS
     BCK_ERR      : INOUT STD_LOGIC_VECTOR(c_unb2_board_tr_back.i2c_w-1 downto 0);
 
     -- ring transceivers
-    --RING_0_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0) := (OTHERS=>'0');
-    --RING_0_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
-    --RING_1_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0) := (OTHERS=>'0');
-    --RING_1_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
+    RING_0_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0) := (OTHERS=>'0');
+    RING_0_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
+    RING_1_RX    : IN    STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0) := (OTHERS=>'0');
+    RING_1_TX    : OUT   STD_LOGIC_VECTOR(c_unb2_board_tr_ring.bus_w-1 downto 0);
     -- pmbus
     PMBUS_SC     : INOUT STD_LOGIC;
     PMBUS_SD     : INOUT STD_LOGIC;
@@ -138,7 +138,7 @@ ARCHITECTURE str OF unb2_test IS
   CONSTANT c_use_1GbE                   : BOOLEAN := g_design_name="unb2_test_1GbE"  OR g_design_name="unb2_test_10GbE" OR g_design_name="unb2_test_all";
   CONSTANT c_use_10GbE                  : BOOLEAN := g_design_name="unb2_test_10GbE" OR g_design_name="unb2_test_all";
   CONSTANT c_use_10GbE_qsfp             : BOOLEAN := c_use_10GbE;
-  CONSTANT c_use_10GbE_ring             : BOOLEAN := FALSE;
+  CONSTANT c_use_10GbE_ring             : BOOLEAN := c_use_10GbE;
   CONSTANT c_use_10GbE_back0            : BOOLEAN := FALSE;
   CONSTANT c_use_10GbE_back1            : BOOLEAN := FALSE;
   CONSTANT c_use_ddr                    : BOOLEAN := g_design_name="unb2_test_ddr"   OR g_design_name="unb2_test_all";
@@ -815,10 +815,10 @@ BEGIN
       dp_rst              => dp_rst,
       dp_clk              => dp_clk,
 
-      src_out_arr         => dp_offload_rx_10GbE_snk_in_arr(c_nof_streams_qsfp-1 DOWNTO 0),
-      src_in_arr          => dp_offload_rx_10GbE_snk_out_arr(c_nof_streams_qsfp-1 DOWNTO 0),
-      snk_out_arr         => dp_offload_tx_10GbE_src_in_arr(c_nof_streams_qsfp-1 DOWNTO 0),
-      snk_in_arr          => dp_offload_tx_10GbE_src_out_arr(c_nof_streams_qsfp-1 DOWNTO 0),
+      src_out_arr         => dp_offload_rx_10GbE_snk_in_arr(c_nof_streams_qsfp+c_nof_streams_ring-1 DOWNTO 0),
+      src_in_arr          => dp_offload_rx_10GbE_snk_out_arr(c_nof_streams_qsfp+c_nof_streams_ring-1 DOWNTO 0),
+      snk_out_arr         => dp_offload_tx_10GbE_src_in_arr(c_nof_streams_qsfp+c_nof_streams_ring-1 DOWNTO 0),
+      snk_in_arr          => dp_offload_tx_10GbE_src_out_arr(c_nof_streams_qsfp+c_nof_streams_ring-1 DOWNTO 0),
 
       serial_tx_arr       => i_serial_10G_tx_qsfp_ring_arr,
       serial_rx_arr       => i_serial_10G_rx_qsfp_ring_arr
@@ -867,6 +867,31 @@ BEGIN
       QSFP_LED   => QSFP_LED
     );
 
+
+    gen_ring_wires: FOR i IN 0 TO c_nof_streams_ring-1 GENERATE
+        serial_10G_tx_ring_arr(i) <= i_serial_10G_tx_qsfp_ring_arr(i+c_nof_streams_qsfp);
+      i_serial_10G_rx_qsfp_ring_arr(i+c_nof_streams_qsfp) <= serial_10G_rx_ring_arr(i);
+    END GENERATE;
+
+    i_RING_RX(0) <= RING_0_RX;
+    i_RING_RX(1) <= RING_1_RX;
+    RING_0_TX <= i_RING_TX(0);
+    RING_1_TX <= i_RING_TX(1);
+
+    u_ring_io : ENTITY unb2_board_lib.unb2_board_ring_io
+    GENERIC MAP (
+      g_nof_ring_bus => c_nof_ring_bus
+    )
+    PORT MAP (
+      serial_tx_arr => serial_10G_tx_ring_arr,
+      serial_rx_arr => serial_10G_rx_ring_arr,
+      RING_RX => i_RING_RX,
+      RING_TX => i_RING_TX
+    );
+
+
+
+
     u_front_led : ENTITY unb2_board_lib.unb2_board_qsfp_leds
     GENERIC MAP (
       g_sim             => g_sim,
diff --git a/boards/uniboard2/designs/unb2_test/tb/python/tc_unb2_test.py b/boards/uniboard2/designs/unb2_test/tb/python/tc_unb2_test.py
index d024aac7cfe5f33daf54f0a64bd799b0e5f30d67..3cbb6ea2b6027b716738182890d8989987c95962 100644
--- a/boards/uniboard2/designs/unb2_test/tb/python/tc_unb2_test.py
+++ b/boards/uniboard2/designs/unb2_test/tb/python/tc_unb2_test.py
@@ -96,7 +96,7 @@ def test_BG_to_DB(tc,io,cmd):
 
     tc.set_section_id('Read - ')
     instanceName=tc.gpString
-    nof_streams=8
+    nof_streams=24
     blocksize=0
     Bg = pi_diag_block_gen.PiDiagBlockGen(tc,io,nofChannels=nof_streams,ramSizePerChannel=blocksize,instanceName=instanceName)
     Bg.write_disable()
diff --git a/boards/uniboard2/designs/unb2_test/tb/vhdl/tb_unb2_test.vhd b/boards/uniboard2/designs/unb2_test/tb/vhdl/tb_unb2_test.vhd
index 5bfc63d655c9dd9232ee2a2e2c0a4da0d608f144..ffcb6b3107a62c05d905d53341e9d5665943cb7f 100644
--- a/boards/uniboard2/designs/unb2_test/tb/vhdl/tb_unb2_test.vhd
+++ b/boards/uniboard2/designs/unb2_test/tb/vhdl/tb_unb2_test.vhd
@@ -206,19 +206,19 @@ BEGIN
       QSFP_0_RX  => si_lpbk_0,
       QSFP_1_TX  => si_lpbk_1,
       QSFP_1_RX  => si_lpbk_1,
---      QSFP_2_TX  => si_lpbk_2,
---      QSFP_2_RX  => si_lpbk_2,
---      QSFP_3_TX  => si_lpbk_3,
---      QSFP_3_RX  => si_lpbk_3,
---      QSFP_4_TX  => si_lpbk_4,
---      QSFP_4_RX  => si_lpbk_4,
---      QSFP_5_TX  => si_lpbk_5,
---      QSFP_5_RX  => si_lpbk_5,
---
---      RING_0_TX  => si_lpbk_6,
---      RING_0_RX  => si_lpbk_6,
---      RING_1_TX  => si_lpbk_7,
---      RING_1_RX  => si_lpbk_7,
+      QSFP_2_TX  => si_lpbk_2,
+      QSFP_2_RX  => si_lpbk_2,
+      QSFP_3_TX  => si_lpbk_3,
+      QSFP_3_RX  => si_lpbk_3,
+      QSFP_4_TX  => si_lpbk_4,
+      QSFP_4_RX  => si_lpbk_4,
+      QSFP_5_TX  => si_lpbk_5,
+      QSFP_5_RX  => si_lpbk_5,
+
+      RING_0_TX  => si_lpbk_6,
+      RING_0_RX  => si_lpbk_6,
+      RING_1_TX  => si_lpbk_7,
+      RING_1_RX  => si_lpbk_7,
 --
 --      BCK_TX     => si_lpbk_8,
 --      BCK_RX     => si_lpbk_8,