c7347e18a012e5b3f1a2207f72fb2670badec524
[netvirt.git] / openstack / net-virt / src / main / java / org / opendaylight / netvirt / openstack / netvirt / api / Southbound.java
1 /*
2  * Copyright (c) 2015 Red Hat, Inc. 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 package org.opendaylight.netvirt.openstack.netvirt.api;
9
10 import java.util.List;
11 import java.util.Map;
12
13 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeBase;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options;
20 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
21 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
22 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
23 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
24
25 /**
26  * Utility class to wrap southbound transactions.
27  *
28  * @author Sam Hague (shague@redhat.com)
29  */
30 public interface Southbound {
31     ConnectionInfo getConnectionInfo(Node node);
32     OvsdbNodeAugmentation extractOvsdbNode(Node node);
33     NodeId extractBridgeOvsdbNodeId(Node bridgeNode);
34     List<Node> readOvsdbTopologyNodes();
35     List<Node> readOvsdbTopologyBridgeNodes();
36     Node readOvsdbNode(Node bridgeNode);
37     boolean isBridgeOnOvsdbNode(Node node, String bridgeName);
38     String getOvsdbNodeUUID(Node node);
39     String getOsdbNodeExternalIdsValue(OvsdbNodeAugmentation ovsdbNodeAugmentation, String key);
40     boolean addBridge(Node ovsdbNode, String bridgeName, List<String> controllersStr,
41                                                       final Class<? extends DatapathTypeBase> dpType);
42     boolean addBridge(Node ovsdbNode, String bridgeName, List<String> controllersStr,
43                                                       final Class<? extends DatapathTypeBase> dpType, String mac);
44     boolean deleteBridge(Node ovsdbNode);
45     OvsdbBridgeAugmentation readBridge(Node node, String name);
46     Node readBridgeNode(Node node, String name);
47     Node getBridgeNode(Node node, String bridgeName);
48     String getBridgeUuid(Node node, String name);
49     long getDataPathId(Node node);
50     String getDatapathId(Node node);
51     String getDatapathId(OvsdbBridgeAugmentation ovsdbBridgeAugmentation);
52     OvsdbBridgeAugmentation getBridge(Node node, String name);
53     OvsdbBridgeAugmentation getBridge(Node node);
54     String getBridgeName(Node node);
55     String extractBridgeName(Node node);
56     OvsdbBridgeAugmentation extractBridgeAugmentation(Node node);
57     List<Node> getAllBridgesOnOvsdbNode(Node node);
58     OvsdbNodeAugmentation extractNodeAugmentation(Node node);
59     List<OvsdbTerminationPointAugmentation> getTerminationPointsOfBridge(Node node);
60     OvsdbTerminationPointAugmentation getTerminationPointOfBridge(Node node, String terminationPoint);
61     OvsdbTerminationPointAugmentation extractTerminationPointAugmentation(Node bridgeNode, String portName);
62     List<TerminationPoint> extractTerminationPoints(Node node);
63     List<OvsdbTerminationPointAugmentation> extractTerminationPointAugmentations(Node node);
64     List<OvsdbTerminationPointAugmentation> readTerminationPointAugmentations(Node node);
65     String getInterfaceExternalIdsValue(
66             OvsdbTerminationPointAugmentation terminationPointAugmentation, String key);
67     Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type);
68     Boolean deleteTerminationPoint(Node bridgeNode, String portName);
69     Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName,
70                                 String type, Map<String, String> options);
71     TerminationPoint readTerminationPoint(Node bridgeNode, String bridgeName, String portName);
72     Boolean addTunnelTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type,
73                                       Map<String, String> options);
74     Boolean isTunnelTerminationPointExist(Node bridgeNode, String bridgeName, String portName);
75     Boolean addPatchTerminationPoint(Node node, String bridgeName, String portName, String peerPortName);
76     String getExternalId(Node node, OvsdbTables table, String key);
77     String getOtherConfig(Node node, OvsdbTables table, String key);
78     boolean addVlanToTp(long vlan);
79     boolean isTunnel(OvsdbTerminationPointAugmentation port);
80     String getOptionsValue(List<Options> options, String key);
81     Topology getOvsdbTopology();
82     Long getOFPort(OvsdbTerminationPointAugmentation port);
83     Long getOFPort(Node bridgeNode, String portName);
84     DataBroker getDatabroker();
85     OvsdbBridgeAugmentation getBridgeFromConfig(Node ovsdbNode, String bridgeName);
86     Node readConfigBridge(Node node, String name);
87 }