Skip to main content

RouterSideOptions

Struct RouterSideOptions 

Source
pub struct RouterSideOptions {
    pub reliable_enabled: bool,
    pub link_local_enabled: bool,
    pub header_template_enabled: bool,
    pub max_frame_bytes: usize,
    pub compact_header_target_bytes: usize,
    pub max_side_transport_templates: usize,
    pub omit_unchanged_compact_timestamps: bool,
    pub compact_timestamp_omission_types: CompactTimestampOmissionPolicy,
    pub side_transport_profile: SideTransportProfile,
    pub ingress_enabled: bool,
    pub egress_enabled: bool,
}

Fields§

§reliable_enabled: bool

Enables the router’s per-link reliable transport layer on this side.

When true and the side uses a packed TX handler, reliable schema types gain sequence numbers, ACKs, packet requests, and retransmits on this specific hop. When false, the router strips the reliable framing for that side and sends only the application packet payload once.

This setting only affects the hop between this router and the side’s TX callback. It does not change whether a schema DataType is defined as reliable, and it does not disable the router’s end-to-end reliable tracking for packets originated elsewhere in the network.

§link_local_enabled: bool

Marks the side as eligible for link-local-only endpoints and discovery routes.

§header_template_enabled: bool

Enables a side-local header-template dictionary for packed transport.

The first frame for a stable header shape is sent in full. Later frames on the same side can replace the repeated static header bytes with a compact template hash plus only the fields that still vary packet to packet.

§max_frame_bytes: usize

Maximum number of bytes to emit per packed TX callback.

When non-zero and a wrapped packed frame would exceed this size, the router splits it into ordered chunks and reassembles those chunks on RX before normal packet processing.

§compact_header_target_bytes: usize

Target total side-transport overhead for compact follow-up frames.

This is a profiling/negotiation target rather than a hard limit. The canonical packet is still reconstructed before normal router handling, so constrained links should watch runtime stats to confirm compact frames are meeting their IPv4/IPv6-like overhead budget.

§max_side_transport_templates: usize

Maximum side-local header templates retained for TX and RX dictionaries.

This keeps compact-link state bounded. When the dictionary is full, the oldest deterministic entry is evicted and a later packet with that shape will refresh the receiver with a full template frame.

§omit_unchanged_compact_timestamps: bool

Omits the timestamp field from compact follow-up frames when it is unchanged.

The receiver reconstructs the canonical packet from the previous timestamp for that side-local template. This is only used after a full or compact frame has established timestamp context.

§compact_timestamp_omission_types: CompactTimestampOmissionPolicy

Optional per-data-type timestamp omission policy for compact follow-up frames.

This allows a side to omit unchanged timestamps only for selected traffic while keeping absolute/delta timestamps for other data types on the same link.

§side_transport_profile: SideTransportProfile

Declared compact-link profile for stats and future negotiation.

§ingress_enabled: bool

Allows packets received from this side to enter router processing.

§egress_enabled: bool

Allows the router to transmit packets toward this side.

Implementations§

Source§

impl RouterSideOptions

Source

pub fn with_small_packet_transport(self, max_frame_bytes: usize) -> Self

Convenience preset for compact packed-side transport.

This enables header-template reuse and, when max_frame_bytes > 0, router-managed chunking/reassembly for fixed-size transports.

Source

pub fn with_ipv4_like_compact_header_target(self) -> Self

Source

pub fn with_ipv6_like_compact_header_target(self) -> Self

Source

pub fn with_template_transport(self) -> Self

Source

pub fn with_omitted_unchanged_compact_timestamps(self) -> Self

Source

pub fn with_omitted_unchanged_compact_timestamps_for_type( self, ty: DataType, ) -> Self

Source

pub fn effective_transport_profile(self) -> SideTransportProfile

Trait Implementations§

Source§

impl Clone for RouterSideOptions

Source§

fn clone(&self) -> RouterSideOptions

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for RouterSideOptions

Source§

impl Debug for RouterSideOptions

Source§

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

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

impl Default for RouterSideOptions

Source§

fn default() -> Self

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

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.