⚠️ VeridianOS Kernel Documentation - This is low-level kernel code. All functions are unsafe unless explicitly marked otherwise. no_std

VlanManager

Struct VlanManager 

Source
pub struct VlanManager { /* private fields */ }
Expand description

Manages VLAN interfaces across all network devices.

Implementations§

Source§

impl VlanManager

Source

pub fn new() -> Self

Create a new empty VLAN manager.

Source

pub fn create_vlan( &mut self, parent: &str, vid: u16, mode: VlanMode, ) -> Result<(), VlanError>

Create a VLAN interface on the given parent device.

Source

pub fn delete_vlan(&mut self, parent: &str, vid: u16) -> Result<(), VlanError>

Delete a VLAN interface.

Source

pub fn list_vlans(&self) -> Vec<VlanInterface>

List all configured VLAN interfaces.

Source

pub fn process_ingress( &self, parent: &str, frame: &[u8], ) -> Option<(u16, Vec<u8>)>

Process an incoming (ingress) frame on a parent device.

Returns Some((vid, untagged_frame)) if the frame should be accepted, or None if it should be dropped.

Source

pub fn process_egress(&self, parent: &str, vid: u16, frame: &[u8]) -> Vec<u8>

Process an outgoing (egress) frame for a given VLAN on a parent device.

For access ports the frame is sent untagged (already stripped). For trunk ports the frame is sent with an 802.1Q tag.

Trait Implementations§

Source§

impl Debug for VlanManager

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for VlanManager

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for VlanManager

§

impl RefUnwindSafe for VlanManager

§

impl Send for VlanManager

§

impl Sync for VlanManager

§

impl Unpin for VlanManager

§

impl UnwindSafe for VlanManager

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.