* {Spam?} [PATCH] NET: Remove obsolete traffic shaper code.
@ 2007-04-14 23:30 Robert P. J. Day
2007-04-14 23:34 ` Rene Herman
2007-04-14 23:46 ` Ian McDonald
0 siblings, 2 replies; 8+ messages in thread
From: Robert P. J. Day @ 2007-04-14 23:30 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: netdev
Remove the obsolete code for the traffic shaper.
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
---
nothing seems to be using this, it's labelled "OBSOLETE" in the
Kconfig file, and there is not a single test for CONFIG_SHAPER
anywhere in the tree. time to die.
Documentation/networking/shaper.txt | 48 -
arch/um/config.release | 1
drivers/net/Kconfig | 17
drivers/net/Makefile | 1
drivers/net/shaper.c | 651 --------------------------
5 files changed, 718 deletions(-)
diff --git a/Documentation/networking/shaper.txt b/Documentation/networking/shaper.txt
deleted file mode 100644
index 6c4ebb6..0000000
--- a/Documentation/networking/shaper.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-Traffic Shaper For Linux
-
-This is the current BETA release of the traffic shaper for Linux. It works
-within the following limits:
-
-o Minimum shaping speed is currently about 9600 baud (it can only
-shape down to 1 byte per clock tick)
-
-o Maximum is about 256K, it will go above this but get a bit blocky.
-
-o If you ifconfig the master device that a shaper is attached to down
-then your machine will follow.
-
-o The shaper must be a module.
-
-
-Setup:
-
- A shaper device is configured using the shapeconfig program.
-Typically you will do something like this
-
-shapecfg attach shaper0 eth1
-shapecfg speed shaper0 64000
-ifconfig shaper0 myhost netmask 255.255.255.240 broadcast 1.2.3.4.255 up
-route add -net some.network netmask a.b.c.d dev shaper0
-
-The shaper should have the same IP address as the device it is attached to
-for normal use.
-
-Gotchas:
-
- The shaper shapes transmitted traffic. It's rather impossible to
-shape received traffic except at the end (or a router) transmitting it.
-
- Gated/routed/rwhod/mrouted all see the shaper as an additional device
-and will treat it as such unless patched. Note that for mrouted you can run
-mrouted tunnels via a traffic shaper to control bandwidth usage.
-
- The shaper is device/route based. This makes it very easy to use
-with any setup BUT less flexible. You may need to use iproute2 to set up
-multiple route tables to get the flexibility.
-
- There is no "borrowing" or "sharing" scheme. This is a simple
-traffic limiter. We implement Van Jacobson and Sally Floyd's CBQ
-architecture into Linux 2.2. This is the preferred solution. Shaper is
-for simple or back compatible setups.
-
-Alan
diff --git a/arch/um/config.release b/arch/um/config.release
index fc68bcb..4495b90 100644
--- a/arch/um/config.release
+++ b/arch/um/config.release
@@ -174,7 +174,6 @@ CONFIG_SLIP_SMART=y
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
-CONFIG_SHAPER=m
#
# Wan interfaces
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index c3f9f59..a21f004 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2899,23 +2899,6 @@ config NET_FC
adaptor below. You also should have said Y to "SCSI support" and
"SCSI generic support".
-config SHAPER
- tristate "Traffic Shaper (OBSOLETE)"
- depends on EXPERIMENTAL
- ---help---
- The traffic shaper is a virtual network device that allows you to
- limit the rate of outgoing data flow over some other network device.
- The traffic that you want to slow down can then be routed through
- these virtual devices. See
- <file:Documentation/networking/shaper.txt> for more information.
-
- An alternative to this traffic shaper are traffic schedulers which
- you'll get if you say Y to "QoS and/or fair queuing" in
- "Networking options".
-
- To compile this driver as a module, choose M here: the module
- will be called shaper. If unsure, say N.
-
config NETCONSOLE
tristate "Network console logging support (EXPERIMENTAL)"
depends on EXPERIMENTAL
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index 33af833..30721ea 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -85,7 +85,6 @@ obj-$(CONFIG_NET_SB1000) += sb1000.o
obj-$(CONFIG_MAC8390) += mac8390.o
obj-$(CONFIG_APNE) += apne.o 8390.o
obj-$(CONFIG_PCMCIA_PCNET) += 8390.o
-obj-$(CONFIG_SHAPER) += shaper.o
obj-$(CONFIG_HP100) += hp100.o
obj-$(CONFIG_SMC9194) += smc9194.o
obj-$(CONFIG_FEC) += fec.o
diff --git a/drivers/net/shaper.c b/drivers/net/shaper.c
deleted file mode 100644
index e886e8d..0000000
--- a/drivers/net/shaper.c
+++ /dev/null
@@ -1,651 +0,0 @@
-/*
- * Simple traffic shaper for Linux NET3.
- *
- * (c) Copyright 1996 Alan Cox <alan@redhat.com>, All Rights Reserved.
- * http://www.redhat.com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- *
- * Neither Alan Cox nor CymruNet Ltd. admit liability nor provide
- * warranty for any of this software. This material is provided
- * "AS-IS" and at no charge.
- *
- *
- * Algorithm:
- *
- * Queue Frame:
- * Compute time length of frame at regulated speed
- * Add frame to queue at appropriate point
- * Adjust time length computation for followup frames
- * Any frame that falls outside of its boundaries is freed
- *
- * We work to the following constants
- *
- * SHAPER_QLEN Maximum queued frames
- * SHAPER_LATENCY Bounding latency on a frame. Leaving this latency
- * window drops the frame. This stops us queueing
- * frames for a long time and confusing a remote
- * host.
- * SHAPER_MAXSLIP Maximum time a priority frame may jump forward.
- * That bounds the penalty we will inflict on low
- * priority traffic.
- * SHAPER_BURST Time range we call "now" in order to reduce
- * system load. The more we make this the burstier
- * the behaviour, the better local performance you
- * get through packet clustering on routers and the
- * worse the remote end gets to judge rtts.
- *
- * This is designed to handle lower speed links ( < 200K/second or so). We
- * run off a 100-150Hz base clock typically. This gives us a resolution at
- * 200Kbit/second of about 2Kbit or 256 bytes. Above that our timer
- * resolution may start to cause much more burstiness in the traffic. We
- * could avoid a lot of that by calling kick_shaper() at the end of the
- * tied device transmissions. If you run above about 100K second you
- * may need to tune the supposed speed rate for the right values.
- *
- * BUGS:
- * Downing the interface under the shaper before the shaper
- * will render your machine defunct. Don't for now shape over
- * PPP or SLIP therefore!
- * This will be fixed in BETA4
- *
- * Update History :
- *
- * bh_atomic() SMP races fixes and rewritten the locking code to
- * be SMP safe and irq-mask friendly.
- * NOTE: we can't use start_bh_atomic() in kick_shaper()
- * because it's going to be recalled from an irq handler,
- * and synchronize_bh() is a nono if called from irq context.
- * 1999 Andrea Arcangeli
- *
- * Device statistics (tx_pakets, tx_bytes,
- * tx_drops: queue_over_time and collisions: max_queue_exceded)
- * 1999/06/18 Jordi Murgo <savage@apostols.org>
- *
- * Use skb->cb for private data.
- * 2000/03 Andi Kleen
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/fcntl.h>
-#include <linux/mm.h>
-#include <linux/slab.h>
-#include <linux/string.h>
-#include <linux/errno.h>
-#include <linux/netdevice.h>
-#include <linux/etherdevice.h>
-#include <linux/skbuff.h>
-#include <linux/if_arp.h>
-#include <linux/init.h>
-#include <linux/if_shaper.h>
-#include <linux/jiffies.h>
-
-#include <net/dst.h>
-#include <net/arp.h>
-
-struct shaper_cb {
- unsigned long shapeclock; /* Time it should go out */
- unsigned long shapestamp; /* Stamp for shaper */
- __u32 shapelatency; /* Latency on frame */
- __u32 shapelen; /* Frame length in clocks */
- __u16 shapepend; /* Pending */
-};
-#define SHAPERCB(skb) ((struct shaper_cb *) ((skb)->cb))
-
-static int sh_debug; /* Debug flag */
-
-#define SHAPER_BANNER "CymruNet Traffic Shaper BETA 0.04 for Linux 2.1\n"
-
-static void shaper_kick(struct shaper *sh);
-
-/*
- * Compute clocks on a buffer
- */
-
-static int shaper_clocks(struct shaper *shaper, struct sk_buff *skb)
-{
- int t=skb->len/shaper->bytespertick;
- return t;
-}
-
-/*
- * Set the speed of a shaper. We compute this in bytes per tick since
- * thats how the machine wants to run. Quoted input is in bits per second
- * as is traditional (note not BAUD). We assume 8 bit bytes.
- */
-
-static void shaper_setspeed(struct shaper *shaper, int bitspersec)
-{
- shaper->bitspersec=bitspersec;
- shaper->bytespertick=(bitspersec/HZ)/8;
- if(!shaper->bytespertick)
- shaper->bytespertick++;
-}
-
-/*
- * Throw a frame at a shaper.
- */
-
-
-static int shaper_start_xmit(struct sk_buff *skb, struct net_device *dev)
-{
- struct shaper *shaper = dev->priv;
- struct sk_buff *ptr;
-
- spin_lock(&shaper->lock);
- ptr=shaper->sendq.prev;
-
- /*
- * Set up our packet details
- */
-
- SHAPERCB(skb)->shapelatency=0;
- SHAPERCB(skb)->shapeclock=shaper->recovery;
- if(time_before(SHAPERCB(skb)->shapeclock, jiffies))
- SHAPERCB(skb)->shapeclock=jiffies;
- skb->priority=0; /* short term bug fix */
- SHAPERCB(skb)->shapestamp=jiffies;
-
- /*
- * Time slots for this packet.
- */
-
- SHAPERCB(skb)->shapelen= shaper_clocks(shaper,skb);
-
- {
- struct sk_buff *tmp;
- /*
- * Up our shape clock by the time pending on the queue
- * (Should keep this in the shaper as a variable..)
- */
- for(tmp=skb_peek(&shaper->sendq); tmp!=NULL &&
- tmp!=(struct sk_buff *)&shaper->sendq; tmp=tmp->next)
- SHAPERCB(skb)->shapeclock+=SHAPERCB(tmp)->shapelen;
- /*
- * Queue over time. Spill packet.
- */
- if(time_after(SHAPERCB(skb)->shapeclock,jiffies + SHAPER_LATENCY)) {
- dev_kfree_skb(skb);
- shaper->stats.tx_dropped++;
- } else
- skb_queue_tail(&shaper->sendq, skb);
- }
-
- if(sh_debug)
- printk("Frame queued.\n");
- if(skb_queue_len(&shaper->sendq)>SHAPER_QLEN)
- {
- ptr=skb_dequeue(&shaper->sendq);
- dev_kfree_skb(ptr);
- shaper->stats.collisions++;
- }
- shaper_kick(shaper);
- spin_unlock(&shaper->lock);
- return 0;
-}
-
-/*
- * Transmit from a shaper
- */
-
-static void shaper_queue_xmit(struct shaper *shaper, struct sk_buff *skb)
-{
- struct sk_buff *newskb=skb_clone(skb, GFP_ATOMIC);
- if(sh_debug)
- printk("Kick frame on %p\n",newskb);
- if(newskb)
- {
- newskb->dev=shaper->dev;
- newskb->priority=2;
- if(sh_debug)
- printk("Kick new frame to %s, %d\n",
- shaper->dev->name,newskb->priority);
- dev_queue_xmit(newskb);
-
- shaper->stats.tx_bytes += skb->len;
- shaper->stats.tx_packets++;
-
- if(sh_debug)
- printk("Kicked new frame out.\n");
- dev_kfree_skb(skb);
- }
-}
-
-/*
- * Timer handler for shaping clock
- */
-
-static void shaper_timer(unsigned long data)
-{
- struct shaper *shaper = (struct shaper *)data;
-
- spin_lock(&shaper->lock);
- shaper_kick(shaper);
- spin_unlock(&shaper->lock);
-}
-
-/*
- * Kick a shaper queue and try and do something sensible with the
- * queue.
- */
-
-static void shaper_kick(struct shaper *shaper)
-{
- struct sk_buff *skb;
-
- /*
- * Walk the list (may be empty)
- */
-
- while((skb=skb_peek(&shaper->sendq))!=NULL)
- {
- /*
- * Each packet due to go out by now (within an error
- * of SHAPER_BURST) gets kicked onto the link
- */
-
- if(sh_debug)
- printk("Clock = %ld, jiffies = %ld\n", SHAPERCB(skb)->shapeclock, jiffies);
- if(time_before_eq(SHAPERCB(skb)->shapeclock, jiffies + SHAPER_BURST))
- {
- /*
- * Pull the frame and get interrupts back on.
- */
-
- skb_unlink(skb, &shaper->sendq);
- if (shaper->recovery <
- SHAPERCB(skb)->shapeclock + SHAPERCB(skb)->shapelen)
- shaper->recovery = SHAPERCB(skb)->shapeclock + SHAPERCB(skb)->shapelen;
- /*
- * Pass on to the physical target device via
- * our low level packet thrower.
- */
-
- SHAPERCB(skb)->shapepend=0;
- shaper_queue_xmit(shaper, skb); /* Fire */
- }
- else
- break;
- }
-
- /*
- * Next kick.
- */
-
- if(skb!=NULL)
- mod_timer(&shaper->timer, SHAPERCB(skb)->shapeclock);
-}
-
-
-/*
- * Bring the interface up. We just disallow this until a
- * bind.
- */
-
-static int shaper_open(struct net_device *dev)
-{
- struct shaper *shaper=dev->priv;
-
- /*
- * Can't open until attached.
- * Also can't open until speed is set, or we'll get
- * a division by zero.
- */
-
- if(shaper->dev==NULL)
- return -ENODEV;
- if(shaper->bitspersec==0)
- return -EINVAL;
- return 0;
-}
-
-/*
- * Closing a shaper flushes the queues.
- */
-
-static int shaper_close(struct net_device *dev)
-{
- struct shaper *shaper=dev->priv;
- struct sk_buff *skb;
-
- while ((skb = skb_dequeue(&shaper->sendq)) != NULL)
- dev_kfree_skb(skb);
-
- spin_lock_bh(&shaper->lock);
- shaper_kick(shaper);
- spin_unlock_bh(&shaper->lock);
-
- del_timer_sync(&shaper->timer);
- return 0;
-}
-
-/*
- * Revectored calls. We alter the parameters and call the functions
- * for our attached device. This enables us to bandwidth allocate after
- * ARP and other resolutions and not before.
- */
-
-static struct net_device_stats *shaper_get_stats(struct net_device *dev)
-{
- struct shaper *sh=dev->priv;
- return &sh->stats;
-}
-
-static int shaper_header(struct sk_buff *skb, struct net_device *dev,
- unsigned short type, void *daddr, void *saddr, unsigned len)
-{
- struct shaper *sh=dev->priv;
- int v;
- if(sh_debug)
- printk("Shaper header\n");
- skb->dev=sh->dev;
- v=sh->hard_header(skb,sh->dev,type,daddr,saddr,len);
- skb->dev=dev;
- return v;
-}
-
-static int shaper_rebuild_header(struct sk_buff *skb)
-{
- struct shaper *sh=skb->dev->priv;
- struct net_device *dev=skb->dev;
- int v;
- if(sh_debug)
- printk("Shaper rebuild header\n");
- skb->dev=sh->dev;
- v=sh->rebuild_header(skb);
- skb->dev=dev;
- return v;
-}
-
-#if 0
-static int shaper_cache(struct neighbour *neigh, struct hh_cache *hh)
-{
- struct shaper *sh=neigh->dev->priv;
- struct net_device *tmp;
- int ret;
- if(sh_debug)
- printk("Shaper header cache bind\n");
- tmp=neigh->dev;
- neigh->dev=sh->dev;
- ret=sh->hard_header_cache(neigh,hh);
- neigh->dev=tmp;
- return ret;
-}
-
-static void shaper_cache_update(struct hh_cache *hh, struct net_device *dev,
- unsigned char *haddr)
-{
- struct shaper *sh=dev->priv;
- if(sh_debug)
- printk("Shaper cache update\n");
- sh->header_cache_update(hh, sh->dev, haddr);
-}
-#endif
-
-#ifdef CONFIG_INET
-
-static int shaper_neigh_setup(struct neighbour *n)
-{
-#ifdef CONFIG_INET
- if (n->nud_state == NUD_NONE) {
- n->ops = &arp_broken_ops;
- n->output = n->ops->output;
- }
-#endif
- return 0;
-}
-
-static int shaper_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
-{
-#ifdef CONFIG_INET
- if (p->tbl->family == AF_INET) {
- p->neigh_setup = shaper_neigh_setup;
- p->ucast_probes = 0;
- p->mcast_probes = 0;
- }
-#endif
- return 0;
-}
-
-#else /* !(CONFIG_INET) */
-
-static int shaper_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
-{
- return 0;
-}
-
-#endif
-
-static int shaper_attach(struct net_device *shdev, struct shaper *sh, struct net_device *dev)
-{
- sh->dev = dev;
- sh->hard_start_xmit=dev->hard_start_xmit;
- sh->get_stats=dev->get_stats;
- if(dev->hard_header)
- {
- sh->hard_header=dev->hard_header;
- shdev->hard_header = shaper_header;
- }
- else
- shdev->hard_header = NULL;
-
- if(dev->rebuild_header)
- {
- sh->rebuild_header = dev->rebuild_header;
- shdev->rebuild_header = shaper_rebuild_header;
- }
- else
- shdev->rebuild_header = NULL;
-
-#if 0
- if(dev->hard_header_cache)
- {
- sh->hard_header_cache = dev->hard_header_cache;
- shdev->hard_header_cache= shaper_cache;
- }
- else
- {
- shdev->hard_header_cache= NULL;
- }
-
- if(dev->header_cache_update)
- {
- sh->header_cache_update = dev->header_cache_update;
- shdev->header_cache_update = shaper_cache_update;
- }
- else
- shdev->header_cache_update= NULL;
-#else
- shdev->header_cache_update = NULL;
- shdev->hard_header_cache = NULL;
-#endif
- shdev->neigh_setup = shaper_neigh_setup_dev;
-
- shdev->hard_header_len=dev->hard_header_len;
- shdev->type=dev->type;
- shdev->addr_len=dev->addr_len;
- shdev->mtu=dev->mtu;
- sh->bitspersec=0;
- return 0;
-}
-
-static int shaper_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
-{
- struct shaperconf *ss= (struct shaperconf *)&ifr->ifr_ifru;
- struct shaper *sh=dev->priv;
-
- if(ss->ss_cmd == SHAPER_SET_DEV || ss->ss_cmd == SHAPER_SET_SPEED)
- {
- if(!capable(CAP_NET_ADMIN))
- return -EPERM;
- }
-
- switch(ss->ss_cmd)
- {
- case SHAPER_SET_DEV:
- {
- struct net_device *them=__dev_get_by_name(ss->ss_name);
- if(them==NULL)
- return -ENODEV;
- if(sh->dev)
- return -EBUSY;
- return shaper_attach(dev,dev->priv, them);
- }
- case SHAPER_GET_DEV:
- if(sh->dev==NULL)
- return -ENODEV;
- strcpy(ss->ss_name, sh->dev->name);
- return 0;
- case SHAPER_SET_SPEED:
- shaper_setspeed(sh,ss->ss_speed);
- return 0;
- case SHAPER_GET_SPEED:
- ss->ss_speed=sh->bitspersec;
- return 0;
- default:
- return -EINVAL;
- }
-}
-
-static void shaper_init_priv(struct net_device *dev)
-{
- struct shaper *sh = dev->priv;
-
- skb_queue_head_init(&sh->sendq);
- init_timer(&sh->timer);
- sh->timer.function=shaper_timer;
- sh->timer.data=(unsigned long)sh;
- spin_lock_init(&sh->lock);
-}
-
-/*
- * Add a shaper device to the system
- */
-
-static void __init shaper_setup(struct net_device *dev)
-{
- /*
- * Set up the shaper.
- */
-
- SET_MODULE_OWNER(dev);
-
- shaper_init_priv(dev);
-
- dev->open = shaper_open;
- dev->stop = shaper_close;
- dev->hard_start_xmit = shaper_start_xmit;
- dev->get_stats = shaper_get_stats;
- dev->set_multicast_list = NULL;
-
- /*
- * Intialise the packet queues
- */
-
- /*
- * Handlers for when we attach to a device.
- */
-
- dev->hard_header = shaper_header;
- dev->rebuild_header = shaper_rebuild_header;
-#if 0
- dev->hard_header_cache = shaper_cache;
- dev->header_cache_update= shaper_cache_update;
-#endif
- dev->neigh_setup = shaper_neigh_setup_dev;
- dev->do_ioctl = shaper_ioctl;
- dev->hard_header_len = 0;
- dev->type = ARPHRD_ETHER; /* initially */
- dev->set_mac_address = NULL;
- dev->mtu = 1500;
- dev->addr_len = 0;
- dev->tx_queue_len = 10;
- dev->flags = 0;
-}
-
-static int shapers = 1;
-#ifdef MODULE
-
-module_param(shapers, int, 0);
-MODULE_PARM_DESC(shapers, "Traffic shaper: maximum number of shapers");
-
-#else /* MODULE */
-
-static int __init set_num_shapers(char *str)
-{
- shapers = simple_strtol(str, NULL, 0);
- return 1;
-}
-
-__setup("shapers=", set_num_shapers);
-
-#endif /* MODULE */
-
-static struct net_device **devs;
-
-static unsigned int shapers_registered = 0;
-
-static int __init shaper_init(void)
-{
- int i;
- size_t alloc_size;
- struct net_device *dev;
- char name[IFNAMSIZ];
-
- if (shapers < 1)
- return -ENODEV;
-
- alloc_size = sizeof(*dev) * shapers;
- devs = kmalloc(alloc_size, GFP_KERNEL);
- if (!devs)
- return -ENOMEM;
- memset(devs, 0, alloc_size);
-
- for (i = 0; i < shapers; i++) {
-
- snprintf(name, IFNAMSIZ, "shaper%d", i);
- dev = alloc_netdev(sizeof(struct shaper), name,
- shaper_setup);
- if (!dev)
- break;
-
- if (register_netdev(dev)) {
- free_netdev(dev);
- break;
- }
-
- devs[i] = dev;
- shapers_registered++;
- }
-
- if (!shapers_registered) {
- kfree(devs);
- devs = NULL;
- }
-
- return (shapers_registered ? 0 : -ENODEV);
-}
-
-static void __exit shaper_exit (void)
-{
- int i;
-
- for (i = 0; i < shapers_registered; i++) {
- if (devs[i]) {
- unregister_netdev(devs[i]);
- free_netdev(devs[i]);
- }
- }
-
- kfree(devs);
- devs = NULL;
-}
-
-module_init(shaper_init);
-module_exit(shaper_exit);
-MODULE_LICENSE("GPL");
-
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA
http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: {Spam?} [PATCH] NET: Remove obsolete traffic shaper code.
2007-04-14 23:30 {Spam?} [PATCH] NET: Remove obsolete traffic shaper code Robert P. J. Day
@ 2007-04-14 23:34 ` Rene Herman
2007-04-14 23:38 ` {Spam?} " Robert P. J. Day
2007-04-14 23:46 ` Ian McDonald
1 sibling, 1 reply; 8+ messages in thread
From: Rene Herman @ 2007-04-14 23:34 UTC (permalink / raw)
To: Robert P. J. Day; +Cc: Linux Kernel Mailing List, netdev
On 04/15/2007 01:30 AM, Robert P. J. Day wrote:
> Remove the obsolete code for the traffic shaper.
Why are all your messages getting a "{Spam?}" subject prefix?
Rene.
^ permalink raw reply [flat|nested] 8+ messages in thread
* {Spam?} Re: {Spam?} [PATCH] NET: Remove obsolete traffic shaper code.
2007-04-14 23:34 ` Rene Herman
@ 2007-04-14 23:38 ` Robert P. J. Day
2007-04-14 23:55 ` Rene Herman
0 siblings, 1 reply; 8+ messages in thread
From: Robert P. J. Day @ 2007-04-14 23:38 UTC (permalink / raw)
To: Rene Herman; +Cc: Linux Kernel Mailing List, netdev
On Sun, 15 Apr 2007, Rene Herman wrote:
> On 04/15/2007 01:30 AM, Robert P. J. Day wrote:
>
> > Remove the obsolete code for the traffic shaper.
>
> Why are all your messages getting a "{Spam?}" subject prefix?
i have no idea, that's a recent development. is that happening with
anyone else?
rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA
http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: {Spam?} [PATCH] NET: Remove obsolete traffic shaper code.
2007-04-14 23:30 {Spam?} [PATCH] NET: Remove obsolete traffic shaper code Robert P. J. Day
2007-04-14 23:34 ` Rene Herman
@ 2007-04-14 23:46 ` Ian McDonald
2007-04-15 0:06 ` {Spam?} " Robert P. J. Day
1 sibling, 1 reply; 8+ messages in thread
From: Ian McDonald @ 2007-04-14 23:46 UTC (permalink / raw)
To: Robert P. J. Day; +Cc: Linux Kernel Mailing List, netdev
On 4/15/07, Robert P. J. Day <rpjday@mindspring.com> wrote:
>
> Remove the obsolete code for the traffic shaper.
>
> Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
>
Apart from the merits of removing this which I can't comment on, I
thought the usual procedure was to place a removal in
Documentation/feature-removal-schedule.txt to notify people of what is
going to be removed. Then wait the period you determine there and then
remove.
Ian
--
Web: http://wand.net.nz/~iam4/
Blog: http://iansblog.jandi.co.nz
WAND Network Research Group
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: {Spam?} Re: {Spam?} [PATCH] NET: Remove obsolete traffic shaper code.
2007-04-14 23:38 ` {Spam?} " Robert P. J. Day
@ 2007-04-14 23:55 ` Rene Herman
0 siblings, 0 replies; 8+ messages in thread
From: Rene Herman @ 2007-04-14 23:55 UTC (permalink / raw)
To: Robert P. J. Day; +Cc: Linux Kernel Mailing List, netdev
On 04/15/2007 01:38 AM, Robert P. J. Day wrote:
>> Why are all your messages getting a "{Spam?}" subject prefix?
>
> i have no idea, that's a recent development. is that happening with
> anyone else?
Not that I've seen. Your last message/thread were the others:
http://lkml.org/lkml/2007/4/14/89
Rene.
^ permalink raw reply [flat|nested] 8+ messages in thread
* {Spam?} Re: {Spam?} [PATCH] NET: Remove obsolete traffic shaper code.
2007-04-14 23:46 ` Ian McDonald
@ 2007-04-15 0:06 ` Robert P. J. Day
2007-04-15 2:48 ` Ian McDonald
0 siblings, 1 reply; 8+ messages in thread
From: Robert P. J. Day @ 2007-04-15 0:06 UTC (permalink / raw)
To: Ian McDonald; +Cc: Linux Kernel Mailing List, netdev
(i'm betting that the mail server i use back in canada is going to tag
this yet again with "{Spam?}" since i'm in california at the moment
and i'll just bet it's freaking out seeing stuff coming from a totally
unknown IP address. i've already sent an email to the admins about
this. sorry.)
On Sun, 15 Apr 2007, Ian McDonald wrote:
> On 4/15/07, Robert P. J. Day <rpjday@mindspring.com> wrote:
> >
> > Remove the obsolete code for the traffic shaper.
> >
> > Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
> >
> Apart from the merits of removing this which I can't comment on, I
> thought the usual procedure was to place a removal in
> Documentation/feature-removal-schedule.txt to notify people of what
> is going to be removed. Then wait the period you determine there and
> then remove.
in fact, according to this:
http://lkml.org/lkml/2006/1/13/139
that notice was put in the feature removal file well over a year ago,
during 2.6.15. so that would seem to be more than adequate time for
everyone to prepare for it. but it must have been deleted from that
file since then as well.
i probably should have mentioned that in my initial posting.
rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA
http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: {Spam?} Re: {Spam?} [PATCH] NET: Remove obsolete traffic shaper code.
2007-04-15 0:06 ` {Spam?} " Robert P. J. Day
@ 2007-04-15 2:48 ` Ian McDonald
2007-04-15 13:37 ` {Spam?} " Robert P. J. Day
0 siblings, 1 reply; 8+ messages in thread
From: Ian McDonald @ 2007-04-15 2:48 UTC (permalink / raw)
To: Robert P. J. Day; +Cc: Linux Kernel Mailing List, netdev, Adrian Bunk
On 4/15/07, Robert P. J. Day <rpjday@mindspring.com> wrote:
> in fact, according to this:
>
> http://lkml.org/lkml/2006/1/13/139
>
> that notice was put in the feature removal file well over a year ago,
> during 2.6.15. so that would seem to be more than adequate time for
> everyone to prepare for it. but it must have been deleted from that
> file since then as well.
Yes and that was never merged and so was resent on January 19th, 2006:
http://www.nabble.com/-2.6-patch--schedule-SHAPER-for-removal-t949871.html
At that point people debated about it being too short notice and the
patch never went in.
I therefore think we can't just remove with NO notice.
Ian
--
Web: http://wand.net.nz/~iam4/
Blog: http://iansblog.jandi.co.nz
WAND Network Research Group
^ permalink raw reply [flat|nested] 8+ messages in thread
* {Spam?} Re: {Spam?} Re: {Spam?} [PATCH] NET: Remove obsolete traffic shaper code.
2007-04-15 2:48 ` Ian McDonald
@ 2007-04-15 13:37 ` Robert P. J. Day
0 siblings, 0 replies; 8+ messages in thread
From: Robert P. J. Day @ 2007-04-15 13:37 UTC (permalink / raw)
To: Ian McDonald; +Cc: Linux Kernel Mailing List, netdev, Adrian Bunk
On Sun, 15 Apr 2007, Ian McDonald wrote:
> On 4/15/07, Robert P. J. Day <rpjday@mindspring.com> wrote:
> > in fact, according to this:
> >
> > http://lkml.org/lkml/2006/1/13/139
> >
> > that notice was put in the feature removal file well over a year ago,
> > during 2.6.15. so that would seem to be more than adequate time for
> > everyone to prepare for it. but it must have been deleted from that
> > file since then as well.
>
> Yes and that was never merged and so was resent on January 19th, 2006:
> http://www.nabble.com/-2.6-patch--schedule-SHAPER-for-removal-t949871.html
>
> At that point people debated about it being too short notice and the
> patch never went in.
>
> I therefore think we can't just remove with NO notice.
i have no dog in this fight one way or the other. i was just in a
housecleaning mood and the shaper stuff looked old and relatively
dead, that's all. if there's a good reason to keep it, fine.
but it seems fairly clear that this *is* a dead feature:
===================================================
$ git show 3b6a792f6ace33584897d1af08630c9acc0ce221
commit 3b6a792f6ace33584897d1af08630c9acc0ce221
Author: Jiri Slaby <jirislaby@gmail.com>
Date: Mon Nov 6 14:34:48 2006 -0800
[NET]: kconfig, correct traffic shaper
As Patrick McHardy <kaber@trash.net> suggested, Traffic Shaper is now
obsolete and alternative to it is no longer CBQ, since its problems with
virtual devices, alter Kconfig text to reflect this -- put a link to the
traffic schedulers as a whole.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
==================================================
so given that the discussion of getting rid of this feature started
well over a year ago, coupled with the fact that its own Kconfig entry
has listed it as "OBSOLETE" for over five months now, plus that it has
very few references left in the tree, well, maybe it's not outrageous
to think that it really can be tossed.
but, like i said, i have no vested interest in this one way or the
other, except for a fondness for getting rid of dead stuff.
rday
p.s. if it shouldn't be removed, maybe someone would like to add an
entry to the feature removal file for it.
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA
http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2007-04-15 13:40 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-14 23:30 {Spam?} [PATCH] NET: Remove obsolete traffic shaper code Robert P. J. Day
2007-04-14 23:34 ` Rene Herman
2007-04-14 23:38 ` {Spam?} " Robert P. J. Day
2007-04-14 23:55 ` Rene Herman
2007-04-14 23:46 ` Ian McDonald
2007-04-15 0:06 ` {Spam?} " Robert P. J. Day
2007-04-15 2:48 ` Ian McDonald
2007-04-15 13:37 ` {Spam?} " Robert P. J. Day
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).