Fix build faliures due to OFPlugin checktyle fixes
[netvirt.git] / vpnservice / elanmanager / elanmanager-api / src / main / java / org / opendaylight / netvirt / elanmanager / api / IElanService.java
1 /*
2  * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.netvirt.elanmanager.api;
10
11 import java.math.BigInteger;
12 import java.util.Collection;
13 import java.util.List;
14
15 import org.opendaylight.genius.mdsalutil.MatchInfoBase;
16 import org.opendaylight.netvirt.elan.arp.responder.ArpResponderInput;
17 import org.opendaylight.netvirt.elanmanager.exceptions.MacNotFoundException;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.dpn.interfaces.elan.dpn.interfaces.list.DpnInterfaces;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.interfaces.ElanInterface;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.forwarding.entries.MacEntry;
22 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
23 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
24
25 public interface IElanService extends IEtreeService {
26
27     boolean createElanInstance(String elanInstanceName, long macTimeout, String description);
28
29     void updateElanInstance(String elanInstanceName, long newMacTimout, String newDescription);
30
31     boolean deleteElanInstance(String elanInstanceName);
32
33     void addElanInterface(String elanInstanceName, String interfaceName, List<String> staticMacAddresses,
34             String description);
35
36     void updateElanInterface(String elanInstanceName, String interfaceName, List<String> updatedStaticMacAddresses,
37             String newDescription);
38
39     void deleteElanInterface(String elanInstanceName, String interfaceName);
40
41     void addStaticMacAddress(String elanInstanceName, String interfaceName, String macAddress);
42
43     void deleteStaticMacAddress(String elanInstanceName, String interfaceName, String macAddress)
44             throws MacNotFoundException;
45
46     Collection<MacEntry> getElanMacTable(String elanInstanceName);
47
48     void flushMACTable(String elanInstanceName);
49
50     ElanInstance getElanInstance(String elanInstanceName);
51
52     List<ElanInstance> getElanInstances();
53
54     List<String> getElanInterfaces(String elanInstanceName);
55
56     void createExternalElanNetwork(ElanInstance elanInstance);
57
58     void updateExternalElanNetwork(ElanInstance elanInstance);
59
60     void createExternalElanNetworks(Node node);
61
62     void updateExternalElanNetworks(Node origNode, Node updatedNode);
63
64     void deleteExternalElanNetwork(ElanInstance elanInstance);
65
66     void deleteExternalElanNetworks(Node node);
67
68     Collection<String> getExternalElanInterfaces(String elanInstanceName);
69
70     String getExternalElanInterface(String elanInstanceName, BigInteger dpnId);
71
72     boolean isExternalInterface(String interfaceName);
73
74     ElanInterface getElanInterfaceByElanInterfaceName(String interfaceName);
75
76     @Deprecated
77     void handleKnownL3DmacAddress(String macAddress, String elanInstanceName, int addOrRemove);
78
79     void addKnownL3DmacAddress(String macAddress, String elanInstanceName);
80
81     void removeKnownL3DmacAddress(String macAddress, String elanInstanceName);
82
83     List<MatchInfoBase> getEgressMatchesForElanInstance(String elanInstanceName);
84
85     Boolean isOpenStackVniSemanticsEnforced();
86
87     /**
88      * Add ARP Responder Flow on the given dpn for the ingress interface.
89      *
90      * @param arpResponderInput
91      *            ArpResponder Input parameters
92      * @see ArpResponderInput
93      */
94     void addArpResponderFlow(ArpResponderInput arpResponderInput);
95
96     /**
97      * Add ARP Responder Flow on the given dpn for the SR-IOV VMs ingress interface.
98      *
99      * @param arpResponderInput
100      *            ArpResponder Input parameters
101      * @see ArpResponderInput
102      * @param elanInstanceName
103      *           The elanInstance  corresponding to the interface
104      */
105     void addExternalTunnelArpResponderFlow(ArpResponderInput arpResponderInput, String elanInstanceName);
106
107     /**
108      * Remove ARP Responder flow from the given dpn for the ingress interface.
109      *
110      * @param arpResponderInput
111      *            ArpResponder Input parameters
112      * @see ArpResponderInput
113      */
114     void removeArpResponderFlow(ArpResponderInput arpResponderInput);
115
116     Long retrieveNewElanTag(String idKey);
117
118     InstanceIdentifier<DpnInterfaces> getElanDpnInterfaceOperationalDataPath(String elanInstanceName, BigInteger dpnId);
119
120     DpnInterfaces getElanInterfaceInfoByElanDpn(String elanInstanceName, BigInteger dpId);
121 }