Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
4e96082
BMP intial otg
SouravSinhaRoy Jun 27, 2025
37f2984
Update auto generated content
actions-user Jun 27, 2025
535b0da
bgp server metrics
SouravSinhaRoy Jul 1, 2025
8d051b4
bgp server metrics
SouravSinhaRoy Jul 1, 2025
3614c86
Update auto generated content
actions-user Jul 1, 2025
8314d45
bmp server metrics correction
SouravSinhaRoy Jul 1, 2025
16b8f7a
Update auto generated content
actions-user Jul 1, 2025
a414c3d
bmp prefix
SouravSinhaRoy Jul 1, 2025
687ce66
Update auto generated content
actions-user Jul 1, 2025
3f18b4c
bmp prefix correction
SouravSinhaRoy Jul 1, 2025
0a58fd6
Update auto generated content
actions-user Jul 1, 2025
d2cd603
bmp li
SouravSinhaRoy Jul 1, 2025
20249ed
Update auto generated content
actions-user Jul 1, 2025
1dc2f23
defining max peers per bmp server
SouravSinhaRoy Jul 1, 2025
a88fa28
Update auto generated content
actions-user Jul 1, 2025
d30c379
defining min/max peers per bmp server
SouravSinhaRoy Jul 1, 2025
c0cd0f3
Update auto generated content
actions-user Jul 1, 2025
ee32a10
changing defaults
SouravSinhaRoy Jul 4, 2025
eb086c7
Update auto generated content
actions-user Jul 4, 2025
fd76b5d
adding pre/post policy filters in li
SouravSinhaRoy Jul 4, 2025
b3c121b
Update auto generated content
actions-user Jul 4, 2025
5ce2d83
bmp changes
SouravSinhaRoy Jul 29, 2025
3f1b6eb
Update auto generated content
actions-user Jul 29, 2025
9de8d0f
merge with master
SouravSinhaRoy Jul 29, 2025
a1aff4d
Update auto generated content
actions-user Jul 29, 2025
2f0c6bb
bmp li correction
SouravSinhaRoy Jul 29, 2025
769fa08
Merge branch 'bmp' of https://github.com/open-traffic-generator/model…
SouravSinhaRoy Jul 29, 2025
b0c0954
Update auto generated content
actions-user Jul 29, 2025
70429d9
making server object required for bmp configuration
SouravSinhaRoy Jul 29, 2025
3ba2b85
Merge branch 'bmp' of https://github.com/open-traffic-generator/model…
SouravSinhaRoy Jul 29, 2025
56a0b3c
Update auto generated content
actions-user Jul 29, 2025
2c6a625
Changed get_state structure to include per peer stats and other signi…
apratimmukherjee Aug 14, 2025
c3d6ab9
Update auto generated content
actions-user Aug 14, 2025
1ad796a
Fixed BMP Metrics to return BMP information. Added route state and ne…
apratimmukherjee Aug 14, 2025
038139b
Merge branch 'bmp' of https://github.com/open-traffic-generator/model…
apratimmukherjee Aug 14, 2025
db5ae09
Added BMP metric changes.
apratimmukherjee Aug 14, 2025
455829c
Update auto generated content
actions-user Aug 14, 2025
761b7d8
Changed all reference of Collector to Client + some more descriptions…
apratimmukherjee Aug 15, 2025
a2e8bb2
Update auto generated content
actions-user Aug 15, 2025
6df222e
Changed all references of Monitor to Server which is the more accurat…
apratimmukherjee Aug 15, 2025
724e8fb
Update auto generated content
actions-user Aug 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions artifacts/openapi.html

Large diffs are not rendered by default.

832 changes: 832 additions & 0 deletions artifacts/openapi.yaml

Large diffs are not rendered by default.

597 changes: 597 additions & 0 deletions artifacts/otg.proto

Large diffs are not rendered by default.

177 changes: 177 additions & 0 deletions device/bmp/bmp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
components:
schemas:
Device.Bmp:
description: >-
Top-level container for BGP Monitoring Protocol (BMP) configuration.
BMP, as defined in RFC 7854, provides a mechanism to monitor BGP sessions.
This configuration pertains to the device when acting as a BMP Monitor /server,
listening for connections from BGP speakers (routers) acting as BMP clients.
BMP is unidirectional, meaning the monitoring station only receives information; it doesn't send commands to or control the monitored router.
type: object
properties:
ipv4_interfaces:
description: >-
This contains an array of references to IPv4 interfaces, each of which will have one or more BMP Servers configured, each BMP Server will have a connection to a different monitored router.
type: array
items:
$ref: './bmp.yaml#/components/schemas/Device.Bmp.V4Interface'
x-field-uid: 1
ipv6_interfaces:
description: >-
This contains an array of references to IPv6 interfaces, each of which will have one or more BMP Servers configured, each BMP Server will have a connection to a different monitored router.
type: array
items:
$ref: './bmp.yaml#/components/schemas/Device.Bmp.V6Interface'
x-field-uid: 2

Device.Bmp.V4Interface:
description: >-
Configuration for BMP Servers on a single IPv4 interface.
type: object
required: [ipv4_name, servers]
properties:
ipv4_name:
description: >-
The unique name of the IPv4 interface used as the source IP for the BMP Server.
type: string
x-constraint:
- '/components/schemas/Device.Ipv4/properties/name'
x-field-uid: 1
servers:
description: >-
This contains the configuration of BMP Servers configured on this IPv4 interface.
type: array
items:
$ref: './bmp.yaml#/components/schemas/Device.Bmp.ServerV4'
x-field-uid: 2

Device.Bmp.V6Interface:
description: >-
Configuration for BMP Servers on a single IPv6 interface.
type: object
required: [ipv6_name, servers]
properties:
ipv6_name:
description: >-
The unique name of the IPv6 interface used as the source IP for BMP Server.
type: string
x-constraint:
- '/components/schemas/Device.Ipv6/properties/name'
x-field-uid: 1
servers:
description: >-
This contains the configuration of BMP Servers configured on this IPv6 interface.
type: array
items:
$ref: './bmp.yaml#/components/schemas/Device.Bmp.ServerV6'
x-field-uid: 2

Device.Bmp.ServerV4:
description: >-
Configuration for a BMP Server for a specific IPv4 BMP client.
type: object
required: [name,client_ip]
properties:
client_ip:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't one BMP sever not able to get routing information from multiple BGP Routers?

description: |-
The IPv4 address of the BMP client from which connections will be accepted from or initiated with by this BMP Server.
type: string
format: ipv4
x-field-uid: 1
connection:
description: >-
Optional object containing information about whether the BMP Server should operate in passive or active mode and corresponding information depending on the mode.
$ref: '#/components/schemas/Device.BmpServer.Connection'
x-field-uid: 2
discard_adj_rib:
description: |-
If enabled, discard the BGP route information sent by the remote BMP client in BMP Monitoring messages.
type: boolean
default: false
x-field-uid: 3
name:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It may need to add other properties in this object in future. As the mandatory field it's better to start with the 'name' of the object that's remains at first where other properties are added in future at the end.

x-include: ../../common/common.yaml#/components/schemas/Named.Object/properties/name
x-field-uid: 4

Device.Bmp.ServerV6:
description: >-
Configuration for a BMP Server connected to a specific IPv6 BMP client.
type: object
required: [name,client_ip]
properties:
client_ip:
description: |-
The IPv6 address of the BMP client from which connections will be accepted from or initiated with by this BMP Server.
type: string
format: ipv6
x-field-uid: 1
connection:
description: >-
Optional object containing information about whether the BMP Server should operate in passive or active mode and corresponding information depending on the mode.
x-field-uid: 2
$ref: '#/components/schemas/Device.BmpServer.Connection'
discard_adj_rib:
description: |-
If enabled, discard the BGP route information sent by the remote BMP client in BMP Monitoring messages.
type: boolean
default: false
x-field-uid: 3
name:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above.

x-include: ../../common/common.yaml#/components/schemas/Named.Object/properties/name
x-field-uid: 4

Device.BmpServer.Connection:
description: >-
Container of information about whether the BMP Server should operate in passive or active mode and corresponding information depending on the mode.
type: object
properties:
choice:
type: string
default: passive
x-enum:
passive:
x-field-uid: 1
active:
x-field-uid: 2
x-field-uid: 1
passive:
x-field-uid: 2
$ref: '#/components/schemas/Device.BmpServer.PassiveConnection'
active:
x-field-uid: 3
$ref: '#/components/schemas/Device.BmpServer.ActiveConnection'

Device.BmpServer.PassiveConnection:
description: >-
Container of information when BMP Server is configured in passive mode.
This means that BMP Server will not initiate the TCP connection but wait for the BMP client it is configured to accept connection from
to initiate the connection.
Note that in this case it is required to configure the BMP client in active mode otherwise BMP connection will not be intiated by either end.
type: object
properties:
listen_port:
description: |-
The TCP port number on which to listen for TCP connections from the remote BMP client router.
type: integer
format: uint32
default: 11019
maximum: 65535
x-field-uid: 1

Device.BmpServer.ActiveConnection:
description: >-
Container of information when BMP Server is configured in active mode.
This means that BMP Server will initiate the TCP connection to the remote BMP client .
Note that in this case it is required to configure the BMP client in passive mode for the BMP session to not be rejected from both ends.
type: object
properties:
remote_port:
description: |-
The TCP port number on which to initiate BMP connection to the remote BMP client router.
type: integer
format: uint32
default: 11019
maximum: 65535
x-field-uid: 1


5 changes: 5 additions & 0 deletions device/device.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@ components:
Configuration for RoCEv2.
$ref: './rocev2/rocev2.yaml#/components/schemas/Device.Rocev2Peer'
x-field-uid: 13
bmp:
description: >-
Configuration for BMP.
$ref: './bmp/bmp.yaml#/components/schemas/Device.Bmp'
x-field-uid: 14
required: [name]
Protocol.Options:
description: >-
Expand Down
125 changes: 125 additions & 0 deletions result/bmp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
openapi: 3.0.3
info:
title: BMP results models
version: ^0.0.0
components:
schemas:
BmpServer.Metrics.Request:
description: >-
The request to retrieve per BMP Server metrics/statistics.
type: object
properties:
server_names:
description: >-
The names of BMP Servers to return results for.
An empty list will return results for all BMP Servers.
type: array
items:
type: string
x-constraint:
- "/components/schemas/Device.Bmp.ServerV4/properties/name"
- "/components/schemas/Device.Bmp.ServerV6/properties/name"
x-field-uid: 1
column_names:
description: >-
The list of column names that the returned result set will contain.
If the list is empty then all columns will be returned except for
any result_groups. The name of the BMP Server cannot be excluded.
type: array
items:
type: string
x-enum:
session_state:
x-field-uid: 1
flap_count:
x-field-uid: 2
route_monitoring_messages_received:
x-field-uid: 3
statistics_messages_received:
x-field-uid: 4
peer_down_messages_received:
x-field-uid: 5
peer_up_messages_received:
x-field-uid: 6
initiation_messages_received:
x-field-uid: 7
route_mirroring_messages_received:
x-field-uid: 8
termination_messages_received:
x-field-uid: 9
x-field-uid: 2
BmpServer.Metric:
description: >-
BMP Server statistics information.
type: object
properties:
name:
description: >-
The name of the configured BMP server.
type: string
x-field-uid: 1
session_state:
description: >-
Session state as up or down.
The session goes to 'up' state when a BMP monitored client router sends a Initiation message to the BMP Server.
The session goes to 'down' state when a BMP monitored client router sends a Termination message to the BMP Server or the TCP connection is lost.
On initial start, the state as reported as 'down'.
type: string
x-field-uid: 2
x-enum:
up:
x-field-uid: 1
down:
x-field-uid: 2
flap_count:
description: >-
Number of times the BMP session with the BMP client went from Up to Down state.
type: integer
format: uint64
x-field-uid: 3
route_monitoring_messages_received:
description: >-
Number of BMP Route Monitoring Messages received from the BMP client from the time the BMP session last went to 'up' state.
type: integer
format: uint64
x-field-uid: 4
statistics_messages_received:
description: >-
Number of BMP Route Statistics Messages received from the BMP client from the time the BMP session last went to 'up' state.
type: integer
format: uint64
x-field-uid: 5
peer_down_messages_received:
description: >-
Number of BMP Peer Down Messages received from the BMP client from the time the BMP session last went to 'up' state.
type: integer
format: uint64
x-field-uid: 6
peer_up_messages_received:
description: >-
Number of BMP Peer Up Messages received from the BMP client from the time the BMP session last went to 'up' state.
type: integer
format: uint64
x-field-uid: 7
initiation_messages_received:
description: >-
Number of BMP Initiation Messages received from the BMP client .
type: integer
format: uint64
x-field-uid: 8
route_mirroring_messages_received:
description: >-
Number of BMP Route Mirroring Messages received from the BMP client from the time the BMP session last went to 'up' state.
type: integer
format: uint64
x-field-uid: 9
termination_messages_received:
description: >-
Number of BMP Termination Messages received from the BMP client.
type: integer
format: uint64
x-field-uid: 10




Loading