bgp++_conf Documentation


DESCRIPTION

bgp++_conf is a configuration utility for BGP++ simulator, its designed to expedite configuration for simulations. bgp++_conf creates two types of configuration files, a `.tcl' file describes the simulation, e.g. topology, BGP routers, traffic agents, while several `.conf' files configure individual BGP routers, i.e. there is one `.conf' file for each simulated BGP router. The command syntax of the `.conf' files is identical to syntax of GNU Zebra bgpd configuration files, although not all of the command are supported since some features of the original software have been removed in BGP++.

OPTIONS

@option{-f, --file <router info file>}
-f is not really an option, it is required. <router info file> specifies a router level topology as well as relationships between the routers. The format of the file is as follows:
router info: router-level topology
--------------------------------------

Header: r1 r2 rel-type

r1 r2   : link between the routers identified by these router names
rel-type: type of relationship between r1 and r2 to be configured

Relationship types:
  peer     : ebgp policy peer
  cust     : ebgp provider-customer (r1 is provider; r2 is customer).Provider r1 
             announces only local routes to customer r2.
  custfull : ebgp provider-customer. Provider r1 announces all carried routes
             to customer r2.
  ibgp     : ibgp

Router names are encoded with the AS number and type of router:
    A   - router of AS A, which has a unique router
    Ae1 - router of AS A, e.g. 701e1
    Ae2 - router of AS A, e.g. 701e2
    ...
    Aen - router of AS A, e.g. 701en
Example:
	# AS 1 has three routers
	13609	1e1	custfull
	1e1	1e2	ibgp
	1e2	1e3	ibgp
	1e1	1e3	ibgp
	1e3	2	custfull
@option{-F, --File <prefix info file>}
<prefix info file> specifies prefixes originated by each router. It has the following format:
 prefix info: prefixes originated by each router
 -----------------------------------------------
		
   For independent prefixes:
     column 1         : router ID
     column 2         : keyword 'prefixes'
     remaining columns: prefix:attr:routed
       attr  :  assigns a numeric 'route attribute' to the prefix
       routed: indicates if the prefix is routed ('true') or not ('false')

     Example:
       # two routed independent prefixes with the same route attribute:
       701e1 prefixes 5.6.7.8/24:50:true 6.7.8.9:50:true
@option{-b, --bgpconf <additional conf file>}
<additional conf file> specifies special configuration for router(s). It has the following format:
 additional conf file: additional router-level BGP configuration
 ---------------------------------------------------------------
		
 This file contains per-router BGP configuration text to be included as part
 of the BGP configuration (`.conf' files) generated by bgp++_conf.

 Each entry is formatted as:
	
   'head' list of routers
   tab-indented BGP configuration text
		
 or:

   'tail' list of routers
   tab-indented BGP configuration text

 Example:
   head 701e1 
       ! switch on debugging for updates
       debug bgp updates
		
 Depending on whether 'head' or 'tail' is specified the text is inserted near
 the beginning or end of the `.conf' file. A router can appear in at most
 one head entry and one tail entry.

@option{-m, --mrai <interval>}
MRAI timer value (Default is 30, set to 0 to disable).
@option{-d, --withdraw "<router id> <prefix> <time to withdraw>"}
Instruct a router to withdraw a prefix. The prefix should be configured in the prefix file. For example, with -d "4 0.4.104.0/24 100", router 4 withdraws prefix 0.4.104.0/24 at the 100th sec.
@option{-w, --workload (variable argument list)}
Specify worload model to use (Default: no workload model used). . Possible arguments:
"uniform min max",specify min and max in seconds
"uniform-update min max",specify min and max in seconds
"time"
@option{-t, --trace}
Enable ns-2 tracing.
@option{-M, --memory}
Enable memory loging. The memory usage is logged every 10th of the simulation.
@option{-s --show-mem}
Call the "show memory all" command just before the end of the simulation.
@option{-L --Log <type>}
Enables BGP++ logging/debugging. <type> specifies what to log/debug, use this option multiple times to enable multiple types, possible values:
0 -> debug NORMAL
1 -> debug FSM
2 -> debug KEEPALIVES
3 -> debug FILTERS
4 -> debug EVENTS
5 -> debug UPDATES
@option{-T, --log_table <time> ..}
Enable bgp table logging. It requires time argument(s) (sec). Routers will dump their routing tables at the specified time(s) in their log file. Quote muliple arguments.
@option{-c, --log_cnt <time> ..}
Enable msg count logging. It requires time argument(s) (sec). Routers will call the 'show ip bgp summary' command at the specified time(s). Quote muliple arguments.
@option{-O, --log_comm <time> ..}
Prints community information for routes. It requires time argument(s) (sec). Quote muliple arguments.
@option{-C, --ping_pairs <ping_pairs file>}
<ping_pairs file> lists ping source sink pairs and time(s) to ping. It should have the following format:
ping_pairs: list of ping pairs that will be created
--------------------------------------------------
		
This file contains a list of ping pairs that define ping sessions 
that will be established.
		 
Header: source sink time

Each entry is formatted as:
		
  'source_id' source ping agent 
   should be a valid router id.   
		
  'sink_id' router that will be pinged 
   should be a valid router id.   
		
  'dst_ip' ip address of the destination
   this ip address will be assigned at the 
   sink_id router and will be used for routing
		
  'time' time(s) in sec 
   to ping destination.

Example:
 #source_id sink_id dst_ip  time(s)
 701e1 101 12.12.12.12 12 100 200
 #leave a new line at the end
@option{-l, --log_file <output filename>}
If set, one file is used for logging by all BGP routers. Requires filename as argument, it overwrites the command @command{log file <file>} potentially used in the `.conf'. Each router writes to <output filename> and prefixes or suffixes its lines with its router id. Keeping seperate files could be cumbersome in large simulations since the file descriptor limit per process can be exceeded.
@option{-u, --dont_reuse}
If set memory won't be reuse when applicable.
@option{-x, --use_nix}
Set this flag to enable nix vector routing.
@option{-h, --help}
Display help and exit.

OUTPUT FILES

bgp++_conf generates a .tcl file that is parsed by ns to start the simulation. Independent of the options for bgp++_conf, each .tcl file can take a number of additional options:

@option{-stop <time>}
Time to stop the simulation (sec), default 100.
@option{-dir <path>}
path to directory where `.conf' files are, default cwd. In simulations with several routers you may want to put the `.conf' files in a separate directory.
@option{-check <int> <1/0> <start>}
This option enables to dynamically stop/pause the simulation when the system has converged. This works as follows: every <int> simulation secs, starting at the <start> sec, the time (denoted as <last>) of the last update in the system is checked. If <current sim time> - <last> greater than <int> the simulation ends (1) or pauses (0) based on the <1/0> argument. For example -check 50 1 200, will stop a simulation if for at a period of 50 secs no updates are exchanged, and will start checking at the 200th sec. Pausing a simulation is designed for use with CONDOR, i.e. to take a checkpoint when the sim is paused. After resuming the simulation, the simulator will attempt to parse a restart.tcl which should be in the same dir with the original .tcl file. The restart.tcl file may include commands to reconfigure the simulation, for example ns-2 @command{at} commands. If the restart.tcl file is not found the simulation will proceed according to the initial configuration. This feature enables to change the configuration of a simulation after it has started. acknowledgment
@option{-ckpt <file>}
This option will take a checkpoint of the process as soon as all BGP initializations have completed. The checkpoint will be written in the <file>. ns-2 must be compiled with CONDOR to work

REPORTING BUGS

Send bug reports and suggestion to fontas [you know what goes here] ece.gatech.edu.

AUTHOR

Written by Xenofontas Dimitropoulos, Patrick Verkaik and George Riley.


This document was generated on 13 September 2004 using texi2html 1.56k.