package es.tid.tedb;
import java.net.Inet4Address;
import org.jgrapht.graph.DefaultWeightedEdge;
/**
* IntraDomain Edge of a Traffic Engineering Database.
* @author ogondio, msc
*
*/
public class IntraDomainWeightEdge extends DefaultWeightedEdge {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* Interface ID of the outgoing interface from the source
*/
public long src_if_id;
/**
* Interface ID of the incoming interface from the destination
*/
public long dst_if_id;
/**
* Traffic engineering information, as defined in IETF
*/
public TE_Information TE_info;
/**
* Transmission delay of the link (just transmission)
*/
private double delay_ms;
public IntraDomainWeightEdge(){
}
public Inet4Address getSource(){
Inet4Address source= (Inet4Address)super.getSource();
return source;
}
public Inet4Address getTarget(){
Inet4Address destination= (Inet4Address)super.getTarget();
return destination;
}
public long getSrc_if_id() {
return src_if_id;
}
public void setSrc_if_id(long src_if_id) {
this.src_if_id = src_if_id;
}
public long getDst_if_id() {
return dst_if_id;
}
public void setDst_if_id(long dst_if_id) {
this.dst_if_id = dst_if_id;
}
public TE_Information getTE_info() {
return TE_info;
}
public void setTE_info(TE_Information tE_info) {
TE_info = tE_info;
}
public double getDelay_ms() {
return delay_ms;
}
public void setDelay_ms(double delay_ms) {
this.delay_ms = delay_ms;
}
public String toString(){
String ret=this.getSource()+":"+this.getSrc_if_id()+"-->"+this.getTarget()+":"+this.getDst_if_id();
if (TE_info==null){
return ret;
}
else
{
if (this.TE_info.getAvailableLabels()!=null){
ret=ret+" Bitmap: {";
for (int i=0;i<this.TE_info.getAvailableLabels().getLabelSet().getNumLabels();++i){
ret = ret+ (this.TE_info.isWavelengthFree(i)?"0":"1");
}
ret=ret+"}";
ret=ret+" Reserved: {";
for (int i=0;i<this.TE_info.getAvailableLabels().getLabelSet().getNumLabels();++i){
ret = ret+ (this.TE_info.isWavelengthUnreserved(i)?"0":"1");
}
ret=ret+"}";
return ret;
}else {
return ret;
}
}
}
}