2 * Copyright (C) 2013 Red Hat, Inc.
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
8 * Authors : Madhu Venugopal, Brent Salisbury, Dave Tucker
10 package org.opendaylight.ovsdb.neutron.provider;
12 import org.opendaylight.ovsdb.neutron.IAdminConfigManager;
13 import org.opendaylight.ovsdb.neutron.IInternalNetworkManager;
14 import org.opendaylight.ovsdb.neutron.ITenantNetworkManager;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
18 public class ProviderNetworkManager implements IProviderNetworkManager {
19 static final Logger logger = LoggerFactory.getLogger(ProviderNetworkManager.class);
20 private NetworkProvider provider;
21 protected static final String OPENFLOW_10 = "1.0";
22 protected static final String OPENFLOW_13 = "1.3";
24 // The implementation for each of these services is resolved by the OSGi Service Manager
25 private volatile IAdminConfigManager adminConfigManager;
26 private volatile IInternalNetworkManager internalNetworkManager;
27 private volatile ITenantNetworkManager tenantNetworkManager;
29 public NetworkProvider getProvider() {
30 if (provider != null) return provider;
31 String ofVersion = System.getProperty("ovsdb.of.version", OPENFLOW_10);
34 provider = new OF13Provider(adminConfigManager, internalNetworkManager, tenantNetworkManager);
38 provider = new OF10Provider(adminConfigManager, internalNetworkManager, tenantNetworkManager);