[][src]Struct caminos_lib::policies::RequestInfo

pub struct RequestInfo<'a> {
    pub target_router_index: usize,
    pub entry_port: usize,
    pub entry_virtual_channel: usize,
    pub performed_hops: usize,
    pub server_ports: Option<&'a Vec<usize>>,
    pub port_average_neighbour_queue_length: Option<&'a Vec<f32>>,
    pub port_last_transmission: Option<&'a Vec<usize>>,
    pub port_occupied_output_space: Option<&'a Vec<usize>>,
    pub port_available_output_space: Option<&'a Vec<usize>>,
    pub virtual_channel_occupied_output_space: Option<&'a Vec<Vec<usize>>>,
    pub virtual_channel_available_output_space: Option<&'a Vec<Vec<usize>>>,
    pub time_at_front: Option<usize>,
    pub current_cycle: usize,
}

Extra information to be used by the policies of virtual channels.

Fields

target_router_index: usize

target_router_index: The index of the router to which the destination server is attached.

entry_port: usize

entry_port: The port for which the packet has entered into the current router.

entry_virtual_channel: usize

entry_virtual_channel: The virtual_channel the packet used when it entered into the current router.

performed_hops: usize

performed_hops: the amount of hops already made by the packet.

server_ports: Option<&'a Vec<usize>>

server_ports: a list of which ports from the current router go to server.

port_average_neighbour_queue_length: Option<&'a Vec<f32>>

port_average_neighbour_queue_length: for each port the average queue length in the queues of the port in the neighbour router.

port_last_transmission: Option<&'a Vec<usize>>

port_last_transmission: a timestamp for each port of the last time that it was used.

port_occupied_output_space: Option<&'a Vec<usize>>

Number of phits currently in the output space of the current router at the indexed port.

port_available_output_space: Option<&'a Vec<usize>>

Number of available phits in the output space of the current router at the indexed port.

virtual_channel_occupied_output_space: Option<&'a Vec<Vec<usize>>>

Number of phits currently in the output space allocated to a virtual channel. Index by [port_index][virtual_channel].

virtual_channel_available_output_space: Option<&'a Vec<Vec<usize>>>

Number of available phits in the output space allocated to a virtual channel. Index by [port_index][virtual_channel].

time_at_front: Option<usize>

Number of cycles at the front of input space,

current_cycle: usize

current_cycle: The current cycle of the simulation.

Auto Trait Implementations

impl<'a> RefUnwindSafe for RequestInfo<'a>

impl<'a> Send for RequestInfo<'a>

impl<'a> Sync for RequestInfo<'a>

impl<'a> Unpin for RequestInfo<'a>

impl<'a> UnwindSafe for RequestInfo<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.