BUG-4197: BGP OpenConfig Implementation 94/28394/12
authorMilos Fabian <milfabia@cisco.com>
Wed, 23 Sep 2015 10:09:21 +0000 (12:09 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Thu, 5 Nov 2015 15:44:07 +0000 (15:44 +0000)
commit3a36ce8ca3221ea9d5ecda53eda7896ff1e630c3
tree521a1625210e27a39fc77ad62e2a30597fd86956
parent86401daf6c3fb7934ec79f2fecac7cc4740d45eb
BUG-4197: BGP OpenConfig Implementation

-BGP OpenConfig for ODL BGP RIB and peer/app-peer configuration (config-subsystem) and vice-versa
*RIBImpl <-> Global
*BGPPeer <-> Neighbor
*BGPApplicationPeer <-> Neighbor (belonging to special neighbors grupup "application-peers")

-support BGP configuration module to BGP OpenConfig mapping:
*once configuration of a particular BGP config module is created, the attributes
are mapped to OpenConfig API, configuration is stored and written do configuration DS
*once configuration of a particular BGP Configuration module is closed, a stored OpenConfig DTO
is removed and deleted from configuration DS
-support BGP OpenConfig API to BGP configuration module mapping
-application is listening to the changes in BGP OpenConfig DS subtree:
*when a new data are created or modified, the new BGP OpenConfig DTO is mapped to
BGP config module, the DTO is stored and config module is written to
controller-config's Modules subtree.
*when data is removed, the DTO is removed from inner store and BGP config module is removed
from controller-config's Modules subtree.

Motivation: Simplify configuration of the main ODL BGP components (mainly in programatic way) in a most used use-cases.
Limitations: BGP OpenConfig Yang data model is composed for configuration of one BGP speaker, ODL may have multiple instances of BGP Speaker
The change brings a dependecy on netconf's sal-nectonf-connector ot BGP project.

Change-Id: If245bd54d844bd9965637c83f382e82c6a5b9a53
Signed-off-by: Milos Fabian <milfabia@cisco.com>
41 files changed:
artifacts/pom.xml
bgp/controller-config/pom.xml
bgp/controller-config/src/main/resources/initial/43-bgp-openconfig.xml [new file with mode: 0644]
bgp/openconfig-impl/.project [new file with mode: 0644]
bgp/openconfig-impl/pom.xml [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/controller/config/yang/bgp/openconfig/BgpOpenConfigImplModule.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/controller/config/yang/bgp/openconfig/BgpOpenConfigImplModuleFactory.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/BGPConfigHolderImpl.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/BGPConfigStateStoreImpl.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/BGPOpenConfig.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/moduleconfig/BGPAppPeerProvider.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/moduleconfig/BGPConfigModuleProvider.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/moduleconfig/BGPOpenConfigListener.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/moduleconfig/BGPPeerProvider.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/moduleconfig/BGPRibImplProvider.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/moduleconfig/RibInstanceFunction.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/moduleconfig/TableTypesFunction.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/AbstractBGPNeighborProvider.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/AbstractBGPOpenConfigMapper.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/BGPAppNeighborProviderImpl.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/BGPConfigMapperRegistry.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/BGPConfigModuleMapperProvider.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/BGPGlobalProviderImpl.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/BGPNeighborProviderImpl.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/spi/BGPConfigHolder.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/spi/BGPConfigStateStore.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/util/GlobalIdentifier.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/java/org/opendaylight/protocol/bgp/openconfig/impl/util/OpenConfigUtil.java [new file with mode: 0644]
bgp/openconfig-impl/src/main/yang/odl-openconfig-bgp-cfg.yang [new file with mode: 0644]
bgp/openconfig-impl/src/test/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/AbstractBGPNeighborProviderTest.java [new file with mode: 0644]
bgp/openconfig-impl/src/test/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/AbstractBGPOpenConfigMapperTest.java [new file with mode: 0644]
bgp/openconfig-impl/src/test/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/BGPAppNeighborProviderImplTest.java [new file with mode: 0644]
bgp/openconfig-impl/src/test/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/BGPConfigMapperRegistryTest.java [new file with mode: 0644]
bgp/openconfig-impl/src/test/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/BGPGlobalProviderImplTest.java [new file with mode: 0644]
bgp/openconfig-impl/src/test/java/org/opendaylight/protocol/bgp/openconfig/impl/openconfig/BGPNeighborProviderImplTest.java [new file with mode: 0644]
bgp/openconfig-impl/src/test/java/org/opendaylight/protocol/bgp/openconfig/impl/util/OpenConfigUtilTest.java [new file with mode: 0644]
bgp/pom.xml
bgp/rib-impl/pom.xml
features/bgp/pom.xml
features/bgp/src/main/features/features.xml
parent/pom.xml