samrussell / beeper Goto Github PK
View Code? Open in Web Editor NEWA python BGP speaker
License: Apache License 2.0
A python BGP speaker
License: Apache License 2.0
We don't know how to handle these - the app dies, which kind of helps, but it should probably handle it gracefully and return to active state
We need to handle Update messages, which allows us to not blow up when we receive routes, but also allows us to share routes in the future
Need a way to check if we have enough data on the socket to continue rather than blocking. There's a rare case where we get half a BGP message and need to cache the first half, but it'll happen often enough that we'll get into trouble if we don't handle that correctly.
They unpack ok (breaking the RFC by not preserving transient options), need to make them pack so we can send route updates
From the RFC (ignore the manualstart/stop events)
Active
OpenConfirm
Established
When we move to the idle state nothing is really defined - we should throw an error or something once we end up in idle (possibly raise an event when transitioning here too)
We use gevent here, using eventlet might let it play a bit nicer with faucet
Handle both IPv4 and IPv6 peers and route updates
We just accept things (I think it explodes on bad marker), but we need to deal with them correctly (mostly by firing off notification messages and exiting)
We've got hardcoded values in Beeper - let them be passed in as part of init, and maybe some sane defaults for others
We don't handle keepalive or hold timers in the base case (run.py), these need to send a keepalive or kill the session when triggered, and also be replenished when we send or receive a keepalive, respectively
Magic numbers everywhere, it'll just take a simple set of consts - even the codes (not subcodes) will make a huge difference
Need a way to send routes - mandatory fields are origin, AS path (just use self) and next_hop
We ignore the capabilities field when doing open messages, this probably isn't the end of the world but needs to be handled at some point
Faucet queries uptime stats on peers, we should be able to do this too
Make this into a package that we can pip install
Might be able to go live without this, not really my call, but it does seem like a useful feature
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.