aboutsummaryrefslogtreecommitdiffstats
path: root/host/tests/common/chdr_resource/hardcoded_packets.py
diff options
context:
space:
mode:
Diffstat (limited to 'host/tests/common/chdr_resource/hardcoded_packets.py')
-rw-r--r--host/tests/common/chdr_resource/hardcoded_packets.py192
1 files changed, 192 insertions, 0 deletions
diff --git a/host/tests/common/chdr_resource/hardcoded_packets.py b/host/tests/common/chdr_resource/hardcoded_packets.py
new file mode 100644
index 000000000..c79d6f9cb
--- /dev/null
+++ b/host/tests/common/chdr_resource/hardcoded_packets.py
@@ -0,0 +1,192 @@
+#
+# Copyright 2020 Ettus Research, a National Instruments Brand
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+from uhd import chdr
+from chdr_resource import rfnoc_packets_data
+from chdr_resource import rfnoc_packets_ctrl_mgmt
+
+CHDR_W = chdr.ChdrWidth.W64
+
+def make_control_packet0():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.CTRL
+ header.length = 24
+ header.dst_epid = 2
+ payload = chdr.CtrlPayload()
+ payload.src_epid = 1
+ payload.set_data([0])
+ payload.op_code = chdr.CtrlOpCode.READ
+ return chdr.ChdrPacket(CHDR_W, header, payload)
+
+def make_control_packet1():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.CTRL
+ header.length = 24
+ header.dst_epid = 1
+ payload = chdr.CtrlPayload()
+ payload.src_epid = 2
+ payload.is_ack = True
+ payload.set_data([0x12C60100])
+ payload.op_code = chdr.CtrlOpCode.READ
+ return chdr.ChdrPacket(CHDR_W, header, payload)
+
+def make_mgmt_packet0():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.MGMT
+ header.length = 48
+ header.seq_num = 2
+ payload = chdr.MgmtPayload()
+ payload.set_header(1, (1 << 8) | (0 << 0), chdr.ChdrWidth.W64)
+ hop1 = chdr.MgmtHop()
+ hop1.add_op(chdr.MgmtOp(chdr.MgmtOpCode.NOP))
+ payload.add_hop(hop1)
+ hop2 = chdr.MgmtHop()
+ hop2.add_op(chdr.MgmtOp(chdr.MgmtOpCode.INFO_REQ, chdr.MgmtOpNodeInfo(0, 0, 0, 0)))
+ hop2.add_op(chdr.MgmtOp(chdr.MgmtOpCode.RETURN))
+ payload.add_hop(hop2)
+ hop3 = chdr.MgmtHop()
+ hop3.add_op(chdr.MgmtOp(chdr.MgmtOpCode.NOP))
+ payload.add_hop(hop3)
+ return chdr.ChdrPacket(CHDR_W, header, payload)
+
+def make_mgmt_packet1():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.MGMT
+ header.length = 48
+ header.seq_num = 3
+ payload = chdr.MgmtPayload()
+ payload.set_header(1, (1 << 8) | (0 << 0), chdr.ChdrWidth.W64)
+ hop1 = chdr.MgmtHop()
+ hop1.add_op(chdr.MgmtOp(chdr.MgmtOpCode.NOP))
+ payload.add_hop(hop1)
+ hop2 = chdr.MgmtHop()
+ hop2.add_op(chdr.MgmtOp(chdr.MgmtOpCode.CFG_WR_REQ, chdr.MgmtOpCfg(0x1, 0x2)))
+ hop2.add_op(chdr.MgmtOp(chdr.MgmtOpCode.RETURN))
+ payload.add_hop(hop2)
+ hop3 = chdr.MgmtHop()
+ hop3.add_op(chdr.MgmtOp(chdr.MgmtOpCode.NOP))
+ payload.add_hop(hop3)
+ return chdr.ChdrPacket(CHDR_W, header, payload)
+
+def make_mgmt_packet2():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.MGMT
+ header.length = 56
+ header.seq_num = 6
+ payload = chdr.MgmtPayload()
+ payload.set_header(1, (1 << 8) | (0 << 0), chdr.ChdrWidth.W64)
+ hop1 = chdr.MgmtHop()
+ hop1.add_op(chdr.MgmtOp(chdr.MgmtOpCode.NOP))
+ payload.add_hop(hop1)
+ hop2 = chdr.MgmtHop()
+ hop2.add_op(chdr.MgmtOp(chdr.MgmtOpCode.SEL_DEST, chdr.MgmtOpSelDest(3)))
+ payload.add_hop(hop2)
+ hop3 = chdr.MgmtHop()
+ hop3.add_op(chdr.MgmtOp(chdr.MgmtOpCode.INFO_REQ, 0))
+ hop3.add_op(chdr.MgmtOp(chdr.MgmtOpCode.RETURN, 0))
+ payload.add_hop(hop3)
+ hop4 = chdr.MgmtHop()
+ hop4.add_op(chdr.MgmtOp(chdr.MgmtOpCode.NOP, 0))
+ payload.add_hop(hop4)
+ return chdr.ChdrPacket(CHDR_W, header, payload)
+
+def make_strs_packet0():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.STRS
+ header.length = 40
+ header.dst_epid = 2
+ payload = chdr.StrsPayload()
+ payload.capacity_bytes = 163840
+ payload.src_epid = 3
+ payload.capacity_pkts = 16777215
+ return chdr.ChdrPacket(CHDR_W, header, payload)
+
+def make_strs_packet1():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.STRS
+ header.length = 40
+ header.dst_epid = 2
+ payload = chdr.StrsPayload()
+ payload.capacity_bytes = 163840
+ payload.src_epid = 3
+ payload.xfer_count_pkts = 1
+ payload.capacity_pkts = 16777215
+ payload.xfer_count_bytes = 8000
+ return chdr.ChdrPacket(CHDR_W, header, payload)
+
+def make_strc_packet0():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.STRC
+ header.length = 24
+ header.dst_epid = 3
+ payload = chdr.StrcPayload()
+ payload.num_pkts = 16777215
+ payload.op_code = chdr.StrcOpCode.INIT
+ payload.src_epid = 2
+ payload.num_bytes = 5120
+ return chdr.ChdrPacket(CHDR_W, header, payload)
+
+def make_strc_packet1():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.STRC
+ header.length = 24
+ header.dst_epid = 3
+ payload = chdr.StrcPayload()
+ payload.num_pkts = 21
+ payload.op_code = chdr.StrcOpCode.RESYNC
+ payload.src_epid = 2
+ payload.num_bytes = 168000
+ return chdr.ChdrPacket(CHDR_W, header, payload)
+
+def make_data_packet0():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.DATA_WITH_TS
+ header.length = 8000
+ header.dst_epid = 3
+ header.seq_num = 1
+ timestamp = 0x7C40C83
+ data_src = rfnoc_packets_data.peer1_9
+ data = bytes(data_src[(2 * 8):])
+ return chdr.ChdrPacket(CHDR_W, header, data, timestamp)
+
+def make_data_packet1():
+ header = chdr.ChdrHeader()
+ header.pkt_type = chdr.PacketType.DATA_WITH_TS
+ header.length = 4252
+ header.dst_epid = 3
+ header.eob = True
+ header.seq_num = 1716
+ timestamp = 0x21452B97
+ data_src = rfnoc_packets_data.eob_packet
+ data = bytes(data_src[(2 * 8):])
+ return chdr.ChdrPacket(CHDR_W, header, data, timestamp)
+
+packets = [
+ (make_control_packet0(), rfnoc_packets_ctrl_mgmt.peer0_19),
+ (make_control_packet1(), rfnoc_packets_ctrl_mgmt.peer1_17),
+ (make_mgmt_packet0(), rfnoc_packets_ctrl_mgmt.peer0_2),
+ (make_mgmt_packet1(), rfnoc_packets_ctrl_mgmt.peer0_3),
+ (make_mgmt_packet2(), rfnoc_packets_ctrl_mgmt.peer0_6),
+ (make_strs_packet0(), rfnoc_packets_data.peer0_5),
+ (make_strs_packet1(), rfnoc_packets_data.peer0_8),
+ (make_strc_packet0(), rfnoc_packets_data.peer1_5),
+ (make_strc_packet1(), rfnoc_packets_data.peer1_29),
+ (make_data_packet0(), rfnoc_packets_data.peer1_9),
+ (make_data_packet1(), rfnoc_packets_data.eob_packet)
+]
+
+names = [
+ "Control_Packet_0",
+ "Control_Packet_1",
+ "Management_Packet_0",
+ "Management_Packet_1",
+ "Management_Packet_2",
+ "Stream_Status_Packet_0",
+ "Stream_Status_Packet_1",
+ "Stream_Command_Packet_0",
+ "Stream_Command_Packet_1",
+ "Data_Packet_0",
+ "Data_Packet_1"
+]