2 * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.vpnservice.neutronvpn.api.utils;
11 import java.util.List;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.PortBindingExtension;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.NetworkTypeBase;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.NetworkTypeVxlan;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.provider.ext.rev150712.NetworkProviderExtension;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.provider.ext.rev150712.neutron.networks.network.Segments;
21 public class NeutronUtils {
22 public static final String VNIC_TYPE_NORMAL = "normal";
24 public static boolean isPortVnicTypeNormal(Port port) {
25 PortBindingExtension portBinding = port.getAugmentation(PortBindingExtension.class);
26 if(portBinding == null || portBinding.getVnicType() == null) {
27 // By default, VNIC_TYPE is NORMAL
30 String vnicType = portBinding.getVnicType().trim().toLowerCase();
31 return vnicType.equals(VNIC_TYPE_NORMAL);
34 public static String getSegmentationIdFromNeutronNetwork(Network network) {
35 String segmentationId = null;
36 NetworkProviderExtension providerExtension = network.getAugmentation(NetworkProviderExtension.class);
37 if (providerExtension != null) {
38 segmentationId = providerExtension.getSegmentationId();
39 if (segmentationId == null) {
40 List<Segments> providerSegments = providerExtension.getSegments();
41 if (providerSegments != null && providerSegments.size() > 0) {
42 for (Segments providerSegment: providerSegments) {
43 if (isNetworkSegmentTypeVxlan(providerSegment)) {
44 segmentationId = providerSegment.getSegmentationId();
51 return segmentationId;
54 static boolean isNetworkSegmentTypeVxlan(Segments providerSegment) {
55 Class<? extends NetworkTypeBase> networkType = providerSegment.getNetworkType();
56 return (networkType != null && networkType.isAssignableFrom(NetworkTypeVxlan.class));