.. _bgp-monitoring-protocol-developer-guide:
BGP Monitoring Protocol Developer Guide
=======================================
Overview
--------
This section provides an overview of **feature odl-bgpcep-bmp**. This
feature will install everything needed for BMP (BGP Monitoring Protocol)
including establishing the connection, processing messages, storing
information about monitored routers, peers and their Adj-RIB-In
(unprocessed routing information) and Post-Policy Adj-RIB-In and
displaying data in BGP RIBs overview. The OpenDaylight BMP plugin plays
the role of a monitoring station.
Key APIs and Interfaces
-----------------------
Session handling
~~~~~~~~~~~~~~~~
*32-bmp.xml* defines only bmp-dispatcher the parser should be using
(global-bmp-extensions).
.. code:: xml
prefix:bmp-dispatcher-impl
global-bmp-dispatcher
bmp-spi:extensions
global-bmp-extensions
netty:netty-threadgroup
global-boss-group
netty:netty-threadgroup
global-worker-group
For user configuration of BMP, check User Guide.
Parser
~~~~~~
The base BMP parser includes messages and attributes from
https://tools.ietf.org/html/draft-ietf-grow-bmp-15
Registration
~~~~~~~~~~~~
All parsers and serializers need to be registered into *Extension
provider*. This *Extension provider* is configured in initial
configuration of the parser (*32-bmp.xml*).
.. code:: xml
prefix:bmp-extensions-impl
global-bmp-extensions
bmp-spi:extension
bmp-parser-base
- *bmp-parser-base* - will register parsers and serializers implemented
in bmp-impl module
Parsing
~~~~~~~
Parsing of BMP elements is mostly done equally to BGP. Some of the BMP
messages includes wrapped BGP messages.
BMP Monitoring Station
~~~~~~~~~~~~~~~~~~~~~~
The BMP application (Monitoring Station) serves as message processor
incoming from monitored routers. The processed message is transformed
and relevant information is stored. Route information is stored in a BGP
RIB data structure.
BMP data is displayed only through one URL that is accessible from the
base BMP URL:
``http://:8181/rests/data/bmp-monitor:bmp-monitor?content=nonconfig``
Each Monitor station will be displayed and it may contains multiple
monitored routers and peers within:
.. code:: xml
example-bmp-monitor
127.0.0.11
up
20.20.20.20
72
global
5000
5
up
10.10.10.10
220
x:ipv4-address-family
x:unicast-subsequent-address-family
10.10.10.0/24
...
true
10.10.10.10
...
20.20.20.20
5
53
16
100
11
55
10
66
70
8
name
description
some info;
API Reference Documentation
---------------------------
Javadocs are generated while creating mvn:site and they are located in
target/ directory in each module.