From 0fc57b99b9163d919cc4a470b3065ab4cf1c947d Mon Sep 17 00:00:00 2001 From: Alex Williams Date: Mon, 5 Aug 2019 21:08:44 -0700 Subject: rfnoc: Use link_stream_manager's mgmt_portal for all mgmt packets Change data transports to use the mgmt_portal from the link_stream_manager. The initialization state of a device's EPIDs needs to be shared amongst all the SEP users. Otherwise, an RX transport may attempt to do a full reset of the SEP while TX is streaming (for example). TODO: The code contained here is not sufficient to handle multiple links that can access the same SEPs, as those would have different link_stream_managers, and thus, different mgmt_portal instances and views of the SEP state. --- host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp') diff --git a/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp b/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp index 3365dcb23..9cf2f305f 100644 --- a/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp +++ b/host/lib/include/uhdlib/rfnoc/chdr_ctrl_xport.hpp @@ -45,8 +45,8 @@ public: size_t num_send_frames, size_t num_recv_frames) { - return std::make_shared(io_srv, send_link, recv_link, my_epid, - num_send_frames, num_recv_frames); + return std::make_shared( + io_srv, send_link, recv_link, my_epid, num_send_frames, num_recv_frames); } /*! @@ -111,6 +111,13 @@ public: */ void release_recv_buff(frame_buff::uptr buff); + /*! + * Get this xport's EPID + * + * \return the source EPID for this transport + */ + sep_id_t get_epid() const; + private: chdr_ctrl_xport(const chdr_ctrl_xport&) = delete; -- cgit v1.2.3