Skip to main content

RouterPort

Struct RouterPort 

Source
pub struct RouterPort<T: TransportPort = AnyTransport> {
    pub transport: T,
    pub network_number: u16,
}
Expand description

A router port: a transport bound to a specific BACnet network number.

BACnetRouter::start calls TransportPort::prepare_for_routing on each port’s transport before it starts it, so an MS/TP port takes and sends extended frames whatever its MstpConfig says: Clause 9.3 requires them of a routing node. Once the transport has started, it reads TransportPort::max_npdu, and answers an NPDU too long for the port with reject reason 4 (#1665). It follows the limit’s changes after that, for a transport that publishes them (TransportPort::max_npdu_changes, #1696).

T defaults to AnyTransport, so RouterPort alone names a port of a router that mixes link types; RouterPort<BipTransport> and the like name one of a router whose ports share a concrete transport.

Fields§

§transport: T

The transport for this port.

§network_number: u16

The network number assigned to this port: 1 to 65534. BACnetRouter::start refuses 0, which is no network, and 0xFFFF, the global broadcast DNET, which can’t be the SNET the router puts in what it relays from the port (Clause 6.2.2.1).

Auto Trait Implementations§

§

impl<T> Freeze for RouterPort<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for RouterPort<T>
where T: RefUnwindSafe,

§

impl<T> Send for RouterPort<T>

§

impl<T> Sync for RouterPort<T>

§

impl<T> Unpin for RouterPort<T>
where T: Unpin,

§

impl<T> UnsafeUnpin for RouterPort<T>
where T: UnsafeUnpin,

§

impl<T> UnwindSafe for RouterPort<T>
where T: UnwindSafe,

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more