| /* |
| * Copyright 2016-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.ospf.controller; |
| |
| /** |
| * Representation of a wrapper object to store LSA and associated metadata. |
| * Metadata consists about the origination of LSA, age of LSA when received etc. |
| */ |
| public interface LsaWrapper { |
| /** |
| * Gets the type of LSA, it can be a router,network,summary,external. |
| * |
| * @return lsa type |
| */ |
| public OspfLsaType lsaType(); |
| |
| /** |
| * Sets the LSA type during the initialization of wrapper. |
| * |
| * @param lsaType lsa type |
| */ |
| public void setLsaType(OspfLsaType lsaType); |
| |
| /** |
| * Determines the origination of LSA , this is called during ls refresh interval. |
| * |
| * @return true if self originated else false |
| */ |
| public boolean isSelfOriginated(); |
| |
| /** |
| * Sets is self originated or not. |
| * |
| * @param isSelfOriginated true if self originated else false |
| */ |
| public void setIsSelfOriginated(boolean isSelfOriginated); |
| |
| |
| /** |
| * Age of LSA when received during the adjacency formation. |
| * |
| * @return Age of LSA when received |
| */ |
| public int lsaAgeReceived(); |
| |
| /** |
| * Sets the Age of LSA when received during the adjacency formation. |
| * |
| * @param lsaAgeReceived Age of LSA when received |
| */ |
| public void setLsaAgeReceived(int lsaAgeReceived); |
| |
| /** |
| * Gets the LSA present in the wrapper instance. |
| * |
| * @return LSA instance |
| */ |
| public OspfLsa ospfLsa(); |
| |
| /** |
| * Sets the LSA instance to the wrapper. |
| * |
| * @param ospfLsa LSA instance |
| */ |
| public void setOspfLsa(OspfLsa ospfLsa); |
| |
| /** |
| * Gets the current LSA Age, using this we calculate current age. |
| * It is done against the age counter which is incremented every second. |
| * |
| * @return lsa age |
| */ |
| public int currentAge(); |
| |
| /** |
| * Gets the age counter when received. |
| * |
| * @return the age counter when received |
| */ |
| public int ageCounterWhenReceived(); |
| |
| /** |
| * Sets the age counter when received. |
| * |
| * @param ageCounterWhenReceived the age counter when received |
| */ |
| public void setAgeCounterWhenReceived(int ageCounterWhenReceived); |
| |
| /** |
| * Gets the LSA process command, like max age, ls refresh, based on the command set. |
| * The queue consumer will pick the LSA and start performing the actions, like flooding |
| * out of the domain or generating a new LSA and flooding. |
| * |
| * @return lsa process command |
| */ |
| public String lsaProcessing(); |
| |
| /** |
| * Sets the LSA process command, like max age , ls refresh , based on the command set. |
| * The queue consumer will pick the LSA and start performing the actions, like flooding |
| * out of the domain or generating a new LSA and flooding. |
| * |
| * @param lsaProcessing lsa process command |
| */ |
| public void setLsaProcessing(String lsaProcessing); |
| |
| /** |
| * Gets bin number into which the LSA wrapper is put for aging process. |
| * |
| * @return bin number |
| */ |
| public int binNumber(); |
| |
| /** |
| * Sets bin number into which the LSA wrapper is put for aging process. |
| * |
| * @param binNumber bin number |
| */ |
| public void setBinNumber(int binNumber); |
| |
| /** |
| * Gets the interface on which the LSA was received. |
| * |
| * @return the interface instance |
| */ |
| public OspfInterface ospfInterface(); |
| |
| /** |
| * Sets the interface on which the LSA was received, this is used later to flood the information. |
| * |
| * @param ospfInterface interface instance |
| */ |
| public void setOspfInterface(OspfInterface ospfInterface); |
| |
| /** |
| * Sets the LSDB age. |
| * Using LSDB age we are calculating age of a particular LSA. |
| * |
| * @param lsdbAge lsdbAge instance |
| */ |
| public void setLsdbAge(LsdbAge lsdbAge); |
| } |