2 * Copyright (c) 2015 Red Hat, Inc. 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.openstack.netvirt.api;
10 import java.util.List;
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;
26 * Utility class to wrap southbound transactions.
28 * @author Sam Hague (shague@redhat.com)
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);