This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description
.. -*- restructuredtext -*-

==========================================
pybird - BIRD interface handler for Python
==========================================

PyBird is a Python interface to the BIRD Internet Routing Daemon's UNIX control
socket, handling the socket connections and parsing the output.

In it's current state, you can use it to query the status of specific or all
BGP peers, to query the routes received, accepted and rejected from a peer,
or the general status of BIRD (router ID, last config change)


Usage example
=============

>>> from pybird import PyBird
>>> pybird = PyBird(socket_file='/var/run/bird.ctl')
>>> peer_state = pybird.get_peer_status('KPN')
>>> peer_state['up']
True
>>> peer_state['import_updates_received']
4214
>>> peer_state['last_change']
datetime.datetime(2011, 6, 19, 19, 57, 0, 0)

>>> rejected = pybird.get_peer_prefixes_rejected('KPN')
>>> rejected[0]['as_path']
'23456 65592'

>>> status = pybird.get_status()
>>> status['last_reconfiguration_time']
datetime.datetime(2012, 1, 3, 12, 46, 40)
>>> status['router_id']
"192.168.0.1"

You can also call ``get_peer_status()`` without a peer name, to get an array
with all the BGP peers. There's also ``get_prefix_info()`` to get the route info for a specified prefix, optionally limited to a specific peer.

Full field list for peers
=========================

All fields that are decoded, if present:

- ``name``: Name as configured in BIRD
- ``protocol``: Currently always "BGP"
- ``last_change``: Last state change as a ``datetime.datetime`` object
- ``state``: String of the peer status, e.g. "Established" or "Passive"
- ``up``: Boolean, True if session is Established
- ``routes_imported``: Number of imported routes
- ``routes_exported``: Number of exported routes
- ``router_id``: BGP router id

And all combinations of:
``[import,export]_[updates,withdraws]_[received,rejected,filtered,ignored,accepted]``
which BIRD supports.


Full field list for routes
==========================

All fields that are decoded, if present:

- ``origin``: BGP origin, e.g. "IGP"
- ``as_path``: AS path as string
- ``next_hop``: BGP next hop
- ``local_pref``: Local pref, e.g. '100'
- ``community``: Communities in string format, e.g. '8954:220 8954:620'

And any other BGP attribute fields BIRD has found.


Full field list for BIRD status
===============================

- ``router_id``: BGP Router ID as string
- ``last_reboot``: Last BIRD restart time as datetime
- ``last_reconfiguration``: Last BIRD config change as datetime


Test suite
==========

There is a series of tests in ``tests.py``. This includes a ``MockBird``: a
mocked BIRD instance, with fixed but real responses, that listens on a real
UNIX socket. This means the tests do not only test parsing, but also socket
interaction.

Release notes
=============

1.0.10
------
- Fixed bug in support for new BIRD last status change syntax

1.0.9
-----
- Added support for BIRD syntax changes, noticed in 1.3.10 but may have been introduced earlier
- Added `get_prefix_info()` call, contributed by Jens Ott
Release History

Release History

1.0.10

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.9

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pybird-1.0.10.tar.gz (7.2 kB) Copy SHA256 Checksum SHA256 Source Jun 21, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting