Enum nmstate::MptcpAddressFlag
source · #[non_exhaustive]pub enum MptcpAddressFlag {
Signal,
Subflow,
Backup,
Fullmesh,
}
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Signal
The endpoint will be announced/signaled to each peer via an MPTCP ADD_ADDR sub-option. Upon reception of an ADD_ADDR sub-option, the peer can try to create additional subflows. Cannot used along with MptcpAddressFlag::Fullmesh as Linux kernel enforced.
Subflow
If additional subflow creation is allowed by the MPTCP limits, the MPTCP path manager will try to create an additional subflow using this endpoint as the source address after the MPTCP connection is established.
Backup
If this is a subflow endpoint, the subflows created using this endpoint will have the backup flag set during the connection process. This flag instructs the peer to only send data on a given subflow when all non-backup subflows are unavailable. This does not affect outgoing data, where subflow priority is determined by the backup/non-backup flag received from the peer.
Fullmesh
If this is a subflow endpoint and additional subflow creation is allowed by the MPTCP limits, the MPTCP path manager will try to create an additional subflow for each known peer address, using this endpoint as the source address. This will occur after the MPTCP connection is established. If the peer did not announce any additional addresses using the MPTCP ADD_ADDR sub-option, this will behave the same as a plain subflow endpoint. When the peer does announce addresses, each received ADD_ADDR sub-option will trigger creation of an additional subflow to generate a full mesh topology.
Trait Implementations§
source§impl Clone for MptcpAddressFlag
impl Clone for MptcpAddressFlag
source§fn clone(&self) -> MptcpAddressFlag
fn clone(&self) -> MptcpAddressFlag
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for MptcpAddressFlag
impl Debug for MptcpAddressFlag
source§impl<'de> Deserialize<'de> for MptcpAddressFlag
impl<'de> Deserialize<'de> for MptcpAddressFlag
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Ord for MptcpAddressFlag
impl Ord for MptcpAddressFlag
source§fn cmp(&self, other: &MptcpAddressFlag) -> Ordering
fn cmp(&self, other: &MptcpAddressFlag) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for MptcpAddressFlag
impl PartialEq for MptcpAddressFlag
source§fn eq(&self, other: &MptcpAddressFlag) -> bool
fn eq(&self, other: &MptcpAddressFlag) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for MptcpAddressFlag
impl PartialOrd for MptcpAddressFlag
source§fn partial_cmp(&self, other: &MptcpAddressFlag) -> Option<Ordering>
fn partial_cmp(&self, other: &MptcpAddressFlag) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl Serialize for MptcpAddressFlag
impl Serialize for MptcpAddressFlag
source§impl TryFrom<MptcpAddressFlag> for MptcpAddressFlag
impl TryFrom<MptcpAddressFlag> for MptcpAddressFlag
§type Error = NmstateError
type Error = NmstateError
source§fn try_from(value: MptcpAddressFlag) -> Result<Self, NmstateError>
fn try_from(value: MptcpAddressFlag) -> Result<Self, NmstateError>
impl Copy for MptcpAddressFlag
impl Eq for MptcpAddressFlag
impl StructuralPartialEq for MptcpAddressFlag
Auto Trait Implementations§
impl Freeze for MptcpAddressFlag
impl RefUnwindSafe for MptcpAddressFlag
impl Send for MptcpAddressFlag
impl Sync for MptcpAddressFlag
impl Unpin for MptcpAddressFlag
impl UnwindSafe for MptcpAddressFlag
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.