1 package org.opendaylight.ovsdb.sal.configuration;
6 import org.opendaylight.controller.sal.core.Node;
9 * @file IPluginInConfigurationService.java
12 public interface IPluginInNetworkConfigurationService {
15 * Create a Bridge Domain
17 * @param node Node serving this configuration service
18 * @param bridgeDomainIdentifier String representation of a Bridge Domain
20 public boolean createBridgeDomain(Node node, String bridgeIdentifier) throws Throwable;
23 * Delete a Bridge Domain
25 * @param node Node serving this configuration service
26 * @param bridgeDomainIdentifier String representation of a Bridge Domain
28 public boolean deleteBridgeDomain(Node node, String bridgeIdentifier);
31 * Returns the configured Bridge Domains
33 * @param node Node serving this configuration service
34 * @return Bridge Domains
36 public List<String> getBridgeDomains(Node node);
39 * add Bridge Domain Configuration
41 * @param node Node serving this configuration service
42 * @param bridgeDomainIdentifier String representation of a Bridge Domain
43 * @param configs Map representation of ConfigName and Configuration Value in Strings.
45 public boolean addBridgeDomainConfig(Node node, String bridgeIdentifier, Map <String, String> config);
48 * Delete Bridge Domain Configuration
50 * @param node Node serving this configuration service
51 * @param bridgeDomainIdentifier String representation of a Bridge Domain
52 * @param configs Map representation of ConfigName and Configuration Value in Strings.
54 public boolean removeBridgeDomainConfig(Node node, String bridgeIdentifier, Map <String, String> config);
57 * Returns Bridge Domain Configurations
59 * @param node Node serving this configuration service
60 * @param bridgeDomainIdentifier String representation of a Bridge Domain
61 * @return Bridge Domain configurations
64 public Map <String, String> getBridgeDomainConfigs(Node node, String bridgeIdentifier);
67 * Create a Bridge Connector
69 * @param node Node serving this configuration service
70 * @param bridgeConnectorIdentifier String representation of the node connector.
72 public boolean createBridgeConnector(Node node, String bridgeConnectorIdentifier);
75 * Delete a Bridge Connector
77 * @param node Node serving this configuration service
78 * @param bridgeConnectorIdentifier String representation of the node connector.
80 public boolean deleteBridgeConnector(Node node, String bridgeConnectorIdentifier);
83 * Add/Associate BridgeConnectors on a given Bridge Domain
85 * @param node Node serving this configuration service
86 * @param bridgeDomainIdentifier String representation of a Bridge Domain
87 * @param bridgeConnectorIdentifier String representation of the node connector.
89 public boolean associateBridgeConnector(Node node, String bridgeIdentifier, String bridgeConnectorIdentifier);
92 * Add/Associate BridgeConnectors on a given Bridge Domain
94 * @param node Node serving this configuration service
95 * @param bridgeDomainIdentifier String representation of a Bridge Domain
96 * @param bridgeConnectorIdentifier String representation of the node connector.
98 public boolean disassociateBridgeConnector(Node node, String bridgeIdentifier, String bridgeConnectorIdentifier);
101 * add Bridge Connector Configuration
103 * @param node Node serving this configuration service
104 * @param bridgeConnectorIdentifier String representation of the node connector.
105 * @param config Map representation of ConfigName and Configuration Value in Strings.
107 public boolean addBridgeConnectorConfig(Node node, String bridgeConnectorIdentifier, Map <String, String> config);
110 * Delete Bridge Connector Configuration
112 * @param node Node serving this configuration service
113 * @param bridgeConnectorIdentifier String representation of the node connector.
114 * @param config Map representation of ConfigName and Configuration Value in Strings.
116 public boolean removeBridgeConnectorConfig(Node node, String bridgeConnectorIdentifier, Map <String, String> config);
119 * Returns Bridge Connector Configurations
121 * @param node Node serving this configuration service
122 * @param bridgeConnectorIdentifier String representation of a Bridge Connector
123 * @return Bridge Connector configurations
125 public Map <String, String> getBridgeConnectorConfigs(Node node, String bridgeConnectorIdentifier);
128 * Create a Port Attached to a Bridge
129 * Ex. ovs-vsctl add-port br0 vif0
130 * @param node Node serving this configuration service
131 * @param bridgeDomainIdentifier String representation of a Bridge Domain
132 * @param portIdentifier String representation of a user defined Port Name
134 public boolean addPort(Node node, String bridgeIdentifier, String portIdentifier) throws Throwable;
137 * Create an Encapsulated Tunnel Interface and destination Tunnel Endpoint
139 * Ex. ovs-vsctl add-port br0 vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=192.168.1.11
140 * @param node Node serving this configuration service
141 * @param bridgeDomainIdentifier String representation of a Bridge Domain
142 * @param portIdentifier String representation of a user defined Port Name
143 * @param tunnelendpoint IP address of the destination Tunnel Endpoint
144 * @param tunencap is the tunnel encapsulation options being CAPWAP, GRE or VXLAN
145 * The Bridge must already be defined before calling addTunnel.
147 public boolean addTunnel(Node node, String bridgeIdentifier, String portIdentifier,
148 String TunnelEndPoint, String TunEncap) throws Throwable;
151 * Create a Port with a user defined VLAN, and attach it to the specified bridge.
153 * Ex. ovs-vsctl add-port JUNIT_BRIDGE_TEST Jvlanvif0 tag=100
154 * @param node Node serving this configuration service
155 * @param bridgeDomainIdentifier String representation of a Bridge Domain
156 * @param portIdentifier String representation of a user defined Port Name
157 * @param vlanid Integer note: only one VID is accepted with tag=x method
159 public boolean addPortVlan(Node node, String bridgeIdentifier, String portIdentifier,
160 int vlanid) throws Throwable;
163 * Generic Configuration Event/Command. It is not practically possible to define all the possible combinations
164 * of configurations across various plugins. Hence having a generic event/command will help bridge the gap until
165 * a more abstracted explicit call is defined in Configuration Service.
167 public Object genericConfigurationEvent(Node node, Map <String, String> config);