Open jeroen92 opened 8 years ago
Is it possible to get your code, that I might be able to reproduce? Thanks.
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.
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.