blob: 9cb36e0cc7452a42d8a36412dabdef2cdf43bd0e [file] [log] [blame]
alshabib030111e2014-09-15 15:56:42 -07001package org.onlab.onos.fwd;
2
3import org.apache.felix.scr.annotations.Activate;
4import org.apache.felix.scr.annotations.Component;
5import org.apache.felix.scr.annotations.Deactivate;
6import org.apache.felix.scr.annotations.Reference;
7import org.apache.felix.scr.annotations.ReferenceCardinality;
alshabib8aef1ad2014-09-15 17:47:31 -07008import org.onlab.onos.net.host.HostService;
alshabib030111e2014-09-15 15:56:42 -07009import org.onlab.onos.net.packet.PacketProcessor;
10import org.onlab.onos.net.packet.PacketService;
11import org.onlab.onos.net.topology.TopologyService;
12
13@Component
14public class ReactiveForwarding {
15
16 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
17 protected TopologyService topologyService;
18
19 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
20 protected PacketService packetService;
21
alshabib8aef1ad2014-09-15 17:47:31 -070022 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
23 protected HostService hostService;
24
alshabib030111e2014-09-15 15:56:42 -070025 private ReactivePacketProcessor processor;
26
27 @Activate
28 public void activate() {
alshabib8aef1ad2014-09-15 17:47:31 -070029 processor = new ReactivePacketProcessor(topologyService, hostService);
alshabib030111e2014-09-15 15:56:42 -070030 packetService.addProcessor(processor, PacketProcessor.ADVISOR_MAX + 1);
31 }
32
33 @Deactivate
34 public void deactivate() {
35 packetService.removeProcessor(processor);
36 processor = null;
37 }
38}
39