diff --git a/libraries/base/reorder/src/vhdl/reorder_pkg.vhd b/libraries/base/reorder/src/vhdl/reorder_pkg.vhd
index 80136add774ed7aa11555f523ede39a27e7183f6..0921c3ce26555a41c0403267e463aa528231100e 100644
--- a/libraries/base/reorder/src/vhdl/reorder_pkg.vhd
+++ b/libraries/base/reorder/src/vhdl/reorder_pkg.vhd
@@ -77,6 +77,10 @@ package reorder_pkg is
     (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
   );
 
+  -----------------------------------------------------------------------------
+  -- Reorder transpose
+  -----------------------------------------------------------------------------
+
   -- Block and data counters to derive select_copi.address for transpose
   -- reording between nof_blocks_per_packet and nof_data_per_block.
   type t_reorder_transpose is record
@@ -96,6 +100,24 @@ package reorder_pkg is
                                   transpose             : t_reorder_transpose)
                                   return t_reorder_transpose;
 
+  -----------------------------------------------------------------------------
+  -- Reorder identity
+  -- . so no reordering, same out as in, but delayed due to dual page
+  --   buffering of reorder
+  -----------------------------------------------------------------------------
+
+  -- Pass on input to output in same order.
+  type t_reorder_identity is record
+    select_copi : t_mem_copi;
+    addr        : natural;
+  end record;
+
+  constant c_reorder_identity_rst : t_reorder_identity := (c_mem_copi_rst, 0);
+
+  function func_reorder_identity(nof_ch_per_packet : natural;
+                                 identity          : t_reorder_identity)
+                                 return t_reorder_identity;
+
 end reorder_pkg;
 
 package body reorder_pkg is
@@ -167,4 +189,22 @@ package body reorder_pkg is
     return v;
   end;
 
+  function func_reorder_identity(nof_ch_per_packet : natural;
+                                 identity          : t_reorder_identity)
+                                 return t_reorder_identity is
+    variable v : t_reorder_identity;
+  begin
+    v := identity;
+    -- read at current address
+    v.select_copi.address := TO_MEM_ADDRESS(v.addr);
+    v.select_copi.rd := '1';
+     -- prepare next read address
+    if v.addr < nof_ch_per_packet - 1 then
+      v.addr := v.addr + 1;
+    else
+      v.addr := 0;
+    end if;
+    return v;
+  end;
+
 end reorder_pkg;