Bug 4827: Consumer specific parsers for BGP add-path 90/35590/15
authorMilos Fabian <milfabia@cisco.com>
Wed, 24 Feb 2016 07:49:24 +0000 (08:49 +0100)
committerRobert Varga <nite@hq.sk>
Wed, 20 Apr 2016 14:51:52 +0000 (14:51 +0000)
commitcf098695580934bf154f5435b5139de2bab0c19d
tree809ab51e458e42ad858a4d6d992d8ce836137126
parent4aa57707947d60a3e5bb22033f2603e17b3178bf
Bug 4827: Consumer specific parsers for BGP add-path

The BGP add-path introduces extended form of NLRI (path-id added)
but new NLRI is not distiguishable from regular NLRI
(i.e. code points are the same).
The add-path capabilities are neighbor specific and information
about supported capabilities is available once the session with
a peer goes up. Also the BGP extension provides read-only
consumption of handlers registers, hence easiest way is to pass
the consumer-specific add-path constrain via input arguments.

Extend parser's registers to handle user defined constraints.
Added new NLRI registrator for add-path NLRI parsers.
Added PeerSpecificParserConstraint which can carry any future
user specific constraint to be used during parsing process.
Added MultiPathSupport interface to carry peer's specific
add-path capabilities.

Change-Id: Ieb361c726bd67f74fc653d3423870659404f1b9d
Signed-off-by: Milos Fabian <milfabia@cisco.com>
20 files changed:
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPUpdateMessageParser.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/update/MPReachAttributeParser.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/update/MPUnreachAttributeParser.java
bgp/parser-mock/src/main/java/org/opendaylight/protocol/bgp/parser/mock/BGPMessageParserMock.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/AbstractMessageRegistry.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/AttributeParser.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/AttributeRegistry.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/MessageParser.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/MessageRegistry.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/MultiPathSupport.java [new file with mode: 0644]
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/NlriParser.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/NlriRegistry.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/PeerConstraint.java [new file with mode: 0644]
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/PeerSpecificParserConstraint.java [new file with mode: 0644]
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleAttributeRegistry.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleMessageRegistry.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleNlriRegistry.java
bgp/parser-spi/src/test/java/org/opendaylight/protocol/bgp/parser/spi/AbstractMessageRegistryTest.java
bgp/parser-spi/src/test/java/org/opendaylight/protocol/bgp/parser/spi/pojo/BgpTestActivator.java
bgp/parser-spi/src/test/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleRegistryTest.java