← Back

Module ethernet

struct MacAddress([u8; 6]);

Source: ethernet.joule:8

fn new(bytes: [u8; 6]) -> Self

Create from bytes

Source: ethernet.joule:12

fn from_string(s: &str) -> Option<Self>

Parse from string (colon or hyphen separated)

Source: ethernet.joule:17

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

Get bytes

Source: ethernet.joule:35

fn is_broadcast(&self) -> bool

Check if broadcast address

Source: ethernet.joule:40

fn is_multicast(&self) -> bool

Check if multicast address

Source: ethernet.joule:45

fn is_local(&self) -> bool

Check if locally administered

Source: ethernet.joule:50

const BROADCAST: MacAddress

Broadcast address

Source: ethernet.joule:55

const ZERO: MacAddress

Zero address

Source: ethernet.joule:58

fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result

Source: ethernet.joule:62

fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result

Source: ethernet.joule:71

enum LinkSpeed

Source: ethernet.joule:78

fn mbps(&self) -> u32

Get speed in Mbps

Source: ethernet.joule:103

fn from_mbps(mbps: u32) -> Self

Create from Mbps value

Source: ethernet.joule:119

enum LinkStatus

Source: ethernet.joule:137

enum Duplex

Source: ethernet.joule:148

struct InterfaceInfo

Source: ethernet.joule:159

struct InterfaceStats

Source: ethernet.joule:184

struct EthernetInterface

Ethernet interface handle

Source: ethernet.joule:208

fn list() -> Result<Vec<InterfaceInfo>, DeviceError>

Source: ethernet.joule:216

fn open(name: &str) -> Result<Self, DeviceError>

Source: ethernet.joule:235

fn info(name: &str) -> Result<Option<InterfaceInfo>, DeviceError>

Source: ethernet.joule:250

fn name(&self) -> &str

Get interface name

Source: ethernet.joule:268

fn link_status(&self) -> Result<LinkStatus, DeviceError>

Source: ethernet.joule:274

fn link_speed(&self) -> Result<LinkSpeed, DeviceError>

Source: ethernet.joule:288

fn mac_address(&self) -> Result<MacAddress, DeviceError>

Source: ethernet.joule:302

fn statistics(&self) -> Result<InterfaceStats, DeviceError>

Source: ethernet.joule:321

fn up(&self) -> Result<(), DeviceError>

Source: ethernet.joule:335

fn down(&self) -> Result<(), DeviceError>

Source: ethernet.joule:349

fn set_mtu(&self, mtu: u32) -> Result<(), DeviceError>

Source: ethernet.joule:363

fn mtu(&self) -> Result<u32, DeviceError>

Source: ethernet.joule:377

fn set_promiscuous(&self, enable: bool) -> Result<(), DeviceError>

Source: ethernet.joule:391

fn wait_link_up(&self, timeout_ms: u32) -> Result<bool, DeviceError>

Source: ethernet.joule:405

fn list_linux_interfaces() -> Result<Vec<InterfaceInfo>, DeviceError>

Source: ethernet.joule:426

fn get_linux_interface_info(name: &str) -> Result<Option<InterfaceInfo>, DeviceError>

Source: ethernet.joule:453

fn get_linux_link_status(name: &str) -> Result<LinkStatus, DeviceError>

Source: ethernet.joule:536

fn get_linux_link_speed_eth(name: &str) -> Result<LinkSpeed, DeviceError>

Source: ethernet.joule:550

fn get_linux_mac(name: &str) -> Result<MacAddress, DeviceError>

Source: ethernet.joule:564

fn get_linux_interface_stats(name: &str) -> Result<InterfaceStats, DeviceError>

Source: ethernet.joule:572

fn get_linux_mtu(name: &str) -> Result<u32, DeviceError>

Source: ethernet.joule:598

fn set_linux_mtu(name: &str, mtu: u32) -> Result<(), DeviceError>

Source: ethernet.joule:606

fn socket(domain: i32, socket_type: i32, protocol: i32) -> i32;

Source: ethernet.joule:608

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: ethernet.joule:609

fn close(fd: i32) -> i32;

Source: ethernet.joule:610

const AF_INET: i32

Source: ethernet.joule:613

const SOCK_DGRAM: i32

Source: ethernet.joule:614

const SIOCSIFMTU: u64

Source: ethernet.joule:615

struct Ifreq

Source: ethernet.joule:618

fn set_linux_if_up(name: &str) -> Result<(), DeviceError>

Source: ethernet.joule:647

fn socket(domain: i32, socket_type: i32, protocol: i32) -> i32;

Source: ethernet.joule:649

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: ethernet.joule:650

fn close(fd: i32) -> i32;

Source: ethernet.joule:651

const AF_INET: i32

Source: ethernet.joule:654

const SOCK_DGRAM: i32

Source: ethernet.joule:655

const SIOCGIFFLAGS: u64

Source: ethernet.joule:656

const SIOCSIFFLAGS: u64

Source: ethernet.joule:657

const IFF_UP: i16

Source: ethernet.joule:658

struct Ifreq

Source: ethernet.joule:661

fn set_linux_if_down(name: &str) -> Result<(), DeviceError>

Source: ethernet.joule:697

fn socket(domain: i32, socket_type: i32, protocol: i32) -> i32;

Source: ethernet.joule:699

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: ethernet.joule:700

fn close(fd: i32) -> i32;

Source: ethernet.joule:701

const AF_INET: i32

Source: ethernet.joule:704

const SOCK_DGRAM: i32

Source: ethernet.joule:705

const SIOCGIFFLAGS: u64

Source: ethernet.joule:706

const SIOCSIFFLAGS: u64

Source: ethernet.joule:707

const IFF_UP: i16

Source: ethernet.joule:708

struct Ifreq

Source: ethernet.joule:711

fn set_linux_promisc(name: &str, enable: bool) -> Result<(), DeviceError>

Source: ethernet.joule:746

fn socket(domain: i32, socket_type: i32, protocol: i32) -> i32;

Source: ethernet.joule:748

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: ethernet.joule:749

fn close(fd: i32) -> i32;

Source: ethernet.joule:750

const AF_INET: i32

Source: ethernet.joule:753

const SOCK_DGRAM: i32

Source: ethernet.joule:754

const SIOCGIFFLAGS: u64

Source: ethernet.joule:755

const SIOCSIFFLAGS: u64

Source: ethernet.joule:756

const IFF_PROMISC: i16

Source: ethernet.joule:757

struct Ifreq

Source: ethernet.joule:760

fn list_macos_interfaces() -> Result<Vec<InterfaceInfo>, DeviceError>

Source: ethernet.joule:801

fn get_macos_interface_info(_name: &str) -> Result<Option<InterfaceInfo>, DeviceError>

Source: ethernet.joule:807

fn get_macos_mac(_name: &str) -> Result<MacAddress, DeviceError>

Source: ethernet.joule:812