Setting Bottom of Stack field as 1 while pushing lowest label
diff --git a/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java b/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java
index 6ed35b4..81586d8 100644
--- a/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java
+++ b/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java
@@ -1004,6 +1004,10 @@
if (b.mplsLabel != -1) {
OFAction pushLabel = factory.actions().buildPushMpls()
.setEthertype(EthType.MPLS_UNICAST).build();
+ OFOxmMplsBos bosX = factory.oxms()
+ .mplsBos(OFBooleanValue.TRUE);
+ OFAction setBX = factory.actions().buildSetField()
+ .setField(bosX).build();
OFOxmMplsLabel lid = factory.oxms()
.mplsLabel(U32.of(b.mplsLabel));
OFAction setLabel = factory.actions().buildSetField()
@@ -1012,6 +1016,7 @@
OFAction decrTtl = factory.actions().decMplsTtl();
actions.add(pushLabel);
actions.add(setLabel);
+ actions.add(setBX);
actions.add(copyTtl);
actions.add(decrTtl);
}
@@ -1061,6 +1066,10 @@
if (b.mplsLabel != -1) {
OFAction pushLabel = factory.actions().buildPushMpls()
.setEthertype(EthType.MPLS_UNICAST).build();
+ OFOxmMplsBos bosX = factory.oxms()
+ .mplsBos(OFBooleanValue.TRUE);
+ OFAction setBX = factory.actions().buildSetField()
+ .setField(bosX).build();
OFOxmMplsLabel lid = factory.oxms()
.mplsLabel(U32.of(b.mplsLabel));
OFAction setLabel = factory.actions().buildSetField()
@@ -1069,6 +1078,7 @@
OFAction decrTtl = factory.actions().decMplsTtl();
actions.add(pushLabel);
actions.add(setLabel);
+ actions.add(setBX);
actions.add(copyTtl);
actions.add(decrTtl);
}