]> granicus.if.org Git - libnl/commit
Support plug qdisc - queue traffic until explicit release
authorShriram Rajagopalan <rshriram@cs.ubc.ca>
Sun, 12 Feb 2012 22:53:10 +0000 (14:53 -0800)
committerThomas Graf <tgraf@redhat.com>
Tue, 14 Feb 2012 11:02:04 +0000 (12:02 +0100)
commita17970b974bb3896f253817f98a9fa6176fcd422
tree030e758db546ae0539a810c8eda3ac3468e5afef
parenta39bb563ab8450d5463540384f4b8abca0d3755e
Support plug qdisc - queue traffic until explicit release

The plug qdisc supports two operations - plug and unplug. When the
qdisc receives a plug ("buffer") command via netlink request,
packets arriving henceforth are buffered until a corresponding unplug
command is received. Depending on the type of unplug ("release_one"
or "release_indefinite"), the queue can be unplugged indefinitely or
selectively.

The plug qdisc allows a user to implement network output buffering
(aka output commit), used commonly in checkpoint based fault tolerance
systems. It also supports a general purpose queue plug/unplug
functionality.

The associated kernel module is available in David Miller's net-next
tree, commit: c3059be16c9ef29c05f0876a9df5fea21f29724f

This patch introduces userspace tools and API, to control the qdisc
via netlink messages.

Signed-off-by: Shriram Rajagopalan <rshriram@cs.ubc.ca>
Signed-off-by: Thomas Graf <tgraf@redhat.com>
include/Makefile.am
include/linux/pkt_sched.h
include/netlink-types.h
include/netlink/route/qdisc/plug.h [new file with mode: 0644]
lib/Makefile.am
lib/cli/qdisc/plug.c [new file with mode: 0644]
lib/route/qdisc/plug.c [new file with mode: 0644]