Skip to content

Commit

Permalink
[NET]: The scheduled removal of the frame diverter.
Browse files Browse the repository at this point in the history
This patch contains the scheduled removal of the frame diverter.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Adrian Bunk authored and David S. Miller committed Dec 3, 2006
1 parent d7f7365 commit 90833aa
Show file tree
Hide file tree
Showing 12 changed files with 6 additions and 767 deletions.
15 changes: 0 additions & 15 deletions Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -227,21 +227,6 @@ Who: Patrick McHardy <kaber@trash.net>

---------------------------

What: frame diverter
When: November 2006
Why: The frame diverter is included in most distribution kernels, but is
broken. It does not correctly handle many things:
- IPV6
- non-linear skb's
- network device RCU on removal
- input frames not correctly checked for protocol errors
It also adds allocation overhead even if not enabled.
It is not clear if anyone is still using it.
Who: Stephen Hemminger <shemminger@osdl.org>

---------------------------


What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment
When: October 2008
Why: The stacking of class devices makes these values misleading and
Expand Down
1 change: 0 additions & 1 deletion drivers/net/Space.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/netlink.h>
#include <linux/divert.h>

/* A unified ethernet device probe. This is the easiest way to have every
ethernet adaptor have the name "eth[0123...]".
Expand Down
1 change: 0 additions & 1 deletion include/linux/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,6 @@ unifdef-y += cuda.h
unifdef-y += cyclades.h
unifdef-y += dccp.h
unifdef-y += dirent.h
unifdef-y += divert.h
unifdef-y += dlm.h
unifdef-y += elfcore.h
unifdef-y += errno.h
Expand Down
132 changes: 0 additions & 132 deletions include/linux/divert.h

This file was deleted.

6 changes: 0 additions & 6 deletions include/linux/netdevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
#include <linux/percpu.h>
#include <linux/dmaengine.h>

struct divert_blk;
struct vlan_group;
struct ethtool_ops;
struct netpoll_info;
Expand Down Expand Up @@ -517,11 +516,6 @@ struct net_device
/* bridge stuff */
struct net_bridge_port *br_port;

#ifdef CONFIG_NET_DIVERT
/* this will get initialized at each interface type init routine */
struct divert_blk *divert;
#endif /* CONFIG_NET_DIVERT */

/* class/net/name entry */
struct class_device class_dev;
/* space for optional statistics and wireless sysfs groups */
Expand Down
4 changes: 2 additions & 2 deletions include/linux/sockios.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@
#define SIOCGIFTXQLEN 0x8942 /* Get the tx queue length */
#define SIOCSIFTXQLEN 0x8943 /* Set the tx queue length */

#define SIOCGIFDIVERT 0x8944 /* Frame diversion support */
#define SIOCSIFDIVERT 0x8945 /* Set frame diversion options */
/* SIOCGIFDIVERT was: 0x8944 Frame diversion support */
/* SIOCSIFDIVERT was: 0x8945 Set frame diversion options */

#define SIOCETHTOOL 0x8946 /* Ethtool interface */

Expand Down
27 changes: 0 additions & 27 deletions net/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -175,33 +175,6 @@ source "net/ipx/Kconfig"
source "drivers/net/appletalk/Kconfig"
source "net/x25/Kconfig"
source "net/lapb/Kconfig"

config NET_DIVERT
bool "Frame Diverter (EXPERIMENTAL)"
depends on EXPERIMENTAL && BROKEN
---help---
The Frame Diverter allows you to divert packets from the
network, that are not aimed at the interface receiving it (in
promisc. mode). Typically, a Linux box setup as an Ethernet bridge
with the Frames Diverter on, can do some *really* transparent www
caching using a Squid proxy for example.

This is very useful when you don't want to change your router's
config (or if you simply don't have access to it).

The other possible usages of diverting Ethernet Frames are
numberous:
- reroute smtp traffic to another interface
- traffic-shape certain network streams
- transparently proxy smtp connections
- etc...

For more informations, please refer to:
<http://diverter.sourceforge.net/>
<http://perso.wanadoo.fr/magpie/EtherDivert.html>

If unsure, say N.

source "net/econet/Kconfig"
source "net/wanrouter/Kconfig"
source "net/sched/Kconfig"
Expand Down
1 change: 0 additions & 1 deletion net/core/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ obj-y += dev.o ethtool.o dev_mcast.o dst.o netevent.o \

obj-$(CONFIG_XFRM) += flow.o
obj-$(CONFIG_SYSFS) += net-sysfs.o
obj-$(CONFIG_NET_DIVERT) += dv.o
obj-$(CONFIG_NET_PKTGEN) += pktgen.o
obj-$(CONFIG_WIRELESS_EXT) += wireless.o
obj-$(CONFIG_NETPOLL) += netpoll.o
Expand Down
20 changes: 4 additions & 16 deletions net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@
#include <linux/seq_file.h>
#include <linux/stat.h>
#include <linux/if_bridge.h>
#include <linux/divert.h>
#include <net/dst.h>
#include <net/pkt_sched.h>
#include <net/checksum.h>
Expand Down Expand Up @@ -1827,8 +1826,6 @@ int netif_receive_skb(struct sk_buff *skb)
ncls:
#endif

handle_diverter(skb);

if (handle_bridge(&skb, &pt_prev, &ret, orig_dev))
goto out;

Expand Down Expand Up @@ -2898,10 +2895,6 @@ int register_netdevice(struct net_device *dev)
spin_lock_init(&dev->ingress_lock);
#endif

ret = alloc_divert_blk(dev);
if (ret)
goto out;

dev->iflink = -1;

/* Init, if this function is available */
Expand All @@ -2910,13 +2903,13 @@ int register_netdevice(struct net_device *dev)
if (ret) {
if (ret > 0)
ret = -EIO;
goto out_err;
goto out;
}
}

if (!dev_valid_name(dev->name)) {
ret = -EINVAL;
goto out_err;
goto out;
}

dev->ifindex = dev_new_index();
Expand All @@ -2930,7 +2923,7 @@ int register_netdevice(struct net_device *dev)
= hlist_entry(p, struct net_device, name_hlist);
if (!strncmp(d->name, dev->name, IFNAMSIZ)) {
ret = -EEXIST;
goto out_err;
goto out;
}
}

Expand Down Expand Up @@ -2974,7 +2967,7 @@ int register_netdevice(struct net_device *dev)

ret = netdev_register_sysfs(dev);
if (ret)
goto out_err;
goto out;
dev->reg_state = NETREG_REGISTERED;

/*
Expand All @@ -3001,9 +2994,6 @@ int register_netdevice(struct net_device *dev)

out:
return ret;
out_err:
free_divert_blk(dev);
goto out;
}

/**
Expand Down Expand Up @@ -3320,8 +3310,6 @@ int unregister_netdevice(struct net_device *dev)
/* Notifier chain MUST detach us from master device. */
BUG_TRAP(!dev->master);

free_divert_blk(dev);

/* Finish processing unregister after unlock */
net_set_todo(dev);

Expand Down
Loading

0 comments on commit 90833aa

Please sign in to comment.