BMP¶
BGP 监控协议 draft-ietf-grow-bmp-07
- class os_ken.lib.packet.bmp.BMPInitiation(info, type_=4, len_=None, version=3)¶
BMP 初始化消息
属性
描述
版本
版本。此包库定义了 BMP 版本 3
len
长度字段。在编码时忽略。
type
类型字段。为 BMP_MSG_ 常量之一。
info
作为 TLV 编码的一个或多个信息片段
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。
- class os_ken.lib.packet.bmp.BMPMessage(type_, len_=None, version=3)¶
BGP 监控协议消息的基类。
一个实例至少具有以下属性。其中大部分与网络传输中的对应项相同,但采用主机字节顺序。__init__ 按照此顺序接收相应的参数。
属性
描述
版本
版本。此包库定义了 BMP 版本 3
len
长度字段。在编码时忽略。
type
类型字段。为 BMP_MSG_ 常量之一。
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。
- serialize()¶
编码协议头。
此方法仅在编码数据包时使用。
编码协议头。返回一个包含头的字节数组。
payload 是将立即跟随此头的其余数据包。
prev 是外部协议头的 packet_base.PacketBase 子类。如果当前头是外部头,则 prev 为 None。例如,对于 tcp.serialize,prev 是 ipv4 或 ipv6。
- class os_ken.lib.packet.bmp.BMPPeerDownNotification(reason, data, peer_type, is_post_policy, peer_distinguisher, peer_address, peer_as, peer_bgp_id, timestamp, version=3, type_=2, len_=None, is_adj_rib_out=False)¶
BMP 对等体下线通知消息
属性
描述
版本
版本。此包库定义了 BMP 版本 3
len
长度字段。在编码时忽略。
type
类型字段。为 BMP_MSG_ 常量之一。
reason
Reason 指示会话关闭的原因。
data
根据原因而异。
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。
- class os_ken.lib.packet.bmp.BMPPeerMessage(peer_type, is_post_policy, peer_distinguisher, peer_address, peer_as, peer_bgp_id, timestamp, version=3, type_=None, len_=None, is_adj_rib_out=False)¶
带有对等体头部的 BMP 消息
以下 BMP 消息在公共 BMP 头部之后包含对等体头部。
BMP_MSG_TYPE_ROUTE_MONITRING
BMP_MSG_TYPE_STATISTICS_REPORT
BMP_MSG_PEER_UP_NOTIFICATION
属性
描述
版本
版本。此包库定义了 BMP 版本 3
len
长度字段。在编码时忽略。
type
类型字段。为 BMP_MSG_ 常量之一。
peer_type
对等体的类型。
is_post_policy
指示消息反映了策略之后的情况
is_adj_rib_out
指示消息反映 Adj-RIB-Out(默认为 Adj-RIB-In)
peer_distinguisher
用于具有多个实例的 L3VPN 路由器。
peer_address
与 TCP 会话关联的远程 IP 地址。
peer_as
对等体的自治系统编号。
peer_bgp_id
对等体的 BGP 标识符
timestamp
接收到封装的路由的时间。
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。
- class os_ken.lib.packet.bmp.BMPPeerUpNotification(local_address, local_port, remote_port, sent_open_message, received_open_message, peer_type, is_post_policy, peer_distinguisher, peer_address, peer_as, peer_bgp_id, timestamp, version=3, type_=3, len_=None, is_adj_rib_out=False)¶
BMP 对等体上线通知消息
属性
描述
版本
版本。此包库定义了 BMP 版本 3
len
长度字段。在编码时忽略。
type
类型字段。为 BMP_MSG_ 常量之一。
peer_type
对等体的类型。
peer_flags
提供有关对等体的更多信息。
peer_distinguisher
用于具有多个实例的 L3VPN 路由器。
peer_address
与 TCP 会话关联的远程 IP 地址。
peer_as
对等体的自治系统编号。
peer_bgp_id
对等体的 BGP 标识符
timestamp
接收到封装的路由的时间。
local_address
与对等 TCP 会话关联的本地 IP 地址。
local_port
与对等 TCP 会话关联的本地端口号。
remote_port
与对等 TCP 会话关联的远程端口号。
sent_open_message
受监控路由器发送到其对等体的完整 OPEN 消息。
received_open_message
受监控路由器从其对等体接收到的完整 OPEN 消息。
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。
- class os_ken.lib.packet.bmp.BMPRouteMonitoring(bgp_update, peer_type, is_post_policy, peer_distinguisher, peer_address, peer_as, peer_bgp_id, timestamp, version=3, type_=0, len_=None, is_adj_rib_out=False)¶
BMP 路由监控消息
属性
描述
版本
版本。此包库定义了 BMP 版本 3
len
长度字段。在编码时忽略。
type
类型字段。为 BMP_MSG_ 常量之一。
peer_type
对等体的类型。
peer_flags
提供有关对等体的更多信息。
peer_distinguisher
用于具有多个实例的 L3VPN 路由器。
peer_address
与 TCP 会话关联的远程 IP 地址。
peer_as
对等体的自治系统编号。
peer_bgp_id
对等体的 BGP 标识符
timestamp
接收到封装的路由的时间。
bgp_update
BGP 更新 PDU
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。
- class os_ken.lib.packet.bmp.BMPStatisticsReport(stats, peer_type, is_post_policy, peer_distinguisher, peer_address, peer_as, peer_bgp_id, timestamp, version=3, type_=1, len_=None, is_adj_rib_out=False)¶
BMP 统计报告消息
属性
描述
版本
版本。此包库定义了 BMP 版本 3
len
长度字段。在编码时忽略。
type
类型字段。为 BMP_MSG_ 常量之一。
peer_type
对等体的类型。
peer_flags
提供有关对等体的更多信息。
peer_distinguisher
用于具有多个实例的 L3VPN 路由器。
peer_address
与 TCP 会话关联的远程 IP 地址。
peer_as
对等体的自治系统编号。
peer_bgp_id
对等体的 BGP 标识符
timestamp
接收到封装的路由的时间。
stats
统计信息(一个或多个统计信息编码为 TLV)
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。
- class os_ken.lib.packet.bmp.BMPTermination(info, type_=5, len_=None, version=3)¶
BMP 终止消息
属性
描述
版本
版本。此包库定义了 BMP 版本 3
len
长度字段。在编码时忽略。
type
类型字段。为 BMP_MSG_ 常量之一。
info
作为 TLV 编码的一个或多个信息片段
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。