pyroute2

Python netlink library. The main goal of the project is to implement complete NETLINK_ROUTE family as well as several other families (NETLINK_NETFILTER etc.)

Current feature status see in STATUS.md

sample

More samples you can read in the project documentation. Low-level interface:

from pyroute2 import IPRoute

# get access to the netlink socket
ip = IPRoute()

# print interfaces
print ip.get_links()

# stop working with netlink and release all sockets
ip.release()

High-level transactional interface, IPDB:

from pyroute2 import IPDB
# local network settings
ip = IPDB()
# create bridge and add ports and addresses
# transaction will be started with `with` statement
# and will be committed at the end of the block
with ip.create(kind='bridge', ifname='rhev') as i:
    i.add_port(ip.em1)
    i.add_port(ip.em2)
    i.add_ip('10.0.0.2/24')

The project contains several modules for different types of netlink messages, not only RTNL.

installation

make install or pip install pyroute2

requires

Python >= 2.6

  • test reqs (optional): python-coverage, python-nose
  • plugin reqs (optional): * ptrace: python-ptrace

Table Of Contents

Previous topic

pyroute2 netlink library

Next topic

changelog

This Page