summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--patches/ethtool-6+20090323.orig/001_remove_support_for_rx_hashing_by_port.patch65
-rw-r--r--patches/ethtool-6+20090323.orig/002_update_ethtool-copy-h.patch210
-rw-r--r--patches/ethtool-6+20090323.orig/003_decode_port_other.patch23
-rw-r--r--patches/ethtool-6+20090323.orig/004_report_link_partner_advertising.patch85
-rw-r--r--patches/ethtool-6+20090323.orig/005_report_pause_autonegotiation_flags.patch33
-rw-r--r--patches/ethtool-6+20090323.orig/006_use_asm-types-h.patch26
l---------patches/ethtool-6+20090323.orig/autogen.sh1
-rw-r--r--patches/ethtool-6+20090323.orig/series10
-rw-r--r--rules/ethtool.make8
9 files changed, 4 insertions, 457 deletions
diff --git a/patches/ethtool-6+20090323.orig/001_remove_support_for_rx_hashing_by_port.patch b/patches/ethtool-6+20090323.orig/001_remove_support_for_rx_hashing_by_port.patch
deleted file mode 100644
index f33e80472..000000000
--- a/patches/ethtool-6+20090323.orig/001_remove_support_for_rx_hashing_by_port.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Subject: ethtool: Remove support for RX hashing by port
-From: Ben Hutchings <bhutchings@solarflare.com>
-Date: Thu, 30 Apr 2009 13:36:49 +0100
-
-The kernel-side support for this was removed by:
-
-commit 59089d8d162ddcb5c434672e915331964d38a754
-Author: Santwona Behera <santwona.behera@sun.com>
-Date: Fri Feb 20 00:58:13 2009 -0800
-
- ethtool: Add RX pkt classification interface
-
-Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
----
- ethtool.8 | 3 ---
- ethtool.c | 8 +-------
- 2 files changed, 1 insertions(+), 10 deletions(-)
-
-diff --git a/ethtool.8 b/ethtool.8
-index 178f6ea..7a6f52b 100644
---- a/ethtool.8
-+++ b/ethtool.8
-@@ -473,9 +473,6 @@ Configures the hash options for the specified network traffic type.
- .RS
- .PD 0
- .TP 3
--.B p
--Hash on the device port number on which the packet was received.
--.TP 3
- .B m
- Hash on the Layer 2 destination address of the rx packet.
- .TP 3
-diff --git a/ethtool.c b/ethtool.c
-index 43ec2bf..5c45b2d 100644
---- a/ethtool.c
-+++ b/ethtool.c
-@@ -191,7 +191,7 @@ static struct option {
- { "-N", "--config-nfc", MODE_SNFC, "Configure Rx network flow "
- "classification options",
- " [ rx-flow-hash tcp4|udp4|ah4|sctp4|"
-- "tcp6|udp6|ah6|sctp6 p|m|v|t|s|d|f|n|r... ]\n" },
-+ "tcp6|udp6|ah6|sctp6 m|v|t|s|d|f|n|r... ]\n" },
- { "-h", "--help", MODE_HELP, "Show this help" },
- {}
- };
-@@ -1090,9 +1090,6 @@ static int parse_rxfhashopts(char *optstr, u32 *data)
- *data = 0;
- while (*optstr) {
- switch (*optstr) {
-- case 'p':
-- *data |= RXH_DEV_PORT;
-- break;
- case 'm':
- *data |= RXH_L2DA;
- break;
-@@ -1132,9 +1129,6 @@ static char *unparse_rxfhashopts(u64 opts)
- memset(buf, 0, sizeof(buf));
-
- if (opts) {
-- if (opts & RXH_DEV_PORT) {
-- strcat(buf, "Dev port\n");
-- }
- if (opts & RXH_L2DA) {
- strcat(buf, "L2DA\n");
- }
diff --git a/patches/ethtool-6+20090323.orig/002_update_ethtool-copy-h.patch b/patches/ethtool-6+20090323.orig/002_update_ethtool-copy-h.patch
deleted file mode 100644
index 3e14db5cb..000000000
--- a/patches/ethtool-6+20090323.orig/002_update_ethtool-copy-h.patch
+++ /dev/null
@@ -1,210 +0,0 @@
-Subject: ethtool: Update ethtool-copy.h
-From: Ben Hutchings <bhutchings@solarflare.com>
-Date: Thu, 30 Apr 2009 13:33:16 +0100
-
-Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
----
-This comes from net-next-2.6 as of today.
-
-Ben.
-
- ethtool-copy.h | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
- 1 files changed, 100 insertions(+), 7 deletions(-)
-
-diff --git a/ethtool-copy.h b/ethtool-copy.h
-index 3ca4e2c..d9bb957 100644
---- a/ethtool-copy.h
-+++ b/ethtool-copy.h
-@@ -7,11 +7,14 @@
- * Portions Copyright 2002 Intel (eli.kupermann@intel.com,
- * christopher.leech@intel.com,
- * scott.feldman@intel.com)
-+ * Portions Copyright (C) Sun Microsystems 2008
- */
-
- #ifndef _LINUX_ETHTOOL_H
- #define _LINUX_ETHTOOL_H
-
-+#include <linux/types.h>
-+
- /* This should work for both 32 and 64 bit userland. */
- struct ethtool_cmd {
- __u32 cmd;
-@@ -23,14 +26,16 @@ struct ethtool_cmd {
- __u8 phy_address;
- __u8 transceiver; /* Which transceiver to use */
- __u8 autoneg; /* Enable or disable autonegotiation */
-+ __u8 mdio_support;
- __u32 maxtxpkt; /* Tx pkts before generating tx int */
- __u32 maxrxpkt; /* Rx pkts before generating rx int */
- __u16 speed_hi;
- __u16 reserved2;
-- __u32 reserved[3];
-+ __u32 lp_advertising; /* Features the link partner advertises */
-+ __u32 reserved[2];
- };
-
--static inline void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
-+static __inline__ void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
- __u32 speed)
- {
-
-@@ -38,7 +43,7 @@ static inline void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
- ep->speed_hi = (__u16)(speed >> 16);
- }
-
--static inline __u32 ethtool_cmd_speed(struct ethtool_cmd *ep)
-+static __inline__ __u32 ethtool_cmd_speed(struct ethtool_cmd *ep)
- {
- return (ep->speed_hi << 16) | ep->speed;
- }
-@@ -285,12 +290,78 @@ enum ethtool_flags {
- ETH_FLAG_LRO = (1 << 15), /* LRO is enabled */
- };
-
--struct ethtool_rxnfc {
-- __u32 cmd;
-+/* The following structures are for supporting RX network flow
-+ * classification configuration. Note, all multibyte fields, e.g.,
-+ * ip4src, ip4dst, psrc, pdst, spi, etc. are expected to be in network
-+ * byte order.
-+ */
-+struct ethtool_tcpip4_spec {
-+ __be32 ip4src;
-+ __be32 ip4dst;
-+ __be16 psrc;
-+ __be16 pdst;
-+ __u8 tos;
-+};
-+
-+struct ethtool_ah_espip4_spec {
-+ __be32 ip4src;
-+ __be32 ip4dst;
-+ __be32 spi;
-+ __u8 tos;
-+};
-+
-+struct ethtool_rawip4_spec {
-+ __be32 ip4src;
-+ __be32 ip4dst;
-+ __u8 hdata[64];
-+};
-+
-+struct ethtool_ether_spec {
-+ __be16 ether_type;
-+ __u8 frame_size;
-+ __u8 eframe[16];
-+};
-+
-+#define ETH_RX_NFC_IP4 1
-+#define ETH_RX_NFC_IP6 2
-+
-+struct ethtool_usrip4_spec {
-+ __be32 ip4src;
-+ __be32 ip4dst;
-+ __be32 l4_4_bytes;
-+ __u8 tos;
-+ __u8 ip_ver;
-+ __u8 proto;
-+};
-+
-+struct ethtool_rx_flow_spec {
- __u32 flow_type;
-- __u64 data;
-+ union {
-+ struct ethtool_tcpip4_spec tcp_ip4_spec;
-+ struct ethtool_tcpip4_spec udp_ip4_spec;
-+ struct ethtool_tcpip4_spec sctp_ip4_spec;
-+ struct ethtool_ah_espip4_spec ah_ip4_spec;
-+ struct ethtool_ah_espip4_spec esp_ip4_spec;
-+ struct ethtool_rawip4_spec raw_ip4_spec;
-+ struct ethtool_ether_spec ether_spec;
-+ struct ethtool_usrip4_spec usr_ip4_spec;
-+ __u8 hdata[64];
-+ } h_u, m_u; /* entry, mask */
-+ __u64 ring_cookie;
-+ __u32 location;
- };
-
-+struct ethtool_rxnfc {
-+ __u32 cmd;
-+ __u32 flow_type;
-+ /* The rx flow hash value or the rule DB size */
-+ __u64 data;
-+ struct ethtool_rx_flow_spec fs;
-+ __u32 rule_cnt;
-+ __u32 rule_locs[0];
-+};
-+
-+
- /* CMDs currently supported */
- #define ETHTOOL_GSET 0x00000001 /* Get settings. */
- #define ETHTOOL_SSET 0x00000002 /* Set settings. */
-@@ -338,6 +409,12 @@ struct ethtool_rxnfc {
- #define ETHTOOL_SRXFH 0x0000002a /* Set RX flow hash configuration */
- #define ETHTOOL_GGRO 0x0000002b /* Get GRO enable (ethtool_value) */
- #define ETHTOOL_SGRO 0x0000002c /* Set GRO enable (ethtool_value) */
-+#define ETHTOOL_GRXRINGS 0x0000002d /* Get RX rings available for LB */
-+#define ETHTOOL_GRXCLSRLCNT 0x0000002e /* Get RX class rule count */
-+#define ETHTOOL_GRXCLSRULE 0x0000002f /* Get RX classification rule */
-+#define ETHTOOL_GRXCLSRLALL 0x00000030 /* Get all RX classification rule */
-+#define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */
-+#define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */
-
- /* compatibility with older code */
- #define SPARC_ETH_GSET ETHTOOL_GSET
-@@ -360,6 +437,11 @@ struct ethtool_rxnfc {
- #define SUPPORTED_Pause (1 << 13)
- #define SUPPORTED_Asym_Pause (1 << 14)
- #define SUPPORTED_2500baseX_Full (1 << 15)
-+#define SUPPORTED_Backplane (1 << 16)
-+#define SUPPORTED_1000baseKX_Full (1 << 17)
-+#define SUPPORTED_10000baseKX4_Full (1 << 18)
-+#define SUPPORTED_10000baseKR_Full (1 << 19)
-+#define SUPPORTED_10000baseR_FEC (1 << 20)
-
- /* Indicates what features are advertised by the interface. */
- #define ADVERTISED_10baseT_Half (1 << 0)
-@@ -378,6 +460,11 @@ struct ethtool_rxnfc {
- #define ADVERTISED_Pause (1 << 13)
- #define ADVERTISED_Asym_Pause (1 << 14)
- #define ADVERTISED_2500baseX_Full (1 << 15)
-+#define ADVERTISED_Backplane (1 << 16)
-+#define ADVERTISED_1000baseKX_Full (1 << 17)
-+#define ADVERTISED_10000baseKX4_Full (1 << 18)
-+#define ADVERTISED_10000baseKR_Full (1 << 19)
-+#define ADVERTISED_10000baseR_FEC (1 << 20)
-
- /* The following are all involved in forcing a particular link
- * mode for the device for setting things. When getting the
-@@ -402,6 +489,7 @@ struct ethtool_rxnfc {
- #define PORT_MII 0x02
- #define PORT_FIBRE 0x03
- #define PORT_BNC 0x04
-+#define PORT_OTHER 0xff
-
- /* Which transceiver to use. */
- #define XCVR_INTERNAL 0x00
-@@ -434,9 +522,13 @@ struct ethtool_rxnfc {
- #define UDP_V6_FLOW 0x06
- #define SCTP_V6_FLOW 0x07
- #define AH_ESP_V6_FLOW 0x08
-+#define AH_V4_FLOW 0x09
-+#define ESP_V4_FLOW 0x0a
-+#define AH_V6_FLOW 0x0b
-+#define ESP_V6_FLOW 0x0c
-+#define IP_USER_FLOW 0x0d
-
- /* L3-L4 network traffic flow hash options */
--#define RXH_DEV_PORT (1 << 0)
- #define RXH_L2DA (1 << 1)
- #define RXH_VLAN (1 << 2)
- #define RXH_L3_PROTO (1 << 3)
-@@ -446,5 +538,6 @@ struct ethtool_rxnfc {
- #define RXH_L4_B_2_3 (1 << 7) /* dst port in case of TCP/UDP/SCTP */
- #define RXH_DISCARD (1 << 31)
-
-+#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
-
- #endif /* _LINUX_ETHTOOL_H */
-
diff --git a/patches/ethtool-6+20090323.orig/003_decode_port_other.patch b/patches/ethtool-6+20090323.orig/003_decode_port_other.patch
deleted file mode 100644
index f8a2e0325..000000000
--- a/patches/ethtool-6+20090323.orig/003_decode_port_other.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Subject: ethtool: Decode PORT_OTHER
-From: Ben Hutchings <bhutchings@solarflare.com>
-Date: Thu, 30 Apr 2009 13:37:14 +0100
-
-Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
----
- ethtool.c | 3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/ethtool.c b/ethtool.c
-index 5c45b2d..08165eb 100644
---- a/ethtool.c
-+++ b/ethtool.c
-@@ -941,6 +941,9 @@ static int dump_ecmd(struct ethtool_cmd *ep)
- case PORT_FIBRE:
- fprintf(stdout, "FIBRE\n");
- break;
-+ case PORT_OTHER:
-+ fprintf(stdout, "Other\n");
-+ break;
- default:
- fprintf(stdout, "Unknown! (%i)\n", ep->port);
- break;
diff --git a/patches/ethtool-6+20090323.orig/004_report_link_partner_advertising.patch b/patches/ethtool-6+20090323.orig/004_report_link_partner_advertising.patch
deleted file mode 100644
index 62386afe1..000000000
--- a/patches/ethtool-6+20090323.orig/004_report_link_partner_advertising.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-Subject: ethtool: Report link partner advertising
-From: Ben Hutchings <bhutchings@solarflare.com>
-Date: Thu, 30 Apr 2009 13:37:43 +0100
-
-
-Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
----
- ethtool.c | 20 +++++++++++---------
- 1 files changed, 11 insertions(+), 9 deletions(-)
-
-diff --git a/ethtool.c b/ethtool.c
-index 08165eb..0d188af 100644
---- a/ethtool.c
-+++ b/ethtool.c
-@@ -839,12 +839,13 @@ static void dump_supported(struct ethtool_cmd *ep)
- fprintf(stdout, "No\n");
- }
-
--static void dump_advertised(struct ethtool_cmd *ep)
-+static void dump_advertised(struct ethtool_cmd *ep,
-+ const char *prefix, u_int32_t mask)
- {
-- u_int32_t mask = ep->advertising;
-+ int indent = strlen(prefix) + 14;
- int did1;
-
-- fprintf(stdout, " Advertised link modes: ");
-+ fprintf(stdout, " %s link modes: ", prefix);
- did1 = 0;
- if (mask & ADVERTISED_10baseT_Half) {
- did1++; fprintf(stdout, "10baseT/Half ");
-@@ -854,7 +855,7 @@ static void dump_advertised(struct ethtool_cmd *ep)
- }
- if (did1 && (mask & (ADVERTISED_100baseT_Half|ADVERTISED_100baseT_Full))) {
- fprintf(stdout, "\n");
-- fprintf(stdout, " ");
-+ fprintf(stdout, " %*s", indent, "");
- }
- if (mask & ADVERTISED_100baseT_Half) {
- did1++; fprintf(stdout, "100baseT/Half ");
-@@ -864,7 +865,7 @@ static void dump_advertised(struct ethtool_cmd *ep)
- }
- if (did1 && (mask & (ADVERTISED_1000baseT_Half|ADVERTISED_1000baseT_Full))) {
- fprintf(stdout, "\n");
-- fprintf(stdout, " ");
-+ fprintf(stdout, " %*s", indent, "");
- }
- if (mask & ADVERTISED_1000baseT_Half) {
- did1++; fprintf(stdout, "1000baseT/Half ");
-@@ -874,14 +875,14 @@ static void dump_advertised(struct ethtool_cmd *ep)
- }
- if (did1 && (mask & ADVERTISED_2500baseX_Full)) {
- fprintf(stdout, "\n");
-- fprintf(stdout, " ");
-+ fprintf(stdout, " %*s", indent, "");
- }
- if (mask & ADVERTISED_2500baseX_Full) {
- did1++; fprintf(stdout, "2500baseX/Full ");
- }
- if (did1 && (mask & ADVERTISED_10000baseT_Full)) {
- fprintf(stdout, "\n");
-- fprintf(stdout, " ");
-+ fprintf(stdout, " %*s", indent, "");
- }
- if (mask & ADVERTISED_10000baseT_Full) {
- did1++; fprintf(stdout, "10000baseT/Full ");
-@@ -890,7 +891,7 @@ static void dump_advertised(struct ethtool_cmd *ep)
- fprintf(stdout, "Not reported");
- fprintf(stdout, "\n");
-
-- fprintf(stdout, " Advertised auto-negotiation: ");
-+ fprintf(stdout, " %s auto-negotiation: ", prefix);
- if (mask & ADVERTISED_Autoneg)
- fprintf(stdout, "Yes\n");
- else
-@@ -902,7 +903,8 @@ static int dump_ecmd(struct ethtool_cmd *ep)
- u32 speed;
-
- dump_supported(ep);
-- dump_advertised(ep);
-+ dump_advertised(ep, "Advertised", ep->advertising);
-+ dump_advertised(ep, "Link partner advertised", ep->lp_advertising);
-
- fprintf(stdout, " Speed: ");
- speed = ethtool_cmd_speed(ep);
diff --git a/patches/ethtool-6+20090323.orig/005_report_pause_autonegotiation_flags.patch b/patches/ethtool-6+20090323.orig/005_report_pause_autonegotiation_flags.patch
deleted file mode 100644
index 7c5338ca8..000000000
--- a/patches/ethtool-6+20090323.orig/005_report_pause_autonegotiation_flags.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Subject: ethtool: Report pause auto-negotiation flags
-From: Ben Hutchings <bhutchings@solarflare.com>
-Date: Thu, 30 Apr 2009 13:38:06 +0100
-
-Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
----
- ethtool.c | 13 +++++++++++++
- 1 files changed, 13 insertions(+), 0 deletions(-)
-
-diff --git a/ethtool.c b/ethtool.c
-index 0d188af..c40603c 100644
---- a/ethtool.c
-+++ b/ethtool.c
-@@ -891,6 +891,19 @@ static void dump_advertised(struct ethtool_cmd *ep,
- fprintf(stdout, "Not reported");
- fprintf(stdout, "\n");
-
-+ fprintf(stdout, " %s pause frame use: ", prefix);
-+ if (mask & ADVERTISED_Pause) {
-+ fprintf(stdout, "Symmetric");
-+ if (mask & ADVERTISED_Asym_Pause)
-+ fprintf(stdout, " Receive-only");
-+ fprintf(stdout, "\n");
-+ } else {
-+ if (mask & ADVERTISED_Asym_Pause)
-+ fprintf(stdout, "Transmit-only\n");
-+ else
-+ fprintf(stdout, "No\n");
-+ }
-+
- fprintf(stdout, " %s auto-negotiation: ", prefix);
- if (mask & ADVERTISED_Autoneg)
- fprintf(stdout, "Yes\n");
diff --git a/patches/ethtool-6+20090323.orig/006_use_asm-types-h.patch b/patches/ethtool-6+20090323.orig/006_use_asm-types-h.patch
deleted file mode 100644
index f3f50c6fe..000000000
--- a/patches/ethtool-6+20090323.orig/006_use_asm-types-h.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/ethtool-util.h b/ethtool-util.h
-index 5572771..8ae7e47 100644
---- a/ethtool-util.h
-+++ b/ethtool-util.h
-@@ -5,11 +5,7 @@
-
- #include <sys/types.h>
-
--/* hack, so we may include kernel's ethtool.h */
--typedef unsigned long long __u64;
--typedef __uint32_t __u32; /* ditto */
--typedef __uint16_t __u16; /* ditto */
--typedef __uint8_t __u8; /* ditto */
-+#include "ethtool-copy.h"
-
- /* historical: we used to use kernel-like types; remove these once cleaned */
- typedef unsigned long long u64;
-@@ -17,8 +13,6 @@ typedef __uint32_t u32; /* ditto */
- typedef __uint16_t u16; /* ditto */
- typedef __uint8_t u8; /* ditto */
-
--#include "ethtool-copy.h"
--
- /* National Semiconductor DP83815, DP83816 */
- int natsemi_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs);
- int natsemi_dump_eeprom(struct ethtool_drvinfo *info,
diff --git a/patches/ethtool-6+20090323.orig/autogen.sh b/patches/ethtool-6+20090323.orig/autogen.sh
deleted file mode 120000
index 9f8a4cb7d..000000000
--- a/patches/ethtool-6+20090323.orig/autogen.sh
+++ /dev/null
@@ -1 +0,0 @@
-../autogen.sh \ No newline at end of file
diff --git a/patches/ethtool-6+20090323.orig/series b/patches/ethtool-6+20090323.orig/series
deleted file mode 100644
index eb494561d..000000000
--- a/patches/ethtool-6+20090323.orig/series
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# these patches come from
-# http://ftp.de.debian.org/debian/pool/main/e/ethtool/ethtool_6+20090323-2.diff.gz
-#
-001_remove_support_for_rx_hashing_by_port.patch
-002_update_ethtool-copy-h.patch
-003_decode_port_other.patch
-004_report_link_partner_advertising.patch
-005_report_pause_autonegotiation_flags.patch
-006_use_asm-types-h.patch
diff --git a/rules/ethtool.make b/rules/ethtool.make
index c63f1d0c8..698122b5b 100644
--- a/rules/ethtool.make
+++ b/rules/ethtool.make
@@ -1,6 +1,7 @@
# -*-makefile-*-
#
# Copyright (C) 2007 by Sascha Hauer
+# 2010 by Marc Kleine-Budde <mkl@pengutronix.de>
#
# See CREDITS for details about who has contributed to this project.
#
@@ -16,12 +17,11 @@ PACKAGES-$(PTXCONF_ETHTOOL) += ethtool
#
# Paths and names
#
-ETHTOOL_VERSION := 6+20090323.orig
+ETHTOOL_VERSION := 2.6.33
ETHTOOL_SUFFIX := tar.gz
ETHTOOL := ethtool-$(ETHTOOL_VERSION)
-ETHTOOL_TARBALL := ethtool_$(ETHTOOL_VERSION).$(ETHTOOL_SUFFIX)
-ETHTOOL_URL := $(PTXCONF_SETUP_DEBMIRROR)/pool/main/e/ethtool/$(ETHTOOL_TARBALL)
-ETHTOOL_SOURCE := $(SRCDIR)/$(ETHTOOL_TARBALL)
+ETHTOOL_URL := $(PTXCONF_SETUP_SFMIRROR)/gkernel/ethtool/2.6.33/$(ETHTOOL).$(ETHTOOL_SUFFIX)
+ETHTOOL_SOURCE := $(SRCDIR)/$(ETHTOOL).$(ETHTOOL_SUFFIX)
ETHTOOL_DIR := $(BUILDDIR)/$(ETHTOOL)
# ----------------------------------------------------------------------------