[Xorp-users] using XORP (bgp) to test third party router

Atanu Ghosh atanu@ICSI.Berkeley.EDU
Tue, 10 May 2005 20:38:42 -0700


I think the failure that you are reporting happens when the test_peer
fails to connect with the BGP process. Try running the test_peer with
the "-t" and "-v" flags.

You should see something like this:
reset()
register(coord,0)
packetisation(bgp)
connect(localhost,10001)

The connect line should contain the address and port that your BGP
router is listening on.

       Atanu.

>>>>> "jer" == jer log <jer_log@hotmail.com> writes:

    jer> Thank you so much for that response. Multiple hosts is not
    jer> really a option for me.

    jer> I have since tried adding a '-b' and '-p' option to specify a
    jer> local bind address/port (to enforce the source address/port
    jer> during connect) options to test_peer.cc under bgp/harness

    jer> The idea is to run each peer with testpeer -b <addr1> -p <port>

    jer> The 'Third Party' router has an option to specify the
    jer> destination TCP port to connect to (does not have to be 179,
    jer> thankfully)

    jer> But when i make this change, i get " "Operation in coordinator
    jer> still pending try number: 1... and fail"

    jer> BTW, i really think the test script can become a great third
    jer> party BGP test tool.  with all the extensible functionality to
    jer> send arbitrary update and expect statements.  (reminds me of
    jer> Qarobot from Qosnetics)

    jer> Thanks for your help.  -jer

    jer> From: Atanu Ghosh <atanu@ICSI.Berkeley.EDU>
    >> Reply-To: atanu@ICSI.Berkeley.EDU To: "jer log"
    >> <jer_log@hotmail.com> CC: xorp-users@xorp.org Subject: Re:
    >> [Xorp-users] using XORP (bgp) to test third party router Date:
    >> Tue, 10 May 2005 19:09:46 -0700
    >> 
    >> The bgp test harness was written with the intent of being able to
    >> test third party BGP implementations:
    >> <http://www.xorp.org/releases/1.1/docs/test_harness/test_harness.pdf>.
    >> 
    >> We have never tried using the tests against a third party BGP. So
    >> some dependencies on our BGP may have crept in.
    >> 
    >> I would experiment with the set of scripts that we use daily in
    >> our regression runs, they are in Makefile.am:
    >> 
    >> test_peering1.sh test_peering2.sh test_routing1.sh
    >> test_routing2.sh test_rib1.sh test_rib_fea1.sh
    >> test_path_attribute1.sh test_terminate.sh
    >> 
    >> A typical BGP will create a single session with a peer. More than
    >> one session to a peer is clearly a protocol violation. We wanted
    >> to be able to run our BGP regression tests from a Makefile so we
    >> modified our BGP to accept connections on any port not just
    >> 179. For testing third party implementations we need to run each
    >> test_peer on a separate host (or address).
    >> 
    >> The test harness has two components a coordinating process and a
    >> number of test_peers. The test_peers are designed to run on
    >> separate hosts although we run them on the same host.
    >> 
    >> Taking test_routing1.sh as an example the top of the file
    >> describes which process need to be started, clearly when testing
    >> a third party BGP there is no need to start the XORP
    >> processes. We need to start a finder process a coordinating
    >> process and and three test_peers. All the port numbers in script
    >> need to be changed to port 179 (PORT? and PEER?_PORT). Choose
    >> three separate hosts on which to run the test peers. Configure
    >> you BGP to accept connections from this these hosts. Set the HOST
    >> variable to the IP address of your BGP router.
    >> 
    >> The finder process for security reasons will only accept
    >> connections on localhost. It will need to be started with the
    >> "-n" with the network that the test_peers are on and "-i" with
    >> the interface address that it should listen on. Then start a test
    >> peer on each host with the "-h" flag, with the IP address of the
    >> finder host. Each test peer will also require a unique name
    >> provided with the "-s" flag, (peer1, peer2 and peer3).
    >> 
    >> For simplicity run the test_routing1.sh script on the same host
    >> that you run the coordinator and finder process.
    >> 
    >> Now run a test: $ ./test_routing1.sh -s -t test1
    >> 
    >> The configure_bgp does indeed configure the XORP bgp.
    >> 
    >> There is no way to set the test peer's IP address interesting
    >> omission on my part. The test_peer is provided with the targets
    >> IP address and port. In our tests the target is always localhost
    >> so the source address selected by the system is always
    >> localhost. When running the test_peers on separate hosts again
    >> the source IP address will be selected by the operating system.
    >> 
    >> I have noticed a number of problems in the test scripts while
    >> trying to compose this email. The most irritating is that I have
    >> overloaded the configuration on some peerings. For example in
    >> test_routing1.sh I use the same peerings for IPv4 and IPv6
    >> tests. Your won't be able to run the IPv4 and IPv6 tests with the
    >> same router configuration. This also means that you can't allow
    >> the script to run all the tests, each one will need to be run
    >> individually.
    >> 
    >> I hope this helps.
    >> 
    >> In retrospect using the the shell as the scripting language was a
    >> mistake. We will be rewriting the tests in python during the
    >> summer and hopefully make the scripts more amenable to testing
    >> third party BGP implementations. Checkout harness.py and
    >> lookup.py.
    >> 
    >> Sorry for the slow response we had a power failure in our machine
    >> room today and lost both power supplies on our mail server.
    >> 
    >> Atanu.
    >> 
    >> 
    >> >>>>> "jer" == jer log <jer_log@hotmail.com> writes:
    >> 
    jer> Folks, I have since got some peering (bgp test harness) with a
    jer> third party router going...  But i have problems in specifying
    jer> multiple peers.  Specifically the router requires these peers
    jer> to come from multiple ip addresses.
    >>
    jer> How do i specify a test peer's ip address?  I am assuming
    jer> configure_bgp() {} routine configures the peers in XORP.
    >>
    jer> Thanks, -Jer
    >>
    jer> So how do i specify the peer programs to From: "jer log"
    jer> <jer_log@hotmail.com>
    >> >> To: xorp-users@xorp.org Subject: [Xorp-users] using XORP (bgp)
    >> to >> test third party router Date: Tue, 10 May 2005 16:27:22
    >> +0000
    >> >>
    >> >> Hi, I am (a newbie) trying to use the bgp harness test suite
    >> of >> XORP to test a third party router.  Has this been done?
    >> What are >> the processes i need to run to achieve this?  I have
    >> been able to >> compile xorp in a redhat linux.
    >> >>
    >> >> If i just modify bgp/harness/test1.sh it just stops at coord
    >> >> reset.  I guess i must start the coordinator process...
    >> >>
    >> >> Thanks for your help -Jer
    >> >>
    >> >>
    >> _________________________________________________________________
    >> >> Express yourself instantly with MSN Messenger! Download today
    >> - >> it's FREE!  >>
    >> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
    >> >>
    >> >> _______________________________________________ Xorp-users >>
    >> mailing list Xorp-users@xorp.org >>
    >> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users
    >> 
    jer> _________________________________________________________________
    jer> Express yourself instantly with MSN Messenger! Download today -
    jer> it's FREE!
    jer> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
    >>
    jer> _______________________________________________ Xorp-users
    jer> mailing list Xorp-users@xorp.org
    jer> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users
    >> _______________________________________________ Xorp-users
    >> mailing list Xorp-users@xorp.org
    >> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users

    jer> _________________________________________________________________
    jer> Donít just search. Find. Check out the new MSN Search!
    jer> http://search.msn.click-url.com/go/onm00200636ave/direct/01/