
es.tid.topologyModuleBase.UnifyTopoModel.model.TranslateModel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of topology Show documentation
Show all versions of topology Show documentation
Traffic Engineering Database, BGP-LS peer, Topology Module
The newest version!
package es.tid.topologyModuleBase.UnifyTopoModel.model;
import es.tid.tedb.*;
import java.net.Inet4Address;
import java.util.ArrayList;
import java.util.List;
//import es.tid.tedb.elements.Link;
public class TranslateModel {
public static Port translateNode(DomainTEDB db, es.tid.tedb.elements.Node n){
Port port = new Port();
port.setId( ((es.tid.tedb.elements.Node) n).getNodeID() );
return port;
}
public static Port translateNodeIp(DomainTEDB ted, Inet4Address n, Node_Info nodeInfo) {
Port port = new Port();
port.setId(((java.net.Inet4Address) n).getHostAddress());
return port;
}
public static Node translateTopology(String domainID, DomainTEDB ted){
Node node = new Node();
node.setId(domainID);
//Translating nodes from TEDB to Unify Model
PortsSchema ports = new PortsSchema();
List portlist = new ArrayList();
for(Object nodeFromTed : ted.getIntraDomainLinksvertexSet()){
if(nodeFromTed instanceof es.tid.tedb.elements.Node){
portlist.add(translateNode(ted, (es.tid.tedb.elements.Node)nodeFromTed));
} else if(nodeFromTed instanceof java.net.Inet4Address){
portlist.add(translateNodeIp(ted, (java.net.Inet4Address)nodeFromTed, ted.getNodeTable().get(node)));
}
}
node.setLinks(translateIntraDomainLinks(domainID, ted));
if (ted.getItResources()!=null){
SoftwareResource resources = new SoftwareResource();
resources.setCpu(ted.getItResources().getCpu());
resources.setMem(ted.getItResources().getMem());
resources.setStorage(ted.getItResources().getStorage());
node.setResources(resources);
Metadata metadata = new Metadata();
MetadataMetadata e= new MetadataMetadata();
e.setKey("unify-slor");
e.setValue(ted.getItResources().getControllerIT());
metadata.getMetadata().add(e);
node.metadata.add(e);
}
ports.setPort(portlist);
node.setPorts(ports);
return node;
}
public static LinksSchema translateInterDomainLinks(String domainID, MultiDomainTEDB ted){
//Translating InterDomain links from TEDB to Unify Model
LinksSchema links = new LinksSchema();
List linklist = new ArrayList();
for(InterDomainEdge linkTed : ted.getInterDomainLinks()){
Link link = new Link();
if (linkTed.getSrc_router_id() instanceof java.net.Inet4Address){
String src = ((java.net.Inet4Address) linkTed.getSrc_router_id()).getHostAddress();
String srcDomain = ((java.net.Inet4Address) linkTed.getDomain_src_router()).getHostAddress();
String srcUnify = "/nodes/node[id="+srcDomain+"]/ports/port[id="+src+"]";
link.setSrc(srcUnify);
}else{
System.out.println("Type of InterDomain link not implemented for UnifyModel");
}
if (linkTed.getDst_router_id() instanceof java.net.Inet4Address){
String dst = ((java.net.Inet4Address) linkTed.getDst_router_id()).getHostAddress();
String dstDomain = ((java.net.Inet4Address) linkTed.getDomain_dst_router()).getHostAddress();
String dstUnify = "/nodes/node[id="+dstDomain+"]/ports/port[id="+dst+"]";
link.setDst(dstUnify);
}else{
System.out.println("Type of InterDomain link not implemented for UnifyModel");
}
linklist.add(link);
}
links.setLink(linklist);
return links;
}
public static LinksSchema translateIntraDomainLinks(String domainID, DomainTEDB ted){
//Translating InterDomain links from TEDB to Unify Model
LinksSchema links = new LinksSchema();
List linklist = new ArrayList();
for(IntraDomainEdge linkTed : ted.getIntraDomainLinks()){
Link link = new Link();
link.setId(linkTed.getLinkID());
if( linkTed.getSource() instanceof java.net.Inet4Address){
String src = "/nodes/node[id="+domainID+"]/ports/port[id="+((java.net.Inet4Address)linkTed.getSource()).getHostAddress()+"]";
link.setSrc(src);
//} else if( linkTed.getSource( instanceof es.tid.tedb.elements.EndPoint ){
} else {
System.out.println("Type of link not implemented for UnifyModel");
}
if( linkTed.getTarget() instanceof java.net.Inet4Address){
String dst = "/nodes/node[id="+domainID+"]/ports/port[id="+((java.net.Inet4Address)linkTed.getTarget()).getHostAddress()+"]";
link.setDst(dst);
//} else if( linkTed.getTarget( instanceof es.tid.tedb.elements.EndPoint ){
} else {
System.out.println("Type of link not implemented for UnifyModel");
}
LinkResource linkResource = new LinkResource();
if (linkTed.getTE_info().getUndirLinkDelay() != null) linkResource.setDelay(String.valueOf(linkTed.getTE_info().getUndirLinkDelay().getDelay()));
if (linkTed.getTE_info().getUndirAvailableBw() != null) linkResource.setBandwidth(String.valueOf(linkTed.getTE_info().getUndirAvailableBw().getAvailableBw()));
if (linkResource != null) link.setResources(linkResource);
linklist.add(link);
}
links.setLink(linklist);
return links;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy