- bool get_bypass_route(routing::NetPoint* src, routing::NetPoint* dst,
- /* OUT */ std::vector<resource::LinkImpl*>& links, double* latency);
+ bool get_bypass_route(const routing::NetPoint* src, const routing::NetPoint* dst,
+ /* OUT */ std::vector<resource::StandardLinkImpl*>& links, double* latency,
+ std::unordered_set<NetZoneImpl*>& netzones);
+
+ /** @brief Get the NetZone that is represented by the netpoint */
+ const NetZoneImpl* get_netzone_recursive(const NetPoint* netpoint) const;
+
+ /** @brief Get the list of LinkImpl* to add in a route, considering split-duplex links and the direction */
+ std::vector<resource::StandardLinkImpl*> get_link_list_impl(const std::vector<s4u::LinkInRoute>& link_list,
+ bool backroute) const;