Add Bandwidth Reservation in PCE server 59/100059/5
authorOlivier Dugeon <olivier.dugeon@orange.com>
Thu, 10 Mar 2022 13:39:16 +0000 (14:39 +0100)
committerRobert Varga <nite@hq.sk>
Sun, 20 Mar 2022 17:30:27 +0000 (17:30 +0000)
commit8f3e4ca9f3b1e27c4c408f1a9c6dd8f854459f29
treebc6791393ef7e4e623bc0dc099056c79fff62117
parent5d308f86ecb952e946961ace15da16409a92abf2
Add Bandwidth Reservation in PCE server

With RSVP-TE, bandwidth on links belonging to the LSP are automatically
adjusted by the routers and re-advertised by the IGP.
However, due to lack of signalling in Segment Routing this bandwidth
adjustement does not occur.
Thus, the PCE server should manage by itself the reserved bandwidth of
Segment Routing path. In addition, routers do not behave the
same way regarding UnReservedBandwidth attributes.

This patch provides an internal mechanism to manage Bandwidth
Reservation to the PCE Server. It concerns 4 main parts:
- ConnectedEdge: add new Reserved Bandwidth attributes with
  dedicated method to get, add and remove bandwidth
- AbstractPathComputation: Adjust pruneEdge method to take
  care of this new Reserved Bandwidth attributes
- ManagedTePath: methods to add, update and delete bandwidth
  of the LSP on edges belonging to the computed path
- PathManagerProvider: Manage reserved bandwidth by calling
  new ManagedTePath methods when needed.

JIRA: BGPCEP-979
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Change-Id: I45534f43478a4605165fbe4b9190cf3feccd6380
12 files changed:
algo/algo-api/src/main/yang/path-computation.yang
algo/algo-impl/src/main/java/org/opendaylight/algo/impl/AbstractPathComputation.java
docs/pcep/pcep-user-guide-pce-server.rst
graph/graph-api/src/main/java/org/opendaylight/graph/ConnectedEdge.java
graph/graph-impl/src/main/java/org/opendaylight/graph/impl/ConnectedEdgeImpl.java
graph/graph-impl/src/main/java/org/opendaylight/graph/impl/ConnectedGraphImpl.java
pcep/server/server-provider/src/main/java/org/opendaylight/bgpcep/pcep/server/provider/DefaultPceServerProvider.java
pcep/server/server-provider/src/main/java/org/opendaylight/bgpcep/pcep/server/provider/ManagedTePath.java
pcep/server/server-provider/src/main/java/org/opendaylight/bgpcep/pcep/server/provider/MessagesUtil.java
pcep/server/server-provider/src/main/java/org/opendaylight/bgpcep/pcep/server/provider/PathComputationImpl.java
pcep/server/server-provider/src/main/java/org/opendaylight/bgpcep/pcep/server/provider/PathManagerProvider.java
pcep/server/server-provider/src/main/java/org/opendaylight/bgpcep/pcep/server/provider/PcepTopologyListener.java