Commit f9be84db authored by Cai Huoqing's avatar Cai Huoqing Committed by David S. Miller
Browse files

net: bonding: bond_alb: Remove the dependency on ipx network layer



commit <47595e32> ("<MAINTAINERS: Mark some staging directories>")
indicated the ipx network layer as obsolete in Jan 2018,
updated in the MAINTAINERS file

now, after being exposed for 3 years to refactoring,
so to delete the ipx net layer related code for good.

Signed-off-by: default avatarCai Huoqing <caihuoqing@baidu.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4367355d
Loading
Loading
Loading
Loading
+0 −32
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
#include <linux/if_bonding.h>
#include <linux/if_vlan.h>
#include <linux/in.h>
#include <net/ipx.h>
#include <net/arp.h>
#include <net/ipv6.h>
#include <asm/byteorder.h>
@@ -1351,8 +1350,6 @@ struct slave *bond_xmit_tlb_slave_get(struct bonding *bond,
	if (!is_multicast_ether_addr(eth_data->h_dest)) {
		switch (skb->protocol) {
		case htons(ETH_P_IP):
		case htons(ETH_P_IPX):
		    /* In case of IPX, it will falback to L2 hash */
		case htons(ETH_P_IPV6):
			hash_index = bond_xmit_hash(bond, skb);
			if (bond->params.tlb_dynamic_lb) {
@@ -1454,35 +1451,6 @@ struct slave *bond_xmit_alb_slave_get(struct bonding *bond,
		hash_size = sizeof(ip6hdr->daddr);
		break;
	}
	case ETH_P_IPX: {
		const struct ipxhdr *ipxhdr;

		if (pskb_network_may_pull(skb, sizeof(*ipxhdr))) {
			do_tx_balance = false;
			break;
		}
		ipxhdr = (struct ipxhdr *)skb_network_header(skb);

		if (ipxhdr->ipx_checksum != IPX_NO_CHECKSUM) {
			/* something is wrong with this packet */
			do_tx_balance = false;
			break;
		}

		if (ipxhdr->ipx_type != IPX_TYPE_NCP) {
			/* The only protocol worth balancing in
			 * this family since it has an "ARP" like
			 * mechanism
			 */
			do_tx_balance = false;
			break;
		}

		eth_data = eth_hdr(skb);
		hash_start = (char *)eth_data->h_dest;
		hash_size = ETH_ALEN;
		break;
	}
	case ETH_P_ARP:
		do_tx_balance = false;
		if (bond_info->rlb_enabled)