A few more comments.
jamal wrote:
+config IFB
+ tristate "Intermediate Functional Block support"
+ depends on NET_CLS_ACT
+ ---help---
+ This is an intermidiate driver that allows sharing of
+ resources.
+ To compile this driver as a module, choose M here: the module
+ will be called inter. If you want to use more than one inter
+ device at a time, you need to compile this driver as a module.
+ Instead of 'ifb', the devices will then be called 'ifb0',
+ 'ifb1' etc.
That doesn't seem to be true, it always uses "ifb%d".
--- /dev/null
+++ b/drivers/net/ifb.c
@@ -0,0 +1,292 @@
+/* drivers/net/ifb.c:
+
+ The purpose of this driver is to provide a device that allows
+ for sharing of resources:
+
+ 1) qdiscs/policies that are per device as opposed to system wide.
+ This now allows for sharing.
This also seems to be a mistake, qdiscs are per device today, IFB allows
shared qdiscs.
+
+ 2) Allows for queueing incoming traffic for shaping instead of
+ dropping.
+
+ The original concept is based on what is known as the IMQ
+ driver <TBA: who wrote or maintains IMQ>
The first version was written by Martin Devera, the second one
(using netfilter for ingress support) by me.
+static int ifb_close(struct net_device *dev)
+{
+ struct ifb_private *dp = netdev_priv(dev);
+
+ tasklet_kill(&dp->ifb_tasklet);
+ skb_queue_purge(&dp->rq);
+ skb_queue_purge(&dp->tq);
+ netif_stop_queue(dev);
+ return 0;
+}
Is it really neccessary to stop the queue yourself? If yes, it should
happen before the internal queues are purged.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html