morpheus_network::device

Trait NetworkDevice

Source
pub trait NetworkDevice {
    // Required methods
    fn mac_address(&self) -> [u8; 6];
    fn can_transmit(&self) -> bool;
    fn can_receive(&self) -> bool;
    fn transmit(&mut self, packet: &[u8]) -> Result<()>;
    fn receive(&mut self, buffer: &mut [u8]) -> Result<Option<usize>>;
}
Expand description

Unified network device interface MorpheusX drivers must implement.

Required Methods§

Source

fn mac_address(&self) -> [u8; 6]

MAC address of the interface.

Source

fn can_transmit(&self) -> bool

Whether the device has space to transmit a frame.

Source

fn can_receive(&self) -> bool

Whether the device has a frame ready to read.

Source

fn transmit(&mut self, packet: &[u8]) -> Result<()>

Transmit a frame.

Source

fn receive(&mut self, buffer: &mut [u8]) -> Result<Option<usize>>

Receive a frame into the provided buffer.

Returns Ok(Some(len)) when a frame was read, Ok(None) when no frame is available, or an error on failure.

Implementors§