[ONOS-3474] Add the implementation of method
programL3InPortClassifierRules which assemble the L3 Classifier table
rules sended from internal port.
Change-Id: I16a3eb9007351183b8f7786f2b74142c0b1883a3
diff --git a/apps/vtn/vtnmgr/src/main/java/org/onosproject/vtn/table/impl/ClassifierServiceImpl.java b/apps/vtn/vtnmgr/src/main/java/org/onosproject/vtn/table/impl/ClassifierServiceImpl.java
index 4c3b0f9..b27a917 100644
--- a/apps/vtn/vtnmgr/src/main/java/org/onosproject/vtn/table/impl/ClassifierServiceImpl.java
+++ b/apps/vtn/vtnmgr/src/main/java/org/onosproject/vtn/table/impl/ClassifierServiceImpl.java
@@ -144,13 +144,26 @@
}
@Override
- public void programL3InPortClassifierRules(DeviceId deviceId,
- PortNumber inPort,
- MacAddress srcMac,
- MacAddress dstVmGwMac,
- SegmentationId l3Vni,
- Operation type) {
- // TODO Auto-generated method stub
+ public void programL3InPortClassifierRules(DeviceId deviceId, PortNumber inPort,
+ MacAddress srcMac, MacAddress dstMac,
+ SegmentationId actionVni,
+ Objective.Operation type) {
+ TrafficSelector selector = DefaultTrafficSelector.builder()
+ .matchInPort(inPort).matchEthSrc(srcMac).matchEthDst(dstMac)
+ .build();
+ TrafficTreatment treatment = DefaultTrafficTreatment.builder()
+ .setTunnelId(Long.parseLong(actionVni.segmentationId())).build();
+ ForwardingObjective.Builder objective = DefaultForwardingObjective
+ .builder().withTreatment(treatment).withSelector(selector)
+ .fromApp(appId).withFlag(Flag.SPECIFIC)
+ .withPriority(L3_CLAFFIFIER_PRIORITY);
+ if (type.equals(Objective.Operation.ADD)) {
+ log.debug("L3InternalClassifierRules-->ADD");
+ flowObjectiveService.forward(deviceId, objective.add());
+ } else {
+ log.debug("L3InternalClassifierRules-->REMOVE");
+ flowObjectiveService.forward(deviceId, objective.remove());
+ }
}
@Override