diff --git a/applications/rdma_demo/libraries/rdma_packetiser/cocotb/tb_rdma_packetiser.py b/applications/rdma_demo/libraries/rdma_packetiser/cocotb/tb_rdma_packetiser.py
index 95cf9c4124ff7898574fcc145224222e519c3ffc..09b3e7a1ae7377f0a1df14e42731939d9ab9db72 100644
--- a/applications/rdma_demo/libraries/rdma_packetiser/cocotb/tb_rdma_packetiser.py
+++ b/applications/rdma_demo/libraries/rdma_packetiser/cocotb/tb_rdma_packetiser.py
@@ -318,21 +318,25 @@ async def tb_rdma_packetiser(dut):
         dut._log.debug("src_out data = \n%s", hexdump(data))
 
         # Verify icrc        
+        icrc = int.from_bytes(packet[-4:], "big")
+
         # calculation of icrc is done as in:
         # https://github.com/secdev/scapy/blob/master/scapy/contrib/roce.py
-        # ICRC could be calculated using the scapy library (if installed) with the code below. 
-        #   from scapy.layers.l2 import Ether        
-        #   from scapy.contrib.roce import BTH # for compute_icrc function        
-        #   exp_icrc = int.from_bytes(Ether(packet)['BTH'].compute_icrc(None), 'little')        
-        icrc = int.from_bytes(packet[-4:], "big")
-        ones = (0xFF).to_bytes(1, 'little')
-        pseudo_packet = ([ones] * 8 + [packet[14:15]] + 
-                         [ones] + [packet[16:22]] + [ones] +
-                         [packet[23:24]] + [ones] * 2 +
-                         [packet[26:40]] + [ones] * 2 +
-                         [packet[42:46]] + [ones] + [packet[47:-4]]
-        )
-        pseudo_packet = b''.join(pseudo_packet)        
-        exp_icrc = crc32(pseudo_packet) & 0xffffffff
+        # ICRC could be calculated using the scapy library (if installed) with the code below.
+        try:
+            from scapy.layers.l2 import Ether        
+            from scapy.contrib.roce import BTH # for compute_icrc function        
+            Ether(packet).show() # print packet if scapy is installed.
+            exp_icrc = int.from_bytes(Ether(packet)['BTH'].compute_icrc(None), 'little')        
+        except ModuleNotFoundError:
+            ones = (0xFF).to_bytes(1, 'little')
+            pseudo_packet = ([ones] * 8 + [packet[14:15]] + 
+                             [ones] + [packet[16:22]] + [ones] +
+                             [packet[23:24]] + [ones] * 2 +
+                             [packet[26:40]] + [ones] * 2 +
+                             [packet[42:46]] + [ones] + [packet[47:-4]]
+            )
+            pseudo_packet = b''.join(pseudo_packet)
+            exp_icrc = crc32(pseudo_packet) & 0xffffffff
         assert exp_icrc == icrc, (
                 f'ERROR: Wrong ICRC, expected = {hex(exp_icrc)}, actual = {hex(icrc)}')