- Application do not push or pop the label.
- Set the MPLS ID correctly in the driver.
Change-Id: I40ab5286a0ca44865f10bb7d8901e29b49cbe24c
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java b/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java
index 8dae594..20c1b41 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java
@@ -818,9 +818,9 @@
CopyTtlOutAction copyTtlOutAction = new CopyTtlOutAction();
DecMplsTtlAction decMplsTtlAction = new DecMplsTtlAction(1);
- actions.add(pushMplsAction);
- actions.add(copyTtlOutAction);
- actions.add(decMplsTtlAction);
+ //actions.add(pushMplsAction);
+ //actions.add(copyTtlOutAction);
+ //actions.add(decMplsTtlAction);
actions.add(setIdAction);
}
else {
@@ -836,9 +836,9 @@
CopyTtlOutAction copyTtlOutAction = new CopyTtlOutAction();
DecMplsTtlAction decMplsTtlAction = new DecMplsTtlAction(1);
- actions.add(pushMplsAction);
- actions.add(copyTtlOutAction);
- actions.add(decMplsTtlAction);
+ //actions.add(pushMplsAction);
+ //actions.add(copyTtlOutAction);
+ //actions.add(decMplsTtlAction);
actions.add(setIdAction);
}
}
@@ -848,6 +848,7 @@
for (String fwdSw : fwdToSws) {
groupAction.addSwitch(new Dpid(fwdSw));
+ groupAction.setEdgeLabel(Integer.parseInt(mplsLabel));
}
actions.add(groupAction);
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 9a4519d..5a57b86 100644
--- a/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java
+++ b/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java
@@ -874,8 +874,10 @@
if (b.mplsLabel != -1) {
OFAction pushLabel = factory.actions().buildPushMpls()
.setEthertype(EthType.MPLS_UNICAST).build();
- OFAction setLabel = factory.actions().buildSetMplsLabel()
- .setMplsLabel(b.mplsLabel).build();
+ OFOxmMplsLabel lid = factory.oxms()
+ .mplsLabel(U32.of(b.mplsLabel));
+ OFAction setLabel = factory.actions().buildSetField()
+ .setField(lid).build();
OFAction copyTtl = factory.actions().copyTtlOut();
OFAction decrTtl = factory.actions().decMplsTtl();
actions.add(pushLabel);