import org.opendaylight.netvirt.bgpmanager.thrift.gen.protocol_type;
import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.Bgp;
import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.TcpMd5SignaturePasswordType;
-import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.Neighbors;
+import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.Neighbors;
+import org.opendaylight.yangtools.yang.common.Uint32;
@Command(scope = "odl", name = "configure-bgp", description = "")
public class ConfigureBgpCli extends OsgiCommandSupport {
@Option(name = "--l2vni", description = "l2vni of the route",
required = false, multiValued = false)
- int l2vni = 0;
+ Uint32 l2vni = Uint32.ZERO;
@Option(name = "--l3vni", description = "l3vni",
required = false, multiValued = false)
- int l3vni = 0;
+ Uint32 l3vni = Uint32.ZERO;
@Option(name = "--stalepath-time", description = "the time delay after bgp restart stalepaths are cleaned",
required = false, multiValued = false)
emergencies, alerts, critical, errors, warnings, notifications, informational, debugging
}
+ private final BgpManager bgpManager;
private final BgpConfigurationManager bgpConfigurationManager;
- public ConfigureBgpCli(BgpConfigurationManager bgpConfigurationManager) {
+ public ConfigureBgpCli(BgpManager bgpManager, BgpConfigurationManager bgpConfigurationManager) {
+ this.bgpManager = bgpManager;
this.bgpConfigurationManager = bgpConfigurationManager;
}
@Override
- protected Object doExecute() {
+ protected Object doExecute() throws Exception {
if (op == null) {
session.getConsole().println("Please provide valid operation");
usage();
session.getConsole().println(
"exec configure-bgp -op [start-bgp-server | stop-bgp-server | add-neighbor | delete-neighbor|"
+ " add-route | delete-route | graceful-restart| enable-log ]");
+ return null;
}
switch (op) {
case "start-bgp-server":
try {
int time = Integer.parseInt(stalePathTime);
if (time < 30 || time > 3600) {
- session.getConsole().println("invalid stale path time valid range [30-3600]");
+ session.getConsole().println("invalid stale path time valid range [30-3600]" + stalePathTime);
printGracefulRestartHelp();
return false;
}
} catch (NumberFormatException e) {
- session.getConsole().println("invalid stale path time");
+ session.getConsole().println("invalid stale path time" + stalePathTime);
printGracefulRestartHelp();
return false;
}
if (!validStalepathTime) {
return;
}
- bgpConfigurationManager.addGracefulRestart(Integer.parseInt(stalePathTime));
+ bgpManager.configureGR(Integer.parseInt(stalePathTime));
}
private void deleteNeighbor() {
printDeleteNeighborHelp();
return;
}
- bgpConfigurationManager.delNeighbor(ip);
+ bgpManager.deleteNeighbor(ip);
}
public long getAsNumber(String nbrIp) {
- Bgp conf = bgpConfigurationManager.getConfig();
+ Bgp conf = bgpManager.getConfig();
if (conf == null) {
return -1;
}
- List<Neighbors> nbrs = conf.getNeighbors();
+ List<Neighbors> nbrs = conf.getNeighborsContainer().getNeighbors();
if (nbrs == null) {
return -1;
}
for (Neighbors nbr : nbrs) {
if (nbrIp.equals(nbr.getAddress().getValue())) {
- return nbr.getRemoteAs();
+ return nbr.getRemoteAs().toJava();
}
}
return -1;
}
private void stopBgp() {
- Bgp conf = bgpConfigurationManager.getConfig();
+ Bgp conf = bgpManager.getConfig();
if (conf == null) {
return;
}
- List<Neighbors> nbrs = conf.getNeighbors();
+ List<Neighbors> nbrs = conf.getNeighborsContainer().getNeighbors();
if (nbrs != null && nbrs.size() > 0) {
session.getConsole().println(
"error: all BGP congiguration must be deleted before stopping the router instance");
return;
}
- bgpConfigurationManager.stopBgp();
+ bgpManager.stopBgp();
}
private void usage() {
private void startBgp() {
boolean validRouterId = false;
- if (bgpConfigurationManager.getConfig() != null && bgpConfigurationManager.getConfig().getAsId() != null) {
+ if (bgpManager.getConfig() != null && bgpManager.getConfig().getAsId() != null) {
session.getConsole().println("bgp is already started please use stop-bgp-server and start again");
return;
}
return;
}
}
- bgpConfigurationManager.startBgp(Long.parseLong(asNumber), routerId,
+ bgpManager.startBgp(Long.parseLong(asNumber), routerId,
stalePathTime == null ? 0 : Integer.parseInt(stalePathTime), false);
}
try {
long val = Long.parseLong(ebgpMultihops);
if (val < 1 || val > 255) {
- session.getConsole().println("invalid ebgpMultihops number , valid range [1,255] ");
+ session.getConsole().println("invalid ebgpMultihops number , valid range [1,255] "
+ + ebgpMultihops);
printAddNeighborHelp();
return;
}
} catch (NumberFormatException e) {
- session.getConsole().println("invalid ebgpMultihops number, valid range [1-255]");
+ session.getConsole().println("invalid ebgpMultihops number, valid range [1-255]"
+ + ebgpMultihops);
printAddNeighborHelp();
return;
}
safi = 5;
} else {
session.getConsole().println(
- "invalid addressFamily valid values SAFI_IPV4_LABELED_UNICAST | SAFI_MPLS_VPN");
+ "invalid addressFamily valid values lu/evpn/vpnv4/vpnv6");
printAddNeighborHelp();
- return;
+ return ;
}
- bgpConfigurationManager.addAddressFamily(ip, afi, safi);
-
}
if (getAsNumber(ip) != -1) {
session.getConsole().println("neighbor with ip " + ip + " already exists");
}
protected void addRoute() {
- bgpConfigurationManager.onUpdatePushRoute(protocol_type.PROTOCOL_EVPN, rd, prefix,
+ bgpConfigurationManager.onUpdatePushRoute(protocol_type.PROTOCOL_L3VPN, rd, prefix,
0, nexthop, mac, l3vni, l2vni, null, null);
}
protected void deleteRoute() {
- bgpConfigurationManager.onUpdateWithdrawRoute(protocol_type.PROTOCOL_EVPN, rd, prefix,
+ bgpConfigurationManager.onUpdateWithdrawRoute(protocol_type.PROTOCOL_L3VPN, rd, prefix,
0, nexthop, mac);
}
"exec configure-bgp -op enable-log --log-file-path <logfile> --log-level <level>");
return;
}
- bgpConfigurationManager.addLogging(logFile, logLevel);
+ bgpManager.setQbgpLog(logFile, logLevel);
}
private boolean validateAsNumber(String strAsnum) {
return false;
}
} catch (NumberFormatException e) {
- session.getConsole().println("invalid AS Number ");
+ session.getConsole().println("invalid AS Number " + asNumber);
return false;
}
return true;