Package ons
Class PhysicalImpairments
java.lang.Object
ons.PhysicalImpairments
public class PhysicalImpairments
extends java.lang.Object
-
Method Summary
Modifier and Type Method Description boolean
checkCrosstalk(int[] links, int[] cores, int firstSlot, int requiredSlots, int modulation)
Verificacao de XT.boolean
checkCrosstalk(EONLightPath lp)
protected int
checkNumberOfNeighbors(int[] links, int[] cores, int firstSlot, int requiredSlots)
Para cenario de vizinhos dinamicos, o algoritmo percorre a lista de links, e verifica quais nucleos estao ocupados na faixa espectral a ser ocupada pelo novo circuito.boolean
checkXTNeighbors(LightPath lp)
boolean
checkXTNeighbors(LightPath lp, int[] links, int[] cores, int firstSlot, int requiredSlots)
Usado para verificar se o XT eh viavel para os circuitos ja alocados nos nucleos vizinhos ao nucleo escolhido, dentro dos indices de slots do novo circuito.double
computeDeltaSNRNeighbors(LightPath lightpath)
Computes the smallest variation (DELTA) of neighboring SNR if this lightpath is allocated.protected void
computeSNR(LightPath lightpath)
Computes the SNR value of this lightpath and its neighbors.double
computeSNRlightpath(LightPath lp)
Compute the SNR of this lp.double
crosstalk(int x, double L)
Retorna valor de crosstalk Referencia: Ruijie Zhu, Yongli Zhao, Hui Yang, Haoran Chen, Jie Zhang, and Jason P.double
getBeta()
double
getK()
double
getLightPathLength(LightPath lp)
Retrieves the length of this lightpath's linksstatic PhysicalImpairments
getPhysicalImpairmentsObject()
static PhysicalImpairments
getPhysicalImpairmentsObject(org.w3c.dom.Element xml)
double
getR()
double
getSNR(LightPath lp)
Computes and retrieves the SNR of this lightpathdouble
getW_tr()
boolean
isCheckQoT()
boolean
isDynamicActiveNeighborNumber()
boolean
isPhysicalDistance()
boolean
isSNRaware()
boolean
isXTaware()
boolean
isXTonOthers()
static double
ratioForDB(double ratio)
Converts a ratio (linear) to decibeldouble
ratioOfDB(double dB)
Converts a value in dB to a linear value (ratio)void
setBeta(double beta)
void
setDynamicActiveNeighborNumber(boolean dynamicActiveNeighborNumber)
void
setK(double k)
protected void
setPT(PhysicalTopology pt)
void
setR(double r)
protected void
setVT(VirtualTopology vt)
void
setW_tr(double w_tr)
void
setXTaware(boolean xTaware)
void
setXTonOthers(boolean xTonOthers)
boolean
testSNR(LightPath lightpath)
Checks whether this lightpath can be set by meeting all QoT, (QoTN and QoTO) requirements.
-
Method Details
-
setPT
-
setVT
-
getPhysicalImpairmentsObject
-
getPhysicalImpairmentsObject
-
computeSNR
Computes the SNR value of this lightpath and its neighbors.- Parameters:
lightpath
- the LightPath Object
-
testSNR
Checks whether this lightpath can be set by meeting all QoT, (QoTN and QoTO) requirements.- Parameters:
lightpath
- the LightPath Object- Returns:
- true if is possible, false otherwise.
-
ratioOfDB
public double ratioOfDB(double dB)Converts a value in dB to a linear value (ratio)- Parameters:
dB
- valeu- Returns:
- ratio
-
computeSNRlightpath
Compute the SNR of this lp.- Parameters:
lp
- the LightPath Object- Returns:
- the SNR of this lp
-
computeDeltaSNRNeighbors
Computes the smallest variation (DELTA) of neighboring SNR if this lightpath is allocated.- Parameters:
lightpath
- the LightPath Object- Returns:
- deltaSNR, If retrieves MAX_VALUE its not possible established this lp
-
ratioForDB
public static double ratioForDB(double ratio)Converts a ratio (linear) to decibel- Parameters:
ratio
-- Returns:
- dB
-
getSNR
Computes and retrieves the SNR of this lightpath- Parameters:
lp
- the LightPath Object- Returns:
- the SNR of this lightpath
-
checkXTNeighbors
public boolean checkXTNeighbors(LightPath lp, int[] links, int[] cores, int firstSlot, int requiredSlots)Usado para verificar se o XT eh viavel para os circuitos ja alocados nos nucleos vizinhos ao nucleo escolhido, dentro dos indices de slots do novo circuito.- Parameters:
lp
-links
-cores
-firstSlot
-requiredSlots
-- Returns:
-
checkXTNeighbors
-
checkNumberOfNeighbors
protected int checkNumberOfNeighbors(int[] links, int[] cores, int firstSlot, int requiredSlots)Para cenario de vizinhos dinamicos, o algoritmo percorre a lista de links, e verifica quais nucleos estao ocupados na faixa espectral a ser ocupada pelo novo circuito. Em necario de vizinhos estaticos, verifica qual dos nucleos escolhidos apresenta a maior quantidade de vizinhos.- Parameters:
links
- lista de enlaces da rotacores
- lista de nucleos da rotafirstSlot
- slot inicial para o circuitorequiredSlots
- numero de slots do circuito- Returns:
- int quantidade de vizinhos diferentes ocupados ao longo da rota.
-
checkCrosstalk
public boolean checkCrosstalk(int[] links, int[] cores, int firstSlot, int requiredSlots, int modulation)Verificacao de XT.- Parameters:
links
-cores
-firstSlot
-requiredSlots
-modulation
-- Returns:
-
checkCrosstalk
-
crosstalk
public double crosstalk(int x, double L)Retorna valor de crosstalk Referencia: Ruijie Zhu, Yongli Zhao, Hui Yang, Haoran Chen, Jie Zhang, and Jason P. Jue, "Crosstalk-aware RCSA for spatial division multiplexing enabled elastic optical networks with multi-core fibers," Chin. Opt. Lett. 14, 100604- (2016) Limiar de XT desta referencia = -25 dB- Parameters:
x
- numero de nucleos adjacentesL
- comprimento do enlace, em km- Returns:
- double - valor de crosstalk para o nucleo
-
isXTaware
public boolean isXTaware() -
setXTaware
public void setXTaware(boolean xTaware) -
isDynamicActiveNeighborNumber
public boolean isDynamicActiveNeighborNumber() -
setDynamicActiveNeighborNumber
public void setDynamicActiveNeighborNumber(boolean dynamicActiveNeighborNumber) -
isXTonOthers
public boolean isXTonOthers() -
setXTonOthers
public void setXTonOthers(boolean xTonOthers) -
getK
public double getK() -
setK
public void setK(double k) -
getR
public double getR() -
setR
public void setR(double r) -
getBeta
public double getBeta() -
setBeta
public void setBeta(double beta) -
getW_tr
public double getW_tr() -
setW_tr
public void setW_tr(double w_tr) -
isSNRaware
public boolean isSNRaware() -
isCheckQoT
public boolean isCheckQoT() -
isPhysicalDistance
public boolean isPhysicalDistance() -
getLightPathLength
Retrieves the length of this lightpath's links- Parameters:
lp
- yhe lightpath- Returns:
- the length of this lightpath's links
-