BGP: Lithium: Release Review

Contents

Features

  • Third release of BGP protocol library, with BGP listener/speaker support for BGP MP, linkstate and flowspec

  • Third release of PCEP protocol library, with base RFC5440, Stateful, Initiated and segment routing extensions

  • 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)

ASCII doc commits:

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 outside what AAA project covers.

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

Lithium release marks 79,5% of unit test coverage (85,8% line coverage, 63,5% branch coverage)

  • Sonar also reports technical debt issues

Lithium release marks 66 issues (4d 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 and with custom python tool published in integration project.

  • BGP listener was successfully tested with Internet feed

End-of-life (API/Features EOLed in Release)

There are no EOL APIs nor features in this release, however pcep-stateful02 was deprecated and scheduled to be removed in Beryllium release.

Bugzilla (summary of bug situation)

The project tracks mainly enhancements, which can be categorized as follows:

  • code cleanups and reorganization: 4 issues (#2873, #1025, #3823, #105)

  • new features: 4 issues (#3075, #2663, #2230, #2848)

  • missed feature: 3 issues (#196, #2230, #139)

  • testing improvement: 2 issues (#3131, #2224)

  • design improvements : 4 issues (#2823, #3464, #2208, #3714)

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

  • RFC4486 - Subcodes for BGP Cease Notification Message

  • RFC5004 - Avoid BGP Best Path Transitions from One External to Another

  • 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

  • RFC5492 - Capabilities Advertisement with BGP-4

  • 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

  • RFC5575 - Flow Specification

  • RFC5886 - A Set of Monitoring Tools for Path Computation Element (PCE)-Based Architecture

  • RFC6286 - Autonomous-System-Wide Unique BGP Identifier for BGP-4

  • RFC6793 - BGP Support for Four-Octet Autonomous System (AS) Number Space

  • RFC7311 -The Accumulated IGP Metric Attribute for BGP

  • draft-ietf-pce-pceps - Secure Transport for PCEP

  • Segment routing extension to the Border Gateway Protocol, October 2014

  • Stateful extensions to the Path Computation Element Protocol, December 2013

  • Segment routing extension to the Path Computation Element Protocol, October 2014

Schedule (initial schedule and changes over the release cycle)

The project's mostly complied with its schedule.