Pyroute2 is a pure-Python netlink library with several modules:
* generic: encode/decode netlink messages * iproute: low-level NETLINK_ROUTE operations * ipdb: transactional network configuration database
The library is quite young, but grows fast. Version 0.1.7 brings some important features:
* experimental support for QoS: ingress, sfq, tbf, htb, u32
A reasonable and well-documented QoS support is planned for 0.2.0, but one can start to play with it already now. Actually, the main goal of this project part is to get complete implementation of tcmsg, supported by modern kernels, and make it possible to manage qdisc-related stuff without external utilities (tc), directly communicating with the kernel.
* interface create() call, that allows to create * dummy * bridge * bond * vlan interfaces * 'ports': an ability to attach/detach ports to/from master * different transaction models * direct: apply changes immediately * implicit: first change starts the transaction * explicit: transaction should be started by begin() call
Most important is that now one can create and manage with the library complex interfaces like bridges or bondings, and that's really simple, e.g. bonding creation:
home: https://github.com/svinota/pyroute2 bugs: https://github.com/svinota/pyroute2/issues pypi: https://pypi.python.org/pypi/pyroute2 docs: http://peet.spb.ru/pyroute2/ list: https://groups.google.com/d/forum/pyroute2-dev
Feedback is welcome!