X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Ftopology-lldp-discovery%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmd%2Fcontroller%2Ftopology%2Flldp%2Futils%2FLLDPDiscoveryUtils.java;h=0d1ba11ee12a991d4806a90c56b2150832af2378;hp=d5dee32e40ef74e49fb80fb9e9eba284917a6c2b;hb=fdda2ebadfe3729e21448fe8f44a506aa67b5da9;hpb=9a19d9b2951fb82676f74a24c7a36902acc7627f diff --git a/opendaylight/md-sal/topology-lldp-discovery/src/main/java/org/opendaylight/md/controller/topology/lldp/utils/LLDPDiscoveryUtils.java b/opendaylight/md-sal/topology-lldp-discovery/src/main/java/org/opendaylight/md/controller/topology/lldp/utils/LLDPDiscoveryUtils.java index d5dee32e40..0d1ba11ee1 100644 --- a/opendaylight/md-sal/topology-lldp-discovery/src/main/java/org/opendaylight/md/controller/topology/lldp/utils/LLDPDiscoveryUtils.java +++ b/opendaylight/md-sal/topology-lldp-discovery/src/main/java/org/opendaylight/md/controller/topology/lldp/utils/LLDPDiscoveryUtils.java @@ -1,12 +1,18 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ package org.opendaylight.md.controller.topology.lldp.utils; import java.nio.charset.Charset; -import java.util.List; -import org.opendaylight.controller.sal.packet.Ethernet; -import org.opendaylight.controller.sal.packet.LLDP; -import org.opendaylight.controller.sal.packet.LLDPTLV; -import org.opendaylight.controller.sal.utils.NetUtils; +import org.opendaylight.controller.liblldp.Ethernet; +import org.opendaylight.controller.liblldp.LLDP; +import org.opendaylight.controller.liblldp.LLDPTLV; +import org.opendaylight.controller.liblldp.NetUtils; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; @@ -21,10 +27,10 @@ import org.slf4j.LoggerFactory; public class LLDPDiscoveryUtils { static Logger LOG = LoggerFactory.getLogger(LLDPDiscoveryUtils.class); - + public static final Long LLDP_INTERVAL = (long) (1000*5); // Send LLDP every five seconds public static final Long LLDP_EXPIRATION_TIME = LLDP_INTERVAL*3; // Let up to three intervals pass before we decide we are expired. - + public static String macToString(byte[] mac) { StringBuilder b = new StringBuilder(); for (int i = 0; i < mac.length; i++) { @@ -33,7 +39,7 @@ public class LLDPDiscoveryUtils { return b.toString(); } - + public static NodeConnectorRef lldpToNodeConnectorRef(byte[] payload) { Ethernet ethPkt = new Ethernet(); try { @@ -44,12 +50,8 @@ public class LLDPDiscoveryUtils { if (ethPkt.getPayload() instanceof LLDP) { LLDP lldp = (LLDP) ethPkt.getPayload(); - + try { - List optionalTLVList = lldp.getOptionalTLVList(); - if (optionalTLVList == null) { - return null; - } NodeId srcNodeId = null; NodeConnectorId srcNodeConnectorId = null; for (LLDPTLV lldptlv : lldp.getOptionalTLVList()) { @@ -61,12 +63,13 @@ public class LLDPDiscoveryUtils { srcNodeId = new NodeId(srcNodeIdString); } } - - InstanceIdentifier srcInstanceId = InstanceIdentifier.builder(Nodes.class) - .child(Node.class,new NodeKey(srcNodeId)) - .child(NodeConnector.class, new NodeConnectorKey(srcNodeConnectorId)) - .toInstance(); - return new NodeConnectorRef(srcInstanceId); + if(srcNodeId != null && srcNodeConnectorId != null) { + InstanceIdentifier srcInstanceId = InstanceIdentifier.builder(Nodes.class) + .child(Node.class,new NodeKey(srcNodeId)) + .child(NodeConnector.class, new NodeConnectorKey(srcNodeConnectorId)) + .toInstance(); + return new NodeConnectorRef(srcInstanceId); + } } catch (Exception e) { LOG.warn("Caught exception ", e); }