Re: Testing BGP in controller with exabgp

Lakshman Mukkamalla (lmukkama) <lmukkama@...>

Hi Brian,
    We are also trying to find where the route/subnet info mentioned in the single neighbor txt is present. The wiki that I was referring to is
Trying out the tables/{afi}/{safi} did not work either. May be I may be missing something here. Will have to check more on this.


From: <FREEMAN>, BRIAN D <bf1936@...>
Date: Friday, April 4, 2014 1:05 PM
To: "Moiz Raja (moraja)" <moraja@...>, lmukkama <lmukkama@...>
Cc: "integration-dev@..." <integration-dev@...>
Subject: RE: Testing BGP in controller with exabgp



I got ODL bgpcep to talk to exabgp in my environment. I was using a git clone of the bgpcep tree not the Hydrogen release snapshot.


Couple of things that I tripped over.


1.       As you confirmed, the IP addresses  in step 3 and 4 were reversed. This might help folks going forward for how to update their files.

41-bgp-example.xml:                    <host>EXABGP_IP_ADDRESS</host>

41-bgp-example.xml:                    <bgp-id>ODL_IP_ADDRESS</bgp-id>

single-neighbor.txt:neighbor ODL_IP_ADDRESS{

single-neighbor.txt:    router-id EXABGP_IP_ADDRESS;

single-neighbor.txt:    local-address EXABGP_IP_ADDRESS;


2.       ODL is not listening , it only initiates sessions,   and Exabgp is not listening by default.

a.       If in wireshark you see SYN<->RST,ACK from both side then check to make sure the Exabgp was started to listen on its IP address.

b.      The environment “exabgp.tcp.bind” needs to be set to have Exabgp listen (as indicated in your  instructions)

env exabgp.tcp.bind="EXABGP_IP_ADDRESS" exabgp.tcp.port=179 exabgp.log.all=true exabgp single-neighbor.txt
Note: env bgp.tcp.bind=… is wrong and since its an environment variable Exabgp won’t complain about the typo of leaving off the leading “exa”  


3.       I tried some RESTCONF API to view the information but wasn’t able to see any data but I probably didn’t understand the right syntax to view the routes learned from Exabgp

a.       For example: http://xxxx:8080/restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/loc-rib/

4.       I tried to create an LSP via the RESTCONF API
http://xxxx:8080/restconf/operations/network-topology-pcep:add-lsp (with xml) and got an Unsent message back.

osgi> 2014-04-04 20:00:45.397 GMT+00:00 [pool-14-thread-1] DEBUG o.o.b.p.t.p.ServerSessionManager - Session for node Uri [_value=pcc://yyyy] not found

I assume that because we don’t have a PCC session setup to Exabgp (and not sure it can terminate a PCC session anyway).


Thanks for the BGP-LS and Exabgp setup !





From: Moiz Raja (moraja) [mailto:moraja@...]
Sent: Monday, March 31, 2014 4:35 PM
To: FREEMAN, BRIAN D; Lakshman Mukkamalla (lmukkama)
Cc: integration-dev@...
Subject: Testing BGP in controller with exabgp


Hi Brian and Lakshman,


Here are my notes on how to setup controller and exabgp for testing. Please try it out and let me know if you run into any issues.










1. You are using the open daylight test VM (

2. The open daylight test VM has python version 2.74

3. The IP address of the open daylight test VM is

4.The IP address of the machine running the opendaylight controller is



Setup a test with exabgp


(1) Install exabgp on the opendaylight test VM. This is not required but it is pretty convenient.


> wget
> tar zxvf 3.3.2.tar.gz
> cd exabgp-3.3.2
> python install


(2) Download the latest service provider distribution from here





(4) Copy the attached single-neighbour.txt to the mininet machine


(5) Copy the attached 41-bgp-example.xml.txt to <opendaylight directory>/configuration/initial/41-bgp-example.xml


(6) Run exabgp like so,


     env exabgp.tcp.bind= exabgp.tcp.port=179 exabgp single-neighbor.txt


(7) Run controller like so,




(8) Wait for a minute or two.


(9) Now using rest conf you should be able to the see the bgp topology show up.





Join to automatically receive all group messages.