Route Flap Damping and Adaptive Minimal Route Advertisement Interval in ns-2.34-BGP 2.0



Route Flap Damping

Route flap damping (RFD) is a mechanism used in BGP routers to limit the widespread propagation of unstable BGP routing information. We implemented RFD algorithms in ns-BGP 2.0 by porting the BGP-4 model of SSFNet. Our implementation includes the two damping algorithms already implemented in SSFNet BGP-4 v1.5.0: Original RFD and Selective RFD. We also implemented three additional damping algorithms: RFD+, Modified RFD+, and Combined RFD.

Adaptive Minimal Route Advertisement Interval

The duration of the Minimal Route Advertisement Interval (MRAI) and the implementation of MRAI timers have a significant impact on the BGP convergence time. The adaptive MRAI is a mechanism that we proposed to reduce the BGP convergence time through the adaptive adjustment of MRAI values and the adoption of reusable MRAI timers. We have implemented the adaptive MRAI algorithm and the BGP processing delays (based on reported measurements) in ns-2.34-BGP_2.0.gz.

Adding Route Flap Damping and Adaptive MRAI to ns-BGP 2.0

Download the file ns-2.34-bgp-rfd-mrai.tar.gz. (Details of ns-BGP 2.0 can be found here.)

Unpack ns-bgp_2.0_rfd_mrai.gz in the "ns-2.34" directory:

> cd ~/ns-allinone-2.34/ns-2.34
> tar xvzf ns-bgp_2.0_rfd_mrai.gz

This will:

Note that the file "ns-2.34-bgp_2.0_rfd_mrai.gz" was created for ns-BGP 2.0. Make sure you have ns-2.34-BGP installed before unpacking it.

Recompiling ns-2

You need to recompile ns-2 before the changes take effect:

> cd ~/ns-allinone-2.34/ns-2.34
> ./configure
> ./make clean
> ./make

Configuring Route Flap Damping in ns-BGP 2.0

There are two configuration commands you may use to enable the route flap damping feature for a particular BGP speaker:

1) $bgp_agent0 dampening 0 0 3000 750 900 1000 500 3600
2)
$bgp_agent0 dampening

Option 1 will enable route flap damping for a particular BGP speaker using the following eight parameters:

Option 2 will enable route flap damping for a particular BGP speaker using the default values. The default values for the eight parameters are: 0, 0, 2000, 750, 900, 1000, 500, and 3600 (default Cisco settings). Therefore, the configuration command " $bpg_agent0 dampening" is equivalent to " $bgp_agent0 dampening 0 0 2000 750 900 1000 500 3600".

Please note that no error checking is performed on the values of these parameters. Changing these values to unrealistic values will most likely yield unexpected results. The default values may be found in the "ns-2.27/tcl/lib/ns-default.tcl" file.

Two additional commands are also included mainly for debugging purposes:

$bgp_agent0 show-all               ;# display all feasible routes in Adj-RIB-In
$bgp_agent0 show-damping    
;# display the related damping information

If you wish to enable route flap damping for all BGP speakers without configuring them individually in a tcl script, uncomment the relevant code in the rtProtoBGP constructor in the file "rtProtoBGP.cc" and modify the values of variables in the file "global.h" if necessary.

Configuring Adaptive MRAI in ns-2.34-BGP 2.0

The usage of adaptive MRAI algorithm, reusable MRAI timers, and the BGP processing delay is defined by the following variables in "rtProtoBGP.cc" file:

These variables are located at the beginning of the rtProtoBGP constructor function in the "rtProtoBGP.cc" file.

Publications and Presentations

Questions

Please email questions or bug reports related to route flap damping in ns-2.34-BGP 2.0 to Ravinder Paul at rpa28 at sfu.ca.
Please email questions or bug reports related to adaptive MRAI in ns-2.34_BGP 2.0 to Rajvir Gill at rajvirg at sfu.ca.