⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2439.txt

📁 xorp源码hg
💻 TXT
📖 第 1 页 / 共 5 页
字号:
Villamizar, et. al.         Standards Track                    [Page 16]RFC 2439                 BGP Route Flap Damping            November 1998   o  reuse index array (reuse-index-array[])   For each decay rate specified, an array will be used to store the   value of a computed parameter raised to the power of the index of   each array element.  This is to speed computations.  The decay rate   per tick is an intermediate value expressed as a real number and used   to compute the values stored in the decay arrays.  The array size is   computed from the decay memory limit configuration parameter   expressed as an array size or as a maximum hold time.   The decay array size must be of sufficient size to accommodate the   specified decay memory given the time granularity, or sufficient to   hold the number of array elements until integer rounding produces a   zero result if that value is smaller, or a implementation imposed   reasonable size to prevent configurations which use excessive memory.   Implementations may chose to make the array size shorter and multiply   more than once when decaying a long time interval to reduce storage.   The reuse index arrays serve a similar purpose to the decay arrays.   In BGP, a route is said to be "used" if it is considered the best   route.  In this context, if the route is "used" it is placed in the   RIB and is eligible for advertisement to BGP peers.  If a route is   withdrawn (a BGP announcement is made by a peer indicating that it is   no longer reachable), then it is no longer eligible for "use".  When   a route becomes reachable it may not be "used" immediately if the   figure of merit indicates that a recent instability has occurred.   After the route remains stable and the figure of merit decays below   the "reuse" threshhold, the route is said to be eligible to be   "reused" (treated as truly reachable, placed in the RIB and   advertised to peers).  The amount of time until a route can be reused   can be determined using a array lookup.  The array can be built given   the decay rate.  The array is indexed using a scaled integer   proportional to the ratio between a current stability figure of merit   value and the value needed for the route to be reused.4.4.3 Per Route State   Information must be maintained per some tuple representing a route.   At the very minimum, the NLRI (BGP prefix and length) must be   contained in the tuple.  Different BGP attributes may be included or   excluded depending on the specific situation.  The AS path should   also be contained in the tuple by default.  The tuple may also   optionally contain other BGP attributes such as   MULTI_EXIT_DISCRIMINATOR (MED).   The tuple representing a route for the purpose of route flap damping   is:Villamizar, et. al.         Standards Track                    [Page 17]RFC 2439                 BGP Route Flap Damping            November 1998      tuple entry            default      options      -------------------------------------------      NLRI        prefix               required        length               required      AS path                included     option to exclude      last AS set in path    excluded     option to include      next hop               excluded     option to include      MED                    excluded     option to include                                          in comparisons only   The AS path is generally included in order to identify downstream   instability which is not being damped or not being sufficiently   damped and is alternating between a stable and an unstable path.   Under rare circumstances it may be desirable to exclude AS path for   all or a subset of prefixes.  If an AS path ends in an AS set, in   practice the path is always for an aggregate.  Changes to the   trailing AS set should be ignored.  Ideally the AS path comparison   should insure that at least one AS has remained constant in the old   and new AS set, but completely ignoring the contents of a trailing AS   set is also acceptable.   Including next hop and MED changes can help suppress the use of an AS   which is internally unstable or avoid a next hop which is closer to   an unstable IGP path in the adjacent AS. If a large number of MED   values are used, the increase in the amount of state may become a   problem.  For this reason MED is disabled by default and enabled only   as part of the tuple comparison, using a single state entry   regardless of MED value.  Including MED will suppress the use of the   adjacent AS even though the change need not be propagated further.   Using MED is only a safe practice if a path is known to exist through   another AS or where there are enough peering sites with the adjacent   AS such that routes heard at only a subset of the peering sites will   be suppressed.4.4.4 Data Structures per Route   The following information must be maintained per route.  A route here   is considered to be a tuple usually containing NLRI, next hop, and AS   path as defined in Section 4.4.3.     stability figure of merit (figure-of-merit)        Each route must have a stability figure of merit per applicable        parameter set.     last time updated (time-update)Villamizar, et. al.         Standards Track                    [Page 18]RFC 2439                 BGP Route Flap Damping            November 1998        The exact last time updated must be maintained to allow        exponential decay of the accumulated figure of merit to be        deferred until the route might reasonable be considered eligible        for a change in status (having gone from unreachable to        reachable or advancing within the reuse lists).     config block pointer        Any implementation that supports multiple parameter sets must        provide a means of quickly identifying which set of parameters        corresponds to the route currently being considered.  For        implementations supporting only parameter sets where all routes        must be treated the same, this pointer is not required.     reuse list traversal pointers        If doubly linked lists are used to implement reuse lists, then        two pointers will be needed, previous and next.  Generally there        is a double linked list which is unused when a route is        suppressed from use that can be used for reuse list traversal        eliminating the need for additional pointer storage.4.5 Processing Configuration Parameters        From the configuration parameters, it is possible to precompute        a number of values that will be used repeatedly and retain these        to speed later computations that will be required frequently.        Scaling is usually dependent on the highest value that figure-        of-merit can attain, referred to here as the ceiling.  The real        number value of the ceiling will typically be determined by the        following equation.  The ceiling can also be configured to a        specific value, which in turn dictates T-hold.            ceiling = reuse * (exp(T-hold/decay-half-life) * log(2))        In the above equation, reuse is the reuse threshhold described        in Section 4.2.        The methods of scaled integer arithmetic are not described in        detail here.  The methods of determining the real values are        given.  Translation into scaled integer values and the details        of scaled integer arithmetic are left up to the individual        implementations.     The ceiling value can be set to be the largest integer that can fit     in half the bits available for an unsigned integer.  This will     allow the scaled integers to be multiplied by the scaled decayVillamizar, et. al.         Standards Track                    [Page 19]RFC 2439                 BGP Route Flap Damping            November 1998     value and then shifted down.  Implementations may prefer to use     real numbers or may use any integer scaling deemed appropriate for     their architecture.     penalty value and thresholds (as proportional scaled integers)        The figure of merit penalty for one route withdrawal and the        cutoff values must be scaled according to the above scaling        factor.     decay rate per tick (decay[1])        The decay value per increment of time as defined by the time        granularity must be determined (at least initially as a floating        point number).  The per tick decay is a number slightly less        than one.  It is the Nth root of the one half where N is the        half life divided by the time granularity.          decay[1] = exp ((1 / (decay-half-life/delta-t)) * log (1/2))     decay array size (decay-array-size)        The decay array size is the decay memory divided by the time        granularity.  If integer truncation brings the value of an array        element to zero, the array can be made smaller.  An        implementation should also impose a maximum reasonable array        size or allow more than one multiplication.                       decay-array-size = (Tmax/delta-t)     decay array (decay[])        Each i-th element of the decay array is the per tick delay        raised to the i-th power.  This might be best done by successive        floating point multiplies followed by scaling and integer        rounding or truncation.  The array itself need only be computed        at startup.                            decay[i] = decay[1] ** i4.6 Building the Reuse Index Arrays   The reuse lists may be accessed quite frequently if a lot of routes   are flapping sufficiently to be suppressed.  A method of speeding the   determination of which reuse list to use for a given route is   suggested.  This method is introduced in Section 4.2, its   configuration described in Section 4.4.2 and the algorithms described   in Section 4.8.6 and Section 4.8.7.  This section describes buildingVillamizar, et. al.         Standards Track                    [Page 20]RFC 2439                 BGP Route Flap Damping            November 1998   the reuse list index arrays.   A ratio of the figure of merit of the route under consideration to   the cutoff value is used as the basis for an array lookup.  The ratio   is scaled and truncated to an integer and used to index the array.   The array entry is an integer used to determine which reuse list to   use.     reuse array maximum ratio (max-ratio)        This is the maximum ratio between the current value of the        stability figure of merit and the target reuse value that can be        indexed by the reuse array.  It may be limited by the ceiling        imposed by the maximum hold time or by the amount of time that        the reuse lists cover.          max-ratio = min(ceiling/reuse, exp((1 / (half-life/reuse-       array-time)) * log(2)))     reuse array scale factor ( scale-factor )        Since the reuse array is an estimator, the reuse array scale        factor has to be computed such that the full size of the reuse        array is used.            scale-factor = reuse-index-array-size / (max-ratio - 1)     reuse index array (reuse-index-array[])        Each reuse index array entry should contain an index into the        reuse list array pointing to one of the list heads.  This index        should corresponding to the reuse list that will be evaluated        just after a route would be eligible for reuse given the ratio        of current value of the stability figure of merit to target        reuse value corresponding the the reuse array entry.          reuse-index-array[j] = integer((decay-half-life / reuse-       time-granularity) * log(1/(reuse * (1 + (j / scale-factor)))) /       log(1/2))   To determine which reuse queue to place a route which is being   suppressed, the following procedure is used.  Divide the current   figure of merit by the cutoff.  Subtract one.  Multiply by the scale   factor.  This is the index into the reuse index array (reuse-index-   array[]).  The value fetched from the reuse index array (reuse-   index-array[]) is an index into the array of reuse lists (reuse-   array[]).  If this index is off the end of the array use the last   queue otherwise look in the array and pick the number of the queueVillamizar, et. al.         Standards Track                    [Page 21]RFC 2439                 BGP Route Flap Damping            November 1998   from the array at that index.  This is quite fast and well worth the   setup and storage required.4.7 A Sample Configuration   A simple example is presented here in which the space overhead is   estimated for a set of configuration parameters.  The design here   assumes:   1.  there is a single parameter set used for all routes,   2.  decay time for unreachable routes is slower than for reachable       routes

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -