NeutronNetwork ans = new NeutronNetwork(); for (String s : fields) { switch (s) { case "id": ans.setNetworkUUID(this.getNetworkUUID()); break; case "name": ans.setNetworkName(this.getNetworkName()); break; case "admin_state_up": ans.setAdminStateUp(adminStateUp); break; case "status": ans.setStatus(this.getStatus()); break; case "shared": ans.setShared(shared); break; case "tenant_id": ans.setTenantID(this.getTenantID()); break; case "external": ans.setRouterExternal(this.getRouterExternal()); break; case "segmentation_id": ans.setProviderSegmentationID(this.getProviderSegmentationID()); break; case "physical_network": ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
if (network.getID().equals(networkID)) { return new AbstractMap.SimpleEntry<>( network.getProviderNetworkType(), network.getProviderSegmentationID());
public NeutronNetwork createNeutronNetwork(String uuid, String tenantID, String networkTypeVxlan, String segId) { INeutronNetworkCRUD iNeutronNetworkCRUD = (INeutronNetworkCRUD) ServiceHelper.getGlobalInstance(INeutronNetworkCRUD.class, this); NeutronNetwork nn = new NeutronNetwork(); nn.setID(uuid); nn.initDefaults(); nn.setTenantID(tenantID); nn.setProviderNetworkType(networkTypeVxlan); nn.setProviderSegmentationID(segId); iNeutronNetworkCRUD.addNetwork(nn); return nn; }
@Override public String getNetworkId(String segmentationId) { Preconditions.checkNotNull(neutronNetworkCache); List <NeutronNetwork> networks = neutronNetworkCache.getAllNetworks(); for (NeutronNetwork network : networks) { if (network.getProviderSegmentationID() != null && network.getProviderSegmentationID().equalsIgnoreCase(segmentationId)) { return network.getNetworkUUID(); } } for (String networkUuid : neutronL3Adapter.getNetworkCleanupCache().keySet()) { NeutronNetwork network = neutronL3Adapter.getNetworkFromCleanupCache(networkUuid); if (network.getProviderSegmentationID() != null && network.getProviderSegmentationID().equalsIgnoreCase(segmentationId)) { return network.getNetworkUUID(); } } return null; }
protected NeutronNetwork fromMd(Network network) { NeutronNetwork result = new NeutronNetwork(); result.setAdminStateUp(network.isAdminStateUp()); result.setNetworkName(network.getName()); result.setShared(network.isShared()); result.setStatus(network.getStatus()); result.setTenantID(network.getTenantId().getValue()); result.setID(network.getUuid().getValue()); result.setRouterExternal(l3Extension.isExternal()); result.setProviderPhysicalNetwork(providerExtension.getPhysicalNetwork()); result.setProviderSegmentationID(providerExtension.getSegmentationId()); result.setProviderNetworkType(NETWORK_MAP.get(providerExtension.getNetworkType())); List<NeutronNetwork_Segment> segments = new ArrayList<>(); if (providerExtension.getSegments() != null) { result.setSegments(segments); return result;
protected Network toMd(NeutronNetwork network) { NetworkBuilder networkBuilder = new NetworkBuilder(); fillExtensions(networkBuilder, network); networkBuilder.setAdminStateUp(network.getAdminStateUp()); if (network.getNetworkName() != null) { networkBuilder.setName(network.getNetworkName()); } if (network.getShared() != null) { networkBuilder.setShared(network.getShared()); } if (network.getStatus() != null) { networkBuilder.setStatus(network.getStatus()); } if (network.getTenantID() != null) { networkBuilder.setTenantId(toUuid(network.getTenantID())); } if (network.getNetworkUUID() != null) { networkBuilder.setUuid(toUuid(network.getNetworkUUID())); } else { LOG.warn("Attempting to write neutron network without UUID"); } return networkBuilder.build(); }
private void fillExtensions(NetworkBuilder networkBuilder, NeutronNetwork network) { NetworkL3ExtensionBuilder l3ExtensionBuilder = new NetworkL3ExtensionBuilder(); if (network.getRouterExternal() != null) { l3ExtensionBuilder.setExternal(network.getRouterExternal()); if (network.getProviderPhysicalNetwork() != null) { providerExtensionBuilder.setPhysicalNetwork(network.getProviderPhysicalNetwork()); if (network.getProviderSegmentationID() != null) { providerExtensionBuilder.setSegmentationId(network.getProviderSegmentationID()); if (network.getProviderNetworkType() != null) { ImmutableBiMap<String, Class<? extends NetworkTypeBase>> mapper = NETWORK_MAP.inverse(); providerExtensionBuilder.setNetworkType(mapper.get(network.getProviderNetworkType())); if (network.getSegments() != null) { List<Segments> segments = new ArrayList<>(); long count = 0; for( NeutronNetwork_Segment segment : network.getSegments()) { count++; SegmentsBuilder segmentsBuilder = new SegmentsBuilder(); if (network.getProviderSegmentationID() != null) { providerExtensionBuilder.setSegmentationId(network.getProviderSegmentationID());
private void removeVlanRules (NeutronNetwork network, Node node, OvsdbTerminationPointAugmentation intf, boolean isLastInstanceOnNode) { LOG.debug("removeVlanRules: node: {}, network: {}, intf: {}, isLastInstanceOnNode", node.getNodeId(), network.getNetworkUUID(), intf.getName(), isLastInstanceOnNode); long dpid = getIntegrationBridgeOFDPID(node); if (dpid == 0L) { bridgeConfigurationManager.getPhysicalInterfaceName(node, network.getProviderPhysicalNetwork()); long ethOFPort = southbound.getOFPort(node, phyIfName); if (ethOFPort == 0) { phyIfName, ethOFPort, node); removeRemoteEgressVlanRules(node, dpid, network.getProviderSegmentationID(), attachedMac, localPort, ethOFPort); if (isLastInstanceOnNode) { removePerVlanRules(node, dpid, network.getProviderSegmentationID(), localPort, ethOFPort);
neutronNetworkCache.getNetwork(subnet.getNetworkUUID()) : null; final String destinationSegmentationId = neutronNetwork != null ? neutronNetwork.getProviderSegmentationID() : null; final Boolean isExternal = neutronNetwork != null ? neutronNetwork.getRouterExternal() : Boolean.TRUE; final String cidr = subnet != null ? subnet.getCidr() : null; final int mask = getMaskLenFromCidr(cidr); macAddress = networkIdToRouterMacCache.get(neutronNetwork.getNetworkUUID()); ipList = networkIdToRouterIpListCache.get(neutronNetwork.getNetworkUUID()); networkIdToRouterMacCache.put(neutronNetwork.getNetworkUUID(), macAddress); networkIdToRouterIpListCache.put(neutronNetwork.getNetworkUUID(), new ArrayList<>(ipList)); subnetIdToRouterInterfaceCache.put(subnet.getSubnetUUID(), destNeutronRouterInterface); networkIdToRouterMacCache.remove(neutronNetwork.getNetworkUUID()); networkIdToRouterIpListCache.remove(neutronNetwork.getNetworkUUID()); subnetIdToRouterInterfaceCache.remove(subnet.getSubnetUUID());
OvsdbTerminationPointAugmentation intf){ LOG.debug("programTunnelRulesInNewNode: network {} networkType {} segId {} src {} dst {} srcBridgeNode {} dstBridgeNode {} intf {}", network.getNetworkName(), networkType, segmentationId, src.getHostAddress(), dst.getHostAddress(), srcBridgeNode, dstBridgeNode, intf); try { String netType = neutronNetwork.getProviderNetworkType(); String segId = neutronNetwork.getProviderSegmentationID(); InetAddress dstAddr = configurationService.getTunnelEndPoint(dstBridgeNode);
@Override public boolean handleInterfaceUpdate(NeutronNetwork network, Node srcNode, OvsdbTerminationPointAugmentation intf) { LOG.debug("handleInterfaceUpdate: network: {} srcNode: {}, intf: {}", network.getProviderSegmentationID(), srcNode.getNodeId(), intf.getName()); Preconditions.checkNotNull(nodeCacheManager); String networkType = network.getProviderNetworkType(); String segmentationId = network.getProviderSegmentationID(); Node srcBridgeNode = southbound.getBridgeNode(srcNode, configurationService.getIntegrationBridgeName()); programLocalRules(networkType, network.getProviderSegmentationID(), srcBridgeNode, intf);
neutronNetworkCache.getNetwork(tenantNeutronPort.getNetworkUUID()) : null; String providerSegmentationId = tenantNeutronNetwork != null ? tenantNeutronNetwork.getProviderSegmentationID() : null; String neutronRouterMac = tenantNeutronNetwork != null ? networkIdToRouterMacCache.get(tenantNeutronNetwork.getID()) : null;
private void storeNetworkInCleanupCache(NeutronNetwork network) { if (network != null) { this.networkCleanupCache.put(network.getNetworkUUID(), network); } }
@Override public void reclaimInternalVlan(Node node, NeutronNetwork network) { int vlan = vlanConfigurationCache.reclaimInternalVlan(node, network.getID()); if (vlan <= 0) { LOG.debug("Unable to get an internalVlan for Network {}", network); return; } LOG.debug("Removed Vlan {} on {}", vlan); }
neutronNetwork.getProviderSegmentationID() : null; final String tenantMac = neutronPort.getMacAddress();
Preconditions.checkNotNull(networkingProviderManager); LOG.debug("createBridges: node: {}, network type: {}", bridgeNode, network.getProviderNetworkType()); if (network.getProviderNetworkType().equalsIgnoreCase(NetworkHandler.NETWORK_TYPE_VLAN)) { String phyNetName = this.getPhysicalInterfaceName(bridgeNode, network.getProviderPhysicalNetwork()); if (!addPortToBridge(bridgeNode, brInt, phyNetName)) { LOG.debug("Add Port {} to Bridge {} failed", phyNetName, brInt);
private void handleInterfaceUpdate (Node node, OvsdbTerminationPointAugmentation tp) { NeutronNetwork network = tenantNetworkManager.getTenantNetwork(tp); if (network != null && !network.getRouterExternal()) { LOG.trace("InterfaceUpdate for OVS Node :{} OvsdbTerminationPointAugmentation :" + " {} for the network : {}", node, tp, network.getNetworkUUID()); if (bridgeConfigurationManager.createLocalNetwork(node, network)) { networkingProviderManager.getProvider(node).handleInterfaceUpdate(network, node, tp); } } else { LOG.debug("No tenant network found on node : {} for interface: {}", node, tp); } distributedArpService.processInterfaceEvent(node, tp, network, Action.UPDATE); neutronL3Adapter.handleInterfaceEvent(node, tp, network, Action.UPDATE); }
if (! sourceNetwork.getTenantID().equals(dstNeutronNetwork.getTenantID())) { final String sourceSegmentationId = sourceNetwork.getProviderSegmentationID(); if (sourceSegmentationId == null) { LOG.error("Could not get provider Segmentation ID for Subnet {}", sourceSubnetId);
return false; if (network.getProviderNetworkType().equalsIgnoreCase(NetworkHandler.NETWORK_TYPE_VLAN)) { if (!isNodeVlanReady(bridgeNode, ovsdbNode, network)) { try { isCreated = true; } else if (network.getProviderNetworkType().equalsIgnoreCase(NetworkHandler.NETWORK_TYPE_VXLAN) || network.getProviderNetworkType().equalsIgnoreCase(NetworkHandler.NETWORK_TYPE_GRE)) { if (!isNodeTunnelReady(bridgeNode, ovsdbNode)) { try {
@Override public boolean isNodeVlanReady(Node bridgeNode, Node ovsdbNode, NeutronNetwork network) { Preconditions.checkNotNull(configurationService); final String brInt = configurationService.getIntegrationBridgeName(); if (!southbound.isBridgeOnOvsdbNode(ovsdbNode, brInt)) { LOG.trace("isNodeVlanReady: node: {}, {} missing", bridgeNode, brInt); return false; } /* Check if physical device is added to br-int. */ String phyNetName = getPhysicalInterfaceName(ovsdbNode, network.getProviderPhysicalNetwork()); if (!isPortOnBridge(bridgeNode, phyNetName)) { LOG.trace("isNodeVlanReady: node: {}, eth missing", bridgeNode); return false; } return isNodeL3Ready(bridgeNode, ovsdbNode); }