builder.withId(idJson.asInt()); builder.fromApp(coreService.registerApplication(appId)); builder.withType(NextObjective.Type.HASHED); break; case "BROADCAST": builder.withType(NextObjective.Type.BROADCAST); break; case "FAILOVER": builder.withType(NextObjective.Type.FAILOVER); break; case "SIMPLE": builder.withType(NextObjective.Type.SIMPLE); break; default: IntStream.range(0, treatmentsJson.size()).forEach(i -> { ObjectNode treatmentJson = get(treatmentsJson, i); builder.addTreatment(trafficTreatmentCodec.decode(treatmentJson, context)); }); if (metaJson != null) { TrafficSelector trafficSelector = trafficSelectorCodec.decode((ObjectNode) metaJson, context); builder.withMeta(trafficSelector); nextObjective = builder.add(); break; case "REMOVE":
private List<Objective> createBroadcastObjective(ForwardingInstructions instructions, Set<TrafficTreatment> treatmentsWithDifferentPort, LinkCollectionIntent intent) { List<Objective> objectives = Lists.newArrayList(); ForwardingObjective forwardingObjective; NextObjective nextObjective; Integer nextId = flowObjectiveService.allocateNextId(); forwardingObjective = buildForwardingObjective(instructions.selector(), nextId, intent.priority()); DefaultNextObjective.Builder nxBuilder = DefaultNextObjective.builder(); nxBuilder.withId(nextId) .withMeta(instructions.selector()) .withType(NextObjective.Type.BROADCAST) .fromApp(appId) .withPriority(intent.priority()) .makePermanent(); treatmentsWithDifferentPort.forEach(nxBuilder::addTreatment); nextObjective = nxBuilder.add(); objectives.add(forwardingObjective); objectives.add(nextObjective); return objectives; }
.withId(nextId) .addTreatment(treatment.build()) .withType(NextObjective.Type.SIMPLE) .fromApp(routerAppId); if (metabuilder != null) { nextBuilder.withMeta(metabuilder.build());
.withId(flowObjectiveService.allocateNextId()) .addTreatment(treatment) .withType(NextObjective.Type.SIMPLE) .fromApp(appId) .makePermanent().add(); objectives.add(nextObjective); devices.add(ingress.deviceId());
private int createPeerGroup(MacAddress srcMac, MacAddress dstMac, VlanId vlanId, DeviceId deviceId, PortNumber port) { int nextId = flowObjectiveService.allocateNextId(); NextObjective.Builder nextObjBuilder = DefaultNextObjective.builder() .withId(nextId) .withType(NextObjective.Type.SIMPLE) .fromApp(appId); TrafficTreatment.Builder ttBuilder = DefaultTrafficTreatment.builder(); ttBuilder.setEthSrc(srcMac); ttBuilder.setEthDst(dstMac); ttBuilder.setOutput(port); nextObjBuilder.addTreatment(ttBuilder.build()); TrafficSelector.Builder metabuilder = DefaultTrafficSelector.builder(); VlanId matchVlanId = (vlanId.equals(VlanId.NONE)) ? VlanId.vlanId(SingleSwitchFibInstaller.ASSIGNED_VLAN) : vlanId; metabuilder.matchVlanId(matchVlanId); nextObjBuilder.withMeta(metabuilder.build()); flowObjectiveService.next(deviceId, nextObjBuilder.add()); return nextId; }
private List<Objective> createSimpleNextObjective(ForwardingInstructions instructions, LinkCollectionIntent intent) { List<Objective> objectives = Lists.newArrayList(); ForwardingObjective forwardingObjective; NextObjective nextObjective; Integer nextId = flowObjectiveService.allocateNextId(); forwardingObjective = buildForwardingObjective(instructions.selector(), nextId, intent.priority()); DefaultNextObjective.Builder nxBuilder = DefaultNextObjective.builder(); nextObjective = nxBuilder.withId(nextId) .withMeta(instructions.selector()) .addTreatment(instructions.treatment()) .withType(NextObjective.Type.SIMPLE) .fromApp(appId) .makePermanent() .withPriority(intent.priority()) .add(); objectives.add(forwardingObjective); objectives.add(nextObjective); return objectives; }