SimGrid  3.21
Versatile Simulation of Distributed Systems
simgrid::kernel::routing::RoutedZone Class Reference

Detailed Description

NetZone with an explicit routing (abstract class)

This abstract class factorizes code between its subclasses: Full, Dijkstra and Floyd.

Comparison of the RoutedZone subclasses
DijkstraZoneFloydZoneFullZone
Platform-file content Only 1-hop routes (rather small) Only 1-hop routes (rather small) Every path, explicitly (very large)
Initialization time Almost nothing Floyd-Warshall algorithm: O(n^3) Almost nothing
Memory usage 1-hop routes (+ cache of routes) O(n^2) data (intermediate) O(n^2) + sum of path lengths (very large)
Lookup time Dijkstra Algo: O(n^3) not much (reconstruction phase) Almost nothing
Expressiveness Only shortest path Only shortest path Everything

#include <RoutedZone.hpp>

Inherits simgrid::kernel::routing::NetZoneImpl.

Inherited by simgrid::kernel::routing::DijkstraZone, simgrid::kernel::routing::FloydZone, and simgrid::kernel::routing::FullZone.

Public Member Functions

 RoutedZone (NetZoneImpl *father, std::string name, resource::NetworkModel *netmodel)
 
void get_graph (xbt_graph_t graph, std::map< std::string, xbt_node_t > *nodes, std::map< std::string, xbt_edge_t > *edges) override
 
- Public Member Functions inherited from simgrid::kernel::routing::NetZoneImpl
s4u::NetZoneget_iface ()
 
simgrid::s4u::Hostcreate_host (const char *name, std::vector< double > *speed_per_pstate, int core_count, std::map< std::string, std::string > *props)
 Make an host within that NetZone. More...
 
virtual void add_bypass_route (NetPoint *src, NetPoint *dst, NetPoint *gw_src, NetPoint *gw_dst, std::vector< resource::LinkImpl *> &link_list, bool symmetrical)
 Creates a new route in this NetZone. More...
 
virtual void seal ()
 Seal your netzone once you're done adding content, and before routing stuff through it. More...
 
virtual int add_component (kernel::routing::NetPoint *elm)
 
virtual void add_route (kernel::routing::NetPoint *src, kernel::routing::NetPoint *dst, kernel::routing::NetPoint *gw_src, kernel::routing::NetPoint *gw_dst, std::vector< kernel::resource::LinkImpl *> &link_list, bool symmetrical)
 
unsigned int get_table_size ()
 
std::vector< kernel::routing::NetPoint * > get_vertices ()
 
NetZoneImplget_father ()
 
std::vector< NetZoneImpl * > * get_children ()
 
const std::string & get_name () const
 Retrieves the name of that netzone as a C++ string. More...
 
const char * get_cname () const
 Retrieves the name of that netzone as a C string. More...
 
std::vector< s4u::Host * > get_all_hosts ()
 
int get_host_count ()
 

Protected Member Functions

virtual RouteCreationArgs * new_extended_route (RoutingMode hierarchy, NetPoint *src, NetPoint *dst, NetPoint *gw_src, NetPoint *gw_dst, std::vector< resource::LinkImpl *> &link_list, bool symmetrical, bool change_order)
 
void get_route_check_params (NetPoint *src, NetPoint *dst)
 
void add_route_check_params (NetPoint *src, NetPoint *dst, NetPoint *gw_src, NetPoint *gw_dst, std::vector< resource::LinkImpl *> &link_list, bool symmetrical)
 
virtual RouteCreationArgs * newExtendedRoute (RoutingMode hierarchy, NetPoint *src, NetPoint *dst, NetPoint *gw_src, NetPoint *gw_dst, std::vector< resource::LinkImpl *> &link_list, bool symmetrical, bool change_order)
 
void getRouteCheckParams (NetPoint *src, NetPoint *dst)
 
void addRouteCheckParams (NetPoint *src, NetPoint *dst, NetPoint *gw_src, NetPoint *gw_dst, std::vector< resource::LinkImpl *> &link_list, bool symmetrical)
 
- Protected Member Functions inherited from simgrid::kernel::routing::NetZoneImpl
 NetZoneImpl (NetZoneImpl *father, std::string name, resource::NetworkModel *network_model)
 
virtual ~NetZoneImpl ()
 
virtual void get_local_route (NetPoint *src, NetPoint *dst, RouteCreationArgs *into, double *latency)=0
 Probe the routing path between two points that are local to the called NetZone. More...
 
bool get_bypass_route (routing::NetPoint *src, routing::NetPoint *dst, std::vector< resource::LinkImpl *> &links, double *latency)
 retrieves the list of all routes of size 1 (of type src x dst x Link) More...
 

Additional Inherited Members

- Public Types inherited from simgrid::kernel::routing::NetZoneImpl
enum  RoutingMode { RoutingMode::unset = 0, RoutingMode::base, RoutingMode::recursive }
 
- Static Public Member Functions inherited from simgrid::kernel::routing::NetZoneImpl
static void get_global_route (routing::NetPoint *src, routing::NetPoint *dst, std::vector< resource::LinkImpl *> &links, double *latency)
 
- Public Attributes inherited from simgrid::kernel::routing::NetZoneImpl
resource::NetworkModel * network_model_
 
RoutingMode hierarchy_ = RoutingMode::unset
 

Constructor & Destructor Documentation

◆ RoutedZone()

simgrid::kernel::routing::RoutedZone::RoutedZone ( NetZoneImpl father,
std::string  name,
resource::NetworkModel *  netmodel 
)
explicit

Member Function Documentation

◆ get_graph()

void simgrid::kernel::routing::RoutedZone::get_graph ( xbt_graph_t  graph,
std::map< std::string, xbt_node_t > *  nodes,
std::map< std::string, xbt_edge_t > *  edges 
)
overridevirtual

◆ new_extended_route()

virtual RouteCreationArgs* simgrid::kernel::routing::RoutedZone::new_extended_route ( RoutingMode  hierarchy,
NetPoint src,
NetPoint dst,
NetPoint gw_src,
NetPoint gw_dst,
std::vector< resource::LinkImpl *> &  link_list,
bool  symmetrical,
bool  change_order 
)
protectedvirtual

◆ get_route_check_params()

void simgrid::kernel::routing::RoutedZone::get_route_check_params ( NetPoint src,
NetPoint dst 
)
protected

◆ add_route_check_params()

void simgrid::kernel::routing::RoutedZone::add_route_check_params ( NetPoint src,
NetPoint dst,
NetPoint gw_src,
NetPoint gw_dst,
std::vector< resource::LinkImpl *> &  link_list,
bool  symmetrical 
)
protected

◆ newExtendedRoute()

virtual RouteCreationArgs* simgrid::kernel::routing::RoutedZone::newExtendedRoute ( RoutingMode  hierarchy,
NetPoint src,
NetPoint dst,
NetPoint gw_src,
NetPoint gw_dst,
std::vector< resource::LinkImpl *> &  link_list,
bool  symmetrical,
bool  change_order 
)
inlineprotectedvirtual

◆ getRouteCheckParams()

void simgrid::kernel::routing::RoutedZone::getRouteCheckParams ( NetPoint src,
NetPoint dst 
)
inlineprotected

◆ addRouteCheckParams()

void simgrid::kernel::routing::RoutedZone::addRouteCheckParams ( NetPoint src,
NetPoint dst,
NetPoint gw_src,
NetPoint gw_dst,
std::vector< resource::LinkImpl *> &  link_list,
bool  symmetrical 
)
inlineprotected

The documentation for this class was generated from the following file: