import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.NeighborsBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.PeerGroups;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.PeerGroupsBuilder;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.CommunityType;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.PeerType;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.network.instance.rev151018.network.instance.top.network.instances.network.instance.protocols.Protocol;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.network.instance.rev151018.network.instance.top.network.instances.network.instance.protocols.ProtocolBuilder;
private static final PeerGroup APP_PEER_GROUP = new PeerGroupBuilder().setPeerGroupName(APPLICATION_PEER_GROUP_NAME)
.setKey(new PeerGroupKey(APPLICATION_PEER_GROUP_NAME)).build();
private static final PeerGroups PEER_GROUPS = new PeerGroupsBuilder().setPeerGroup(Collections.singletonList(APP_PEER_GROUP)).build();
+ private static final BigDecimal DEFAULT_KEEP_ALIVE = BigDecimal.valueOf(30);
+ private static final BigDecimal DEFAULT_MINIMUM_ADV_INTERVAL = BigDecimal.valueOf(30);
@Override
public List<BgpTableType> toTableTypes(final List<AfiSafi> afiSafis) {
neighborBuilder.setTransport(new TransportBuilder().setConfig(
new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.transport.ConfigBuilder()
.setPassiveMode(!isActive)
+ .setMtuDiscovery(Boolean.FALSE)
.addAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev160614.Config1.class,
new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev160614.Config1Builder()
.setRemotePort(portNumber).build())
.setAuthPassword(password != null ? password.getValue() : null)
.setPeerAs(remoteAs)
.setPeerType(toPeerTye(peerRole))
+ .setSendCommunity(CommunityType.NONE)
+ .setRouteFlapDamping(Boolean.FALSE)
.build());
neighborBuilder.setTimers(new TimersBuilder().setConfig(
new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.timers.ConfigBuilder()
.setHoldTime(BigDecimal.valueOf(holdTimer))
.setConnectRetry(BigDecimal.valueOf(retryTimer))
+ .setKeepaliveInterval(DEFAULT_KEEP_ALIVE)
+ .setMinimumAdvertisementInterval(DEFAULT_MINIMUM_ADV_INTERVAL)
.build()).build());
neighborBuilder.setRouteReflector(new RouteReflectorBuilder().setConfig(
new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.route.reflector.ConfigBuilder()
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import org.opendaylight.controller.config.yang.bgp.rib.impl.BGPPeerRuntimeMXBean;
import org.opendaylight.controller.config.yang.bgp.rib.impl.BgpPeerState;
import org.opendaylight.controller.config.yang.bgp.rib.impl.BgpSessionState;
import org.opendaylight.protocol.bgp.rib.impl.spi.RIB;
import org.opendaylight.protocol.concepts.KeyMapping;
import org.opendaylight.protocol.util.Ipv4Util;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafi;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.AfiSafis;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.Config;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.BgpParameters;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities.AddPathCapabilityBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities.MultiprotocolCapabilityBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities.add.path.capability.AddressFamilies;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev160614.AfiSafi2;
import org.osgi.framework.ServiceRegistration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Override
public Boolean containsEqualConfiguration(final Neighbor neighbor) {
- return this.currentConfiguration.equals(neighbor);
+ final AfiSafis actAfiSafi = this.currentConfiguration.getAfiSafis();
+ final AfiSafis extAfiSafi = neighbor.getAfiSafis();
+ final List<AfiSafi> actualSafi = actAfiSafi.getAfiSafi();
+ final List<AfiSafi> extSafi = extAfiSafi.getAfiSafi();
+ return actualSafi.containsAll(extSafi) && extSafi.containsAll(actualSafi)
+ && Objects.equals(this.currentConfiguration.getConfig(), neighbor.getConfig())
+ && Objects.equals(this.currentConfiguration.getNeighborAddress(), neighbor.getNeighborAddress())
+ && Objects.equals(this.currentConfiguration.getAddPaths(),neighbor.getAddPaths())
+ && Objects.equals(this.currentConfiguration.getApplyPolicy(), neighbor.getApplyPolicy())
+ && Objects.equals(this.currentConfiguration.getAsPathOptions(), neighbor.getAsPathOptions())
+ && Objects.equals(this.currentConfiguration.getEbgpMultihop(), neighbor.getEbgpMultihop())
+ && Objects.equals(this.currentConfiguration.getGracefulRestart(), neighbor.getGracefulRestart())
+ && Objects.equals(this.currentConfiguration.getErrorHandling(), neighbor.getErrorHandling())
+ && Objects.equals(this.currentConfiguration.getLoggingOptions(), neighbor.getLoggingOptions())
+ && Objects.equals(this.currentConfiguration.getRouteReflector(), neighbor.getRouteReflector())
+ && Objects.equals(this.currentConfiguration.getState(), neighbor.getState())
+ && Objects.equals(this.currentConfiguration.getTimers(), neighbor.getTimers())
+ && Objects.equals(this.currentConfiguration.getTransport(), neighbor.getTransport());
}
private static List<BgpParameters> getBgpParameters(final Neighbor neighbor, final RIB rib,