Command syntax design
Set bgp_agent1 [new Agent/rtProto/BGP]
$ns_ attach-agent $n1 $bgp_agent1
# configure parameters for whole session
$bgp_agent1 set connretry_time 120
$bgp_agent1 set min_as_orig_time 15
# configure parameters for each peer
$bgp_agent1 neighbor $n2 remote_as 2
$bgp_agent1 neighbor $n2 hold_time 90
$bgp_agent1 neighbor $n2 keep_alive_time 30
$bgp_agent1 neighbor $n2 mrai 30
$bgp_agent1 neighbour $n2 route_map OUT_MAP1 out
$bgp_agent1 neighbour $n2 route_map IN_MAP1 in
# create address-list and as-path-list
set ADR_LIST1 [new addrList]
set AS_PATH1 [new AsPathList]
$OUT_MAP1 match address ADR_LIST1
$OUT_MAP1 set local-preference 150
$OUT_MAP1 match as-Path AS_PATH1
$OUT_MAP1 set local-preference 80
# return handle of particular peer entry
set peer1 [$bgp_agent1 neighbour? $n2]
# manipulate route attributes
$rte set origin_ Origin/IGP
# Send a update message to n2
set updateMsg [new Msg/UpdateMsg]
$updateMsg set route_ rte
$bgp_agent1 send updateMsg peer1
$bgp_agent1 reset_timer peer1 Timer/KEEPALIVE
$bgp_agent1 reset_timer peer1 Timer/HOLD