lishuai
Committed by Gerrit Code Review

[ONOS-3474] Add the implementation of method

programL3InPortClassifierRules which assemble the L3 Classifier table
rules sended from internal port.

Change-Id: I16a3eb9007351183b8f7786f2b74142c0b1883a3
...@@ -144,13 +144,26 @@ public class ClassifierServiceImpl implements ClassifierService { ...@@ -144,13 +144,26 @@ public class ClassifierServiceImpl implements ClassifierService {
144 } 144 }
145 145
146 @Override 146 @Override
147 - public void programL3InPortClassifierRules(DeviceId deviceId, 147 + public void programL3InPortClassifierRules(DeviceId deviceId, PortNumber inPort,
148 - PortNumber inPort, 148 + MacAddress srcMac, MacAddress dstMac,
149 - MacAddress srcMac, 149 + SegmentationId actionVni,
150 - MacAddress dstVmGwMac, 150 + Objective.Operation type) {
151 - SegmentationId l3Vni, 151 + TrafficSelector selector = DefaultTrafficSelector.builder()
152 - Operation type) { 152 + .matchInPort(inPort).matchEthSrc(srcMac).matchEthDst(dstMac)
153 - // TODO Auto-generated method stub 153 + .build();
154 + TrafficTreatment treatment = DefaultTrafficTreatment.builder()
155 + .setTunnelId(Long.parseLong(actionVni.segmentationId())).build();
156 + ForwardingObjective.Builder objective = DefaultForwardingObjective
157 + .builder().withTreatment(treatment).withSelector(selector)
158 + .fromApp(appId).withFlag(Flag.SPECIFIC)
159 + .withPriority(L3_CLAFFIFIER_PRIORITY);
160 + if (type.equals(Objective.Operation.ADD)) {
161 + log.debug("L3InternalClassifierRules-->ADD");
162 + flowObjectiveService.forward(deviceId, objective.add());
163 + } else {
164 + log.debug("L3InternalClassifierRules-->REMOVE");
165 + flowObjectiveService.forward(deviceId, objective.remove());
166 + }
154 } 167 }
155 168
156 @Override 169 @Override
......