summaryrefslogtreecommitdiff
path: root/python/netlink/route/qdisc.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/netlink/route/qdisc.py')
-rw-r--r--python/netlink/route/qdisc.py185
1 files changed, 0 insertions, 185 deletions
diff --git a/python/netlink/route/qdisc.py b/python/netlink/route/qdisc.py
deleted file mode 100644
index c8a4c6f..0000000
--- a/python/netlink/route/qdisc.py
+++ /dev/null
@@ -1,185 +0,0 @@
-#
-# Copyright (c) 2011 Thomas Graf <tgraf@suug.ch>
-#
-
-__all__ = [
- 'QdiscCache',
- 'Qdisc']
-
-import netlink.core as netlink
-import netlink.capi as core_capi
-import netlink.route.capi as capi
-import netlink.util as util
-import netlink.route.tc as tc
-
-###########################################################################
-# Link Cache
-class QdiscCache(netlink.Cache):
- """Cache of qdiscs"""
-
- def __init__(self, cache=None):
- if not cache:
- cache = self._alloc_cache_name("route/qdisc")
-
- self._protocol = netlink.NETLINK_ROUTE
- self._c_cache = cache
-
-# def __getitem__(self, key):
-# if type(key) is int:
-# link = capi.rtnl_link_get(self._this, key)
-# elif type(key) is str:
-# link = capi.rtnl_link_get_by_name(self._this, key)
-#
-# if qdisc is None:
-# raise KeyError()
-# else:
-# return Qdisc._from_capi(capi.qdisc2obj(qdisc))
-
- def _new_object(self, obj):
- return Qdisc(obj)
-
- def _new_cache(self, cache):
- return QdiscCache(cache=cache)
-
-###########################################################################
-# Qdisc Object
-class Qdisc(tc.Tc):
- """Network link"""
-
- def __init__(self, obj=None):
- self._name = "qdisc"
- self._abbr = "qdisc"
-
- netlink.Object.__init__(self, "route/qdisc", "qdisc", obj)
- self._tc = capi.obj2tc(self._nl_object)
- self._rtnl_qdisc = self._obj2type(self._nl_object)
-
- netlink.attr('qdisc.handle', fmt=util.handle)
- netlink.attr('qdisc.parent', fmt=util.handle)
- netlink.attr('qdisc.kind', fmt=util.bold)
-
- def _obj2type(self, obj):
- return capi.obj2qdisc(obj)
-
- def __cmp__(self, other):
- return self.handle - other.handle
-
- def _new_instance(self, obj):
- if not obj:
- raise ValueError()
-
- return Qdisc(obj)
-
-# #####################################################################
-# # add()
-# def add(self, socket, flags=None):
-# if not flags:
-# flags = netlink.NLM_F_CREATE
-#
-# ret = capi.rtnl_link_add(socket._sock, self._link, flags)
-# if ret < 0:
-# raise netlink.KernelError(ret)
-#
-# #####################################################################
-# # change()
-# def change(self, socket, flags=0):
-# """Commit changes made to the link object"""
-# if not self._orig:
-# raise NetlinkError("Original link not available")
-# ret = capi.rtnl_link_change(socket._sock, self._orig, self._link, flags)
-# if ret < 0:
-# raise netlink.KernelError(ret)
-#
-# #####################################################################
-# # delete()
-# def delete(self, socket):
-# """Attempt to delete this link in the kernel"""
-# ret = capi.rtnl_link_delete(socket._sock, self._link)
-# if ret < 0:
-# raise netlink.KernelError(ret)
-
- @property
- def _dev(self):
- buf = util.kw('dev') + ' '
-
- if self.link:
- return buf + util.string(self.link.name)
- else:
- return buf + util.num(self.ifindex)
-
- @property
- def _parent(self):
- return util.kw('parent') + ' ' + str(self.parent)
-
- ###################################################################
- #
- # format(details=False, stats=False)
- #
- def format(self, details=False, stats=False):
- """Return qdisc as formatted text"""
- fmt = util.MyFormatter(self)
-
- buf = fmt.format('qdisc {kind} {handle} {_dev} {_parent}')
-
- if details:
- fmt = util.MyFormatter(self)
- buf += fmt.format('\n'\
- '\t{mtu} {mpu} {overhead}\n')
-
-# if stats:
-# l = [['Packets', RX_PACKETS, TX_PACKETS],
-# ['Bytes', RX_BYTES, TX_BYTES],
-# ['Errors', RX_ERRORS, TX_ERRORS],
-# ['Dropped', RX_DROPPED, TX_DROPPED],
-# ['Compressed', RX_COMPRESSED, TX_COMPRESSED],
-# ['FIFO Errors', RX_FIFO_ERR, TX_FIFO_ERR],
-# ['Length Errors', RX_LEN_ERR, None],
-# ['Over Errors', RX_OVER_ERR, None],
-# ['CRC Errors', RX_CRC_ERR, None],
-# ['Frame Errors', RX_FRAME_ERR, None],
-# ['Missed Errors', RX_MISSED_ERR, None],
-# ['Abort Errors', None, TX_ABORT_ERR],
-# ['Carrier Errors', None, TX_CARRIER_ERR],
-# ['Heartbeat Errors', None, TX_HBEAT_ERR],
-# ['Window Errors', None, TX_WIN_ERR],
-# ['Collisions', None, COLLISIONS],
-# ['Multicast', None, MULTICAST],
-# ['', None, None],
-# ['Ipv6:', None, None],
-# ['Packets', IP6_INPKTS, IP6_OUTPKTS],
-# ['Bytes', IP6_INOCTETS, IP6_OUTOCTETS],
-# ['Discards', IP6_INDISCARDS, IP6_OUTDISCARDS],
-# ['Multicast Packets', IP6_INMCASTPKTS, IP6_OUTMCASTPKTS],
-# ['Multicast Bytes', IP6_INMCASTOCTETS, IP6_OUTMCASTOCTETS],
-# ['Broadcast Packets', IP6_INBCASTPKTS, IP6_OUTBCASTPKTS],
-# ['Broadcast Bytes', IP6_INBCASTOCTETS, IP6_OUTBCASTOCTETS],
-# ['Delivers', IP6_INDELIVERS, None],
-# ['Forwarded', None, IP6_OUTFORWDATAGRAMS],
-# ['No Routes', IP6_INNOROUTES, IP6_OUTNOROUTES],
-# ['Header Errors', IP6_INHDRERRORS, None],
-# ['Too Big Errors', IP6_INTOOBIGERRORS, None],
-# ['Address Errors', IP6_INADDRERRORS, None],
-# ['Unknown Protocol', IP6_INUNKNOWNPROTOS, None],
-# ['Truncated Packets', IP6_INTRUNCATEDPKTS, None],
-# ['Reasm Timeouts', IP6_REASMTIMEOUT, None],
-# ['Reasm Requests', IP6_REASMREQDS, None],
-# ['Reasm Failures', IP6_REASMFAILS, None],
-# ['Reasm OK', IP6_REASMOKS, None],
-# ['Frag Created', None, IP6_FRAGCREATES],
-# ['Frag Failures', None, IP6_FRAGFAILS],
-# ['Frag OK', None, IP6_FRAGOKS],
-# ['', None, None],
-# ['ICMPv6:', None, None],
-# ['Messages', ICMP6_INMSGS, ICMP6_OUTMSGS],
-# ['Errors', ICMP6_INERRORS, ICMP6_OUTERRORS]]
-#
-# buf += '\n\t%s%s%s%s\n' % (33 * ' ', util.title('RX'),
-# 15 * ' ', util.title('TX'))
-#
-# for row in l:
-# row[0] = util.kw(row[0])
-# row[1] = self.get_stat(row[1]) if row[1] else ''
-# row[2] = self.get_stat(row[2]) if row[2] else ''
-# buf += '\t{0:27} {1:>16} {2:>16}\n'.format(*row)
-
- return buf