BGP: Helium: Release Review
Contents
- 1 Features
- 2 Non-Code Aspects (user docs, examples, tutorials, articles)
- 3 Architectural Issues
- 4 Security Considerations
- 5 Quality Assurance (test coverage, etc)
- 6 End-of-life (API/Features EOLed in Release)
- 7 Bugzilla (summary of bug situation)
- 8 Standards (summary of standard compliance)
- 9 Schedule (initial schedule and changes over the release cycle)
Features
Second release of BGP protocol library, with BGP listener/speaker support for BGP MP and linkstate
Second release of PCEP protocol library, with base RFC5440, Stateful, Initiated and segment routing extensions, in two different revisions
Model-driven protocols, e.g. there are models for each protocol's messages
Integrated export of gleaned data into MD-SAL
Programming pipeline and scheduling prototype
Non-Code Aspects (user docs, examples, tutorials, articles)
https://git.opendaylight.org/gerrit/11533 - ascii doc commit
Architectural Issues
The configuration is non-trivial and while giving the end-user control over the details how the protocols operate, it also means there is a steep learning curve
Some components within BGPCEP could probably be restructured (e.g. RIB module handling also BGP session negotiation)
Security Considerations
There is no support for any form of session authentication. Both protocols support TCP MD5 authentication.
North-bound access to data is completely unrestricted and unauthenticated. Data dissemination policies are expected to be defined on the MD-SAL boundary and/or applications.
Quality Assurance (test coverage, etc)
The code is covered by unit tests, test coverage is tracked in Sonar
Helium release marks 80,3% of unit test coverage (87,4% line coverage, 63,6% branch coverage)
Sonar also reports technical debt issues
Helium release marks 171 issues (30d of technical debt)
BGP code has been tested to interoperate with various implementations and its exposed information checked through RESTCONF. The interoperability is summarized in IETF draft:
draft-gredler-idr-ls-distribution-impl
BGP speaker functionality was tested locally as a prototype and it's also used in project ODL-SDNi
PCEP code has been tested with one commercial implementation, session establishment, as well as LSP operations.
Both protocols have integration as well as performance and scale tests implemented with commercial product. In further release the team will recreate those tests with opensource implementations and add them to ODL integration project.
End-of-life (API/Features EOLed in Release)
There are no EOL APIs nor features in this release.
Bugzilla (summary of bug situation)
The project tracks mainly enhancements, which can be categorized as follows:
code cleanups and reorganization: 2 issues (#731, #1025)
new features: 5 issues (#139, #196, #608, #989, #2064)
missed feature: 1 issue (#105)
testing improvement: 2 issues (#110. #1530)
karaf performance bug: 1 issue (#2027)
Standards (summary of standard compliance)
RFC4271 - A Border Gateway Protocol 4 (BGP-4)
RFC4760 - Multiprotocol Extensions for BGP-4
RFC1997 - BGP Communities Attribute
RFC4360 - BGP Extended Communities Attribute
RFC6793 - BGP Support for Four-Octet Autonomous System (AS) Number Space
draft-ietf-idr-ls-distribution-04 - North-Bound Distribution of Link-State and TE Information using BGP
RFC5440 - Path Computation Element (PCE) Communication Protocol (PCEP)
RFC5541 - Encoding of Objective Functions in the Path Computation Element Communication Protocol (PCEP)
RFC5455 - Diffserv-Aware Class-Type Object for the Path Computation Element Communication Protocol
RFC5521 - Extensions to the Path Computation Element Communication Protocol (PCEP) for Route Exclusions
RFC5557 - Path Computation Element Communication Protocol (PCEP) Requirements and Protocol Extensions in Support of Global Concurrent Optimization
Stateful extensions to the Path Computation Element Protocol, December 2012
draft-ietf-pce-stateful-pce-02 - PCEP Extensions for Stateful PCE
draft-crabbe-pce-pce-initiated-lsp-00 - PCEP Extensions for PCE-initiated LSP Setup in a Stateful PCE Model
Stateful extensions to the Path Computation Element Protocol, December 2013
draft-ietf-pce-stateful-pce-07 - PCEP Extensions for Stateful PCE
draft-ietf-pce-pce-initiated-lsp-00 - PCEP Extensions for PCE-initiated LSP Setup in a Stateful PCE Model
Segment routing extension to the Path Computation Element Protocol, October 2013
draft-sivabalan-pce-segment-routing-02 - PCEP Extension for segment routing
draft-sivabalan-pce-lsp-setup-type-01 - PCEP Extension for path setup type
Schedule (initial schedule and changes over the release cycle)
The project's schedule slipped a bit during M3 phase, the cause was a demand on fully working pcep stateful in version 07 (which was implemented but not fully tested). The consequence was a delay in delivering BGP speaker. All slips have been eliminated by M5 and from this point, the project is on track.