2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.openflowplugin.openflow.md.lldp;
10 import org.opendaylight.openflowplugin.openflow.md.queue.PopListener;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorBuilder;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorUpdated;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortConfig;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortState;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder;
19 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
21 public class LLDPSpeakerPopListener<T> implements PopListener<T> {
25 public void onPop(T processedMessage) {
26 if(processedMessage instanceof NodeConnectorUpdated) {
27 NodeConnectorUpdated connector = (NodeConnectorUpdated) processedMessage;
28 FlowCapableNodeConnectorUpdated flowConnector = connector.<FlowCapableNodeConnectorUpdated>getAugmentation(FlowCapableNodeConnectorUpdated.class);
29 if(flowConnector != null) {
30 InstanceIdentifier<NodeConnector> nodeConnectorInstanceId = (InstanceIdentifier<NodeConnector>) connector.getNodeConnectorRef().getValue();
31 NodeConnectorBuilder ncb = new NodeConnectorBuilder(connector);
32 FlowCapableNodeConnectorBuilder fcncb = new FlowCapableNodeConnectorBuilder(flowConnector);
33 ncb.addAugmentation(FlowCapableNodeConnector.class, fcncb.build());
34 PortState portState = flowConnector.getState();
35 PortConfig portConfig = flowConnector.getConfiguration();
36 if((portState ==null || !portState.isLinkDown()) && (portConfig == null || !portConfig.isPORTDOWN())) {
37 LLDPSpeaker.getInstance().addNodeConnector(nodeConnectorInstanceId,ncb.build());
39 LLDPSpeaker.getInstance().removeNodeConnector(nodeConnectorInstanceId,ncb.build());