2 * Copyright (c) 2015 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
8 package org.opendaylight.netvirt.cloudservicechain;
10 import javax.inject.Inject;
11 import javax.inject.Singleton;
12 import org.opendaylight.netvirt.cloudservicechain.api.ICloudServiceChain;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
17 public class CloudServiceChainProvider implements ICloudServiceChain {
19 private static final Logger LOG = LoggerFactory.getLogger(CloudServiceChainProvider.class);
20 private final VPNServiceChainHandler vpnServiceChainHandler;
21 private final ElanServiceChainHandler elanServiceChainHandler;
24 public CloudServiceChainProvider(final VPNServiceChainHandler vpnServiceChainHandler,
25 final ElanServiceChainHandler elanServiceChainHandler) {
26 this.vpnServiceChainHandler = vpnServiceChainHandler;
27 this.elanServiceChainHandler = elanServiceChainHandler;
31 public void programVpnToScfPipeline(String vpnId, short tableId, long scfTag, int lportTag, int addOrRemove) {
32 LOG.info("L3VPN Service chaining :programVpnToScfPipeline [Started] {} {} {} {} {}",
33 vpnId, tableId,scfTag, lportTag, addOrRemove);
34 vpnServiceChainHandler.programVpnToScfPipeline(vpnId, tableId, scfTag, lportTag, addOrRemove);
38 public void programScfToVpnPipeline(String vpnId, long scfTag, int scsTag, long dpnId, int lportTag,
39 boolean isLastServiceChain, int addOrRemove) {
40 LOG.info("L3VPN Service chaining :programScfToVpnPipeline [Started] {} {} {} {}", vpnId, scfTag,
42 vpnServiceChainHandler.programScfToVpnPipeline(vpnId, scfTag, scsTag, dpnId, lportTag, isLastServiceChain,
47 * @see org.opendaylight.netvirtchain.api.IVpnServiceChain#removeVpnPseudoPortFlows(java.lang.String, int)
50 public void removeVpnPseudoPortFlows(String vpnInstanceName, int vpnPseudoLportTag) {
51 LOG.info("L3VPN Service chaining :removeVpnPseudoPortFlows [Started] vpnPseudoLportTag={}", vpnPseudoLportTag);
52 vpnServiceChainHandler.removeVpnPseudoPortFlows(vpnInstanceName, vpnPseudoLportTag);
56 public void programElanScfPipeline(String elanName, short tableId, long scfTag, int elanLportTag,
57 boolean isLastServiceChain, int addOrRemove) {
58 LOG.info("ELAN Service chaining :programElanScfPipeline [Started] {} {} {} {} {}",
59 elanName, tableId, scfTag, elanLportTag, addOrRemove);
60 elanServiceChainHandler.programElanScfPipeline(elanName, tableId, scfTag, elanLportTag, addOrRemove);
64 public void programElanScfPipeline(String elanName, short tableId, int scfTag, int elanLportTag, int addOrRemove) {
65 LOG.info("ELAN Service chaining :programElanScfPipeline [Started] {} {} {} {} {}",
66 elanName, tableId, scfTag, elanLportTag, addOrRemove);
67 elanServiceChainHandler.programElanScfPipeline(elanName, tableId, scfTag, elanLportTag, addOrRemove);
71 public void removeElanPseudoPortFlows(String elanName, int elanPseudoLportTag) {
72 LOG.info("ELAN Service chaining :removeElanPseudoPortFlows [Started] elanPseudoLportTag={}",
74 elanServiceChainHandler.removeElanPseudoPortFlows(elanName, elanPseudoLportTag);