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。

  • 数据包的其余部分。