Prevent ConfigPusher from killing its thread
[controller.git] / opendaylight / md-sal / topology-lldp-discovery / src / main / java / org / opendaylight / md / controller / topology / lldp / LLDPDiscoveryListener.java
1 package org.opendaylight.md.controller.topology.lldp;
2
3 import org.opendaylight.md.controller.topology.lldp.utils.LLDPDiscoveryUtils;
4 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkDiscovered;
5 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkDiscoveredBuilder;
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingListener;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
11
12 class LLDPDiscoveryListener implements PacketProcessingListener {
13     static Logger LOG = LoggerFactory.getLogger(LLDPDiscoveryListener.class);
14
15     private LLDPDiscoveryProvider manager;
16
17     LLDPDiscoveryListener(LLDPDiscoveryProvider manager) {
18         this.manager = manager;
19     }
20     
21     public void onPacketReceived(PacketReceived lldp) {
22         NodeConnectorRef src = LLDPDiscoveryUtils.lldpToNodeConnectorRef(lldp.getPayload());
23         if(src != null) {
24             LinkDiscoveredBuilder ldb = new LinkDiscoveredBuilder();
25             ldb.setDestination(lldp.getIngress());
26             ldb.setSource(new NodeConnectorRef(src));
27             LinkDiscovered ld = ldb.build();
28             
29             manager.getNotificationService().publish(ld);
30             LLDPLinkAger.getInstance().put(ld);
31         }
32     }
33     
34 }