PyBGP is Python / Asyncio-based BGP implementation. It fully supports the Finite State Machine and can open and maintain connectivity to BGP peers in either passive or active mode. Connection collision detection is already implemented, so it can drop the less desired connection if two form simultaneously. It can support connectivity to multiple peers at the same time.
- Finite State Machine - running as a coroutine
- Event system with message queuing
- TX/RX Network IO - running as a coroutine
- Timers - connect_retry, hold, keepalive
- Support for parsing and creating BGP messages
- Passive and Active connectivity with a collision detection mechanism
- Ability to maintain simultaneous connectivity with multiple peers
- BGP Updates
- Implementing fully functional Route Reflector