[−][src]Trait caminos_lib::policies::VirtualChannelPolicy
How virtual channels are selected for a packet
They provide the function filter(Vec
Required methods
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
info: &RequestInfo<'_>,
topology: &dyn Topology,
rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
info: &RequestInfo<'_>,
topology: &dyn Topology,
rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
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.
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
Implementors
impl VirtualChannelPolicy for EnforceFlowControl
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for Hops
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for LabelSaturate
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for LabelTransform
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for LowestLabel
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for LowestSinghWeight
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
info: &RequestInfo<'_>,
topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
info: &RequestInfo<'_>,
topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for NegateLabel
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for OccupancyFunction
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
info: &RequestInfo<'_>,
topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
info: &RequestInfo<'_>,
topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for Random
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for Shortest
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
_info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for VecLabel
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
info: &RequestInfo<'_>,
topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
router: &dyn Router,
info: &RequestInfo<'_>,
topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
pub fn need_server_ports(&self) -> bool
[src]
pub fn need_port_average_queue_length(&self) -> bool
[src]
pub fn need_port_last_transmission(&self) -> bool
[src]
impl VirtualChannelPolicy for WideHops
[src]
pub fn filter(
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>
[src]
&self,
candidates: Vec<CandidateEgress>,
_router: &dyn Router,
info: &RequestInfo<'_>,
_topology: &dyn Topology,
_rng: &RefCell<StdRng>
) -> Vec<CandidateEgress>