bgpkit_parser/parser/bmp/messages/
mod.rs

1//! BMP message parsing.
2//!
3//! <https://datatracker.ietf.org/doc/html/rfc7854>
4
5pub use headers::*;
6pub use initiation_message::*;
7pub use peer_down_notification::*;
8pub use peer_up_notification::*;
9pub use route_mirroring::*;
10pub use route_monitoring::*;
11pub use stats_report::*;
12pub use termination_message::*;
13
14pub(crate) mod headers;
15pub(crate) mod initiation_message;
16pub(crate) mod peer_down_notification;
17pub(crate) mod peer_up_notification;
18pub(crate) mod route_mirroring;
19pub(crate) mod route_monitoring;
20pub(crate) mod stats_report;
21pub(crate) mod termination_message;
22
23#[derive(Debug, Clone, PartialEq)]
24#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
25pub struct BmpMessage {
26    pub common_header: BmpCommonHeader,
27    pub per_peer_header: Option<BmpPerPeerHeader>,
28    pub message_body: BmpMessageBody,
29}
30
31#[derive(Debug, Clone, PartialEq)]
32#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
33pub enum BmpMessageBody {
34    PeerUpNotification(PeerUpNotification),
35    PeerDownNotification(PeerDownNotification),
36    InitiationMessage(InitiationMessage),
37    TerminationMessage(TerminationMessage),
38    RouteMonitoring(RouteMonitoring),
39    RouteMirroring(RouteMirroring),
40    StatsReport(StatsReport),
41}