com.foxsmart.csu.config.global.policymap.classmap
Class RandomDetectComponent

java.lang.Object
  extended by com.foxsmart.csu.config.CiscoRouterConfigParser
      extended by com.foxsmart.csu.config.CiscoRouterConfigComponent
          extended by com.foxsmart.csu.config.global.policymap.classmap.RandomDetectComponent
All Implemented Interfaces:
java.io.Serializable

public class RandomDetectComponent
extends CiscoRouterConfigComponent

To random detect commands configures Weighted Random Early Detection (WRED) and distributed WRED (DWRED) parameters for a particular IP Precedence. To configure WRED parameters for a particular IP Precedence for a class policy in a policy map, use the random-detect precedence policy-map class configuration command.

WRED is a congestion avoidance mechanism that slows traffic by randomly dropping packets when congestion exists. DWRED is similar to WRED but uses the Versatile Interface Processor (VIP) instead of the Route Switch Processor (RSP).

When you configure the random-detect command on an interface, packets are given preferential treatment based on the IP Precedence of the packet. Use the random-detect precedence command to adjust the treatment for different precedences.

If you want WRED or DWRED to ignore the precedence when determining which packets to drop, enter this command with the same parameters for each precedence. Remember to use reasonable values for the minimum and maximum thresholds.

Note that if you use the random-detect precedence command to adjust the treatment for different precedences within class policy, you must ensure that WRED is not configured for the interface to which you attach that service policy.

See Also:
Serialized Form

Field Summary
static java.lang.String EXPONENTIAL_WEIGHTING_CONSTANT
           
static java.lang.Integer MAX_EXPONENTIAL_WEIGHTING_CONSTANT
          The maximum exponential weighting constant.
static java.lang.Integer MIN_EXPONENTIAL_WEIGHTING_CONSTANT
          The minimum exponential weighting constant.
static java.lang.String PRECEDENCE
           
static java.lang.String RANDOM_DETECT
           
static java.lang.String RSVP
           
 
Fields inherited from class com.foxsmart.csu.config.CiscoRouterConfigComponent
commentComponent, componentMap, log, parentComponent
 
Fields inherited from class com.foxsmart.csu.config.CiscoRouterConfigParser
NO, tokenIndex
 
Constructor Summary
RandomDetectComponent()
          Constructs a priority object.
 
Method Summary
 java.util.List buildFromIos(java.util.List configLines)
          Parse and populate the specific CiscoRouterComponent object based on the passed in individual lines of the IOS configuration.
 Commands generateDeleteIos(CiscoRouterConfig updatedCiscoRouterConfig)
          Generates the IOS configuration commands to delete this component.
 Commands generateIos()
          Returns the IOS configuration commands for this component.
 java.lang.Integer getExponentialWeightingConstant()
          Gets the exponential weighting constant.
 RandomDetectPrecedenceParams getPrecedenceParams(RandomDetectPrecedenceEnum randomDetectPrecedenceEnum)
          Gets the random detect precedence parameters for a given precedence.
 void setExponentialWeightingConstant(java.lang.Integer exponentialWeightingConstant)
          Sets the exponential weighting constant.
 void setPrecedenceParams(RandomDetectPrecedenceEnum randomDetectPrecedenceEnum, RandomDetectPrecedenceParams params)
          Sets the precedence parameters for a particular precedence.
 void validate()
          Validates this object to ensure it contains a valid IOS configuration.
 
Methods inherited from class com.foxsmart.csu.config.CiscoRouterConfigComponent
addComponent, addComponent, checkComponentType, deleteOldConfigWhenUpdating, dumpComponents, generateChildrenUpdateConfiglet, generateCompositeIos, generateCompositeIos, generateIos, generateIos, generateIos, generateMultiLineUpdateConfiglet, generateUpdateCompositeIos, generateUpdateIos, generateUpdateIos, getAllComponents, getCiscoRouterConfig, getComment, getComponentClassName, getComponentClassName, getComponentKeys, getComponents, getComponents, getDeferredDelete, getFirstComponent, getFirstComponent, getParentComponent, getTotalComponents, getTotalComponents, getUpdateConfiglet, instantiateComponent, instantiateComponent, isValid, removeAllComponents, removeAllComponents, removeAllComponents, removeComponent, removeComponent, removeComponent, requiresCommentSeparator, setComment, setParentComponent, validateChildren
 
Methods inherited from class com.foxsmart.csu.config.CiscoRouterConfigParser
checkExists, checkLineComplete, checkNotEmpty, checkRange, checkTokenCount, checkTokenCount, checkTokenMatch, checkTokenMatch, decrementTokenIndex, generateCommands, getBigDecimalNumberFromString, getDoubleNumberFromString, getEnum, getHexadecimalNumberFromString, getIntegerNumberFromString, getIpAddressFromString, getLine, getLongNumberFromString, getMacAddressFromString, getNextOptionalToken, getNextToken, getToken, getTokenIndex, getTokens, getTotalIndentedLines, getTotalLines, incrementTokenIndex, invalidConfiguration, invalidTokenFound, isEmpty, moreIndentedLines, moreLines, moreTokens, removeLines, resetTokenIndex, setTokenIndex, tokensLeft
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RANDOM_DETECT

public static final java.lang.String RANDOM_DETECT
See Also:
Constant Field Values

EXPONENTIAL_WEIGHTING_CONSTANT

public static final java.lang.String EXPONENTIAL_WEIGHTING_CONSTANT
See Also:
Constant Field Values

PRECEDENCE

public static final java.lang.String PRECEDENCE
See Also:
Constant Field Values

RSVP

public static final java.lang.String RSVP
See Also:
Constant Field Values

MIN_EXPONENTIAL_WEIGHTING_CONSTANT

public static final java.lang.Integer MIN_EXPONENTIAL_WEIGHTING_CONSTANT
The minimum exponential weighting constant.


MAX_EXPONENTIAL_WEIGHTING_CONSTANT

public static final java.lang.Integer MAX_EXPONENTIAL_WEIGHTING_CONSTANT
The maximum exponential weighting constant.

Constructor Detail

RandomDetectComponent

public RandomDetectComponent()
Constructs a priority object.

Method Detail

setExponentialWeightingConstant

public void setExponentialWeightingConstant(java.lang.Integer exponentialWeightingConstant)
Sets the exponential weighting constant. This is the weight for mean queue depth calculation and should be an integer between 1-16 used in weighted average to mean 2^number.

Parameters:
exponentialWeightingConstant - The exponential weighting constant.

getExponentialWeightingConstant

public java.lang.Integer getExponentialWeightingConstant()
Gets the exponential weighting constant.

Returns:
the exponential weighting constant.

setPrecedenceParams

public void setPrecedenceParams(RandomDetectPrecedenceEnum randomDetectPrecedenceEnum,
                                RandomDetectPrecedenceParams params)
Sets the precedence parameters for a particular precedence. Pass in null for the precedence parameters to remove a precedence set of parameters.

Parameters:
randomDetectPrecedenceEnum - The precedence
params - The random detect precedence parameters for the given precedence.

getPrecedenceParams

public RandomDetectPrecedenceParams getPrecedenceParams(RandomDetectPrecedenceEnum randomDetectPrecedenceEnum)
Gets the random detect precedence parameters for a given precedence. Null will be returned if no parameters exist for a given precedence.

Parameters:
randomDetectPrecedenceEnum - The enum to get precedence parameters.
Returns:
The precedence parameters.

buildFromIos

public java.util.List buildFromIos(java.util.List configLines)
                            throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Parse and populate the specific CiscoRouterComponent object based on the passed in individual lines of the IOS configuration. The passed in configuration lines should represent the first line in the configuration that applies to the specific component. The component should use all lines needed by its specific part of the configuration and return a List with the remaining lines that are not part of the component's configuration.

Specified by:
buildFromIos in class CiscoRouterConfigComponent
Parameters:
configLines - The list of IOS configuration lines.
Returns:
The rest of the lines that were not parsed by the component.
Throws:
InvalidConfigurationException - if the IOS configuration can not be parsed for any reason.
See Also:
CiscoRouterConfigComponent

validate

public void validate()
              throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Validates this object to ensure it contains a valid IOS configuration.

Specified by:
validate in class CiscoRouterConfigComponent
Throws:
InvalidConfigurationException - if the configuration is invalid.
See Also:
CiscoRouterConfigComponent

generateIos

public Commands generateIos()
                     throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Returns the IOS configuration commands for this component.

Specified by:
generateIos in class CiscoRouterConfigComponent
Returns:
The IOS configuration string as a list of Command objects. To generate a configlet from the list of Command objects, use Command.getConfiglet().
Throws:
InvalidConfigurationException - if the IOS configuration is invalid and the IOS string can not be generated. The validate() method is used to determine if the configuration is valid.
See Also:
CiscoRouterConfigComponent

generateDeleteIos

public Commands generateDeleteIos(CiscoRouterConfig updatedCiscoRouterConfig)
                           throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Generates the IOS configuration commands to delete this component. This is the default implementation that generates a "no" statement followed by the generateIos() string for non CompositeComponents or generateHeaderIos() for CompositeComponents. Specific components may choose to override this method if this implementation is incorrect. The "no" keyword is placed where the first character of the command is located. For example, if the IOS command is " length 255", then the returned command will be " no length 255" (and not "no length 255").

Note that this implementation will call the getDeferredDelete method on the component and set the "deferred flag" on the returned Commands with its returned value.

Overrides:
generateDeleteIos in class CiscoRouterConfigComponent
Parameters:
updatedCiscoRouterConfig - the updated Cisco router configuration.
Returns:
The generated IOS string to deleted the component.
Throws:
InvalidConfigurationException - if the IOS configuration is invalid and the IOS string can not be generated. The validate() method is used to determine if the configuration is valid.
See Also:
MultiLineComponent


Copyright © 2005-2008 Fox Smart, Inc. All Rights Reserved.