sdn-ixp / iSDX

Industrial Scale Software Defined IXPs (iSDX)
http://sdx.cs.princeton.edu
Apache License 2.0
44 stars 16 forks source link

Pctrl not receiving BGP updates #1

Open jeroen92 opened 8 years ago

jeroen92 commented 8 years ago

On the master branch, we're simulating 500+ participants. After some time, roughly 300 updates (but this varies every time we run the test), some participant controllers are not receiving any BGP updates any more from the XRS. The number of pctrl's affected keep incrementing until no-one's receiving an update any more. We suspect this is caused by sharing the Listener/Client sockets between the the PctrlListener and the BGPlistener threads without implementing a mutex. I still want to verify whether the data is actually being transmitted at route_server.py#221. A debug statement after this line showed us that the XRS keeps running this code for all BGP updates. However, the _start_ehxrs in _participantcontroller.py never receives it. Probably a packetdump will give us some more insight in whether the packets are transmitted or not.

ggardner42 commented 8 years ago

Is it possible to get your code, that I might be able to reproduce? Thanks.

jeroen92 commented 8 years ago

Here is our forked iSDX repo. Our program is in the scripts folder. As an additional requirement you need to install the Redis python module and the redis-server Linux package.

To run: ./routeToJson.py 500 /home/vagrant/iSDX /home/vagrant/routedump.txt 4

Unfortunately we're not allowed to redistribute the route dump. The contents of routedump.txt is basically the output of the show route all command in BIRD.