| package org.onlab.onos.fwd; |
| |
| import org.apache.felix.scr.annotations.Activate; |
| import org.apache.felix.scr.annotations.Component; |
| import org.apache.felix.scr.annotations.Deactivate; |
| import org.apache.felix.scr.annotations.Reference; |
| import org.apache.felix.scr.annotations.ReferenceCardinality; |
| import org.onlab.onos.net.host.HostService; |
| import org.onlab.onos.net.packet.PacketProcessor; |
| import org.onlab.onos.net.packet.PacketService; |
| import org.onlab.onos.net.topology.TopologyService; |
| |
| @Component |
| public class ReactiveForwarding { |
| |
| @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| protected TopologyService topologyService; |
| |
| @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| protected PacketService packetService; |
| |
| @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| protected HostService hostService; |
| |
| private ReactivePacketProcessor processor; |
| |
| @Activate |
| public void activate() { |
| processor = new ReactivePacketProcessor(topologyService, hostService); |
| packetService.addProcessor(processor, PacketProcessor.ADVISOR_MAX + 1); |
| } |
| |
| @Deactivate |
| public void deactivate() { |
| packetService.removeProcessor(processor); |
| processor = null; |
| } |
| } |
| |