/* * Copyright 2015-present Open Networking Laboratory * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ package org.onosproject.bgpio.protocol.linkstate; import java.util.Objects; import org.onlab.packet.IpAddress; import com.google.common.base.MoreObjects; /** * This Class stores path Attributes, protocol ID and Identifier of LinkState nlri. */ public class PathAttrNlriDetailsLocalRib { private IpAddress localRibIpAddress; private long localRibAsNum; private int localRibIdentifier; private boolean isLocalRibIbgpSession; private PathAttrNlriDetails localRibNlridetails; /** * Constructor to initialize parameter. * * @param localRibIpAddress peer ip address * @param localRibIdentifier peer identifier * @param localRibAsNum peer As number * @param isLocalRibIbgpSession flag to indicate is Ibgp session * @param localRibNlridetails Nlri details * */ public PathAttrNlriDetailsLocalRib(IpAddress localRibIpAddress, int localRibIdentifier, long localRibAsNum, boolean isLocalRibIbgpSession, PathAttrNlriDetails localRibNlridetails) { this.localRibIpAddress = localRibIpAddress; this.localRibAsNum = localRibAsNum; this.localRibIdentifier = localRibIdentifier; this.isLocalRibIbgpSession = isLocalRibIbgpSession; this.localRibNlridetails = localRibNlridetails; } /** * Gets the Ipaddress updated in local rib. * * @return localRibIpAddress ip address */ public IpAddress localRibIpAddress() { return localRibIpAddress; } /** * Gets the autonomous system number updated in local rib. * * @return localRibAsNum autonomous system number */ public long localRibAsNum() { return localRibAsNum; } /** * Gets the indetifier updated in local rib. * * @return localRibIdentifier identifier */ public int localRibIdentifier() { return localRibIdentifier; } /** * Gets the bgp session type updated in local rib. * * @return isLocalRibIbgpSession session type */ public boolean isLocalRibIbgpSession() { return isLocalRibIbgpSession; } /** * Returns local RIB Nlri details. * * @return localRibNlridetails Nlri details in local rib */ public PathAttrNlriDetails localRibNlridetails() { return this.localRibNlridetails; } @Override public int hashCode() { return Objects.hash(localRibIpAddress, localRibIdentifier, localRibAsNum, isLocalRibIbgpSession, localRibNlridetails.hashCode()); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj instanceof PathAttrNlriDetailsLocalRib) { PathAttrNlriDetailsLocalRib other = (PathAttrNlriDetailsLocalRib) obj; return Objects.equals(localRibIpAddress, other.localRibIpAddress) && Objects.equals(localRibIdentifier, other.localRibIdentifier) && Objects.equals(localRibAsNum, other.localRibAsNum) && Objects.equals(isLocalRibIbgpSession, other.isLocalRibIbgpSession) && Objects.equals(localRibNlridetails, other.localRibNlridetails); } return false; } @Override public String toString() { return MoreObjects.toStringHelper(getClass()).add("peerIdentifier", localRibIdentifier) .add("localRibpathAttributes", localRibNlridetails.pathAttributes()).toString(); } }