import org.opendaylight.ovsdb.schema.hardwarevtep.LogicalSwitch;
import org.opendaylight.ovsdb.schema.hardwarevtep.PhysicalLocator;
import org.opendaylight.ovsdb.schema.hardwarevtep.PhysicalSwitch;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IetfInetUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.ConnectionInfo;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical._switch.attributes.Tunnels;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical._switch.attributes.TunnelsKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.port.attributes.VlanBindings;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.port.attributes.VlanBindingsKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.EncapsulationTypeBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.EncapsulationTypeVxlanOverIpv4;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalLocatorRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalPortAugmentation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.PhysicalSwitchAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.ConnectionInfoBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableBiMap;
+import com.google.common.net.InetAddresses;
public class HwvtepSouthboundMapper {
private static final Logger LOG = LoggerFactory.getLogger(HwvtepSouthboundMapper.class);
}
public static NodeId createManagedNodeId(InstanceIdentifier<Node> iid) {
- NodeKey nodeKey = iid.firstKeyOf(Node.class, NodeKey.class);
+ NodeKey nodeKey = iid.firstKeyOf(Node.class);
return nodeKey.getNodeId();
}
}
public static IpAddress createIpAddress(Inet4Address address) {
- Ipv4Address ipv4 = new Ipv4Address(address.getHostAddress());
- return new IpAddress(ipv4);
+ return IetfInetUtil.INSTANCE.ipAddressFor(address);
}
public static IpAddress createIpAddress(Inet6Address address) {
public static InetAddress createInetAddress(IpAddress ip) throws UnknownHostException {
if (ip.getIpv4Address() != null) {
- return InetAddress.getByName(ip.getIpv4Address().getValue());
+ return InetAddresses.forString(ip.getIpv4Address().getValue());
} else if (ip.getIpv6Address() != null) {
return InetAddress.getByName(ip.getIpv6Address().getValue());
} else {
public static InstanceIdentifier<Node> createInstanceIdentifier(HwvtepConnectionInstance client,
PhysicalSwitch pSwitch) {
- String nodeString = client.getNodeKey().getNodeId().getValue() + "/physicalswitch/" + pSwitch.getName();
- NodeId nodeId = new NodeId(new Uri(nodeString));
- NodeKey nodeKey = new NodeKey(nodeId);
+ //TODO: Clean this up
+ return createInstanceIdentifier(client, new HwvtepNodeName(pSwitch.getName()));
+ }
+
+ public static InstanceIdentifier<Node> createInstanceIdentifier(HwvtepConnectionInstance client,
+ HwvtepNodeName psName) {
+ NodeKey nodeKey = new NodeKey(createManagedNodeId(client, psName));
return InstanceIdentifier.builder(NetworkTopology.class)
.child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID))
.child(Node.class, nodeKey).build();
}
+ public static NodeId createManagedNodeId(HwvtepConnectionInstance client, HwvtepNodeName psName) {
+ String nodeString = client.getNodeKey().getNodeId().getValue()
+ + "/" + HwvtepSouthboundConstants.PSWITCH_URI_PREFIX + "/" + psName.getValue();
+ NodeId nodeId = new NodeId(new Uri(nodeString));
+ return nodeId;
+ }
+
public static InstanceIdentifier<LogicalSwitches> createInstanceIdentifier(HwvtepConnectionInstance client,
LogicalSwitch lSwitch) {
InstanceIdentifier<LogicalSwitches> iid = null;
return iid;
}
+ public static InstanceIdentifier<Tunnels> createInstanceIdentifier( InstanceIdentifier<Node> nodeIid,
+ InstanceIdentifier<TerminationPoint> localTpIid, InstanceIdentifier<TerminationPoint> remoteTpIid) {
+
+ TunnelsKey tunnelsKey = new TunnelsKey(new HwvtepPhysicalLocatorRef(localTpIid),
+ new HwvtepPhysicalLocatorRef(remoteTpIid));
+ InstanceIdentifier<Tunnels> tunnelInstanceId = nodeIid.builder().augmentation(PhysicalSwitchAugmentation.class)
+ .child(Tunnels.class, tunnelsKey).build();
+ return tunnelInstanceId;
+ }
+
public static Class<? extends EncapsulationTypeBase> createEncapsulationType(String type) {
Preconditions.checkNotNull(type);
if (type.isEmpty()) {
public static String getRandomUUID() {
return "Random_" + java.util.UUID.randomUUID().toString().replace("-", "");
}
+
+ public static InstanceIdentifier<VlanBindings> createInstanceIdentifier(HwvtepConnectionInstance client,
+ InstanceIdentifier<TerminationPoint> tpPath, VlanBindings vBindings) {
+ return tpPath.augmentation(HwvtepPhysicalPortAugmentation.class) .child(VlanBindings.class,
+ new VlanBindingsKey(vBindings.getKey()));
+
+ }
}