import openconfig-bgp-types { prefix bgp-types; }
import openconfig-network-instance { prefix netinst; }
import openconfig-bgp { prefix openconfig-bgp; }
+ import ietf-inet-types { prefix inet; }
organization "Cisco Systems, Inc.";
contact "Milos Fabian <milfabia@cisco.com>";
reference "https://tools.ietf.org/html/rfc7752";
}
+ grouping transport-config {
+ leaf remote-port {
+ type inet:port-number;
+ default 179;
+ description
+ "Remote port being used by the peer for the TCP session
+ supporting the BGP session";
+ }
+ }
+
augment /netinst:network-instances/netinst:network-instance/netinst:protocols/netinst:protocol {
uses openconfig-bgp:bgp-top {
augment bgp/neighbors/neighbor/afi-safis/afi-safi {
augment bgp/global/afi-safis/afi-safi {
uses openconfig-bgp:bgp-neighbor-add-paths_config;
}
+ augment bgp/neighbors/neighbor/transport/config {
+ uses transport-config;
+ }
}
}
neighborBuilder.setTransport(new TransportBuilder().setConfig(
new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.transport.ConfigBuilder()
.setPassiveMode(!isActive)
+ .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())
.build()).build());
neighborBuilder.setConfig(
new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.ConfigBuilder()
import org.opendaylight.protocol.util.Ipv4Util;
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.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
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.message.rev130919.open.message.BgpParametersBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.OptionalCapabilities;
public class BgpPeer implements PeerBean, BGPPeerRuntimeMXBean {
- //FIXME make configurable
- private static final PortNumber PORT = new PortNumber(179);
-
private static final Logger LOG = LoggerFactory.getLogger(BgpPeer.class);
private final RpcProviderRegistry rpcRegistry;
this.peerRegistry.addPeer(neighborAddress, this.bgpPeer, prefs);
if (OpenConfigMappingUtil.isActive(neighbor)) {
this.connection = rib.getDispatcher().createReconnectingClient(
- Ipv4Util.toInetSocketAddress(neighborAddress, PORT), this.peerRegistry,
+ Ipv4Util.toInetSocketAddress(neighborAddress, OpenConfigMappingUtil.getPort(neighbor)), this.peerRegistry,
OpenConfigMappingUtil.getRetryTimer(neighbor), Optional.fromNullable(key));
}
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Neighbors;
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.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev160614.Config1;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
final class OpenConfigMappingUtil {
return Ipv4Util.toStringIP(rootIdentifier.firstKeyOf(Neighbor.class).getNeighborAddress());
}
+ public static PortNumber getPort(final Neighbor neighbor) {
+ return neighbor.getTransport().getConfig().getAugmentation(Config1.class).getRemotePort();
+ }
+
}