Search in sources :

Example 51 with Networks

use of org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.Networks in project netvirt by opendaylight.

the class VxlanGreConntrackBasedSnatService method removeSnatAllSwitch.

@Override
public boolean removeSnatAllSwitch(TypedReadWriteTransaction<Configuration> confTx, Routers routers, Uint64 primarySwitchId) throws ExecutionException, InterruptedException {
    ProviderTypes extNwProviderType = NatUtil.getProviderTypefromNetworkId(confTx, routers.getNetworkId());
    LOG.debug("VxlanGreConntrackBasedSnatService: handleSnatAllSwitch ProviderTypes {}", extNwProviderType);
    if (extNwProviderType == ProviderTypes.FLAT || extNwProviderType == ProviderTypes.VLAN) {
        LOG.debug("handleSnatAllSwitch : Skip FLAT/VLAN provider networks.");
        return true;
    }
    return super.removeSnatAllSwitch(confTx, routers, primarySwitchId);
}
Also used : ProviderTypes(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ProviderTypes)

Example 52 with Networks

use of org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.Networks in project netvirt by opendaylight.

the class BgpConfigurationManager method replay.

@SuppressWarnings("checkstyle:IllegalCatch")
public synchronized boolean replay() throws InterruptedException, TimeoutException, ExecutionException {
    boolean replaySucceded = true;
    boolean doRouteSync = false;
    String host = getConfigHost();
    int port = getConfigPort();
    LOG.error("connecting  to bgp host {} ", host);
    boolean res = bgpRouter.connect(host, port);
    if (!res) {
        LOG.error("Cannot connect to BGP config server at {} {}", host, port);
        return replaySucceded;
    }
    config = getConfig();
    if (config == null) {
        LOG.error("bgp config is empty nothing to push to bgp");
        return replaySucceded;
    }
    BgpRouter br = bgpRouter;
    AsId asId = config.getAsId();
    if (asId == null) {
        LOG.error("bgp as-id is null");
        return replaySucceded;
    }
    long asNum = asId.getLocalAs().toJava();
    IpAddress routerId = asId.getRouterId();
    String rid = routerId == null ? "" : routerId.stringValue();
    int stalepathTime = (int) getStalePathtime(bgpGrRestartTime, config.getAsId());
    boolean announceFbit = true;
    boolean replayDone = false;
    final int numberOfStartBgpRetries = 3;
    RetryOnException startBgpRetry = new RetryOnException(numberOfStartBgpRetries);
    do {
        try {
            LOG.debug("Replaying BGPConfig ");
            br.startBgp(asNum, rid, bgpKaTime, bgpHoldTime, stalepathTime, announceFbit);
            LOG.debug("Replay BGPConfig successful");
            replayDone = true;
            break;
        } catch (BgpRouterException bre) {
            if (bre.getErrorCode() == BgpRouterException.BGP_ERR_ACTIVE) {
                LOG.debug("Starting the routesync for exception", bre);
                startBgpRetry.errorOccured();
                if (!startBgpRetry.shouldRetry()) {
                    doRouteSync = true;
                    replayDone = true;
                }
            } else {
                LOG.error("Replay: startBgp() received exception error {} : ", bre.getErrorCode(), bre);
                startBgpRetry.errorOccured();
            }
        } catch (TApplicationException tae) {
            if (tae.getType() == BgpRouterException.BGP_ERR_ACTIVE) {
                LOG.debug("Starting the routesync for exception", tae);
                startBgpRetry.errorOccured();
                if (!startBgpRetry.shouldRetry()) {
                    doRouteSync = true;
                    replayDone = true;
                }
            } else if (tae.getType() == BgpRouterException.BGP_ERR_COMMON_FAILURE) {
                LOG.debug("Starting the routesync for AS-ID started exception", tae);
                startBgpRetry.errorOccured();
                if (!startBgpRetry.shouldRetry()) {
                    doRouteSync = true;
                    replayDone = true;
                }
            } else {
                LOG.error("Replay: startBgp() received exception type {}: ", tae.getType(), tae);
                startBgpRetry.errorOccured();
            }
        } catch (Exception e) {
            // not unusual. We may have restarted & BGP is already on
            LOG.error("Replay:startBgp() received exception: ", e);
            startBgpRetry.errorOccured();
        }
    } while (startBgpRetry.shouldRetry());
    replaySucceded = replayDone;
    startBgpCountersTask();
    startBgpAlarmsTask();
    /*
         * commenting this due to a bug with QBGP. Will uncomment once QBGP fix is done.
         * This wont have any functional impacts
         */
    // try {
    // br.delayEOR(delayEorSeconds);
    // } catch (TException | BgpRouterException e) {
    // LOG.error("Replay: delayEOR() number of seconds to wait for EOR from ODL:", e);
    // }
    BfdConfig bfdConfig = bgpUtil.getBfdConfig();
    if (bfdConfig != null) {
        if (bfdConfig.isBfdEnabled()) {
            LOG.debug("Replaying bfd config min-rx {} min-tx {} detect-mul {} mhop {}", bfdConfig.getMinRx(), bfdConfig.getMinTx(), bfdConfig.getDetectMult(), bfdConfig.isMultihop());
            try {
                br.addBfd(bfdConfig.getDetectMult().intValue(), bfdConfig.getMinRx().intValue(), bfdConfig.getMinTx().intValue(), bfdConfig.isMultihop());
            } catch (TApplicationException tae) {
                if (tae.getType() == BgpRouterException.BGP_ERR_PEER_EXISTS) {
                    LOG.debug("Replay:addBfd() received exception", tae);
                } else {
                    LOG.error("Replay:addBfd() received exception", tae);
                }
            } catch (TException | BgpRouterException e) {
                LOG.error("Replay:addBfd() received exception", e);
            }
        }
    }
    Map<NeighborsKey, Neighbors> keyNeighborsMap = config.getNeighborsContainer() == null ? null : config.getNeighborsContainer().getNeighbors();
    if (keyNeighborsMap != null) {
        LOG.error("configuring existing Neighbors present for replay total keyNeighborsMap {}", keyNeighborsMap.values().size());
        boolean neighborConfigReplayResult = replayNbrConfig(new ArrayList<Neighbors>(keyNeighborsMap.values()), br);
        if (neighborConfigReplayResult == false) {
            replaySucceded = false;
        }
    } else {
        LOG.error("no Neighbors present for replay config ");
    }
    Logging logging = config.getLogging();
    if (logging != null) {
        try {
            br.setLogging(logging.getFile(), logging.getLevel());
        } catch (TException | BgpRouterException e) {
            LOG.error("Replay:setLogging() received exception", e);
        }
    }
    GracefulRestart gracefulRestart = config.getGracefulRestart();
    bgpGrRestartTime = ((gracefulRestart != null) ? gracefulRestart.getStalepathTime().intValue() : bgpGrRestartTime);
    try {
        br.addGracefulRestart(bgpGrRestartTime);
    } catch (Exception e) {
        LOG.error("Replay:addGr() received exception: ", e);
    }
    Map<VrfsKey, Vrfs> keyVrfsMap = config.getVrfsContainer() == null ? null : config.getVrfsContainer().getVrfs();
    if (keyVrfsMap == null) {
        keyVrfsMap = new HashMap<VrfsKey, Vrfs>();
    }
    for (Vrfs vrf : keyVrfsMap.values()) {
        for (AddressFamiliesVrf adf : vrf.getAddressFamiliesVrf().values()) {
            try {
                br.addVrf(BgpUtil.getLayerType(adf), vrf.getRd(), vrf.getImportRts(), vrf.getExportRts(), adf.getAfi().toJava(), adf.getSafi().toJava());
            } catch (TException | BgpRouterException e) {
                LOG.error("Replay:addVrf() received exception", e);
            }
        }
    }
    Map<NetworksKey, Networks> keyNetworksMap = config.getNetworksContainer() == null ? null : config.getNetworksContainer().getNetworks();
    if (keyNetworksMap != null) {
        for (Networks net : keyNetworksMap.values()) {
            String rd = net.getRd();
            String pfxlen = net.getPrefixLen();
            String nh = net.getNexthop().getValue();
            Long label = net.getLabel().toJava();
            int lbl = label == null ? 0 : label.intValue();
            int l3vni = net.getL3vni() == null ? 0 : net.getL3vni().intValue();
            int l2vni = net.getL2vni() == null ? 0 : net.getL2vni().intValue();
            if (rd == null && lbl > 0) {
                // LU prefix is being deleted.
                rd = Integer.toString(lbl);
            }
            BgpControlPlaneType protocolType = net.getBgpControlPlaneType();
            int ethernetTag = net.getEthtag().intValue();
            String esi = net.getEsi();
            String macaddress = net.getMacaddress();
            EncapType encapType = net.getEncapType();
            String routerMac = net.getRoutermac();
            try {
                br.addPrefix(rd, pfxlen, nh, lbl, l3vni, l2vni, BgpUtil.convertToThriftProtocolType(protocolType), ethernetTag, esi, macaddress, BgpUtil.convertToThriftEncapType(encapType), routerMac);
            } catch (TException | BgpRouterException e) {
                LOG.error("Replay:addPfx() received exception", e);
            }
        }
    }
    Map<MultipathKey, Multipath> keyMultipathMap = config.getMultipathContainer() == null ? null : config.getMultipathContainer().getMultipath();
    if (keyMultipathMap != null) {
        for (Multipath multipath : keyMultipathMap.values()) {
            if (multipath != null) {
                af_afi afi = af_afi.findByValue(multipath.getAfi().intValue());
                af_safi safi = af_safi.findByValue(multipath.getSafi().intValue());
                try {
                    if (multipath.isMultipathEnabled()) {
                        br.enableMultipath(afi, safi);
                    } else {
                        br.disableMultipath(afi, safi);
                    }
                } catch (TException | BgpRouterException e) {
                    LOG.info("Replay:keyMultipathMap() received exception", e);
                }
            }
        }
    }
    Map<VrfMaxpathKey, VrfMaxpath> keyVrfMaxpathMap = config.getVrfMaxpathContainer() == null ? null : config.getVrfMaxpathContainer().getVrfMaxpath();
    if (keyVrfMaxpathMap != null) {
        for (VrfMaxpath vrfMaxpath : keyVrfMaxpathMap.values()) {
            try {
                br.multipaths(vrfMaxpath.getRd(), vrfMaxpath.getMaxpaths().toJava());
            } catch (TException | BgpRouterException e) {
                LOG.info("Replay:vrfMaxPath() received exception", e);
            }
        }
    }
    // send End of Rib Marker to Qthriftd.
    final int numberOfEORRetries = 3;
    RetryOnException eorRetry = new RetryOnException(numberOfEORRetries);
    do {
        try {
            br.sendEOR();
            LOG.debug("Replay sendEOR() successful");
            break;
        } catch (Exception e) {
            eorRetry.errorOccured();
            LOG.error("Replay:sedEOR() received exception:", e);
        }
    } while (eorRetry.shouldRetry());
    if (doRouteSync) {
        LOG.debug("starting route sync for Thrift BGP_ERR_COMMON_FAILURE exception " + "happened earlier");
        doRouteSync();
    }
    return replaySucceded;
}
Also used : TException(org.apache.thrift.TException) Vrfs(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfscontainer.Vrfs) Networks(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.Networks) VrfsKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfscontainer.VrfsKey) org.opendaylight.netvirt.bgpmanager.thrift.gen.af_safi(org.opendaylight.netvirt.bgpmanager.thrift.gen.af_safi) AsId(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.AsId) BgpRouterException(org.opendaylight.netvirt.bgpmanager.thrift.client.BgpRouterException) BfdConfig(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebfd.rev190219.BfdConfig) BgpControlPlaneType(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.BgpControlPlaneType) EncapType(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.EncapType) org.opendaylight.netvirt.bgpmanager.thrift.gen.af_afi(org.opendaylight.netvirt.bgpmanager.thrift.gen.af_afi) Logging(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.Logging) MultipathKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.multipathcontainer.MultipathKey) VrfMaxpathKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfmaxpathcontainer.VrfMaxpathKey) Neighbors(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.Neighbors) BgpRouter(org.opendaylight.netvirt.bgpmanager.thrift.client.BgpRouter) VrfMaxpath(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfmaxpathcontainer.VrfMaxpath) InvocationTargetException(java.lang.reflect.InvocationTargetException) SocketException(java.net.SocketException) TException(org.apache.thrift.TException) ExecutionException(java.util.concurrent.ExecutionException) TimeoutException(java.util.concurrent.TimeoutException) BgpRouterException(org.opendaylight.netvirt.bgpmanager.thrift.client.BgpRouterException) CandidateAlreadyRegisteredException(org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException) TApplicationException(org.apache.thrift.TApplicationException) TransactionCommitFailedException(org.opendaylight.mdsal.common.api.TransactionCommitFailedException) TApplicationException(org.apache.thrift.TApplicationException) Multipath(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.multipathcontainer.Multipath) NetworksKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.NetworksKey) GracefulRestart(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.GracefulRestart) AddressFamiliesVrf(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfscontainer.vrfs.AddressFamiliesVrf) IpAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress) NeighborsKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.NeighborsKey)

Example 53 with Networks

use of org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.Networks in project netvirt by opendaylight.

the class Cache method doExecute.

@SuppressWarnings({ "resource", "checkstyle:RegexpSinglelineJava" })
@Override
protected Object doExecute() {
    boolean listVrfs = false;
    boolean listNets = false;
    PrintStream ps = System.out;
    if (action != null) {
        return usage();
    }
    PrintStream fileStream = null;
    try {
        if (ofile != null) {
            try {
                fileStream = new PrintStream(ofile);
                ps = fileStream;
            } catch (FileNotFoundException e) {
                System.out.println("error: cannot create file " + ofile + "; exception: " + e);
                return null;
            }
        }
        if (list != null) {
            for (String item : list) {
                switch(item) {
                    case "vrfs":
                        listVrfs = true;
                        break;
                    case "networks":
                        listNets = true;
                        break;
                    default:
                        System.out.println("error: unknown value for " + LST + ": " + item);
                        if (fileStream != null) {
                            fileStream.close();
                        }
                        return null;
                }
            }
        }
        // we'd normally read this directly from 'config' but
        // legacy behaviour forces to check for a connection
        // that's initiated by default at startup without
        // writing to config.
        String configHost = bgpManager.getConfigHost();
        int configPort = bgpManager.getConfigPort();
        ps.printf("%nConfiguration Server%n\t%s  %s%n\t%s  %d%n", HTSTR, configHost, PTSTR, configPort);
        Bgp config = bgpManager.getConfig();
        if (config == null) {
            if (fileStream != null) {
                fileStream.close();
            }
            return null;
        }
        AsId asId = config.getAsId();
        if (asId != null) {
            Long asNum = asId.getLocalAs().longValue();
            IpAddress routerId = asId.getRouterId();
            Long spt = asId.getStalepathTime().toJava();
            Boolean afb = asId.isAnnounceFbit();
            String rid = routerId == null ? "<n/a>" : routerId.stringValue();
            // F-bit is always set to ON (hardcoded), in SDN even though the controller is down
            // forwarding state shall be retained.
            String bit = "ON";
            GracefulRestart gracefulRestart = config.getGracefulRestart();
            if (gracefulRestart != null) {
                spt = gracefulRestart.getStalepathTime().toJava();
            }
            ps.printf("%nBGP Router%n");
            ps.printf("\t%-15s  %s%n\t%-15s  %s%n\t%-15s  %s%n\t%-15s  %s%n", ASSTR, asNum.toString(), RISTR, rid, SPSTR, spt == null || spt == 0 ? "default" : spt.toString(), FBSTR, bit);
        }
        Logging logging = config.getLogging();
        if (logging != null) {
            ps.printf("\t%-15s  %s%n\t%-15s  %s%n", LFSTR, logging.getFile(), LLSTR, logging.getLevel());
        }
        Map<NeighborsKey, Neighbors> keyNeighborsMap = (config.getNeighborsContainer() == null) ? null : config.getNeighborsContainer().getNeighbors();
        if (keyNeighborsMap != null) {
            ps.printf("%nNeighbors%n");
            for (Neighbors nbr : keyNeighborsMap.values()) {
                ps.printf("\t%s%n\t\t%-16s  %d%n", nbr.getAddress().getValue(), ASSTR, nbr.getRemoteAs());
                EbgpMultihop en = nbr.getEbgpMultihop();
                if (en != null) {
                    ps.printf("\t\t%-16s  %d%n", EBSTR, en.getNhops().intValue());
                }
                UpdateSource us = nbr.getUpdateSource();
                if (us != null) {
                    ps.printf("\t\t%-16s  %s%n", USSTR, us.getSourceIp().getValue());
                }
                ps.printf("\t\t%-16s  IPv4-Labeled-VPN", AFSTR);
                Map<AddressFamiliesKey, AddressFamilies> keyAddressFamiliesMap = nbr.getAddressFamilies();
                if (keyAddressFamiliesMap != null) {
                    for (AddressFamilies af : keyAddressFamiliesMap.values()) {
                        // Should not print "unknown" in vpnv4 case
                        if (!(af.getSafi().intValue() == 5 && af.getAfi().intValue() == 1)) {
                            if (af.getSafi().intValue() == 4 && af.getAfi().intValue() == 1) {
                                ps.printf(" %s", "IPv4-Labeled-Unicast");
                            } else if (af.getSafi().intValue() == 5 && af.getAfi().intValue() == 2) {
                                ps.printf(" %s", "IPv6-Labeled-VPN");
                            } else if (af.getSafi().intValue() == 6) {
                                ps.printf(" %s", "Ethernet-VPN");
                            } else {
                                ps.printf(" %s", "Unknown");
                            }
                        }
                    }
                }
                ps.printf("%n");
            }
        }
        if (listVrfs) {
            Map<VrfsKey, Vrfs> keyVrfsMap = (config.getVrfsContainer() == null) ? null : config.getVrfsContainer().getVrfs();
            if (keyVrfsMap != null) {
                ps.printf("%nVRFs%n");
                for (Vrfs vrf : keyVrfsMap.values()) {
                    ps.printf("\t%s%n", vrf.getRd());
                    ps.printf("\t\t%s  ", IRSTR);
                    for (String rt : vrf.getImportRts()) {
                        ps.printf("%s ", rt);
                    }
                    ps.printf("%n\t\t%s  ", ERSTR);
                    for (String rt : vrf.getExportRts()) {
                        ps.printf("%s ", rt);
                    }
                    for (AddressFamiliesVrf adf : vrf.getAddressFamiliesVrf().values()) {
                        ps.printf("%n\t\tafi %d safi %d", adf.getAfi(), adf.getSafi());
                    }
                    ps.printf("%n");
                }
            }
        }
        if (listNets) {
            Map<NetworksKey, Networks> keyNetworksMap = (config.getNetworksContainer() == null) ? null : config.getNetworksContainer().getNetworks();
            if (keyNetworksMap != null) {
                ps.printf("%nNetworks%n");
                for (Networks net : keyNetworksMap.values()) {
                    String rd = net.getRd();
                    String pfxlen = net.getPrefixLen();
                    String nh = net.getNexthop().getValue();
                    int label = net.getLabel().intValue();
                    ps.printf("\t%s%n\t\t%-7s  %s%n\t\t%-7s  %s%n\t\t%-7s  %d%n", pfxlen, RDSTR, rd, NHSTR, nh, LBSTR, label);
                }
            }
        }
        Map<MultipathKey, Multipath> keyMultipathMap = config.getMultipathContainer() == null ? null : config.getMultipathContainer().getMultipath();
        Map<VrfMaxpathKey, VrfMaxpath> keyVrfMaxpathMap = config.getVrfMaxpathContainer() == null ? null : config.getVrfMaxpathContainer().getVrfMaxpath();
        if (keyMultipathMap != null) {
            ps.printf("%nMultipath%n");
            for (Multipath multipath : keyMultipathMap.values()) {
                int afi = multipath.getAfi().intValue();
                int safi = multipath.getSafi().intValue();
                Boolean enabled = multipath.isMultipathEnabled();
                if (enabled) {
                    if (afi == 1 && safi == 5) {
                        ps.printf("\t%-16s  %s%n%n", AFSTR, "vpnv4");
                    } else if (afi == 2 && safi == 5) {
                        ps.printf("\t%-16s  %s%n%n", AFSTR, "vpnv6");
                    } else if (afi == 3 && safi == 6) {
                        ps.printf("\t%-16s  %s%n%n", AFSTR, "evpn");
                    } else {
                        ps.printf("\t%-16s  %s%n%n", AFSTR, "Unknown");
                    }
                    if (keyVrfMaxpathMap != null) {
                        ps.printf("\t%-16s  %s%n", RDSTR, MPSTR);
                        for (VrfMaxpath vrfMaxpath : keyVrfMaxpathMap.values()) {
                            String rd = vrfMaxpath.getRd();
                            int maxpath = vrfMaxpath.getMaxpaths().toJava();
                            ps.printf("\t%-16s  %d%n", rd, maxpath);
                        }
                    }
                }
            }
        }
    } finally {
        if (fileStream != null) {
            fileStream.close();
        }
    }
    return null;
}
Also used : Vrfs(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfscontainer.Vrfs) Networks(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.Networks) VrfsKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfscontainer.VrfsKey) FileNotFoundException(java.io.FileNotFoundException) EbgpMultihop(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.neighbors.EbgpMultihop) AsId(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.AsId) AddressFamilies(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.neighbors.AddressFamilies) UpdateSource(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.neighbors.UpdateSource) Logging(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.Logging) PrintStream(java.io.PrintStream) MultipathKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.multipathcontainer.MultipathKey) VrfMaxpathKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfmaxpathcontainer.VrfMaxpathKey) AddressFamiliesKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.neighbors.AddressFamiliesKey) Neighbors(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.Neighbors) Bgp(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.Bgp) VrfMaxpath(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfmaxpathcontainer.VrfMaxpath) Multipath(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.multipathcontainer.Multipath) NetworksKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.NetworksKey) GracefulRestart(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.GracefulRestart) AddressFamiliesVrf(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.vrfscontainer.vrfs.AddressFamiliesVrf) IpAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress) NeighborsKey(org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.NeighborsKey)

Example 54 with Networks

use of org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.Networks in project netvirt by opendaylight.

the class NetworkL2gwDeviceInfoCli method doExecute.

@Override
@Nullable
@SuppressWarnings("illegalcatch")
protected Object doExecute() {
    ManagedNewTransactionRunner txRunner = new ManagedNewTransactionRunnerImpl(dataBroker);
    try {
        txRunner.callWithNewReadOnlyTransactionAndClose(OPERATIONAL, operTx -> {
            List<Node> nodes = new ArrayList<>();
            Set<String> networks = new HashSet<>();
            if (nodeId == null) {
                Optional<Topology> topologyOptional = operTx.read(createHwvtepTopologyInstanceIdentifier()).get();
                if (topologyOptional.isPresent()) {
                    nodes = new ArrayList<>(topologyOptional.get().getNode().values());
                }
            } else {
                Optional<Node> nodeOptional = operTx.read(createInstanceIdentifier(new NodeId(new Uri(nodeId)))).get();
                if (nodeOptional.isPresent()) {
                    nodes.add(nodeOptional.get());
                }
            }
            if (elanName == null) {
                // get all elan instance
                // get all device node id
                // print result
                Optional<ElanInstances> elanInstancesOptional = MDSALUtil.read(dataBroker, LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.builder(ElanInstances.class).build());
                if (elanInstancesOptional.isPresent()) {
                    List<ElanInstance> elans = new ArrayList<>(elanInstancesOptional.get().getElanInstance().values());
                    if (elans != null) {
                        for (ElanInstance elan : elans) {
                            networks.add(elan.getElanInstanceName());
                        }
                    }
                }
            } else {
                networks.add(elanName);
            }
            if (nodes != null) {
                for (Node node : nodes) {
                    if (node.getNodeId().getValue().contains("physicalswitch")) {
                        continue;
                    }
                    Node hwvtepConfigNode = HwvtepUtils.getHwVtepNode(dataBroker, LogicalDatastoreType.CONFIGURATION, node.getNodeId());
                    Node hwvtepOpPsNode = getPSnode(node, LogicalDatastoreType.OPERATIONAL);
                    Node hwvtepConfigPsNode = null;
                    if (hwvtepOpPsNode != null) {
                        hwvtepConfigPsNode = HwvtepUtils.getHwVtepNode(dataBroker, LogicalDatastoreType.CONFIGURATION, hwvtepOpPsNode.getNodeId());
                        opPSNodes.put(node.getNodeId(), hwvtepOpPsNode);
                    }
                    opNodes.put(node.getNodeId(), node);
                    configNodes.put(node.getNodeId(), hwvtepConfigNode);
                    if (hwvtepConfigPsNode != null) {
                        configPSNodes.put(node.getNodeId(), hwvtepConfigPsNode);
                    }
                }
            }
            if (!networks.isEmpty()) {
                for (String network : networks) {
                    session.getConsole().println("Network info for " + network);
                    if (nodes != null) {
                        for (Node node : nodes) {
                            if (node.getNodeId().getValue().contains("physicalswitch")) {
                                continue;
                            }
                            session.getConsole().println("Printing for node " + node.getNodeId().getValue());
                            process(node.getNodeId(), network);
                        }
                    }
                }
            }
        });
    } catch (Exception e) {
        session.getConsole().println("Failed with error " + e.getMessage());
    }
    return null;
}
Also used : ElanInstance(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance) Node(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node) ArrayList(java.util.ArrayList) NetworkTopology(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology) Topology(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology) ElanInstances(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.ElanInstances) Uri(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri) ExecutionException(java.util.concurrent.ExecutionException) ManagedNewTransactionRunnerImpl(org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl) ManagedNewTransactionRunner(org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner) NodeId(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId) HashSet(java.util.HashSet) Nullable(org.eclipse.jdt.annotation.Nullable)

Example 55 with Networks

use of org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.Networks in project netvirt by opendaylight.

the class ElanUtils method setupRemoteDmacFlow.

public void setupRemoteDmacFlow(Uint64 srcDpId, Uint64 destDpId, int lportTag, Uint32 elanTag, String macAddress, String displayName, TypedWriteTransaction<Configuration> writeFlowGroupTx, String interfaceName, ElanInstance elanInstance) {
    if (interfaceManager.isExternalInterface(interfaceName)) {
        LOG.debug("Ignoring install remote DMAC {} flow on provider interface {} elan {}", macAddress, interfaceName, elanInstance.getElanInstanceName());
        return;
    }
    // if openstack-vni-semantics are enforced, segmentation ID is passed as network VNI for VxLAN based provider
    // networks, 0 otherwise
    long lportTagOrVni = !isOpenstackVniSemanticsEnforced() ? lportTag : isVxlanNetworkOrVxlanSegment(elanInstance) ? getVxlanSegmentationId(elanInstance).longValue() : 0;
    Flow flowEntity = buildRemoteDmacFlowEntry(srcDpId, destDpId, lportTagOrVni, elanTag, macAddress, displayName, elanInstance);
    mdsalManager.addFlow(writeFlowGroupTx, srcDpId, flowEntity);
    setupEtreeRemoteDmacFlow(srcDpId, destDpId, lportTagOrVni, elanTag, macAddress, displayName, interfaceName, writeFlowGroupTx, elanInstance);
}
Also used : Flow(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow)

Aggregations

Uuid (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid)43 ExecutionException (java.util.concurrent.ExecutionException)19 ArrayList (java.util.ArrayList)16 ProviderTypes (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ProviderTypes)14 TransactionCommitFailedException (org.opendaylight.mdsal.common.api.TransactionCommitFailedException)13 ExternalNetworks (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ExternalNetworks)13 Networks (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.networks.Networks)13 NetworksKey (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.networks.NetworksKey)11 Uint32 (org.opendaylight.yangtools.yang.common.Uint32)9 BigInteger (java.math.BigInteger)6 Networks (org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.Networks)6 NetworksKey (org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.networkscontainer.NetworksKey)6 Uint64 (org.opendaylight.yangtools.yang.common.Uint64)5 HashSet (java.util.HashSet)4 NonNull (org.eclipse.jdt.annotation.NonNull)4 AcquireResult (org.opendaylight.infrautils.utils.concurrent.NamedSimpleReentrantLock.AcquireResult)4 NetworksBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.networks.NetworksBuilder)4 InternalToExternalPortMap (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.floating.ip.info.router.ports.ports.InternalToExternalPortMap)4 VpnMap (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.vpnmaps.VpnMap)4 Network (org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network)4