Trait caminos_lib::policies::VirtualChannelPolicy[][src]

pub trait VirtualChannelPolicy {
    fn filter(
        &self,
        candidates: Vec<CandidateEgress>,
        router: &dyn Router,
        info: &RequestInfo<'_>,
        topology: &dyn Topology,
        rng: &RefCell<StdRng>
    ) -> Vec<CandidateEgress>;
fn need_server_ports(&self) -> bool;
fn need_port_average_queue_length(&self) -> bool;
fn need_port_last_transmission(&self) -> bool; }
Expand description

How virtual channels are selected for a packet They provide the function filter(Vec) -> Vec It needs: rng, self.virtual_ports(credits and length), phit.packet.routing_info.borrow().hops, server_ports, topology.{distance,neighbour}, port_average_neighbour_queue_length, port_last_transmission We could also provide functions to declare which aspects must be computed. Thus allowing to both share when necessary and to not computing ti when unnecessary.

Required methods

Apply the policy over a list of candidates and return the candidates that fulfil the policy requirements. candidates: the list to be filtered. router: the router in which the decision is being made. topology: The network topology. rng: the global random number generator.

Implementors