~~~~~~~~~~~~
This module contains the base BGP concepts contained in `RFC
-4271 <http://tools.ietf.org/html/rfc4271>`__, `RFC
-4760 <http://tools.ietf.org/html/rfc4760>`__, `RFC
-4456 <http://tools.ietf.org/html/rfc4456>`__, `RFC
-1997 <http://tools.ietf.org/html/rfc1997>`__ and `RFC
-4360 <http://tools.ietf.org/html/rfc4360>`__.
+4271 <https://tools.ietf.org/html/rfc4271>`__, `RFC
+4760 <https://tools.ietf.org/html/rfc4760>`__, `RFC
+4456 <https://tools.ietf.org/html/rfc4456>`__, `RFC
+1997 <https://tools.ietf.org/html/rfc1997>`__ and `RFC
+4360 <https://tools.ietf.org/html/rfc4360>`__.
All the concepts are described in one yang model:
`bgp-types.yang <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/concepts/src/main/yang/bgp-types.yang;hb=refs/heads/stable/boron>`__.
~~~~~~~~~~
Base BGP parser includes messages and attributes from `RFC
-4271 <http://tools.ietf.org/html/rfc4271>`__, `RFC
-4760 <http://tools.ietf.org/html/rfc4760>`__, `RFC
-1997 <http://tools.ietf.org/html/rfc1997>`__ and `RFC
-4360 <http://tools.ietf.org/html/rfc4360>`__.
+4271 <https://tools.ietf.org/html/rfc4271>`__, `RFC
+4760 <https://tools.ietf.org/html/rfc4760>`__, `RFC
+1997 <https://tools.ietf.org/html/rfc1997>`__ and `RFC
+4360 <https://tools.ietf.org/html/rfc4360>`__.
*API* module defines BGP messages in YANG.
~~~~~~~~~~~~
RIB (Route Information Base) is defined as a concept in `RFC
-4271 <http://tools.ietf.org/html/rfc4271#section-3.2>`__. RFC does not
+4271 <https://tools.ietf.org/html/rfc4271#section-3.2>`__. RFC does not
define how it should be implemented. In our implementation, the routes
are stored in the MD-SAL datastore. There are four supported routes -
*Ipv4Routes*, *Ipv6Routes*, *LinkstateRoutes* and *FlowspecRoutes*.
------------
BGP flowspec is a module that implements `RFC
-5575 <http://tools.ietf.org/html/rfc5575>`__ for IPv4 AFI and
+5575 <https://tools.ietf.org/html/rfc5575>`__ for IPv4 AFI and
`draft-ietf-idr-flow-spec-v6-06 <https://tools.ietf.org/html/draft-ietf-idr-flow-spec-v6-06>`__
for IPv6 AFI. The RFC defines an extension to BGP in form of a new
subsequent address family, NLRI and extended communities. All of those
-------------
BGP linkstate is a module that implements
-`draft-ietf-idr-ls-distribution <http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-04>`__
+`draft-ietf-idr-ls-distribution <https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-04>`__
version 04. The draft defines an extension to BGP in form of a new
address family, subsequent address family, NLRI and path attribute. All
of those are defined in the
`bgp-linkstate.yang <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/linkstate/src/main/yang/bgp-linkstate.yang;hb=refs/heads/stable/boron>`__
model. In addition to generated sources, the module contains
-`LinkstateAttributeParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/attribute/LinkstateAttributeParser.java;hb=refs/heads/stable/boron>`__,
-`LinkstateNlriParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/nlri/LinkstateNlriParser.java;hb=refs/heads/stable/boron>`__,
+`LinkstateAttributeParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/attribute/LinkstateAttributeParser.java;hb=HEAD>`__,
+`LinkstateNlriParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/nlri/LinkstateNlriParser.java;hb=HEAD>`__,
activators for both, parser and RIB, and RIBSupport handler for
linkstate address family. As each route needs a key, in case of
linkstate, the route key is defined as a binary string, containing all
^^^^^^
The base PCEP parser includes messages and attributes from
-`RFC5441 <http://tools.ietf.org/html/rfc5441>`__,
-`RFC5541 <http://tools.ietf.org/html/rfc5541>`__,
-`RFC5455 <http://tools.ietf.org/html/rfc5455>`__,
-`RFC5557 <http://tools.ietf.org/html/rfc5557>`__ and
-`RFC5521 <http://tools.ietf.org/html/rfc5521>`__.
+`RFC5441 <https://tools.ietf.org/html/rfc5441>`__,
+`RFC5541 <https://tools.ietf.org/html/rfc5541>`__,
+`RFC5455 <https://tools.ietf.org/html/rfc5455>`__,
+`RFC5557 <https://tools.ietf.org/html/rfc5557>`__ and
+`RFC5521 <https://tools.ietf.org/html/rfc5521>`__.
Registration
^^^^^^^^^^^^
Configuration of PCEP parsers specifies one implementation of *Extension
provider* that will take care of registering mentioned parser
extensions:
-`SimplePCEPExtensionProviderContext <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimplePCEPExtensionProviderContext.java;hb=refs/for/stable/boron>`__.
+`SimplePCEPExtensionProviderContext <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimplePCEPExtensionProviderContext.java;hb=HEAD>`__.
All registries are implemented in package
-`pcep-spi <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=tree;f=pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo;hb=refs/for/stable/boron>`__.
+`pcep-spi <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=tree;f=pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo;hb=HEAD>`__.
Parsing
^^^^^^^
This section summarizes module pcep-ietf-stateful. The term *stateful*
refers to
-`draft-ietf-pce-stateful-pce <http://tools.ietf.org/html/draft-ietf-pce-stateful-pce>`__
+`draft-ietf-pce-stateful-pce <https://tools.ietf.org/html/draft-ietf-pce-stateful-pce>`__
and
-`draft-ietf-pce-pce-initiated-lsp <http://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp>`__
+`draft-ietf-pce-pce-initiated-lsp <https://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp>`__
in versions draft-ietf-pce-stateful-pce-07 with
draft-ietf-pce-pce-initiated-lsp-00.
The stateful draft declared new elements as well as additional fields or
TLVs (type,length,value) to known objects. All new elements are defined
in yang models, that contain augmentations to elements defined in
-`pcep-types.yang <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/api/src/main/yang/pcep-types.yang;hb=refs/for/stable/boron>`__.
+`pcep-types.yang <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/api/src/main/yang/pcep-types.yang;hb=HEAD>`__.
In the case of extending known elements, the *Parser* class merely
extends the base class and overrides necessary methods as shown in
following diagram:
PCEP Segment Routing is an extension of base PCEP and
pcep-ietf-stateful-07 extension. The pcep-segment-routing module
implements
-`draft-ietf-pce-segment-routing-01 <http://tools.ietf.org/html/draft-ietf-pce-segment-routing-01>`__.
+`draft-ietf-pce-segment-routing-01 <https://tools.ietf.org/html/draft-ietf-pce-segment-routing-01>`__.
The extension brings new SR-ERO (Explicit Route Object) and SR-RRO
(Reported Route Object) subobject composed of SID (Segment Identifier)
| The yang models of subobject, SR-PCE-CAPABILITY TLV and appropriate
augmentations are defined in
- `odl-pcep-segment-routing.yang <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/segment-routing/src/main/yang/odl-pcep-segment-routing.yang;hb=refs/for/stable/boron>`__.
+ `odl-pcep-segment-routing.yang <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/segment-routing/src/main/yang/odl-pcep-segment-routing.yang;hb=HEAD>`__.
| The pcep-segment-routing module includes parsers/serializers for new
subobject
- (`SrEroSubobjectParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SrEroSubobjectParser.java;hb=refs/for/stable/boron>`__)
+ (`SrEroSubobjectParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SrEroSubobjectParser.java;hb=HEAD>`__)
and TLV
- (`SrPceCapabilityTlvParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SrPceCapabilityTlvParser.java;hb=refs/for/stable/boron>`__).
+ (`SrPceCapabilityTlvParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SrPceCapabilityTlvParser.java;hb=HEAD>`__).
The pcep-segment-routing module implements
-`draft-ietf-pce-lsp-setup-type-01 <http://tools.ietf.org/html/draft-ietf-pce-lsp-setup-type-01>`__,
+`draft-ietf-pce-lsp-setup-type-01 <https://tools.ietf.org/html/draft-ietf-pce-lsp-setup-type-01>`__,
too. The draft defines new TLV - Path Setup Type TLV, which value
indicate path setup signaling technique. The TLV may be included in
RP(Request Parameters)/SRP(Stateful PCE Request Parameters) object. For
For Segment Routing, PST = 1 is defined.
The Path Setup Type TLV is modeled with yang in module
-`pcep-types.yang <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/api/src/main/yang/pcep-types.yang;hb=refs/for/stable/boron>`__.
+`pcep-types.yang <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/api/src/main/yang/pcep-types.yang;hb=HEAD>`__.
A parser/serializer is implemented in
-`PathSetupTypeTlvParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/tlv/PathSetupTypeTlvParser.java;hb=refs/for/stable/boron>`__
+`PathSetupTypeTlvParser <https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/PathSetupTypeTlvParser.java;hb=HEAD>`__
and it is overriden in segment-routing module to provide the aditional
PST.