aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorrobot-rover <sam.obrien@ni.com>2020-06-11 16:34:07 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2020-07-13 15:21:52 -0500
commit22837edfe20feb57c24f2a55edbb65757b3fab6a (patch)
treea7aed19205f2851ab8e32e52093fbbe761ac9e86 /host/lib
parentb0cb065111dc3f40b89bdda76e9bd98f3e70b72e (diff)
downloaduhd-22837edfe20feb57c24f2a55edbb65757b3fab6a.tar.gz
uhd-22837edfe20feb57c24f2a55edbb65757b3fab6a.tar.bz2
uhd-22837edfe20feb57c24f2a55edbb65757b3fab6a.zip
utils: Expose CHDR Types in Public API
This commit exposes uhdlib/rfnoc/chdr_types.hpp in the public includes. Additionally, it takes some types from uhdlib/rfnoc/rfnoc_common.hpp and exposes them publicly in uhd/rfnoc/rfnoc_types.hpp. Finally, one constant is moved from uhdlib/rfnoc/rfnoc_common.hpp to uhd/rfnoc/constants.hpp Signed-off-by: robot-rover <sam.obrien@ni.com>
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp2
-rw-r--r--host/lib/include/uhdlib/rfnoc/chdr_packet_writer.hpp3
-rw-r--r--host/lib/include/uhdlib/rfnoc/chdr_rx_data_xport.hpp2
-rw-r--r--host/lib/include/uhdlib/rfnoc/chdr_tx_data_xport.hpp2
-rw-r--r--host/lib/include/uhdlib/rfnoc/chdr_types.hpp847
-rw-r--r--host/lib/include/uhdlib/rfnoc/ctrlport_endpoint.hpp2
-rw-r--r--host/lib/include/uhdlib/rfnoc/epid_allocator.hpp1
-rw-r--r--host/lib/include/uhdlib/rfnoc/mb_iface.hpp1
-rw-r--r--host/lib/include/uhdlib/rfnoc/mgmt_portal.hpp3
-rw-r--r--host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp25
-rw-r--r--host/lib/rfnoc/chdr_ctrl_endpoint.cpp2
-rw-r--r--host/lib/rfnoc/chdr_ctrl_xport.cpp2
-rw-r--r--host/lib/rfnoc/chdr_rx_data_xport.cpp2
-rw-r--r--host/lib/rfnoc/chdr_tx_data_xport.cpp2
-rw-r--r--host/lib/rfnoc/chdr_types.cpp20
-rw-r--r--host/lib/rfnoc/ctrlport_endpoint.cpp2
-rw-r--r--host/lib/usrp/x300/x300_impl.hpp2
17 files changed, 27 insertions, 893 deletions
diff --git a/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp b/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp
index 471a7bc11..38acd7a34 100644
--- a/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp
+++ b/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp
@@ -6,8 +6,8 @@
#pragma once
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/chdr_packet_writer.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <uhdlib/transport/io_service.hpp>
#include <mutex>
diff --git a/host/lib/include/uhdlib/rfnoc/chdr_packet_writer.hpp b/host/lib/include/uhdlib/rfnoc/chdr_packet_writer.hpp
index 6f1c264dd..b8d0c9ef4 100644
--- a/host/lib/include/uhdlib/rfnoc/chdr_packet_writer.hpp
+++ b/host/lib/include/uhdlib/rfnoc/chdr_packet_writer.hpp
@@ -6,9 +6,10 @@
#pragma once
+#include <uhd/rfnoc/chdr_types.hpp>
+#include <uhd/rfnoc/constants.hpp>
#include <uhd/types/endianness.hpp>
#include <uhd/utils/byteswap.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <limits>
namespace uhd { namespace rfnoc { namespace chdr {
diff --git a/host/lib/include/uhdlib/rfnoc/chdr_rx_data_xport.hpp b/host/lib/include/uhdlib/rfnoc/chdr_rx_data_xport.hpp
index d041f37c6..d6a2e6628 100644
--- a/host/lib/include/uhdlib/rfnoc/chdr_rx_data_xport.hpp
+++ b/host/lib/include/uhdlib/rfnoc/chdr_rx_data_xport.hpp
@@ -8,8 +8,8 @@
#include <uhd/config.hpp>
#include <uhd/exception.hpp>
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/chdr_packet_writer.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/rfnoc_common.hpp>
#include <uhdlib/rfnoc/rx_flow_ctrl_state.hpp>
#include <uhdlib/transport/io_service.hpp>
diff --git a/host/lib/include/uhdlib/rfnoc/chdr_tx_data_xport.hpp b/host/lib/include/uhdlib/rfnoc/chdr_tx_data_xport.hpp
index 4394adaea..ed008c1db 100644
--- a/host/lib/include/uhdlib/rfnoc/chdr_tx_data_xport.hpp
+++ b/host/lib/include/uhdlib/rfnoc/chdr_tx_data_xport.hpp
@@ -7,10 +7,10 @@
#pragma once
#include <uhd/exception.hpp>
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhd/types/metadata.hpp>
#include <uhd/utils/log.hpp>
#include <uhdlib/rfnoc/chdr_packet_writer.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/rfnoc_common.hpp>
#include <uhdlib/rfnoc/tx_flow_ctrl_state.hpp>
#include <uhdlib/transport/io_service.hpp>
diff --git a/host/lib/include/uhdlib/rfnoc/chdr_types.hpp b/host/lib/include/uhdlib/rfnoc/chdr_types.hpp
deleted file mode 100644
index 3eea40850..000000000
--- a/host/lib/include/uhdlib/rfnoc/chdr_types.hpp
+++ /dev/null
@@ -1,847 +0,0 @@
-//
-// Copyright 2019 Ettus Research, a National Instruments Brand
-//
-// SPDX-License-Identifier: GPL-3.0-or-later
-//
-
-#pragma once
-
-#include <uhd/types/endianness.hpp>
-#include <uhd/utils/byteswap.hpp>
-#include <uhdlib/rfnoc/rfnoc_common.hpp>
-#include <boost/optional.hpp>
-#include <list>
-#include <memory>
-#include <vector>
-
-namespace uhd { namespace rfnoc { namespace chdr {
-
-enum packet_type_t {
- PKT_TYPE_MGMT = 0x0, //! Management packet
- PKT_TYPE_STRS = 0x1, //! Stream status
- PKT_TYPE_STRC = 0x2, //! Stream Command
- PKT_TYPE_CTRL = 0x4, //! Control Transaction
- PKT_TYPE_DATA_NO_TS = 0x6, //! Data Packet without TimeStamp
- PKT_TYPE_DATA_WITH_TS = 0x7, //! Data Packet with TimeStamp
-};
-
-//----------------------------------------------------
-// CHDR Header
-//----------------------------------------------------
-
-class chdr_header
-{
-public: // Functions
- chdr_header() = default;
- chdr_header(const chdr_header& rhs) = default;
- chdr_header(chdr_header&& rhs) = default;
-
- //! Unpack the header from a uint64_t
- chdr_header(uint64_t flat_hdr) : _flat_hdr(flat_hdr) {}
-
- //! Get the virtual channel field (6 bits)
- inline uint8_t get_vc() const
- {
- return get_field<uint8_t>(_flat_hdr, VC_OFFSET, VC_WIDTH);
- }
-
- //! Set the virtual channel field (6 bits)
- inline void set_vc(uint8_t vc)
- {
- _flat_hdr = set_field(_flat_hdr, vc, VC_OFFSET, VC_WIDTH);
- }
-
- //! Get the end-of-burst flag (1 bit)
- inline bool get_eob() const
- {
- return get_field<bool>(_flat_hdr, EOB_OFFSET, EOB_WIDTH);
- }
-
- //! Set the end-of-burst flag (1 bit)
- inline void set_eob(bool eob)
- {
- _flat_hdr = set_field(_flat_hdr, eob, EOB_OFFSET, EOB_WIDTH);
- }
-
- //! Get the end-of-vector flag (1 bit)
- inline bool get_eov() const
- {
- return get_field<bool>(_flat_hdr, EOV_OFFSET, EOV_WIDTH);
- }
-
- //! Set the end-of-vector flag (1 bit)
- inline void set_eov(bool eov)
- {
- _flat_hdr = set_field(_flat_hdr, eov, EOV_OFFSET, EOV_WIDTH);
- }
-
- //! Get the packet type field (3 bits)
- inline packet_type_t get_pkt_type() const
- {
- return get_field<packet_type_t>(_flat_hdr, PKT_TYPE_OFFSET, PKT_TYPE_WIDTH);
- }
-
- //! Set the packet type field (3 bits)
- inline void set_pkt_type(packet_type_t pkt_type)
- {
- _flat_hdr = set_field(_flat_hdr, pkt_type, PKT_TYPE_OFFSET, PKT_TYPE_WIDTH);
- }
-
- //! Get number of metadata words field (5 bits)
- inline uint8_t get_num_mdata() const
- {
- return get_field<uint8_t>(_flat_hdr, NUM_MDATA_OFFSET, NUM_MDATA_WIDTH);
- }
-
- //! Set number of metadata words field (5 bits)
- inline void set_num_mdata(uint8_t num_mdata)
- {
- _flat_hdr = set_field(_flat_hdr, num_mdata, NUM_MDATA_OFFSET, NUM_MDATA_WIDTH);
- }
-
- //! Get the sequence number field (16 bits)
- inline uint16_t get_seq_num() const
- {
- return get_field<uint16_t>(_flat_hdr, SEQ_NUM_OFFSET, SEQ_NUM_WIDTH);
- }
-
- //! Set the sequence number field (16 bits)
- inline void set_seq_num(uint16_t seq_num)
- {
- _flat_hdr = set_field(_flat_hdr, seq_num, SEQ_NUM_OFFSET, SEQ_NUM_WIDTH);
- }
-
- //! Get the packet length field (16 bits)
- inline uint16_t get_length() const
- {
- return get_field<uint16_t>(_flat_hdr, LENGTH_OFFSET, LENGTH_WIDTH);
- }
-
- //! Set the packet length field (16 bits)
- inline void set_length(uint16_t length)
- {
- _flat_hdr = set_field(_flat_hdr, length, LENGTH_OFFSET, LENGTH_WIDTH);
- }
-
- //! Get the destination EPID field (16 bits)
- inline uint16_t get_dst_epid() const
- {
- return get_field<uint16_t>(_flat_hdr, DST_EPID_OFFSET, DST_EPID_WIDTH);
- }
-
- //! Set the destination EPID field (16 bits)
- inline void set_dst_epid(uint16_t dst_epid)
- {
- _flat_hdr = set_field(_flat_hdr, dst_epid, DST_EPID_OFFSET, DST_EPID_WIDTH);
- }
-
- //! Pack the header into a uint64_t
- inline uint64_t pack() const
- {
- return _flat_hdr;
- }
-
- //! Pack the header into a uint64_t as an implicit cast
- inline operator uint64_t() const
- {
- return pack();
- }
-
- //! Comparison operator (==)
- inline bool operator==(const chdr_header& rhs) const
- {
- return _flat_hdr == rhs._flat_hdr;
- }
-
- //! Comparison operator (!=)
- inline bool operator!=(const chdr_header& rhs) const
- {
- return _flat_hdr != rhs._flat_hdr;
- }
-
- //! Assignment operator (=) from a chdr_header
- inline const chdr_header& operator=(const chdr_header& rhs)
- {
- _flat_hdr = rhs._flat_hdr;
- return *this;
- }
-
- //! Assignment operator (=) from a uint64_t
- inline const chdr_header& operator=(const uint64_t& rhs)
- {
- _flat_hdr = rhs;
- return *this;
- }
-
-private:
- // The flattened representation of the header stored in host order
- uint64_t _flat_hdr = 0;
-
- static constexpr size_t VC_WIDTH = 6;
- static constexpr size_t EOB_WIDTH = 1;
- static constexpr size_t EOV_WIDTH = 1;
- static constexpr size_t PKT_TYPE_WIDTH = 3;
- static constexpr size_t NUM_MDATA_WIDTH = 5;
- static constexpr size_t SEQ_NUM_WIDTH = 16;
- static constexpr size_t LENGTH_WIDTH = 16;
- static constexpr size_t DST_EPID_WIDTH = 16;
-
- static constexpr size_t VC_OFFSET = 58;
- static constexpr size_t EOB_OFFSET = 57;
- static constexpr size_t EOV_OFFSET = 56;
- static constexpr size_t PKT_TYPE_OFFSET = 53;
- static constexpr size_t NUM_MDATA_OFFSET = 48;
- static constexpr size_t SEQ_NUM_OFFSET = 32;
- static constexpr size_t LENGTH_OFFSET = 16;
- static constexpr size_t DST_EPID_OFFSET = 0;
-
- static inline uint64_t mask(const size_t width)
- {
- return ((uint64_t(1) << width) - 1);
- }
-
- template <typename field_t>
- static inline field_t get_field(
- const uint64_t flat_hdr, const size_t offset, const size_t width)
- {
- return static_cast<field_t>((flat_hdr >> offset) & mask(width));
- }
-
- template <typename field_t>
- static inline uint64_t set_field(const uint64_t old_val,
- const field_t field,
- const size_t offset,
- const size_t width)
- {
- return (old_val & ~(mask(width) << offset))
- | ((static_cast<uint64_t>(field) & mask(width)) << offset);
- }
-};
-
-
-//----------------------------------------------------
-// CHDR Control Packet Payload
-//----------------------------------------------------
-
-enum ctrl_status_t {
- CMD_OKAY = 0x0, //! Transaction successful
- CMD_CMDERR = 0x1, //! Slave asserted a command error
- CMD_TSERR = 0x2, //! Slave asserted a time stamp error
- CMD_WARNING = 0x3, //! Slave asserted non-critical error
-};
-
-enum ctrl_opcode_t {
- OP_SLEEP = 0x0,
- OP_WRITE = 0x1,
- OP_READ = 0x2,
- OP_READ_WRITE = 0x3,
- OP_BLOCK_WRITE = 0x4,
- OP_BLOCK_READ = 0x5,
- OP_POLL = 0x6,
- OP_USER1 = 0xA,
- OP_USER2 = 0xB,
- OP_USER3 = 0xC,
- OP_USER4 = 0xD,
- OP_USER5 = 0xE,
- OP_USER6 = 0xF,
-};
-
-class ctrl_payload
-{
-public: // Members
- //! Destination port for transaction (10 bits)
- uint16_t dst_port = 0;
- //! Source port for transaction (10 bits)
- uint16_t src_port = 0;
- //! Sequence number (6 bits)
- uint8_t seq_num = 0;
- //! Has Time Flag (1 bit) and timestamp (64 bits)
- boost::optional<uint64_t> timestamp = boost::none;
- //! Is Acknowledgment Flag (1 bit)
- bool is_ack = false;
- //! Source endpoint ID of transaction (16 bits)
- uint16_t src_epid = 0;
- //! Address for transaction (20 bits)
- uint32_t address = 0;
- //! Data for transaction (vector of 32 bits)
- std::vector<uint32_t> data_vtr = {0};
- //! Byte-enable mask for transaction (4 bits)
- uint8_t byte_enable = 0xF;
- //! Operation code (4 bits)
- ctrl_opcode_t op_code = OP_SLEEP;
- //! Transaction status (4 bits)
- ctrl_status_t status = CMD_OKAY;
-
-public: // Functions
- ctrl_payload() = default;
- ctrl_payload(const ctrl_payload& rhs) = default;
- ctrl_payload(ctrl_payload&& rhs) = default;
-
- ctrl_payload& operator=(const ctrl_payload& rhs) = default;
-
- //! Populate the header for this type of packet
- void populate_header(chdr_header& header) const;
-
- //! Serialize the payload to a uint64_t buffer
- size_t serialize(uint64_t* buff,
- size_t max_size_bytes,
- const std::function<uint64_t(uint64_t)>& conv_byte_order) const;
-
- //! Serialize the payload to a uint64_t buffer (no conversion function)
- template <endianness_t endianness>
- size_t serialize(uint64_t* buff, size_t max_size_bytes) const
- {
- auto conv_byte_order = [](uint64_t x) -> uint64_t {
- return (endianness == uhd::ENDIANNESS_BIG) ? uhd::htonx<uint64_t>(x)
- : uhd::htowx<uint64_t>(x);
- };
- return serialize(buff, max_size_bytes, conv_byte_order);
- }
-
- //! Deserialize the payload from a uint64_t buffer
- void deserialize(const uint64_t* buff,
- size_t num_elems,
- const std::function<uint64_t(uint64_t)>& conv_byte_order);
-
- //! Deserialize the payload from a uint64_t buffer (no conversion function)
- template <endianness_t endianness>
- void deserialize(const uint64_t* buff, size_t num_elems)
- {
- auto conv_byte_order = [](uint64_t x) -> uint64_t {
- return (endianness == uhd::ENDIANNESS_BIG) ? uhd::ntohx<uint64_t>(x)
- : uhd::wtohx<uint64_t>(x);
- };
- deserialize(buff, num_elems, conv_byte_order);
- }
-
- // Return whether or not we have a valid timestamp
- bool has_timestamp() const
- {
- return bool(timestamp);
- }
-
- //! Comparison operator (==)
- bool operator==(const ctrl_payload& rhs) const;
-
- //! Comparison operator (!=)
- inline bool operator!=(const ctrl_payload& rhs) const
- {
- return !(*this == rhs);
- }
-
- //! Return a string representation of this object
- const std::string to_string() const;
-
-private:
- static constexpr size_t DST_PORT_WIDTH = 10;
- static constexpr size_t SRC_PORT_WIDTH = 10;
- static constexpr size_t NUM_DATA_WIDTH = 4;
- static constexpr size_t SEQ_NUM_WIDTH = 6;
- static constexpr size_t HAS_TIME_WIDTH = 1;
- static constexpr size_t IS_ACK_WIDTH = 1;
- static constexpr size_t SRC_EPID_WIDTH = 16;
- static constexpr size_t ADDRESS_WIDTH = 20;
- static constexpr size_t BYTE_ENABLE_WIDTH = 4;
- static constexpr size_t OPCODE_WIDTH = 4;
- static constexpr size_t STATUS_WIDTH = 2;
-
- // Offsets assume 64-bit alignment
- static constexpr size_t DST_PORT_OFFSET = 0;
- static constexpr size_t SRC_PORT_OFFSET = 10;
- static constexpr size_t NUM_DATA_OFFSET = 20;
- static constexpr size_t SEQ_NUM_OFFSET = 24;
- static constexpr size_t HAS_TIME_OFFSET = 30;
- static constexpr size_t IS_ACK_OFFSET = 31;
- static constexpr size_t SRC_EPID_OFFSET = 32;
- static constexpr size_t ADDRESS_OFFSET = 0;
- static constexpr size_t BYTE_ENABLE_OFFSET = 20;
- static constexpr size_t OPCODE_OFFSET = 24;
- static constexpr size_t STATUS_OFFSET = 30;
- static constexpr size_t LO_DATA_OFFSET = 0;
- static constexpr size_t HI_DATA_OFFSET = 32;
-};
-
-//----------------------------------------------------
-// CHDR Stream Status Packet Payload
-//----------------------------------------------------
-
-enum strs_status_t {
- STRS_OKAY = 0x0, //! No error
- STRS_CMDERR = 0x1, //! A stream command signalled an error
- STRS_SEQERR = 0x2, //! Packet out of sequence (sequence error)
- STRS_DATAERR = 0x3, //! Data integrity check failed
- STRS_RTERR = 0x4, //! Unexpected destination (routing error)
-};
-
-class strs_payload
-{
-public: // Members
- //! The source EPID for the stream (16 bits)
- uint16_t src_epid = 0;
- //! The status of the stream (4 bits)
- strs_status_t status = STRS_OKAY;
- //! Buffer capacity in bytes (40 bits)
- uint64_t capacity_bytes = 0;
- //! Buffer capacity in packets (24 bits)
- uint32_t capacity_pkts = 0;
- //! Transfer count in bytes (64 bits)
- uint64_t xfer_count_bytes = 0;
- //! Transfer count in packets (40 bits)
- uint64_t xfer_count_pkts = 0;
- //! Buffer info (16 bits)
- uint16_t buff_info = 0;
- //! Extended status info (48 bits)
- uint64_t status_info = 0;
-
-public: // Functions
- strs_payload() = default;
- strs_payload(const strs_payload& rhs) = default;
- strs_payload(strs_payload&& rhs) = default;
-
- strs_payload& operator=(const strs_payload& rhs) = default;
-
- //! Populate the header for this type of packet
- void populate_header(chdr_header& header) const;
-
- //! Serialize the payload to a uint64_t buffer
- size_t serialize(uint64_t* buff,
- size_t max_size_bytes,
- const std::function<uint64_t(uint64_t)>& conv_byte_order) const;
-
- //! Serialize the payload to a uint64_t buffer (no conversion function)
- template <endianness_t endianness>
- size_t serialize(uint64_t* buff, size_t max_size_bytes) const
- {
- auto conv_byte_order = [](uint64_t x) -> uint64_t {
- return (endianness == uhd::ENDIANNESS_BIG) ? uhd::htonx<uint64_t>(x)
- : uhd::htowx<uint64_t>(x);
- };
- return serialize(buff, max_size_bytes, conv_byte_order);
- }
-
- //! Deserialize the payload from a uint64_t buffer
- void deserialize(const uint64_t* buff,
- size_t num_elems,
- const std::function<uint64_t(uint64_t)>& conv_byte_order);
-
- //! Deserialize the payload from a uint64_t buffer (no conversion function)
- template <endianness_t endianness>
- void deserialize(const uint64_t* buff, size_t num_elems)
- {
- auto conv_byte_order = [](uint64_t x) -> uint64_t {
- return (endianness == uhd::ENDIANNESS_BIG) ? uhd::ntohx<uint64_t>(x)
- : uhd::wtohx<uint64_t>(x);
- };
- deserialize(buff, num_elems, conv_byte_order);
- }
-
- //! Comparison operator (==)
- bool operator==(const strs_payload& rhs) const;
-
- //! Comparison operator (!=)
- inline bool operator!=(const strs_payload& rhs) const
- {
- return !(*this == rhs);
- }
-
- //! Return a string representation of this object
- const std::string to_string() const;
-
-private:
- static constexpr size_t SRC_EPID_WIDTH = 16;
- static constexpr size_t STATUS_WIDTH = 4;
- static constexpr size_t CAPACITY_BYTES_WIDTH = 40;
- static constexpr size_t CAPACITY_PKTS_WIDTH = 24;
- static constexpr size_t XFER_COUNT_PKTS_WIDTH = 40;
- static constexpr size_t BUFF_INFO_WIDTH = 16;
- static constexpr size_t STATUS_INFO_WIDTH = 48;
-
- // Offsets assume 64-bit alignment
- static constexpr size_t SRC_EPID_OFFSET = 0;
- static constexpr size_t STATUS_OFFSET = 16;
- static constexpr size_t CAPACITY_BYTES_OFFSET = 24;
- static constexpr size_t CAPACITY_PKTS_OFFSET = 0;
- static constexpr size_t XFER_COUNT_PKTS_OFFSET = 24;
- static constexpr size_t BUFF_INFO_OFFSET = 0;
- static constexpr size_t STATUS_INFO_OFFSET = 16;
-};
-
-//----------------------------------------------------
-// CHDR Stream Command Packet Payload
-//----------------------------------------------------
-
-enum strc_op_code_t {
- STRC_INIT = 0x0, //! Initialize stream
- STRC_PING = 0x1, //! Trigger a stream status response
- STRC_RESYNC = 0x2, //! Re-synchronize flow control
-};
-
-class strc_payload
-{
-public: // Members
- //! The source EPID for the stream (16 bits)
- uint16_t src_epid = 0;
- //! Operation code for the command (4 bits)
- strc_op_code_t op_code = STRC_INIT;
- //! Data associated with the operation (4 bits)
- uint8_t op_data = 0;
- //! Number of packets to use for operation (40 bits)
- uint64_t num_pkts = 0;
- //! Number of bytes to use for operation (64 bits)
- uint64_t num_bytes = 0;
- //! Worst-case size of a strc packet (including header)
- static constexpr size_t MAX_PACKET_SIZE = 128;
-
-public: // Functions
- strc_payload() = default;
- strc_payload(const strc_payload& rhs) = default;
- strc_payload(strc_payload&& rhs) = default;
-
- strc_payload& operator=(const strc_payload& rhs) = default;
-
- //! Populate the header for this type of packet
- void populate_header(chdr_header& header) const;
-
- //! Serialize the payload to a uint64_t buffer
- size_t serialize(uint64_t* buff,
- size_t max_size_bytes,
- const std::function<uint64_t(uint64_t)>& conv_byte_order) const;
-
- //! Serialize the payload to a uint64_t buffer (no conversion function)
- template <endianness_t endianness>
- size_t serialize(uint64_t* buff, size_t max_size_bytes) const
- {
- auto conv_byte_order = [](uint64_t x) -> uint64_t {
- return (endianness == uhd::ENDIANNESS_BIG) ? uhd::htonx<uint64_t>(x)
- : uhd::htowx<uint64_t>(x);
- };
- return serialize(buff, max_size_bytes, conv_byte_order);
- }
-
- //! Deserialize the payload from a uint64_t buffer
- void deserialize(const uint64_t* buff,
- size_t num_elems,
- const std::function<uint64_t(uint64_t)>& conv_byte_order);
-
- //! Deserialize the payload from a uint64_t buffer (no conversion function)
- template <endianness_t endianness>
- void deserialize(const uint64_t* buff, size_t num_elems)
- {
- auto conv_byte_order = [](uint64_t x) -> uint64_t {
- return (endianness == uhd::ENDIANNESS_BIG) ? uhd::ntohx<uint64_t>(x)
- : uhd::wtohx<uint64_t>(x);
- };
- deserialize(buff, num_elems, conv_byte_order);
- }
-
- //! Comparison operator (==)
- bool operator==(const strc_payload& rhs) const;
-
- //! Comparison operator (!=)
- inline bool operator!=(const strc_payload& rhs) const
- {
- return !(*this == rhs);
- }
-
- //! Return a string representation of this object
- const std::string to_string() const;
-
-private:
- static constexpr size_t SRC_EPID_WIDTH = 16;
- static constexpr size_t OP_CODE_WIDTH = 4;
- static constexpr size_t OP_DATA_WIDTH = 4;
- static constexpr size_t NUM_PKTS_WIDTH = 40;
-
- // Offsets assume 64-bit alignment
- static constexpr size_t SRC_EPID_OFFSET = 0;
- static constexpr size_t OP_CODE_OFFSET = 16;
- static constexpr size_t OP_DATA_OFFSET = 20;
- static constexpr size_t NUM_PKTS_OFFSET = 24;
-};
-
-//----------------------------------------------------
-// CHDR Management Packet Payload
-//----------------------------------------------------
-
-//! A class that represents a single management operation
-// An operation consists of an operation code and some
-// payload associated with that operation.
-class mgmt_op_t
-{
-public:
- // Operation code
- enum op_code_t {
- //! Do nothing
- MGMT_OP_NOP = 0,
- //! Advertise this operation to the outside logic
- MGMT_OP_ADVERTISE = 1,
- //! Select the next destination for routing
- MGMT_OP_SEL_DEST = 2,
- //! Return the management packet back to its source
- MGMT_OP_RETURN = 3,
- //! Request information about the current node
- MGMT_OP_INFO_REQ = 4,
- //! A response to an information request
- MGMT_OP_INFO_RESP = 5,
- //! Perform a configuration write on the node
- MGMT_OP_CFG_WR_REQ = 6,
- //! Perform a configuration read on the node
- MGMT_OP_CFG_RD_REQ = 7,
- //! A response to a configuration read
- MGMT_OP_CFG_RD_RESP = 8
- };
-
- //! The payload for an operation is 48 bits wide.
- using payload_t = uint64_t;
-
- //! An interpretation class for the payload for MGMT_OP_SEL_DEST
- struct sel_dest_payload
- {
- const uint16_t dest;
-
- sel_dest_payload(uint16_t dest_) : dest(dest_) {}
- sel_dest_payload(payload_t payload_) : dest(static_cast<uint16_t>(payload_)) {}
- operator payload_t() const
- {
- return static_cast<payload_t>(dest);
- }
- };
-
- //! An interpretation class for the payload for MGMT_OP_CFG_WR_REQ,
- //! MGMT_OP_CFG_RD_REQ and MGMT_OP_CFG_RD_RESP
- struct cfg_payload
- {
- const uint16_t addr;
- const uint32_t data;
-
- cfg_payload(uint16_t addr_, uint32_t data_ = 0) : addr(addr_), data(data_) {}
- cfg_payload(payload_t payload_)
- : addr(static_cast<uint16_t>(payload_ >> 0))
- , data(static_cast<uint32_t>(payload_ >> 16))
- {
- }
- operator payload_t() const
- {
- return ((static_cast<payload_t>(data) << 16) | static_cast<payload_t>(addr));
- }
- };
-
- //! An interpretation class for the payload for MGMT_OP_INFO_RESP
- struct node_info_payload
- {
- const uint16_t device_id;
- const uint8_t node_type;
- const uint16_t node_inst;
- const uint32_t ext_info;
-
- node_info_payload(uint16_t device_id_,
- uint8_t node_type_,
- uint16_t node_inst_,
- uint32_t ext_info_)
- : device_id(device_id_)
- , node_type(node_type_)
- , node_inst(node_inst_)
- , ext_info(ext_info_)
- {
- }
- node_info_payload(payload_t payload_)
- : device_id(static_cast<uint16_t>(payload_ >> 0))
- , node_type(static_cast<uint8_t>((payload_ >> 16) & 0xF))
- , node_inst(static_cast<uint16_t>((payload_ >> 20) & 0x3FF))
- , ext_info(static_cast<uint32_t>((payload_ >> 30) & 0x3FFFF))
- {
- }
- operator payload_t() const
- {
- return ((static_cast<payload_t>(device_id) << 0)
- | (static_cast<payload_t>(node_type & 0xF) << 16)
- | (static_cast<payload_t>(node_inst & 0x3FF) << 20)
- | (static_cast<payload_t>(ext_info & 0x3FFFF) << 30));
- }
- };
-
- mgmt_op_t(const op_code_t op_code, const payload_t op_payload = 0)
- : _op_code(op_code), _op_payload(op_payload)
- {
- }
- mgmt_op_t(const mgmt_op_t& rhs) = default;
-
- //! Get the op-code for this transaction
- inline op_code_t get_op_code() const
- {
- return _op_code;
- }
-
- //! Get the payload for this transaction
- inline uint64_t get_op_payload() const
- {
- return _op_payload;
- }
-
- //! Comparison operator (==)
- inline bool operator==(const mgmt_op_t& rhs) const
- {
- return (_op_code == rhs._op_code) && (_op_payload == rhs._op_payload);
- }
-
-private:
- const op_code_t _op_code;
- const payload_t _op_payload;
-};
-
-//! A class that represents a single management hop
-// A hop is a collection for management transactions for
-// a single node.
-class mgmt_hop_t
-{
-public:
- mgmt_hop_t() = default;
- mgmt_hop_t(const mgmt_hop_t& rhs) = default;
-
- //! Add a management operation to this hop.
- // Operations are added to the hop in FIFO order and executed in FIFO order.
- inline void add_op(const mgmt_op_t& op)
- {
- _ops.push_back(op);
- }
-
- //! Get the number of management operations in this hop
- inline size_t get_num_ops() const
- {
- return _ops.size();
- }
-
- //! Get the n'th operation in the hop
- inline const mgmt_op_t& get_op(size_t i) const
- {
- return _ops.at(i);
- }
-
- //! Serialize the payload to a uint64_t buffer
- // The RFNoC Specification section 2.2.6 specifies that for chdr widths
- // greater than 64, all MSBs are 0, so we pad out the hop based on the width
- size_t serialize(std::vector<uint64_t>& target,
- const std::function<uint64_t(uint64_t)>& conv_byte_order,
- const size_t padding_size) const;
-
- //! Deserialize the payload from a uint64_t buffer
- // The RFNoC Specification section 2.2.6 specifies that for chdr widths
- // greater than 64, all MSBs are 0, so we remove padding based on the width
- void deserialize(std::list<uint64_t>& src,
- const std::function<uint64_t(uint64_t)>& conv_byte_order,
- const size_t padding_size);
-
- //! Comparison operator (==)
- inline bool operator==(const mgmt_hop_t& rhs) const
- {
- return _ops == rhs._ops;
- }
-
-private:
- std::vector<mgmt_op_t> _ops;
-};
-
-//! A class that represents a complete multi-hop management transaction
-// A transaction is a collection of hops, where each hop is a collection
-// of management transactions.
-class mgmt_payload
-{
-public:
- mgmt_payload() = default;
- mgmt_payload(const mgmt_payload& rhs) = default;
- mgmt_payload(mgmt_payload&& rhs) = default;
-
- mgmt_payload& operator=(const mgmt_payload& rhs) = default;
-
- inline void set_header(sep_id_t src_epid, uint16_t protover, chdr_w_t chdr_w)
- {
- _src_epid = src_epid;
- _chdr_w = chdr_w;
- _protover = protover;
- _padding_size = (chdr_w_to_bits(_chdr_w) / 64) - 1;
- }
-
- //! Add a management hop to this transaction
- // Hops are added to the hop in FIFO order and executed in FIFO order.
- inline void add_hop(const mgmt_hop_t& hop)
- {
- _hops.push_back(hop);
- }
-
- //! Get the number of management hops in this hop
- inline size_t get_num_hops() const
- {
- return _hops.size();
- }
-
- //! Get the n'th hop in the transaction
- inline const mgmt_hop_t& get_hop(size_t i) const
- {
- return _hops.at(i);
- }
-
- inline size_t get_size_bytes() const
- {
- size_t num_lines = 1; /* header */
- for (const auto& hop : _hops) {
- num_lines += hop.get_num_ops();
- }
- return num_lines * (chdr_w_to_bits(_chdr_w) / 8);
- }
-
- //! Populate the header for this type of packet
- void populate_header(chdr_header& header) const;
-
- //! Serialize the payload to a uint64_t buffer
- size_t serialize(uint64_t* buff,
- size_t max_size_bytes,
- const std::function<uint64_t(uint64_t)>& conv_byte_order) const;
-
- //! Serialize the payload to a uint64_t buffer (no conversion function)
- template <endianness_t endianness>
- size_t serialize(uint64_t* buff, size_t max_size_bytes) const
- {
- auto conv_byte_order = [](uint64_t x) -> uint64_t {
- return (endianness == uhd::ENDIANNESS_BIG) ? uhd::htonx<uint64_t>(x)
- : uhd::htowx<uint64_t>(x);
- };
- return serialize(buff, max_size_bytes, conv_byte_order);
- }
-
- //! Deserialize the payload from a uint64_t buffer
- void deserialize(const uint64_t* buff,
- size_t num_elems,
- const std::function<uint64_t(uint64_t)>& conv_byte_order);
-
- //! Deserialize the payload from a uint64_t buffer (no conversion function)
- template <endianness_t endianness>
- void deserialize(const uint64_t* buff, size_t num_elems)
- {
- auto conv_byte_order = [](uint64_t x) -> uint64_t {
- return (endianness == uhd::ENDIANNESS_BIG) ? uhd::ntohx<uint64_t>(x)
- : uhd::wtohx<uint64_t>(x);
- };
- deserialize(buff, num_elems, conv_byte_order);
- }
-
- //! Return a string representation of this object
- const std::string to_string() const;
-
- //! Return the source EPID for this transaction
- inline sep_id_t get_src_epid() const
- {
- return _src_epid;
- }
-
- //! Comparison operator (==)
- bool operator==(const mgmt_payload& rhs) const;
-
-private:
- sep_id_t _src_epid = 0;
- uint16_t _protover = 0;
- chdr_w_t _chdr_w = CHDR_W_64;
- std::vector<mgmt_hop_t> _hops;
- size_t _padding_size = 0;
-};
-
-}}} // namespace uhd::rfnoc::chdr
diff --git a/host/lib/include/uhdlib/rfnoc/ctrlport_endpoint.hpp b/host/lib/include/uhdlib/rfnoc/ctrlport_endpoint.hpp
index bf81ededd..ecedd09ca 100644
--- a/host/lib/include/uhdlib/rfnoc/ctrlport_endpoint.hpp
+++ b/host/lib/include/uhdlib/rfnoc/ctrlport_endpoint.hpp
@@ -6,8 +6,8 @@
#pragma once
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhd/rfnoc/register_iface.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/clock_iface.hpp>
#include <memory>
diff --git a/host/lib/include/uhdlib/rfnoc/epid_allocator.hpp b/host/lib/include/uhdlib/rfnoc/epid_allocator.hpp
index 40d761548..6c13157f4 100644
--- a/host/lib/include/uhdlib/rfnoc/epid_allocator.hpp
+++ b/host/lib/include/uhdlib/rfnoc/epid_allocator.hpp
@@ -6,6 +6,7 @@
#pragma once
+#include <uhd/rfnoc/rfnoc_types.hpp>
#include <uhdlib/rfnoc/mgmt_portal.hpp>
#include <uhdlib/rfnoc/rfnoc_common.hpp>
#include <map>
diff --git a/host/lib/include/uhdlib/rfnoc/mb_iface.hpp b/host/lib/include/uhdlib/rfnoc/mb_iface.hpp
index 40bbc7ee4..3752e8b87 100644
--- a/host/lib/include/uhdlib/rfnoc/mb_iface.hpp
+++ b/host/lib/include/uhdlib/rfnoc/mb_iface.hpp
@@ -7,6 +7,7 @@
#pragma once
#include <uhd/exception.hpp>
+#include <uhd/rfnoc/rfnoc_types.hpp>
#include <uhd/transport/adapter_id.hpp>
#include <uhd/types/endianness.hpp>
#include <uhdlib/rfnoc/chdr_ctrl_xport.hpp>
diff --git a/host/lib/include/uhdlib/rfnoc/mgmt_portal.hpp b/host/lib/include/uhdlib/rfnoc/mgmt_portal.hpp
index 223783170..afe438140 100644
--- a/host/lib/include/uhdlib/rfnoc/mgmt_portal.hpp
+++ b/host/lib/include/uhdlib/rfnoc/mgmt_portal.hpp
@@ -6,9 +6,10 @@
#pragma once
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/chdr_ctrl_xport.hpp>
#include <uhdlib/rfnoc/chdr_packet_writer.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
+#include <uhdlib/rfnoc/rfnoc_common.hpp>
#include <memory>
#include <set>
diff --git a/host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp b/host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp
index 9c4944fe2..7b2900832 100644
--- a/host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp
+++ b/host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp
@@ -7,7 +7,7 @@
#pragma once
#include <uhd/rfnoc/defaults.hpp>
-#include <uhdlib/transport/link_if.hpp>
+#include <uhd/rfnoc/rfnoc_types.hpp>
#include <memory>
namespace uhd { namespace rfnoc {
@@ -16,25 +16,6 @@ namespace uhd { namespace rfnoc {
// Types
//----------------------------------------------
-//! Type that indicates the CHDR Width in bits
-enum chdr_w_t { CHDR_W_64 = 0, CHDR_W_128 = 1, CHDR_W_256 = 2, CHDR_W_512 = 3 };
-//! Conversion from chdr_w_t to a number of bits
-constexpr size_t chdr_w_to_bits(chdr_w_t chdr_w)
-{
- switch (chdr_w) {
- case CHDR_W_64:
- return 64;
- case CHDR_W_128:
- return 128;
- case CHDR_W_256:
- return 256;
- case CHDR_W_512:
- return 512;
- default:
- return 0;
- }
-}
-
//! Device ID Type
using device_id_t = uint16_t;
//! Stream Endpoint Instance Number Type
@@ -43,8 +24,6 @@ using sep_inst_t = uint16_t;
using sep_addr_t = std::pair<device_id_t, sep_inst_t>;
//! Stream Endpoint Physical Address Type (first = source, second = destination)
using sep_addr_pair_t = std::pair<sep_addr_t, sep_addr_t>;
-//! Stream Endpoint ID Type
-using sep_id_t = uint16_t;
//! Stream Endpoint pair Type (first = source, second = destination)
using sep_id_pair_t = std::pair<sep_id_t, sep_id_t>;
//! Stream Endpoint Virtual Channel Type
@@ -85,8 +64,6 @@ constexpr sw_buff_t bits_to_sw_buff(size_t bits)
// Constants
//----------------------------------------------
-constexpr uint16_t RFNOC_PROTO_VER = 0x0100;
-
constexpr uint64_t MAX_FC_CAPACITY_BYTES = (uint64_t(1) << 40) - 1;
constexpr uint32_t MAX_FC_CAPACITY_PKTS = (uint32_t(1) << 24) - 1;
constexpr uint64_t MAX_FC_FREQ_BYTES = (uint64_t(1) << 40) - 1;
diff --git a/host/lib/rfnoc/chdr_ctrl_endpoint.cpp b/host/lib/rfnoc/chdr_ctrl_endpoint.cpp
index 3b2865c73..8fe6a8856 100644
--- a/host/lib/rfnoc/chdr_ctrl_endpoint.cpp
+++ b/host/lib/rfnoc/chdr_ctrl_endpoint.cpp
@@ -5,12 +5,12 @@
//
#include <uhd/exception.hpp>
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhd/utils/log.hpp>
#include <uhd/utils/safe_call.hpp>
#include <uhd/utils/thread.hpp>
#include <uhdlib/rfnoc/chdr_ctrl_endpoint.hpp>
#include <uhdlib/rfnoc/chdr_packet_writer.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <boost/format.hpp>
#include <atomic>
#include <mutex>
diff --git a/host/lib/rfnoc/chdr_ctrl_xport.cpp b/host/lib/rfnoc/chdr_ctrl_xport.cpp
index a59d56b30..8946a3b08 100644
--- a/host/lib/rfnoc/chdr_ctrl_xport.cpp
+++ b/host/lib/rfnoc/chdr_ctrl_xport.cpp
@@ -4,9 +4,9 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhd/utils/log.hpp>
#include <uhdlib/rfnoc/chdr_ctrl_xport.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
using namespace uhd;
using namespace uhd::rfnoc;
diff --git a/host/lib/rfnoc/chdr_rx_data_xport.cpp b/host/lib/rfnoc/chdr_rx_data_xport.cpp
index ebfcda2b8..d4476d54f 100644
--- a/host/lib/rfnoc/chdr_rx_data_xport.cpp
+++ b/host/lib/rfnoc/chdr_rx_data_xport.cpp
@@ -4,8 +4,8 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/chdr_rx_data_xport.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/mgmt_portal.hpp>
#include <uhdlib/rfnoc/rfnoc_common.hpp>
#include <uhdlib/transport/io_service.hpp>
diff --git a/host/lib/rfnoc/chdr_tx_data_xport.cpp b/host/lib/rfnoc/chdr_tx_data_xport.cpp
index a51835a07..530da5a47 100644
--- a/host/lib/rfnoc/chdr_tx_data_xport.cpp
+++ b/host/lib/rfnoc/chdr_tx_data_xport.cpp
@@ -4,8 +4,8 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/chdr_tx_data_xport.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/mgmt_portal.hpp>
#include <uhdlib/rfnoc/rfnoc_common.hpp>
#include <uhdlib/transport/io_service.hpp>
diff --git a/host/lib/rfnoc/chdr_types.cpp b/host/lib/rfnoc/chdr_types.cpp
index cb4642f3a..3cb68ff9a 100644
--- a/host/lib/rfnoc/chdr_types.cpp
+++ b/host/lib/rfnoc/chdr_types.cpp
@@ -5,8 +5,8 @@
//
#include <uhd/exception.hpp>
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhd/types/endianness.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <boost/format.hpp>
#include <cassert>
@@ -53,16 +53,16 @@ size_t ctrl_payload::serialize(uint64_t* buff,
buff[ptr++] = conv_byte_order(
((static_cast<uint64_t>(dst_port) & mask_u64(DST_PORT_WIDTH)) << DST_PORT_OFFSET)
| ((static_cast<uint64_t>(src_port) & mask_u64(SRC_PORT_WIDTH))
- << SRC_PORT_OFFSET)
+ << SRC_PORT_OFFSET)
| ((static_cast<uint64_t>(data_vtr.size()) & mask_u64(NUM_DATA_WIDTH))
- << NUM_DATA_OFFSET)
+ << NUM_DATA_OFFSET)
| ((static_cast<uint64_t>(seq_num) & mask_u64(SEQ_NUM_WIDTH)) << SEQ_NUM_OFFSET)
| ((static_cast<uint64_t>(timestamp.is_initialized() ? 1 : 0)
& mask_u64(HAS_TIME_WIDTH))
- << HAS_TIME_OFFSET)
+ << HAS_TIME_OFFSET)
| ((static_cast<uint64_t>(is_ack) & mask_u64(IS_ACK_WIDTH)) << IS_ACK_OFFSET)
| ((static_cast<uint64_t>(src_epid) & mask_u64(SRC_EPID_WIDTH))
- << SRC_EPID_OFFSET));
+ << SRC_EPID_OFFSET));
// Populate optional timestamp
if (timestamp.is_initialized()) {
@@ -73,7 +73,7 @@ size_t ctrl_payload::serialize(uint64_t* buff,
buff[ptr++] = conv_byte_order(
((static_cast<uint64_t>(address) & mask_u64(ADDRESS_WIDTH)) << ADDRESS_OFFSET)
| ((static_cast<uint64_t>(byte_enable) & mask_u64(BYTE_ENABLE_WIDTH))
- << BYTE_ENABLE_OFFSET)
+ << BYTE_ENABLE_OFFSET)
| ((static_cast<uint64_t>(op_code) & mask_u64(OPCODE_WIDTH)) << OPCODE_OFFSET)
| ((static_cast<uint64_t>(status) & mask_u64(STATUS_WIDTH)) << STATUS_OFFSET)
| (static_cast<uint64_t>(data_vtr[0]) << HI_DATA_OFFSET));
@@ -189,14 +189,14 @@ size_t strs_payload::serialize(uint64_t* buff,
((static_cast<uint64_t>(src_epid) & mask_u64(SRC_EPID_WIDTH)) << SRC_EPID_OFFSET)
| ((static_cast<uint64_t>(status) & mask_u64(STATUS_WIDTH)) << STATUS_OFFSET)
| ((static_cast<uint64_t>(capacity_bytes) & mask_u64(CAPACITY_BYTES_WIDTH))
- << CAPACITY_BYTES_OFFSET));
+ << CAPACITY_BYTES_OFFSET));
// Populate second word
buff[1] = conv_byte_order(
((static_cast<uint64_t>(capacity_pkts) & mask_u64(CAPACITY_PKTS_WIDTH))
<< CAPACITY_PKTS_OFFSET)
| ((static_cast<uint64_t>(xfer_count_pkts) & mask_u64(XFER_COUNT_PKTS_WIDTH))
- << XFER_COUNT_PKTS_OFFSET));
+ << XFER_COUNT_PKTS_OFFSET));
// Populate third word
buff[2] = conv_byte_order(xfer_count_bytes);
@@ -206,7 +206,7 @@ size_t strs_payload::serialize(uint64_t* buff,
((static_cast<uint64_t>(buff_info) & mask_u64(BUFF_INFO_WIDTH))
<< BUFF_INFO_OFFSET)
| ((static_cast<uint64_t>(status_info) & mask_u64(STATUS_INFO_WIDTH))
- << STATUS_INFO_OFFSET));
+ << STATUS_INFO_OFFSET));
// Return bytes written
return (4 * sizeof(uint64_t));
@@ -285,7 +285,7 @@ size_t strc_payload::serialize(uint64_t* buff,
| ((static_cast<uint64_t>(op_code) & mask_u64(OP_CODE_WIDTH)) << OP_CODE_OFFSET)
| ((static_cast<uint64_t>(op_data) & mask_u64(OP_DATA_WIDTH)) << OP_DATA_OFFSET)
| ((static_cast<uint64_t>(num_pkts) & mask_u64(NUM_PKTS_WIDTH))
- << NUM_PKTS_OFFSET));
+ << NUM_PKTS_OFFSET));
// Populate second word
buff[1] = conv_byte_order(num_bytes);
diff --git a/host/lib/rfnoc/ctrlport_endpoint.cpp b/host/lib/rfnoc/ctrlport_endpoint.cpp
index 5afb3919e..e4f256d91 100644
--- a/host/lib/rfnoc/ctrlport_endpoint.cpp
+++ b/host/lib/rfnoc/ctrlport_endpoint.cpp
@@ -5,9 +5,9 @@
//
#include <uhd/exception.hpp>
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhd/utils/log.hpp>
#include <uhdlib/rfnoc/chdr_packet_writer.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/ctrlport_endpoint.hpp>
#include <condition_variable>
#include <boost/format.hpp>
diff --git a/host/lib/usrp/x300/x300_impl.hpp b/host/lib/usrp/x300/x300_impl.hpp
index a493d4e8c..c506fcf28 100644
--- a/host/lib/usrp/x300/x300_impl.hpp
+++ b/host/lib/usrp/x300/x300_impl.hpp
@@ -18,12 +18,12 @@
#include "x300_mboard_type.hpp"
#include "x300_regs.hpp"
#include <uhd/property_tree.hpp>
+#include <uhd/rfnoc/chdr_types.hpp>
#include <uhd/types/device_addr.hpp>
#include <uhd/types/sensors.hpp>
#include <uhd/types/wb_iface.hpp>
#include <uhd/usrp/subdev_spec.hpp>
#include <uhd/utils/tasks.hpp>
-#include <uhdlib/rfnoc/chdr_types.hpp>
#include <uhdlib/rfnoc/clock_iface.hpp>
#include <uhdlib/rfnoc/mb_iface.hpp>
#include <uhdlib/rfnoc/mgmt_portal.hpp>