diff options
Diffstat (limited to 'host/lib/utils')
-rw-r--r-- | host/lib/utils/graph_utils.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/host/lib/utils/graph_utils.cpp b/host/lib/utils/graph_utils.cpp index 89df30e15..aeb71b091 100644 --- a/host/lib/utils/graph_utils.cpp +++ b/host/lib/utils/graph_utils.cpp @@ -87,7 +87,8 @@ std::vector<graph_edge_t> connect_through_blocks(rfnoc_graph::sptr graph, const block_id_t src_blk, const size_t src_port, const block_id_t dst_blk, - const size_t dst_port) + const size_t dst_port, + const bool skip_property_propagation) { // First, create a chain from the source block to a stream endpoint auto block_chain = get_block_chain(graph, src_blk, src_port, true); @@ -136,6 +137,7 @@ std::vector<graph_edge_t> connect_through_blocks(rfnoc_graph::sptr graph, std::string sep_to_dst_id; size_t sep_to_dst_port = 0; bool has_sep_to_dst_connection = false; + bool skip_pp = skip_property_propagation; for (auto edge : block_chain) { if (uhd::rfnoc::block_id_t(edge.dst_blockid).match(uhd::rfnoc::NODE_ID_SEP)) { @@ -149,11 +151,13 @@ std::vector<graph_edge_t> connect_through_blocks(rfnoc_graph::sptr graph, sep_to_dst_port = edge.dst_port; } else { graph->connect( - edge.src_blockid, edge.src_port, edge.dst_blockid, edge.dst_port); + edge.src_blockid, edge.src_port, edge.dst_blockid, edge.dst_port, skip_pp); + skip_pp = false; } } if (has_src_to_sep_connection && has_sep_to_dst_connection) { - graph->connect(src_to_sep_id, src_to_sep_port, sep_to_dst_id, sep_to_dst_port); + graph->connect( + src_to_sep_id, src_to_sep_port, sep_to_dst_id, sep_to_dst_port, skip_pp); } else if (has_src_to_sep_connection != has_sep_to_dst_connection) { const std::string err_msg = "Incomplete path. Only one SEP edge found."; UHD_LOG_TRACE("GRAPH_UTILS", err_msg); |