mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-18 10:51:04 +02:00
Fix for drop/demux cross connect rules.
Change-Id: I239d50e7faeb0cd3d91ad0c17db58e2ab905426f
This commit is contained in:
parent
468f8283e4
commit
eb80f4f828
@ -70,10 +70,13 @@ public class LumentumFlowRuleDriver extends AbstractHandlerBehaviour implements
|
|||||||
private static final int DEFAULT_CHANNEL_TARGET_POWER = -30;
|
private static final int DEFAULT_CHANNEL_TARGET_POWER = -30;
|
||||||
private static final int DISABLE_CHANNEL_ABSOLUTE_ATTENUATION = 160;
|
private static final int DISABLE_CHANNEL_ABSOLUTE_ATTENUATION = 160;
|
||||||
private static final int DEFAULT_CHANNEL_ABSOLUTE_ATTENUATION = 50;
|
private static final int DEFAULT_CHANNEL_ABSOLUTE_ATTENUATION = 50;
|
||||||
|
private static final int DISABLE_CHANNEL_ADD_DROP_PORT_INDEX = 1;
|
||||||
private static final int OUT_OF_SERVICE = 1;
|
private static final int OUT_OF_SERVICE = 1;
|
||||||
private static final int IN_SERVICE = 2;
|
private static final int IN_SERVICE = 2;
|
||||||
private static final int OPEN_LOOP = 1;
|
private static final int OPEN_LOOP = 1;
|
||||||
private static final int CLOSED_LOOP = 2;
|
private static final int CLOSED_LOOP = 2;
|
||||||
|
// First 20 ports are add/mux ports, next 20 are drop/demux
|
||||||
|
private static final int DROP_PORT_OFFSET = 20;
|
||||||
|
|
||||||
// OIDs
|
// OIDs
|
||||||
private static final String CTRL_AMP_MODULE_SERVICE_STATE_PREAMP = ".1.3.6.1.4.1.46184.1.4.4.1.2.1";
|
private static final String CTRL_AMP_MODULE_SERVICE_STATE_PREAMP = ".1.3.6.1.4.1.46184.1.4.4.1.2.1";
|
||||||
@ -194,6 +197,9 @@ public class LumentumFlowRuleDriver extends AbstractHandlerBehaviour implements
|
|||||||
|
|
||||||
int channel = toChannel(xc.ochSignal());
|
int channel = toChannel(xc.ochSignal());
|
||||||
long addDrop = xc.addDrop().toLong();
|
long addDrop = xc.addDrop().toLong();
|
||||||
|
if (!xc.isAddRule()) {
|
||||||
|
addDrop -= DROP_PORT_OFFSET;
|
||||||
|
}
|
||||||
|
|
||||||
// Create the PDU object
|
// Create the PDU object
|
||||||
PDU pdu = new PDU();
|
PDU pdu = new PDU();
|
||||||
@ -265,7 +271,8 @@ public class LumentumFlowRuleDriver extends AbstractHandlerBehaviour implements
|
|||||||
// Put cross connect back into default port 1
|
// Put cross connect back into default port 1
|
||||||
OID ctrlChannelAddDropPortIndex = new OID(CTRL_CHANNEL_ADD_DROP_PORT_INDEX +
|
OID ctrlChannelAddDropPortIndex = new OID(CTRL_CHANNEL_ADD_DROP_PORT_INDEX +
|
||||||
(xc.isAddRule() ? "1." : "2.") + channel);
|
(xc.isAddRule() ? "1." : "2.") + channel);
|
||||||
pdu.add(new VariableBinding(ctrlChannelAddDropPortIndex, new UnsignedInteger32(OUT_OF_SERVICE)));
|
pdu.add(new VariableBinding(ctrlChannelAddDropPortIndex,
|
||||||
|
new UnsignedInteger32(DISABLE_CHANNEL_ADD_DROP_PORT_INDEX)));
|
||||||
|
|
||||||
// Put port/channel back to open loop
|
// Put port/channel back to open loop
|
||||||
OID ctrlChannelMode = new OID(CTRL_CHANNEL_MODE + (xc.isAddRule() ? "1." : "2.") + channel);
|
OID ctrlChannelMode = new OID(CTRL_CHANNEL_MODE + (xc.isAddRule() ? "1." : "2.") + channel);
|
||||||
@ -336,6 +343,9 @@ public class LumentumFlowRuleDriver extends AbstractHandlerBehaviour implements
|
|||||||
for (VariableBinding varBinding : varBindings) {
|
for (VariableBinding varBinding : varBindings) {
|
||||||
if (varBinding.getOid().last() == channel) {
|
if (varBinding.getOid().last() == channel) {
|
||||||
int port = varBinding.getVariable().toInt();
|
int port = varBinding.getVariable().toInt();
|
||||||
|
if (!isAddPort) {
|
||||||
|
port += DROP_PORT_OFFSET;
|
||||||
|
}
|
||||||
return PortNumber.portNumber(port);
|
return PortNumber.portNumber(port);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user