[][src]Enum bgp_rs::attributes::PathAttribute

pub enum PathAttribute {
    ORIGIN(Origin),
    AS_PATH(ASPath),
    NEXT_HOP(IpAddr),
    MULTI_EXIT_DISC(u32),
    LOCAL_PREF(u32),
    ATOMIC_AGGREGATOR,
    AGGREGATOR((u32, Ipv4Addr)),
    COMMUNITY(Vec<u32>),
    ORIGINATOR_ID(u32),
    CLUSTER_LIST(Vec<u32>),
    DPA((u16, u32)),
    ADVERTISER,
    CLUSTER_ID,
    MP_REACH_NLRI(MPReachNLRI),
    MP_UNREACH_NLRI(MPUnreachNLRI),
    EXTENDED_COMMUNITIES(Vec<u64>),
    AS4_PATH(ASPath),
    AS4_AGGREGATOR((u32, Ipv4Addr)),
    SSA,
    CONNECTOR(Ipv4Addr),
    AS_PATHLIMIT((u8, u32)),
    PMSI_TUNNEL((u8, u32, Vec<u8>)),
    TUNNEL_ENCAPSULATION((u16, Vec<u8>)),
    TRAFFIC_ENGINEERING,
    IPV6_SPECIFIC_EXTENDED_COMMUNITY((u8, u8, Ipv6Addr, u16)),
    AIGP((u8, Vec<u8>)),
    PE_DISTINGUISHER_LABELS,
    BGP_LS,
    LARGE_COMMUNITY(Vec<(u32, u32, u32)>),
    BGPSEC_PATH,
    BGP_PREFIX_SID,
    ATTR_SET((u32, Vec<PathAttribute>)),
}

Represents a path attribute that described meta data of a specific route.

Variants

ORIGIN(Origin)

Indicates how an UPDATE message has been generated. Defined in RFC4271.

AS_PATH(ASPath)

Represents the path through which an UPDATE message travelled. Defined in RFC4271.

NEXT_HOP(IpAddr)

Indicates IP address that is to be used as a next hop. Defined in RFC4271.

MULTI_EXIT_DISC(u32)

Used to discriminate between multiple exit or entry points. Defined in RFC4271.

LOCAL_PREF(u32)

Represents the degree of preference for internal routes. Defined in RFC4271.

ATOMIC_AGGREGATOR

May be used when a route has been aggregated. Defined in RFC4271.

AGGREGATOR((u32, Ipv4Addr))

May be used to add information on who aggregated this route. Defined in RFC4271.

COMMUNITY(Vec<u32>)

Enables users to add extra information. Defined in RFC1997.

ORIGINATOR_ID(u32)

Defined in RFC4456.

CLUSTER_LIST(Vec<u32>)

Defined in RFC4456. Holds a list of CLUSTER_IDs.

DPA((u16, u32))

Defined in RFC6938. (deprecated) Tuple represents the (ASN specifying the preference, DPA value).

ADVERTISER

Defined in RFC6938. (deprecated)

CLUSTER_ID

Defined in RFC6938. (deprecated)

MP_REACH_NLRI(MPReachNLRI)

Multi-protocol extensions. Defined in RFC4760.

MP_UNREACH_NLRI(MPUnreachNLRI)

Multi-protocol extensions. Defined in RFC4760.

EXTENDED_COMMUNITIES(Vec<u64>)

Defined in RFC4360.

AS4_PATH(ASPath)

AS_PATH using 32-bit ASN. Defined in RFC6793.

AS4_AGGREGATOR((u32, Ipv4Addr))

AGGREGATOR using 32-bit ASN. Defined in RFC6793.

SSA

SAFI Specific Attribute (deprecated).

CONNECTOR(Ipv4Addr)

Defined in RFC6037. (deprecated)

AS_PATHLIMIT((u8, u32))

Defined here. (deprecated)

PMSI_TUNNEL((u8, u32, Vec<u8>))

Defined in RFC6514. Specifies the (Flags, Tunnel Type + MPLS Label, Tunnel Identifier) fields.

TUNNEL_ENCAPSULATION((u16, Vec<u8>))

Defined in RFC5512. Specifies the (Tunnel Type, Value) fields.

TRAFFIC_ENGINEERING

Defined in RFC5543.

IPV6_SPECIFIC_EXTENDED_COMMUNITY((u8, u8, Ipv6Addr, u16))

Defined in RFC5701. Specifies the (Transitive, Sub-type, Global Administrator, Local Administrator) fields.

AIGP((u8, Vec<u8>))

Defined in RFC7311. Specifies the (Type, Value) fields.

PE_DISTINGUISHER_LABELS

Defined in RFC6514.

BGP_LS

Defined in RFC7752. (deprecated)

LARGE_COMMUNITY(Vec<(u32, u32, u32)>)

Defined in RFC8092.

BGPSEC_PATH

Defined in RFC8205.

BGP_PREFIX_SID

Defined here.

ATTR_SET((u32, Vec<PathAttribute>))

Defined in RFC6368.

Methods

impl PathAttribute[src]

pub fn parse(stream: &mut dyn Read) -> Result<PathAttribute, Error>[src]

Reads a Path Attribute from an object that implements Read.

Panics

This function does not panic.

Errors

Any IO error will be returned while reading from the stream. Behavior is undefined when an ill-formatted stream is provided.

Safety

This function does not make use of unsafe code.

pub fn id(&self) -> Identifier[src]

Retrieve the identifier belonging to this PathAttribute

Trait Implementations

impl Clone for PathAttribute[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for PathAttribute[src]

Auto Trait Implementations

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.