Add option to use netdev datapath_type
[netvirt.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / 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.ovsdb.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 deleteBridge(Node ovsdbNode);
43     OvsdbBridgeAugmentation readBridge(Node node, String name);
44     Node readBridgeNode(Node node, String name);
45     Node getBridgeNode(Node node, String bridgeName);
46     String getBridgeUuid(Node node, String name);
47     long getDataPathId(Node node);
48     String getDatapathId(Node node);
49     String getDatapathId(OvsdbBridgeAugmentation ovsdbBridgeAugmentation);
50     OvsdbBridgeAugmentation getBridge(Node node, String name);
51     OvsdbBridgeAugmentation getBridge(Node node);
52     String getBridgeName(Node node);
53     String extractBridgeName(Node node);
54     OvsdbBridgeAugmentation extractBridgeAugmentation(Node node);
55     List<Node> getAllBridgesOnOvsdbNode(Node node);
56     OvsdbNodeAugmentation extractNodeAugmentation(Node node);
57     List<OvsdbTerminationPointAugmentation> getTerminationPointsOfBridge(Node node);
58     OvsdbTerminationPointAugmentation getTerminationPointOfBridge(Node node, String terminationPoint);
59     OvsdbTerminationPointAugmentation extractTerminationPointAugmentation(Node bridgeNode, String portName);
60     List<TerminationPoint> extractTerminationPoints(Node node);
61     List<OvsdbTerminationPointAugmentation> extractTerminationPointAugmentations(Node node);
62     List<OvsdbTerminationPointAugmentation> readTerminationPointAugmentations(Node node);
63     String getInterfaceExternalIdsValue(
64             OvsdbTerminationPointAugmentation terminationPointAugmentation, String key);
65     Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type);
66     Boolean deleteTerminationPoint(Node bridgeNode, String portName);
67     Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName,
68                                 String type, Map<String, String> options);
69     TerminationPoint readTerminationPoint(Node bridgeNode, String bridgeName, String portName);
70     Boolean addTunnelTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type,
71                                       Map<String, String> options);
72     Boolean isTunnelTerminationPointExist(Node bridgeNode, String bridgeName, String portName);
73     Boolean addPatchTerminationPoint(Node node, String bridgeName, String portName, String peerPortName);
74     String getExternalId(Node node, OvsdbTables table, String key);
75     String getOtherConfig(Node node, OvsdbTables table, String key);
76     boolean addVlanToTp(long vlan);
77     boolean isTunnel(OvsdbTerminationPointAugmentation port);
78     String getOptionsValue(List<Options> options, String key);
79     Topology getOvsdbTopology();
80     Long getOFPort(OvsdbTerminationPointAugmentation port);
81     Long getOFPort(Node bridgeNode, String portName);
82     DataBroker getDatabroker();
83     OvsdbBridgeAugmentation getBridgeFromConfig(Node ovsdbNode, String bridgeName);
84 }