Improve mvpn parsing and serialization 33/96133/4
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 12 May 2021 13:46:02 +0000 (15:46 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 12 May 2021 14:39:13 +0000 (16:39 +0200)
commit55df59cba90b3383e9bcc041b02fbea4e0205b94
treeccef907090cca7dfcd35334f332771c1f2edd7db
parent3d60e34b172851d671022ffc42ebaec910f4c9eb
Improve mvpn parsing and serialization

Require MvpnSerializer implementations to provide a properly-specialized
class. Centralize implementations in AbstractMvpnNlri, so that we do not
get a virtual dispatch here.

Also specialize SimpleMvpnNlriRegistry to use ImmutableMap/EnumMap rather
than HandlerRegistry, which is using the overly-dynamic MultiRegistry --
which ends up speeding up lookups significantly.

Change-Id: I09058410b4b8c3042c6273fe470530594387a09e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
18 files changed:
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/AbstractMvpnNlri.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/InterASIPmsiADHandler.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/IntraAsIPmsiADHandler.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/LeafADHandler.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/SPmsiADHandler.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/SharedTreeJoinHandler.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/SourceActiveADHandler.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/SourceTreeJoinHandler.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/spi/nlri/MvpnParser.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/spi/nlri/MvpnSerializer.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/spi/pojo/nlri/SimpleMvpnNlriRegistry.java
bgp/extensions/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/InterASIPmsiADHandlerTest.java
bgp/extensions/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/IntraAsIPmsiADHandlerTest.java
bgp/extensions/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/LeafADHandlerTest.java
bgp/extensions/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/SPmsiADHandlerTest.java
bgp/extensions/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/SharedTreeJoinHandlerTest.java
bgp/extensions/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/SourceActiveADHandlerTest.java
bgp/extensions/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/SourceTreeJoinHandlerTest.java