Skip to content

Commit

Permalink
net: delete all instances of special processing for token ring
Browse files Browse the repository at this point in the history
We are going to delete the Token ring support.  This removes any
special processing in the core networking for token ring, (aside
from net/tr.c itself), leaving the drivers and remaining tokenring
support present but inert.

The mass removal of the drivers and net/tr.c will be in a separate
commit, so that the history of these files that we still care
about won't have the giant deletion tied into their history.

Signed-off-by: Paul Gortmaker <[email protected]>
  • Loading branch information
Paul Gortmaker committed May 16, 2012
1 parent 60eea6c commit 211ed86
Show file tree
Hide file tree
Showing 18 changed files with 14 additions and 148 deletions.
2 changes: 1 addition & 1 deletion include/linux/if_arp.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
#define ARPHRD_FCPL 786 /* Fibrechannel public loop */
#define ARPHRD_FCFABRIC 787 /* Fibrechannel fabric */
/* 787->799 reserved for fibrechannel media types */
#define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR */
/* 800 used to be used for token ring */
#define ARPHRD_IEEE80211 801 /* IEEE 802.11 */
#define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */
#define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header */
Expand Down
2 changes: 1 addition & 1 deletion include/linux/ipx.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ struct ipx_interface_definition {
#define IPX_FRAME_8022 2
#define IPX_FRAME_ETHERII 3
#define IPX_FRAME_8023 4
#define IPX_FRAME_TR_8022 5 /* obsolete */
/* obsolete token ring was 5 */
unsigned char ipx_special;
#define IPX_SPECIAL_NONE 0
#define IPX_PRIMARY 1
Expand Down
54 changes: 0 additions & 54 deletions include/net/if_inet6.h
Original file line number Diff line number Diff line change
Expand Up @@ -209,60 +209,6 @@ static inline void ipv6_eth_mc_map(const struct in6_addr *addr, char *buf)
memcpy(buf + 2, &addr->s6_addr32[3], sizeof(__u32));
}

static inline void ipv6_tr_mc_map(const struct in6_addr *addr, char *buf)
{
/* All nodes FF01::1, FF02::1, FF02::1:FFxx:xxxx */

if (((addr->s6_addr[0] == 0xFF) &&
((addr->s6_addr[1] == 0x01) || (addr->s6_addr[1] == 0x02)) &&
(addr->s6_addr16[1] == 0) &&
(addr->s6_addr32[1] == 0) &&
(addr->s6_addr32[2] == 0) &&
(addr->s6_addr16[6] == 0) &&
(addr->s6_addr[15] == 1)) ||
((addr->s6_addr[0] == 0xFF) &&
(addr->s6_addr[1] == 0x02) &&
(addr->s6_addr16[1] == 0) &&
(addr->s6_addr32[1] == 0) &&
(addr->s6_addr16[4] == 0) &&
(addr->s6_addr[10] == 0) &&
(addr->s6_addr[11] == 1) &&
(addr->s6_addr[12] == 0xff)))
{
buf[0]=0xC0;
buf[1]=0x00;
buf[2]=0x01;
buf[3]=0x00;
buf[4]=0x00;
buf[5]=0x00;
/* All routers FF0x::2 */
} else if ((addr->s6_addr[0] ==0xff) &&
((addr->s6_addr[1] & 0xF0) == 0) &&
(addr->s6_addr16[1] == 0) &&
(addr->s6_addr32[1] == 0) &&
(addr->s6_addr32[2] == 0) &&
(addr->s6_addr16[6] == 0) &&
(addr->s6_addr[15] == 2))
{
buf[0]=0xC0;
buf[1]=0x00;
buf[2]=0x02;
buf[3]=0x00;
buf[4]=0x00;
buf[5]=0x00;
} else {
unsigned char i ;

i = addr->s6_addr[15] & 7 ;
buf[0]=0xC0;
buf[1]=0x00;
buf[2]=0x00;
buf[3]=0x01 << i ;
buf[4]=0x00;
buf[5]=0x00;
}
}

static inline void ipv6_arcnet_mc_map(const struct in6_addr *addr, char *buf)
{
buf[0] = 0x00;
Expand Down
17 changes: 0 additions & 17 deletions include/net/ip.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,23 +141,6 @@ static inline struct sk_buff *ip_finish_skb(struct sock *sk, struct flowi4 *fl4)
extern int ip4_datagram_connect(struct sock *sk,
struct sockaddr *uaddr, int addr_len);

/*
* Map a multicast IP onto multicast MAC for type Token Ring.
* This conforms to RFC1469 Option 2 Multicasting i.e.
* using a functional address to transmit / receive
* multicast packets.
*/

static inline void ip_tr_mc_map(__be32 addr, char *buf)
{
buf[0]=0xC0;
buf[1]=0x00;
buf[2]=0x00;
buf[3]=0x04;
buf[4]=0x00;
buf[5]=0x00;
}

struct ip_reply_arg {
struct kvec iov[1];
int flags;
Expand Down
7 changes: 0 additions & 7 deletions include/net/llc_pdu.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
*/

#include <linux/if_ether.h>
#include <linux/if_tr.h>

/* Lengths of frame formats */
#define LLC_PDU_LEN_I 4 /* header and 2 control bytes */
Expand Down Expand Up @@ -253,10 +252,6 @@ static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
{
if (skb->protocol == htons(ETH_P_802_2))
memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN);
else if (skb->protocol == htons(ETH_P_TR_802_2)) {
memcpy(sa, tr_hdr(skb)->saddr, ETH_ALEN);
*sa &= 0x7F;
}
}

/**
Expand All @@ -270,8 +265,6 @@ static inline void llc_pdu_decode_da(struct sk_buff *skb, u8 *da)
{
if (skb->protocol == htons(ETH_P_802_2))
memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN);
else if (skb->protocol == htons(ETH_P_TR_802_2))
memcpy(da, tr_hdr(skb)->daddr, ETH_ALEN);
}

/**
Expand Down
3 changes: 1 addition & 2 deletions net/802/p8022.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
/*
* NET3: Support for 802.2 demultiplexing off Ethernet (Token ring
* is kept separate see p8022tr.c)
* NET3: Support for 802.2 demultiplexing off Ethernet
* 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
Expand Down
1 change: 0 additions & 1 deletion net/802/tr.c
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,6 @@ static void tr_setup(struct net_device *dev)

dev->header_ops = &tr_header_ops;

dev->type = ARPHRD_IEEE802_TR;
dev->hard_header_len = TR_HLEN;
dev->mtu = 2000;
dev->addr_len = TR_ALEN;
Expand Down
14 changes: 6 additions & 8 deletions net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -300,10 +300,9 @@ static const unsigned short netdev_lock_type[] =
ARPHRD_BIF, ARPHRD_SIT, ARPHRD_IPDDP, ARPHRD_IPGRE,
ARPHRD_PIMREG, ARPHRD_HIPPI, ARPHRD_ASH, ARPHRD_ECONET,
ARPHRD_IRDA, ARPHRD_FCPP, ARPHRD_FCAL, ARPHRD_FCPL,
ARPHRD_FCFABRIC, ARPHRD_IEEE802_TR, ARPHRD_IEEE80211,
ARPHRD_IEEE80211_PRISM, ARPHRD_IEEE80211_RADIOTAP, ARPHRD_PHONET,
ARPHRD_PHONET_PIPE, ARPHRD_IEEE802154,
ARPHRD_VOID, ARPHRD_NONE};
ARPHRD_FCFABRIC, ARPHRD_IEEE80211, ARPHRD_IEEE80211_PRISM,
ARPHRD_IEEE80211_RADIOTAP, ARPHRD_PHONET, ARPHRD_PHONET_PIPE,
ARPHRD_IEEE802154, ARPHRD_VOID, ARPHRD_NONE};

static const char *const netdev_lock_name[] =
{"_xmit_NETROM", "_xmit_ETHER", "_xmit_EETHER", "_xmit_AX25",
Expand All @@ -318,10 +317,9 @@ static const char *const netdev_lock_name[] =
"_xmit_BIF", "_xmit_SIT", "_xmit_IPDDP", "_xmit_IPGRE",
"_xmit_PIMREG", "_xmit_HIPPI", "_xmit_ASH", "_xmit_ECONET",
"_xmit_IRDA", "_xmit_FCPP", "_xmit_FCAL", "_xmit_FCPL",
"_xmit_FCFABRIC", "_xmit_IEEE802_TR", "_xmit_IEEE80211",
"_xmit_IEEE80211_PRISM", "_xmit_IEEE80211_RADIOTAP", "_xmit_PHONET",
"_xmit_PHONET_PIPE", "_xmit_IEEE802154",
"_xmit_VOID", "_xmit_NONE"};
"_xmit_FCFABRIC", "_xmit_IEEE80211", "_xmit_IEEE80211_PRISM",
"_xmit_IEEE80211_RADIOTAP", "_xmit_PHONET", "_xmit_PHONET_PIPE",
"_xmit_IEEE802154", "_xmit_VOID", "_xmit_NONE"};

static struct lock_class_key netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)];
static struct lock_class_key netdev_addr_lock_key[ARRAY_SIZE(netdev_lock_type)];
Expand Down
4 changes: 2 additions & 2 deletions net/ipv4/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -262,8 +262,8 @@ config ARPD
bool "IP: ARP daemon support"
---help---
The kernel maintains an internal cache which maps IP addresses to
hardware addresses on the local network, so that Ethernet/Token Ring/
etc. frames are sent to the proper address on the physical networking
hardware addresses on the local network, so that Ethernet
frames are sent to the proper address on the physical networking
layer. Normally, kernel uses the ARP protocol to resolve these
mappings.

Expand Down
13 changes: 1 addition & 12 deletions net/ipv4/arp.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,6 @@
#include <linux/etherdevice.h>
#include <linux/fddidevice.h>
#include <linux/if_arp.h>
#include <linux/trdevice.h>
#include <linux/skbuff.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
Expand Down Expand Up @@ -193,9 +192,6 @@ int arp_mc_map(__be32 addr, u8 *haddr, struct net_device *dev, int dir)
case ARPHRD_IEEE802:
ip_eth_mc_map(addr, haddr);
return 0;
case ARPHRD_IEEE802_TR:
ip_tr_mc_map(addr, haddr);
return 0;
case ARPHRD_INFINIBAND:
ip_ib_mc_map(addr, dev->broadcast, haddr);
return 0;
Expand Down Expand Up @@ -647,12 +643,6 @@ struct sk_buff *arp_create(int type, int ptype, __be32 dest_ip,
arp->ar_hrd = htons(ARPHRD_ETHER);
arp->ar_pro = htons(ETH_P_IP);
break;
#endif
#if IS_ENABLED(CONFIG_TR)
case ARPHRD_IEEE802_TR:
arp->ar_hrd = htons(ARPHRD_IEEE802);
arp->ar_pro = htons(ETH_P_IP);
break;
#endif
}

Expand Down Expand Up @@ -751,11 +741,10 @@ static int arp_process(struct sk_buff *skb)
goto out;
break;
case ARPHRD_ETHER:
case ARPHRD_IEEE802_TR:
case ARPHRD_FDDI:
case ARPHRD_IEEE802:
/*
* ETHERNET, Token Ring and Fibre Channel (which are IEEE 802
* ETHERNET, and Fibre Channel (which are IEEE 802
* devices, according to RFC 2625) devices will accept ARP
* hardware types of either 1 (Ethernet) or 6 (IEEE 802.2).
* This is the case also of FDDI, where the RFC 1390 says that
Expand Down
2 changes: 0 additions & 2 deletions net/ipv4/ipconfig.c
Original file line number Diff line number Diff line change
Expand Up @@ -808,8 +808,6 @@ static void __init ic_bootp_send_if(struct ic_device *d, unsigned long jiffies_d
b->op = BOOTP_REQUEST;
if (dev->type < 256) /* check for false types */
b->htype = dev->type;
else if (dev->type == ARPHRD_IEEE802_TR) /* fix for token ring */
b->htype = ARPHRD_IEEE802;
else if (dev->type == ARPHRD_FDDI)
b->htype = ARPHRD_ETHER;
else {
Expand Down
2 changes: 0 additions & 2 deletions net/ipv6/addrconf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1575,7 +1575,6 @@ static int ipv6_generate_eui64(u8 *eui, struct net_device *dev)
switch (dev->type) {
case ARPHRD_ETHER:
case ARPHRD_FDDI:
case ARPHRD_IEEE802_TR:
return addrconf_ifid_eui48(eui, dev);
case ARPHRD_ARCNET:
return addrconf_ifid_arcnet(eui, dev);
Expand Down Expand Up @@ -2444,7 +2443,6 @@ static void addrconf_dev_config(struct net_device *dev)

if ((dev->type != ARPHRD_ETHER) &&
(dev->type != ARPHRD_FDDI) &&
(dev->type != ARPHRD_IEEE802_TR) &&
(dev->type != ARPHRD_ARCNET) &&
(dev->type != ARPHRD_INFINIBAND) &&
(dev->type != ARPHRD_IEEE802154)) {
Expand Down
17 changes: 0 additions & 17 deletions net/ipv6/ndisc.c
Original file line number Diff line number Diff line change
Expand Up @@ -327,9 +327,6 @@ int ndisc_mc_map(const struct in6_addr *addr, char *buf, struct net_device *dev,
case ARPHRD_FDDI:
ipv6_eth_mc_map(addr, buf);
return 0;
case ARPHRD_IEEE802_TR:
ipv6_tr_mc_map(addr,buf);
return 0;
case ARPHRD_ARCNET:
ipv6_arcnet_mc_map(addr, buf);
return 0;
Expand Down Expand Up @@ -795,20 +792,6 @@ static void ndisc_recv_ns(struct sk_buff *skb)

if (ifp->flags & (IFA_F_TENTATIVE|IFA_F_OPTIMISTIC)) {
if (dad) {
if (dev->type == ARPHRD_IEEE802_TR) {
const unsigned char *sadr;
sadr = skb_mac_header(skb);
if (((sadr[8] ^ dev->dev_addr[0]) & 0x7f) == 0 &&
sadr[9] == dev->dev_addr[1] &&
sadr[10] == dev->dev_addr[2] &&
sadr[11] == dev->dev_addr[3] &&
sadr[12] == dev->dev_addr[4] &&
sadr[13] == dev->dev_addr[5]) {
/* looped-back to us */
goto out;
}
}

/*
* We are colliding with another node
* who is doing DAD
Expand Down
10 changes: 1 addition & 9 deletions net/ipx/af_ipx.c
Original file line number Diff line number Diff line change
Expand Up @@ -983,10 +983,6 @@ static int ipxitf_create(struct ipx_interface_definition *idef)
goto out;

switch (idef->ipx_dlink_type) {
case IPX_FRAME_TR_8022:
printk(KERN_WARNING "IPX frame type 802.2TR is "
"obsolete Use 802.2 instead.\n");
/* fall through */
case IPX_FRAME_8022:
dlink_type = htons(ETH_P_802_2);
datalink = p8022_datalink;
Expand All @@ -996,10 +992,7 @@ static int ipxitf_create(struct ipx_interface_definition *idef)
dlink_type = htons(ETH_P_IPX);
datalink = pEII_datalink;
break;
} else
printk(KERN_WARNING "IPX frame type EtherII over "
"token-ring is obsolete. Use SNAP "
"instead.\n");
}
/* fall through */
case IPX_FRAME_SNAP:
dlink_type = htons(ETH_P_SNAP);
Expand Down Expand Up @@ -1275,7 +1268,6 @@ const char *ipx_frame_name(__be16 frame)
case ETH_P_802_2: rc = "802.2"; break;
case ETH_P_SNAP: rc = "SNAP"; break;
case ETH_P_802_3: rc = "802.3"; break;
case ETH_P_TR_802_2: rc = "802.2TR"; break;
}

return rc;
Expand Down
3 changes: 1 addition & 2 deletions net/llc/af_llc.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,7 @@ static inline u16 llc_ui_next_link_no(int sap)
*/
static inline __be16 llc_proto_type(u16 arphrd)
{
return arphrd == ARPHRD_IEEE802_TR ?
htons(ETH_P_TR_802_2) : htons(ETH_P_802_2);
return htons(ETH_P_802_2);
}

/**
Expand Down
3 changes: 0 additions & 3 deletions net/llc/llc_output.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@
*/

#include <linux/if_arp.h>
#include <linux/if_tr.h>
#include <linux/netdevice.h>
#include <linux/trdevice.h>
#include <linux/skbuff.h>
#include <linux/export.h>
#include <net/llc.h>
Expand All @@ -37,7 +35,6 @@ int llc_mac_hdr_init(struct sk_buff *skb,
int rc = -EINVAL;

switch (skb->dev->type) {
case ARPHRD_IEEE802_TR:
case ARPHRD_ETHER:
case ARPHRD_LOOPBACK:
rc = dev_hard_header(skb, skb->dev, ETH_P_802_2, da, sa,
Expand Down
4 changes: 0 additions & 4 deletions net/llc/llc_sap.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,6 @@ static int llc_mac_header_len(unsigned short devtype)
case ARPHRD_ETHER:
case ARPHRD_LOOPBACK:
return sizeof(struct ethhdr);
#if defined(CONFIG_TR) || defined(CONFIG_TR_MODULE)
case ARPHRD_IEEE802_TR:
return sizeof(struct trh_hdr);
#endif
}
return 0;
}
Expand Down
4 changes: 0 additions & 4 deletions net/sysctl_net.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,6 @@
#include <linux/if_ether.h>
#endif

#ifdef CONFIG_TR
#include <linux/if_tr.h>
#endif

static struct ctl_table_set *
net_ctl_header_lookup(struct ctl_table_root *root, struct nsproxy *namespaces)
{
Expand Down

0 comments on commit 211ed86

Please sign in to comment.