Welcome to BGP++ Home Page

BGP++ is a C++ implementation of BGP for ns-2 and GTNetS network simulators. BGP++ was not developed from scratch, but existing software (Zebra bgpd) was modified to work with the simulator. Zebra is an open source imlementation of BGP as well as other routing protocols for UNIX platforms. The details of BGP++ development approach can be found here [ppt, ps].  BGP++ trys to maintain most of the Zebra bgpd functionality while it incorporates the software in a OO simulation enviroment. The advantage of this approach is that it saves development effort since the same algorithms are not rewritten and it builds on tested code.

A useful BGP++ characteristic is that it maintains the configuration syntax that is used by Zebra bgpd.  Here you can find a list of supported commands. Also BGP++ supports bgp confederations, route reflection, flap dampening and route-refresh capability.

When refering to BGP++ please use this bib entry.


BGP++ has been ported to GTNetS network simulator

BGP++ 1.05 has been released

BGP++ 1.04 has been released. It merges BGP++ with the 0.93b release of Zebra bgpd, has a lower memory footprint and better support for distributed simulations. We also release a set of utilities and scripts developed to make simulation configuration/execution easier:
1) bgp++_conf is a C++ configuration generator for BGP++. It generates the .tcl and .conf files given the required topology and setup. Among other features it can use BGP communities to configure typical ISP policies, e.g. customer-provider, peer-peer.
2) sim-scripts is a collection of perl/tcl scripts that automate partitioning of distributed simulations using the Metis or/and Chaco graph partitioning tools, generate pdns configuration from ns configuration and schedule multiple simulations in a cluster of workstations.

BGP++ 1.04, bgp++_conf and sim_scripts were used in the experiments of our paper [ps] on large-scale BGP simulations that appeared in the 2004 IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS 04). Refer to the paper for a detailed description of the scalability impovements of BGP++ 1.04.