Search in sources :

Example 76 with Network

use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project netvirt by opendaylight.

the class ConfigurationClassifierImpl method getEntriesForAce.

private Set<ClassifierRenderableEntry> getEntriesForAce(Ace ace) {
    String ruleName = ace.getRuleName();
    LOG.debug("Generating classifier entries for Ace: {}", ruleName);
    LOG.trace("Ace details: {}", ace);
    Optional<NetvirtsfcAclActions> sfcActions = Optional.ofNullable(ace.getActions()).map(actions -> actions.getAugmentation(RedirectToSfc.class));
    String rspName = sfcActions.map(NetvirtsfcAclActions::getRspName).map(Strings::emptyToNull).orElse(null);
    String sfpName = sfcActions.map(NetvirtsfcAclActions::getSfpName).map(Strings::emptyToNull).orElse(null);
    if (rspName == null && sfpName == null) {
        LOG.debug("Ace {} ignored: no valid SFC redirect action", ruleName);
        return Collections.emptySet();
    }
    if (rspName != null && sfpName != null) {
        LOG.warn("Ace {} ignored: both SFP and a RSP as redirect actions not supported", ruleName);
        return Collections.emptySet();
    }
    Matches matches = ace.getMatches();
    if (matches == null) {
        LOG.warn("Ace {} ignored: no matches", ruleName);
        return Collections.emptySet();
    }
    NeutronNetwork network = matches.getAugmentation(NeutronNetwork.class);
    if (sfpName != null && network != null) {
        LOG.warn("Ace {} ignored: SFP redirect action with neutron network match not supported", ruleName);
        return Collections.emptySet();
    }
    String sourcePort = Optional.ofNullable(matches.getAugmentation(NeutronPorts.class)).map(NeutronPorts::getSourcePortUuid).map(Strings::emptyToNull).orElse(null);
    String destinationPort = Optional.ofNullable(matches.getAugmentation(NeutronPorts.class)).map(NeutronPorts::getDestinationPortUuid).map(Strings::emptyToNull).orElse(null);
    if (rspName != null) {
        return getEntriesForRspRedirect(ruleName, sourcePort, destinationPort, network, rspName, matches);
    }
    return getEntriesForSfpRedirect(ruleName, sourcePort, destinationPort, sfpName, matches);
}
Also used : NetvirtsfcAclActions(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.sfc.acl.rev150105.NetvirtsfcAclActions) NeutronNetwork(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.sfc.acl.rev150105.NeutronNetwork) Matches(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.ace.Matches) AclMatches(org.opendaylight.netvirt.sfc.classifier.utils.AclMatches) RedirectToSfc(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.sfc.acl.rev150105.RedirectToSfc) NeutronPorts(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.sfc.acl.rev150105.NeutronPorts)

Example 77 with Network

use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project netvirt by opendaylight.

the class ConfigureL3VpnCommand method createL3VpnCLI.

private void createL3VpnCLI() throws InterruptedException, ExecutionException {
    if (vid == null) {
        session.getConsole().println("Please supply a valid VPN ID");
        session.getConsole().println(getHelp("create"));
        return;
    }
    if (rd == null) {
        session.getConsole().println("Please supply a valid RD");
        session.getConsole().println(getHelp("create"));
        return;
    }
    if (irt == null) {
        session.getConsole().println("Please supply a valid list of import RTs separated by {,}");
        session.getConsole().println(getHelp("create"));
        return;
    }
    if (ert == null) {
        session.getConsole().println("Please supply a valid list of export RTs separated by {,}");
        session.getConsole().println(getHelp("create"));
        return;
    }
    Uuid vuuid = new Uuid(vid);
    RpcResult<CreateL3VPNOutput> createL3VpnRpcResult = null;
    {
        ArrayList<String> rdList = new ArrayList<>(Arrays.asList(rd.split(",")));
        ArrayList<String> irtList = new ArrayList<>(Arrays.asList(irt.split(",")));
        ArrayList<String> ertList = new ArrayList<>(Arrays.asList(ert.split(",")));
        Uuid tuuid = null;
        if (tid != null) {
            tuuid = new Uuid(tid);
        }
        List<L3vpn> l3vpns = new ArrayList<>();
        L3vpn l3vpn = new L3vpnBuilder().setId(vuuid).setName(name).setRouteDistinguisher(rdList).setImportRT(irtList).setExportRT(ertList).setTenantId(tuuid).build();
        l3vpns.add(l3vpn);
        Future<RpcResult<CreateL3VPNOutput>> result = neutronvpnService.createL3VPN(new CreateL3VPNInputBuilder().setL3vpn(l3vpns).build());
        createL3VpnRpcResult = result.get();
        if (createL3VpnRpcResult.isSuccessful()) {
            session.getConsole().println("L3VPN created successfully");
            LOG.trace("createl3vpn: {}", result);
        } else {
            session.getConsole().println("Error populating createL3VPN : " + result.get().getErrors());
            session.getConsole().println(getHelp("create"));
        }
    }
    /**
     * passing a subnetId list alongwith create-l3-vpn CLI implicitly indicates that
     * association of network(s) to VPN is being intended.
     */
    if (createL3VpnRpcResult.isSuccessful()) {
        {
            List<Uuid> networkIdList = new ArrayList<>();
            if (sid != null) {
                for (String sidStr : sid.split(",")) {
                    Uuid subnetId = new Uuid(sidStr);
                    Uuid networkId = neutronVpnManager.getNetworkForSubnet(subnetId);
                    if (networkId != null) {
                        networkIdList.add(networkId);
                    } else {
                        session.getConsole().println("Could not find network for subnet " + subnetId.getValue() + ". Not proceeding with adding subnet to VPN");
                    }
                }
                if (!networkIdList.isEmpty()) {
                    Future<RpcResult<AssociateNetworksOutput>> result = neutronvpnService.associateNetworks(new AssociateNetworksInputBuilder().setVpnId(vuuid).setNetworkId(networkIdList).build());
                    RpcResult<AssociateNetworksOutput> associateNetworksRpcResult = result.get();
                    if (associateNetworksRpcResult.isSuccessful()) {
                        session.getConsole().println("Subnet(s) added to VPN successfully");
                        LOG.trace("associateNetworks: {}", result);
                    } else {
                        session.getConsole().println("Error while adding subnet(s) to VPN: " + result.get().getErrors());
                        session.getConsole().println(getHelp("create"));
                    }
                }
            }
        }
    }
}
Also used : CreateL3VPNOutput(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.CreateL3VPNOutput) ArrayList(java.util.ArrayList) RpcResult(org.opendaylight.yangtools.yang.common.RpcResult) L3vpn(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.createl3vpn.input.L3vpn) AssociateNetworksInputBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.AssociateNetworksInputBuilder) Uuid(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid) AssociateNetworksOutput(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.AssociateNetworksOutput) Future(java.util.concurrent.Future) ArrayList(java.util.ArrayList) List(java.util.List) L3vpnBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.createl3vpn.input.L3vpnBuilder) CreateL3VPNInputBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.CreateL3VPNInputBuilder)

Example 78 with Network

use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project netvirt by opendaylight.

the class ConfigureL3VpnCommand method deleteL3VpnCLI.

private void deleteL3VpnCLI() throws InterruptedException, ExecutionException {
    if (vid == null) {
        session.getConsole().println("Please supply a valid VPN ID");
        session.getConsole().println(getHelp("delete"));
        return;
    }
    Uuid vpnId = new Uuid(vid);
    // disassociation of network(s) (removal of subnet(s)) from VPN to be followed by deletion of VPN
    RpcResult<DissociateNetworksOutput> dissociateNetworksRpcResult = null;
    List<Uuid> networkIdList = null;
    networkIdList = neutronVpnManager.getNetworksForVpn(vpnId);
    if (networkIdList != null && !networkIdList.isEmpty()) {
        Future<RpcResult<DissociateNetworksOutput>> result = neutronvpnService.dissociateNetworks(new DissociateNetworksInputBuilder().setVpnId(vpnId).setNetworkId(networkIdList).build());
        dissociateNetworksRpcResult = result.get();
        if (dissociateNetworksRpcResult.isSuccessful()) {
            session.getConsole().println("Subnet(s) removed from VPN successfully");
            LOG.trace("dissociateNetworks: {}", result);
        } else {
            session.getConsole().println("Error while removing subnet(s) from VPN: " + result.get().getErrors());
            session.getConsole().println(getHelp("delete"));
        }
    }
    if (networkIdList == null || networkIdList.isEmpty() || dissociateNetworksRpcResult.isSuccessful()) {
        List<Uuid> vpnIdList = new ArrayList<>();
        vpnIdList.add(vpnId);
        Future<RpcResult<DeleteL3VPNOutput>> result = neutronvpnService.deleteL3VPN(new DeleteL3VPNInputBuilder().setId(vpnIdList).build());
        RpcResult<DeleteL3VPNOutput> rpcResult = result.get();
        if (rpcResult.isSuccessful()) {
            session.getConsole().println("L3VPN deleted successfully");
            LOG.trace("deletel3vpn: {}", result);
        } else {
            session.getConsole().println("Error populating deleteL3VPN : " + result.get().getErrors());
            session.getConsole().println(getHelp("delete"));
        }
    } else {
        session.getConsole().println("Not proceeding with deletion of L3VPN since error(s) encountered " + "in removing subnet(s) from VPN");
    }
}
Also used : Uuid(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid) DissociateNetworksOutput(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.DissociateNetworksOutput) DeleteL3VPNOutput(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.DeleteL3VPNOutput) RpcResult(org.opendaylight.yangtools.yang.common.RpcResult) ArrayList(java.util.ArrayList) DeleteL3VPNInputBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.DeleteL3VPNInputBuilder) DissociateNetworksInputBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.DissociateNetworksInputBuilder)

Example 79 with Network

use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project bgpcep by opendaylight.

the class NetworkTopologyConfigFileProcessorTest method configFileTest.

@Test
public void configFileTest() throws ReadFailedException, InterruptedException {
    final KeyedInstanceIdentifier<Topology, TopologyKey> topologyIIdKeyed = InstanceIdentifier.create(NetworkTopology.class).child(Topology.class, new TopologyKey(new TopologyId("topology-test")));
    checkNotPresentConfiguration(getDataBroker(), topologyIIdKeyed);
    assertNotNull(ClassLoader.getSystemClassLoader().getResource("initial/network-topology-config.xml"));
    final NetworkTopologyConfigFileProcessor processor = new NetworkTopologyConfigFileProcessor(this.configLoader, getDataBroker());
    processor.init();
    checkPresentConfiguration(getDataBroker(), topologyIIdKeyed);
    assertEquals(SchemaPath.create(true, NetworkTopology.QNAME), processor.getSchemaPath());
    processor.close();
}
Also used : TopologyKey(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey) NetworkTopology(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology) 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) TopologyId(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId) Test(org.junit.Test)

Example 80 with Network

use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project lispflowmapping by opendaylight.

the class ListenerTest method toStringTest.

/**
 * Tests {@link NetworkListener#toString}, {@link PortListener#toString}, {@link SubnetListener#toString} method.
 */
@Test
public void toStringTest() {
    final DataProcessor<Network> networkDataProcessor = Mockito.mock(DataProcessor.class);
    final DataBroker dataBroker = Mockito.mock(DataBroker.class);
    final NetworkListener networkListener = new NetworkListener(networkDataProcessor, dataBroker);
    final DataProcessor<Port> portDataProcessor = Mockito.mock(DataProcessor.class);
    final PortListener portListener = new PortListener(portDataProcessor, dataBroker);
    final DataProcessor<Subnet> subnetDataProcessor = Mockito.mock(DataProcessor.class);
    final SubnetListener subnetListener = new SubnetListener(subnetDataProcessor, dataBroker);
    assertEquals("NetworkListener", networkListener.toString());
    assertEquals("PortListener", portListener.toString());
    assertEquals("SubnetListener", subnetListener.toString());
}
Also used : Network(org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network) Port(org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port) DataBroker(org.opendaylight.controller.md.sal.binding.api.DataBroker) Subnet(org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.subnets.rev150712.subnets.attributes.subnets.Subnet) Test(org.junit.Test)

Aggregations

Uuid (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid)93 ArrayList (java.util.ArrayList)46 WriteTransaction (org.opendaylight.controller.md.sal.binding.api.WriteTransaction)33 BigInteger (java.math.BigInteger)31 Network (org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network)31 ListenableFuture (com.google.common.util.concurrent.ListenableFuture)26 ProviderTypes (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ProviderTypes)19 Subnetmap (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.subnetmaps.Subnetmap)19 Port (org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port)19 ReadFailedException (org.opendaylight.controller.md.sal.common.api.data.ReadFailedException)17 TransactionCommitFailedException (org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException)15 ElanInstance (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance)12 RpcResult (org.opendaylight.yangtools.yang.common.RpcResult)11 ExecutionException (java.util.concurrent.ExecutionException)10 ExternalNetworks (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ExternalNetworks)10 Networks (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.networks.Networks)10 QosPolicy (org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.qos.policies.QosPolicy)10 Routers (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ext.routers.Routers)9 HashSet (java.util.HashSet)8 Nonnull (javax.annotation.Nonnull)8