- cleanups.
- uClibc NFY...
Changed files:
iproute2-Makefile.patch -> 1.1
iproute2-a-flush-hack.patch -> 1.2
iproute2-disable_arpd.patch -> 1.2
iproute2-ipaddress.patch -> 1.2
iproute2-iprule.patch -> 1.1
iproute2-kernel_headers.patch -> 1.2
iproute2-kernellast.patch -> 1.2
iproute2-llh.patch -> 1.1
iproute2-make.patch -> 1.7
iproute2-no_libresolv.patch -> 1.2
iproute2-uspace.patch -> 1.2
iproute2.spec -> 1.105
--- /dev/null
+--- iproute2/Makefile.orig 2002-01-16 00:30:32.000000000 +0100
++++ iproute2/Makefile 2004-04-04 22:19:16.964825648 +0200
+@@ -4,13 +4,11 @@
+ CONFDIR=/etc/iproute2
+ DOCDIR=/usr/doc/iproute2
+
+-KERNEL_INCLUDE=/usr/src/linux/include
+-LIBC_INCLUDE=/usr/include
+
+ DEFINES= -DRESOLVE_HOSTNAMES
+
+ #options if you have a bind>=4.9.4 libresolv (or, maybe, glibc)
+-LDLIBS=-lresolv
++LDLIBS=
+ ADDLIB=
+
+ #options if you compile with libc5, and without a bind>=4.9.4 libresolv
+@@ -23,19 +21,9 @@
+ #options for ipx
+ ADDLIB+=ipx_ntop.o ipx_pton.o
+
+-ifeq ($(LIBC_INCLUDE)/socketbits.h,$(wildcard $(LIBC_INCLUDE)/socketbits.h))
+- ifeq ($(LIBC_INCLUDE)/net/if_packet.h,$(wildcard $(LIBC_INCLUDE)/net/if_packet.h))
+- GLIBCFIX=-I../include-glibc -include ../include-glibc/glibc-bugs.h
+- endif
+-endif
+-ifeq ($(LIBC_INCLUDE)/bits/socket.h,$(wildcard $(LIBC_INCLUDE)/bits/socket.h))
+- GLIBCFIX=-I../include-glibc -I/usr/include/db3 -include ../include-glibc/glibc-bugs.h
+-endif
+-
+-
+ CC = gcc
+-CCOPTS = -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g
+-CFLAGS = $(CCOPTS) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(DEFINES)
++CCOPTS = -D_GNU_SOURCE $(OPT) -Wstrict-prototypes -Wall -g
++CFLAGS = $(CCOPTS) -I../include $(DEFINES)
+
+ LDLIBS += -L../lib -lnetlink -lutil
+
+@@ -43,20 +31,10 @@
+
+ LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a
+
+-all: check-kernel
+- @set -e; \
++all:
+ for i in $(SUBDIRS); \
+ do $(MAKE) -C $$i; done
+
+-check-kernel:
+-ifeq ($(KERNEL_INCLUDE),)
+- @echo "Please, set correct KERNEL_INCLUDE"; false
+-else
+- @set -e; \
+- if [ ! -r $(KERNEL_INCLUDE)/linux/autoconf.h ]; then \
+- echo "Please, compile the kernel first"; false; fi
+-endif
+-
+ install: all
+ install -m 0755 -d $(DESTDIR)$(SBINDIR)
+ install -m 0755 -d $(DESTDIR)$(CONFDIR)
+--- iproute2/misc/Makefile.orig 2002-01-16 00:30:32.000000000 +0100
++++ iproute2/misc/Makefile 2004-04-04 22:23:44.718120960 +0200
+@@ -6,7 +6,7 @@
+ RTSTATOBJ=rtstat.o
+
+ ALLOBJ=$(SSOBJ) $(NSTATOBJ) $(IFSTATOBJ) $(RTACCTOBJ) $(ARPDOBJ) $(RTSTATOBJ)
+-TARGETS=ss nstat ifstat rtacct arpd rtstat
++TARGETS=ss nstat ifstat rtacct rtstat
+
+ all: $(TARGETS)
+
+++ /dev/null
-diff -urN iproute2.org/ip/ipaddress.c iproute2/ip/ipaddress.c
---- iproute2.org/ip/ipaddress.c 2004-03-04 23:00:41.050515248 +0100
-+++ iproute2/ip/ipaddress.c 2004-03-04 23:08:08.810575433 +0100
-@@ -603,7 +603,7 @@
- fprintf(stderr, "Flush terminated\n");
- exit(1);
- }
-- if (filter.flushed == 0) {
-+ if (filter.flushed == 0 || round > 10000) {
- if (round == 0) {
- fprintf(stderr, "Nothing to flush.\n");
- } else if (show_stats)
+++ /dev/null
-diff -urN iproute2/misc/Makefile.orig iproute2/misc/Makefile
---- iproute2/misc/Makefile.orig Sat Sep 27 15:18:41 2003
-+++ iproute2/misc/Makefile Sat Sep 27 15:18:55 2003
-@@ -6,7 +6,7 @@
- RTSTATOBJ=rtstat.o
-
- ALLOBJ=$(SSOBJ) $(NSTATOBJ) $(IFSTATOBJ) $(RTACCTOBJ) $(ARPDOBJ) $(RTSTATOBJ)
--TARGETS=ss nstat ifstat rtacct arpd rtstat
-+TARGETS=ss nstat ifstat rtacct rtstat
-
- all: $(TARGETS)
-
---- iproute2/ip/ipaddress.orig.c Sat Feb 21 00:29:56 2004
-+++ iproute2/ip/ipaddress.c Sat Feb 21 00:30:42 2004
-@@ -222,7 +222,7 @@
+--- iproute2/ip/ipaddress.c.orig 2001-08-23 06:07:46.000000000 +0200
++++ iproute2/ip/ipaddress.c 2004-04-04 22:56:52.306961528 +0200
+@@ -220,9 +220,9 @@
+ s = &slocal;
+ }
fprintf(fp, "%s", _SL_);
- fprintf(fp, " RX: bytes packets errors dropped overrun mcast %s%s",
+- fprintf(fp, " RX: bytes packets errors dropped overrun mcast %s%s",
++ fprintf(fp, " RX: bytes packets errors dropped overrun mcast %s%s",
s->rx_compressed ? "compressed" : "", _SL_);
-- fprintf(fp, " %-14llu %-8lu %-7lu %-7lu %-7lu %-7lu",
+- fprintf(fp, " %-10lu %-8lu %-7lu %-7lu %-7lu %-7lu",
+ fprintf(fp, " %-14lu %-8lu %-7lu %-7lu %-7lu %-7lu",
s->rx_bytes, s->rx_packets, s->rx_errors,
s->rx_dropped, s->rx_over_errors,
s->multicast
-@@ -243,7 +243,7 @@
+@@ -232,7 +232,7 @@
+ if (show_stats > 1) {
+ fprintf(fp, "%s", _SL_);
+ fprintf(fp, " RX errors: length crc frame fifo missed%s", _SL_);
+- fprintf(fp, " %-7lu %-7lu %-7lu %-7lu %-7lu",
++ fprintf(fp, " %-7lu %-7lu %-7lu %-7lu %-7lu",
+ s->rx_length_errors,
+ s->rx_crc_errors,
+ s->rx_frame_errors,
+@@ -241,9 +241,9 @@
+ );
+ }
fprintf(fp, "%s", _SL_);
- fprintf(fp, " TX: bytes packets errors dropped carrier collsns %s%s",
+- fprintf(fp, " TX: bytes packets errors dropped carrier collsns %s%s",
++ fprintf(fp, " TX: bytes packets errors dropped carrier collsns %s%s",
s->tx_compressed ? "compressed" : "", _SL_);
-- fprintf(fp, " %-14llu %-8lu %-7lu %-7lu %-7lu %-7lu",
+- fprintf(fp, " %-10lu %-8lu %-7lu %-7lu %-7lu %-7lu",
+ fprintf(fp, " %-14lu %-8lu %-7lu %-7lu %-7lu %-7lu",
s->tx_bytes, s->tx_packets, s->tx_errors,
s->tx_dropped, s->tx_carrier_errors, s->collisions);
if (s->tx_compressed)
+@@ -251,7 +251,7 @@
+ if (show_stats > 1) {
+ fprintf(fp, "%s", _SL_);
+ fprintf(fp, " TX errors: aborted fifo window heartbeat%s", _SL_);
+- fprintf(fp, " %-7lu %-7lu %-7lu %-7lu",
++ fprintf(fp, " %-7lu %-7lu %-7lu %-7lu",
+ s->tx_aborted_errors,
+ s->tx_fifo_errors,
+ s->tx_window_errors,
+@@ -603,7 +603,7 @@
+ fprintf(stderr, "Flush terminated\n");
+ exit(1);
+ }
+- if (filter.flushed == 0) {
++ if (filter.flushed == 0 || round > 10000) {
+ if (round == 0) {
+ fprintf(stderr, "Nothing to flush.\n");
+ } else if (show_stats)
---- iproute2/misc/ss.c.ss 2002-01-10 01:11:43.000000000 +0100
-+++ iproute2/misc/ss.c 2003-10-23 16:33:29.000000000 +0200
-@@ -33,7 +33,7 @@
- #include "tcp_diag.h"
- #include "SNAPSHOT.h"
-
--#include <linux/tcp.h>
-+#include <netinet/tcp.h>
-
- int resolve_hosts = 0;
- int resolve_services = 1;
---- iproute2/include-glibc/glibc-bugs.h.glibc22 Tue Oct 10 20:12:59 2000
-+++ iproute2/include-glibc/glibc-bugs.h Fri Mar 15 00:32:59 2002
-@@ -12,8 +12,8 @@
-
- #include <linux/types.h>
-
--typedef __u16 in_port_t;
--typedef __u32 in_addr_t;
-+/* typedef __u16 in_port_t; */
-+/* typedef __u32 in_addr_t; */
-
- #endif
-
--- iproute2/ip/iprule.c.fwhex Sun Apr 16 13:42:51 2000
+++ iproute2/ip/iprule.c Fri May 24 22:22:21 2002
@@ -120,7 +120,7 @@
+++ /dev/null
-diff -durN -x '*~' iproute2.orig/Makefile iproute2/Makefile
---- iproute2.orig/Makefile 2004-12-20 16:30:45.000000000 +0100
-+++ iproute2/Makefile 2004-12-20 17:51:46.337549648 +0100
-@@ -35,7 +35,7 @@
-
- CC = gcc
- CCOPTS = -D_GNU_SOURCE $(OPT) -Wstrict-prototypes -Wall -g
--CFLAGS = $(CCOPTS) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(DEFINES)
-+CFLAGS = $(CCOPTS) -include ../kernel-headers/kernel_headers_fix.h $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(DEFINES)
-
- LDLIBS += -L../lib -lnetlink -lutil
-
-diff -durN -x '*~' iproute2.orig/include-glibc/glibc-bugs.h iproute2/include-glibc/glibc-bugs.h
---- iproute2.orig/include-glibc/glibc-bugs.h 2004-12-20 16:30:45.000000000 +0100
-+++ iproute2/include-glibc/glibc-bugs.h 2004-12-20 17:51:01.345389496 +0100
-@@ -10,7 +10,7 @@
- #define __KERNEL_STRICT_NAMES 1
- #endif
-
--#include <linux/types.h>
-+/*#include <linux/types.h>*/
-
- /* typedef __u16 in_port_t; */
- /* typedef __u32 in_addr_t; */
-diff -durN -x '*~' iproute2.orig/kernel-headers/kernel_headers_fix.h iproute2/kernel-headers/kernel_headers_fix.h
---- iproute2.orig/kernel-headers/kernel_headers_fix.h 1970-01-01 01:00:00.000000000 +0100
-+++ iproute2/kernel-headers/kernel_headers_fix.h 2004-12-20 17:51:01.345389496 +0100
-@@ -0,0 +1,4 @@
-+
-+#define __constant_htons htons
-+#include <asm/types.h>
-+
-diff -durN -x '*~' iproute2.orig/kernel-headers/linux/autoconf.h iproute2/kernel-headers/linux/autoconf.h
---- iproute2.orig/kernel-headers/linux/autoconf.h 1970-01-01 01:00:00.000000000 +0100
-+++ iproute2/kernel-headers/linux/autoconf.h 2004-12-20 17:51:01.346389344 +0100
-@@ -0,0 +1,60 @@
-+/*
-+ * Automatically generated C config: don't edit
-+ */
-+#define AUTOCONF_INCLUDED
-+#define CONFIG_PROC_FS 1
-+#define CONFIG_PACKET 1
-+#define CONFIG_PACKET_MMAP 1
-+#define CONFIG_NETLINK_DEV_MODULE 1
-+#define CONFIG_UNIX 1
-+#define CONFIG_NET_KEY_MODULE 1
-+#define CONFIG_INET 1
-+#define CONFIG_IP_MULTICAST 1
-+#define CONFIG_IP_ADVANCED_ROUTER 1
-+#define CONFIG_IP_MULTIPLE_TABLES 1
-+#define CONFIG_IP_ROUTE_FWMARK 1
-+#define CONFIG_IP_ROUTE_NAT 1
-+#define CONFIG_IP_ROUTE_MULTIPATH 1
-+#define CONFIG_IP_ROUTE_TOS 1
-+#define CONFIG_IP_ROUTE_VERBOSE 1
-+#define CONFIG_IP_PNP 1
-+#define CONFIG_IP_PNP_DHCP 1
-+#define CONFIG_IP_PNP_BOOTP 1
-+#define CONFIG_IP_PNP_RARP 1
-+#define CONFIG_NET_IPIP_MODULE 1
-+#define CONFIG_NET_IPGRE_MODULE 1
-+#define CONFIG_NET_IPGRE_BROADCAST 1
-+#define CONFIG_IP_MROUTE 1
-+#define CONFIG_IP_PIMSM_V1 1
-+#define CONFIG_IP_PIMSM_V2 1
-+#undef CONFIG_ARPD
-+#undef CONFIG_INET_ECN
-+#define CONFIG_SYN_COOKIES 1
-+#define CONFIG_INET_AH_MODULE 1
-+#define CONFIG_INET_ESP_MODULE 1
-+#define CONFIG_INET_IPCOMP_MODULE 1
-+#define CONFIG_NET_SCHED 1
-+#define CONFIG_NET_SCH_CBQ_MODULE 1
-+#define CONFIG_NET_SCH_HTB_MODULE 1
-+#define CONFIG_NET_SCH_CSZ_MODULE 1
-+#define CONFIG_NET_SCH_ATM_MODULE 1
-+#define CONFIG_NET_SCH_PRIO_MODULE 1
-+#define CONFIG_NET_SCH_RED_MODULE 1
-+#define CONFIG_NET_SCH_SFQ_MODULE 1
-+#define CONFIG_NET_SCH_TEQL_MODULE 1
-+#define CONFIG_NET_SCH_TBF_MODULE 1
-+#define CONFIG_NET_SCH_GRED_MODULE 1
-+#define CONFIG_NET_SCH_DSMARK_MODULE 1
-+#define CONFIG_NET_SCH_INGRESS_MODULE 1
-+#define CONFIG_NET_QOS 1
-+#define CONFIG_NET_ESTIMATOR 1
-+#define CONFIG_NET_CLS 1
-+#define CONFIG_NET_CLS_TCINDEX_MODULE 1
-+#define CONFIG_NET_CLS_ROUTE4_MODULE 1
-+#define CONFIG_NET_CLS_ROUTE 1
-+#define CONFIG_NET_CLS_FW_MODULE 1
-+#define CONFIG_NET_CLS_U32_MODULE 1
-+#define CONFIG_NET_CLS_RSVP_MODULE 1
-+#define CONFIG_NET_CLS_RSVP6_MODULE 1
-+#define CONFIG_NET_CLS_POLICE 1
-+#define CONFIG_IPV6_MODULE 1
-diff -durN -x '*~' iproute2.orig/kernel-headers/linux/config.h iproute2/kernel-headers/linux/config.h
---- iproute2.orig/kernel-headers/linux/config.h 1970-01-01 01:00:00.000000000 +0100
-+++ iproute2/kernel-headers/linux/config.h 2004-12-20 17:51:01.346389344 +0100
-@@ -0,0 +1,6 @@
-+#ifndef _LINUX_CONFIG_H
-+#define _LINUX_CONFIG_H
-+
-+#include <linux/autoconf.h>
-+
-+#endif
-diff -durN -x '*~' iproute2.orig/kernel-headers/linux/pkt_sched.h iproute2/kernel-headers/linux/pkt_sched.h
---- iproute2.orig/kernel-headers/linux/pkt_sched.h 1970-01-01 01:00:00.000000000 +0100
-+++ iproute2/kernel-headers/linux/pkt_sched.h 2004-12-20 17:51:01.347389192 +0100
-@@ -0,0 +1,526 @@
-+#ifndef __LINUX_PKT_SCHED_H
-+#define __LINUX_PKT_SCHED_H
-+
-+/* Logical priority bands not depending on specific packet scheduler.
-+ Every scheduler will map them to real traffic classes, if it has
-+ no more precise mechanism to classify packets.
-+
-+ These numbers have no special meaning, though their coincidence
-+ with obsolete IPv6 values is not occasional :-). New IPv6 drafts
-+ preferred full anarchy inspired by diffserv group.
-+
-+ Note: TC_PRIO_BESTEFFORT does not mean that it is the most unhappy
-+ class, actually, as rule it will be handled with more care than
-+ filler or even bulk.
-+ */
-+
-+#define TC_PRIO_BESTEFFORT 0
-+#define TC_PRIO_FILLER 1
-+#define TC_PRIO_BULK 2
-+#define TC_PRIO_INTERACTIVE_BULK 4
-+#define TC_PRIO_INTERACTIVE 6
-+#define TC_PRIO_CONTROL 7
-+
-+#define TC_PRIO_MAX 15
-+
-+/* Generic queue statistics, available for all the elements.
-+ Particular schedulers may have also their private records.
-+ */
-+
-+struct tc_stats
-+{
-+ __u64 bytes; /* NUmber of enqueues bytes */
-+ __u32 packets; /* Number of enqueued packets */
-+ __u32 drops; /* Packets dropped because of lack of resources */
-+ __u32 overlimits; /* Number of throttle events when this
-+ * flow goes out of allocated bandwidth */
-+ __u32 bps; /* Current flow byte rate */
-+ __u32 pps; /* Current flow packet rate */
-+ __u32 qlen;
-+ __u32 backlog;
-+#ifdef __KERNEL__
-+ spinlock_t *lock;
-+#endif
-+};
-+
-+struct tc_estimator
-+{
-+ char interval;
-+ unsigned char ewma_log;
-+};
-+
-+/* "Handles"
-+ ---------
-+
-+ All the traffic control objects have 32bit identifiers, or "handles".
-+
-+ They can be considered as opaque numbers from user API viewpoint,
-+ but actually they always consist of two fields: major and
-+ minor numbers, which are interpreted by kernel specially,
-+ that may be used by applications, though not recommended.
-+
-+ F.e. qdisc handles always have minor number equal to zero,
-+ classes (or flows) have major equal to parent qdisc major, and
-+ minor uniquely identifying class inside qdisc.
-+
-+ Macros to manipulate handles:
-+ */
-+
-+#define TC_H_MAJ_MASK (0xFFFF0000U)
-+#define TC_H_MIN_MASK (0x0000FFFFU)
-+#define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK)
-+#define TC_H_MIN(h) ((h)&TC_H_MIN_MASK)
-+#define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK))
-+
-+#define TC_H_UNSPEC (0U)
-+#define TC_H_ROOT (0xFFFFFFFFU)
-+#define TC_H_INGRESS (0xFFFFFFF1U)
-+
-+struct tc_ratespec
-+{
-+ unsigned char cell_log;
-+ unsigned char __reserved;
-+ unsigned short feature;
-+ short addend;
-+ unsigned short mpu;
-+ __u32 rate;
-+};
-+
-+/* FIFO section */
-+
-+struct tc_fifo_qopt
-+{
-+ __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */
-+};
-+
-+/* PRIO section */
-+
-+#define TCQ_PRIO_BANDS 16
-+
-+struct tc_prio_qopt
-+{
-+ int bands; /* Number of bands */
-+ __u8 priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> PRIO band */
-+};
-+
-+/* CSZ section */
-+
-+struct tc_csz_qopt
-+{
-+ int flows; /* Maximal number of guaranteed flows */
-+ unsigned char R_log; /* Fixed point position for round number */
-+ unsigned char delta_log; /* Log of maximal managed time interval */
-+ __u8 priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> CSZ band */
-+};
-+
-+struct tc_csz_copt
-+{
-+ struct tc_ratespec slice;
-+ struct tc_ratespec rate;
-+ struct tc_ratespec peakrate;
-+ __u32 limit;
-+ __u32 buffer;
-+ __u32 mtu;
-+};
-+
-+enum
-+{
-+ TCA_CSZ_UNSPEC,
-+ TCA_CSZ_PARMS,
-+ TCA_CSZ_RTAB,
-+ TCA_CSZ_PTAB,
-+};
-+
-+/* TBF section */
-+
-+struct tc_tbf_qopt
-+{
-+ struct tc_ratespec rate;
-+ struct tc_ratespec peakrate;
-+ __u32 limit;
-+ __u32 buffer;
-+ __u32 mtu;
-+};
-+
-+enum
-+{
-+ TCA_TBF_UNSPEC,
-+ TCA_TBF_PARMS,
-+ TCA_TBF_RTAB,
-+ TCA_TBF_PTAB,
-+};
-+
-+
-+/* TEQL section */
-+
-+/* TEQL does not require any parameters */
-+
-+/* SFQ section */
-+
-+enum
-+{
-+ TCA_SFQ_HASH_CLASSIC,
-+ TCA_SFQ_HASH_DST,
-+ TCA_SFQ_HASH_SRC,
-+};
-+
-+struct tc_sfq_qopt
-+{
-+ unsigned quantum; /* Bytes per round allocated to flow */
-+ int perturb_period; /* Period of hash perturbation */
-+ __u32 limit; /* Maximal packets in queue */
-+ unsigned divisor; /* Hash divisor */
-+ unsigned flows; /* Maximal number of flows */
-+ unsigned hash_kind; /* Hash function to use for flow identification */
-+};
-+
-+/*
-+ * NOTE: limit, divisor and flows are hardwired to code at the moment.
-+ *
-+ * limit=flows=128, divisor=1024;
-+ *
-+ * The only reason for this is efficiency, it is possible
-+ * to change these parameters in compile time.
-+ *
-+ * If you need to play with this values use esfq.
-+ */
-+
-+/* RED section */
-+
-+enum
-+{
-+ TCA_RED_UNSPEC,
-+ TCA_RED_PARMS,
-+ TCA_RED_STAB,
-+};
-+
-+struct tc_red_qopt
-+{
-+ __u32 limit; /* HARD maximal queue length (bytes) */
-+ __u32 qth_min; /* Min average length threshold (bytes) */
-+ __u32 qth_max; /* Max average length threshold (bytes) */
-+ unsigned char Wlog; /* log(W) */
-+ unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
-+ unsigned char Scell_log; /* cell size for idle damping */
-+ unsigned char flags;
-+#define TC_RED_ECN 1
-+};
-+
-+struct tc_red_xstats
-+{
-+ __u32 early; /* Early drops */
-+ __u32 pdrop; /* Drops due to queue limits */
-+ __u32 other; /* Drops due to drop() calls */
-+ __u32 marked; /* Marked packets */
-+};
-+
-+/* GRED section */
-+
-+#define MAX_DPs 16
-+
-+enum
-+{
-+ TCA_GRED_UNSPEC,
-+ TCA_GRED_PARMS,
-+ TCA_GRED_STAB,
-+ TCA_GRED_DPS,
-+};
-+
-+#define TCA_SET_OFF TCA_GRED_PARMS
-+struct tc_gred_qopt
-+{
-+ __u32 limit; /* HARD maximal queue length (bytes)
-+*/
-+ __u32 qth_min; /* Min average length threshold (bytes)
-+*/
-+ __u32 qth_max; /* Max average length threshold (bytes)
-+*/
-+ __u32 DP; /* upto 2^32 DPs */
-+ __u32 backlog;
-+ __u32 qave;
-+ __u32 forced;
-+ __u32 early;
-+ __u32 other;
-+ __u32 pdrop;
-+
-+ unsigned char Wlog; /* log(W) */
-+ unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
-+ unsigned char Scell_log; /* cell size for idle damping */
-+ __u8 prio; /* prio of this VQ */
-+ __u32 packets;
-+ __u32 bytesin;
-+};
-+/* gred setup */
-+struct tc_gred_sopt
-+{
-+ __u32 DPs;
-+ __u32 def_DP;
-+ __u8 grio;
-+};
-+
-+/* HTB section */
-+#define TC_HTB_NUMPRIO 8
-+#define TC_HTB_MAXDEPTH 8
-+#define TC_HTB_PROTOVER 3 /* the same as HTB and TC's major */
-+
-+struct tc_htb_opt
-+{
-+ struct tc_ratespec rate;
-+ struct tc_ratespec ceil;
-+ __u32 buffer;
-+ __u32 cbuffer;
-+ __u32 quantum;
-+ __u32 level; /* out only */
-+ __u32 prio;
-+};
-+struct tc_htb_glob
-+{
-+ __u32 version; /* to match HTB/TC */
-+ __u32 rate2quantum; /* bps->quantum divisor */
-+ __u32 defcls; /* default class number */
-+ __u32 debug; /* debug flags */
-+
-+ /* stats */
-+ __u32 direct_pkts; /* count of non shapped packets */
-+};
-+enum
-+{
-+ TCA_HTB_UNSPEC,
-+ TCA_HTB_PARMS,
-+ TCA_HTB_INIT,
-+ TCA_HTB_CTAB,
-+ TCA_HTB_RTAB,
-+};
-+struct tc_htb_xstats
-+{
-+ __u32 lends;
-+ __u32 borrows;
-+ __u32 giants; /* too big packets (rate will not be accurate) */
-+ __u32 tokens;
-+ __u32 ctokens;
-+};
-+
-+/* CBQ section */
-+
-+#define TC_CBQ_MAXPRIO 8
-+#define TC_CBQ_MAXLEVEL 8
-+#define TC_CBQ_DEF_EWMA 5
-+
-+struct tc_cbq_lssopt
-+{
-+ unsigned char change;
-+ unsigned char flags;
-+#define TCF_CBQ_LSS_BOUNDED 1
-+#define TCF_CBQ_LSS_ISOLATED 2
-+ unsigned char ewma_log;
-+ unsigned char level;
-+#define TCF_CBQ_LSS_FLAGS 1
-+#define TCF_CBQ_LSS_EWMA 2
-+#define TCF_CBQ_LSS_MAXIDLE 4
-+#define TCF_CBQ_LSS_MINIDLE 8
-+#define TCF_CBQ_LSS_OFFTIME 0x10
-+#define TCF_CBQ_LSS_AVPKT 0x20
-+ __u32 maxidle;
-+ __u32 minidle;
-+ __u32 offtime;
-+ __u32 avpkt;
-+};
-+
-+struct tc_cbq_wrropt
-+{
-+ unsigned char flags;
-+ unsigned char priority;
-+ unsigned char cpriority;
-+ unsigned char __reserved;
-+ __u32 allot;
-+ __u32 weight;
-+};
-+
-+struct tc_cbq_ovl
-+{
-+ unsigned char strategy;
-+#define TC_CBQ_OVL_CLASSIC 0
-+#define TC_CBQ_OVL_DELAY 1
-+#define TC_CBQ_OVL_LOWPRIO 2
-+#define TC_CBQ_OVL_DROP 3
-+#define TC_CBQ_OVL_RCLASSIC 4
-+ unsigned char priority2;
-+ __u32 penalty;
-+};
-+
-+struct tc_cbq_police
-+{
-+ unsigned char police;
-+ unsigned char __res1;
-+ unsigned short __res2;
-+};
-+
-+struct tc_cbq_fopt
-+{
-+ __u32 split;
-+ __u32 defmap;
-+ __u32 defchange;
-+};
-+
-+struct tc_cbq_xstats
-+{
-+ __u32 borrows;
-+ __u32 overactions;
-+ __s32 avgidle;
-+ __s32 undertime;
-+};
-+
-+enum
-+{
-+ TCA_CBQ_UNSPEC,
-+ TCA_CBQ_LSSOPT,
-+ TCA_CBQ_WRROPT,
-+ TCA_CBQ_FOPT,
-+ TCA_CBQ_OVL_STRATEGY,
-+ TCA_CBQ_RATE,
-+ TCA_CBQ_RTAB,
-+ TCA_CBQ_POLICE,
-+};
-+
-+#define TCA_CBQ_MAX TCA_CBQ_POLICE
-+
-+/* dsmark section */
-+
-+enum {
-+ TCA_DSMARK_UNSPEC,
-+ TCA_DSMARK_INDICES,
-+ TCA_DSMARK_DEFAULT_INDEX,
-+ TCA_DSMARK_SET_TC_INDEX,
-+ TCA_DSMARK_MASK,
-+ TCA_DSMARK_VALUE
-+};
-+
-+#define TCA_DSMARK_MAX TCA_DSMARK_VALUE
-+
-+/* ATM section */
-+
-+enum {
-+ TCA_ATM_UNSPEC,
-+ TCA_ATM_FD, /* file/socket descriptor */
-+ TCA_ATM_PTR, /* pointer to descriptor - later */
-+ TCA_ATM_HDR, /* LL header */
-+ TCA_ATM_EXCESS, /* excess traffic class (0 for CLP) */
-+ TCA_ATM_ADDR, /* PVC address (for output only) */
-+ TCA_ATM_STATE /* VC state (ATM_VS_*; for output only) */
-+};
-+
-+#define TCA_ATM_MAX TCA_ATM_STATE
-+
-+/* WRR section */
-+
-+/* Other includes */
-+#include <linux/if_ether.h>
-+
-+// A sub weight and of a class
-+// All numbers are represented as parts of (2^64-1).
-+struct tc_wrr_class_weight {
-+ __u64 val; // Current value (0 is not valid)
-+ __u64 decr; // Value pr bytes (2^64-1 is not valid)
-+ __u64 incr; // Value pr seconds (2^64-1 is not valid)
-+ __u64 min; // Minimal value (0 is not valid)
-+ __u64 max; // Minimal value (0 is not valid)
-+
-+ // The time where the above information was correct:
-+ time_t tim;
-+};
-+
-+// Pakcet send when modifying a class:
-+struct tc_wrr_class_modf {
-+ // Not-valid values are ignored.
-+ struct tc_wrr_class_weight weight1;
-+ struct tc_wrr_class_weight weight2;
-+};
-+
-+// Packet returned when quering a class:
-+struct tc_wrr_class_stats {
-+ char used; // If this is false the information below is invalid
-+
-+ struct tc_wrr_class_modf class_modf;
-+
-+ unsigned char addr[ETH_ALEN];
-+ char usemac; // True if addr is a MAC address, else it is an IP address
-+ // (this value is only for convience, it is always the same
-+ // value as in the qdisc)
-+ int heappos; // Current heap position or 0 if not in heap
-+ __u64 penal_ls; // Penalty value in heap (ls)
-+ __u64 penal_ms; // Penalty value in heap (ms)
-+};
-+
-+// Qdisc-wide penalty information (boolean values - 2 not valid)
-+struct tc_wrr_qdisc_weight {
-+ char weight_mode; // 0=No automatic change to weight
-+ // 1=Decrease normally
-+ // 2=Also multiply with number of machines
-+ // 3=Instead multiply with priority divided
-+ // with priority of the other.
-+ // -1=no change
-+};
-+
-+// Packet send when modifing a qdisc:
-+struct tc_wrr_qdisc_modf {
-+ // Not-valid values are ignored:
-+ struct tc_wrr_qdisc_weight weight1;
-+ struct tc_wrr_qdisc_weight weight2;
-+};
-+
-+// Packet send when creating a qdisc:
-+struct tc_wrr_qdisc_crt {
-+ struct tc_wrr_qdisc_modf qdisc_modf;
-+
-+ char srcaddr; // 1=lookup source, 0=lookup destination
-+ char usemac; // 1=Classify on MAC addresses, 0=classify on IP
-+ char usemasq; // 1=Classify based on masqgrading - only valid
-+ // if usemac is zero
-+ int bands_max; // Maximal number of bands (i.e.: classes)
-+ int proxy_maxconn; // If differnt from 0 then we support proxy remapping
-+ // of packets. And this is the number of maximal
-+ // concurrent proxy connections.
-+};
-+
-+// Packet returned when quering a qdisc:
-+struct tc_wrr_qdisc_stats {
-+ struct tc_wrr_qdisc_crt qdisc_crt;
-+ int proxy_curconn;
-+ int nodes_in_heap; // Current number of bands wanting to send something
-+ int bands_cur; // Current number of bands used (i.e.: MAC/IP addresses seen)
-+ int bands_reused; // Number of times this band has been reused.
-+ int packets_requed; // Number of times packets have been requeued.
-+ __u64 priosum; // Sum of priorities in heap where 1 is 2^32
-+};
-+
-+struct tc_wrr_qdisc_modf_std {
-+ // This indicates which of the tc_wrr_qdisc_modf structers this is:
-+ char proxy; // 0=This struct
-+
-+ // Should we also change a class?
-+ char change_class;
-+
-+ // Only valid if change_class is false
-+ struct tc_wrr_qdisc_modf qdisc_modf;
-+
-+ // Only valid if change_class is true:
-+ unsigned char addr[ETH_ALEN]; // Class to change (non-used bytes should be 0)
-+ struct tc_wrr_class_modf class_modf; // The change
-+};
-+
-+// Used for proxyrempping:
-+struct tc_wrr_qdisc_modf_proxy {
-+ // This indicates which of the tc_wrr_qdisc_modf structers this is:
-+ char proxy; // 1=This struct
-+
-+ // This is 1 if the proxyremap information should be reset
-+ char reset;
-+
-+ // changec is the number of elements in changes.
-+ int changec;
-+
-+ // This is an array of type ProxyRemapBlock:
-+ long changes[0];
-+};
-+
-+#endif
+++ /dev/null
---- iproute2/ip/ipaddress.c.orig Tue Dec 2 14:13:26 2003
-+++ iproute2/ip/ipaddress.c Tue Dec 2 14:19:45 2003
-@@ -20,13 +20,13 @@
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
--#include <linux/netdevice.h>
--#include <linux/if_arp.h>
--#include <linux/sockios.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <string.h>
- #include <fnmatch.h>
-+#include <linux/netdevice.h>
-+#include <linux/if_arp.h>
-+#include <linux/sockios.h>
-
- #include "rt_names.h"
- #include "utils.h"
---- iproute2/ip/iptunnel.c.orig Tue Dec 2 14:13:26 2003
-+++ iproute2/ip/iptunnel.c Tue Dec 2 14:23:37 2003
-@@ -24,11 +24,11 @@
- #include <fcntl.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
--#include <linux/if.h>
--#include <linux/if_arp.h>
- #include <netinet/in.h>
- #include <netinet/ip.h>
- #include <arpa/inet.h>
-+#include <linux/if.h>
-+#include <linux/if_arp.h>
- #include <linux/if_tunnel.h>
- #include <asm/byteorder.h>
-
---- iproute2/ip/ipmaddr.c.orig Mon Dec 24 23:33:02 2001
-+++ iproute2/ip/ipmaddr.c Tue Dec 2 14:23:59 2003
-@@ -17,13 +17,13 @@
- #include <fcntl.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
-+#include <string.h>
- #include <linux/netdevice.h>
- #include <linux/if.h>
- #include <linux/if_arp.h>
- #include <linux/sockios.h>
--#include <netinet/in.h>
--#include <arpa/inet.h>
--#include <string.h>
-
- #include "rt_names.h"
- #include "utils.h"
---- iproute2/ip/ipmroute.c.orig Mon Dec 24 22:38:55 2001
-+++ iproute2/ip/ipmroute.c Tue Dec 2 14:24:18 2003
-@@ -17,13 +17,13 @@
- #include <fcntl.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
-+#include <string.h>
- #include <linux/netdevice.h>
- #include <linux/if.h>
- #include <linux/if_arp.h>
- #include <linux/sockios.h>
--#include <netinet/in.h>
--#include <arpa/inet.h>
--#include <string.h>
-
- #include "utils.h"
-
---- iproute2/lib/ll_types.c.orig Wed Dec 26 00:01:31 2001
-+++ iproute2/lib/ll_types.c Tue Dec 2 14:18:59 2003
-@@ -17,12 +17,12 @@
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
--#include <linux/netdevice.h>
--#include <linux/if_arp.h>
--#include <linux/sockios.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <string.h>
-+#include <linux/netdevice.h>
-+#include <linux/if_arp.h>
-+#include <linux/sockios.h>
-
- char * ll_type_n2a(int type, char *buf, int len)
- {
---- iproute2/lib/ll_proto.c.orig Wed Dec 26 00:18:35 2001
-+++ iproute2/lib/ll_proto.c Tue Dec 2 14:18:54 2003
-@@ -17,12 +17,12 @@
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
--#include <linux/netdevice.h>
--#include <linux/if_arp.h>
--#include <linux/sockios.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <string.h>
-+#include <linux/netdevice.h>
-+#include <linux/if_arp.h>
-+#include <linux/sockios.h>
-
- #include "utils.h"
-
---- iproute2/lib/ll_addr.c.orig Sun Apr 16 19:42:52 2000
-+++ iproute2/lib/ll_addr.c Tue Dec 2 14:19:16 2003
-@@ -17,12 +17,12 @@
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
--#include <linux/netdevice.h>
--#include <linux/if_arp.h>
--#include <linux/sockios.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <string.h>
-+#include <linux/netdevice.h>
-+#include <linux/if_arp.h>
-+#include <linux/sockios.h>
-
- #include "utils.h"
-
--- /dev/null
+--- iproute2/include/rt_names.h.orig 2000-04-16 19:42:50.000000000 +0200
++++ iproute2/include/rt_names.h 2004-04-04 22:27:06.235485664 +0200
+@@ -1,6 +1,8 @@
+ #ifndef RT_NAMES_H_
+ #define RT_NAMES_H_ 1
+
++#include <asm/types.h>
++
+ const char* rtnl_rtprot_n2a(int id, char *buf, int len);
+ const char* rtnl_rtscope_n2a(int id, char *buf, int len);
+ const char* rtnl_rttable_n2a(int id, char *buf, int len);
+--- iproute2/include/utils.h.orig 2002-01-08 20:41:16.000000000 +0100
++++ iproute2/include/utils.h 2004-04-04 22:27:25.495557688 +0200
+@@ -1,6 +1,7 @@
+ #ifndef __UTILS_H__
+ #define __UTILS_H__ 1
+
++#include <asm/byteorder.h>
+ #include <asm/types.h>
+ #include <resolv.h>
+
+--- iproute2/lib/rt_names.c.orig 2000-04-16 19:42:52.000000000 +0200
++++ iproute2/lib/rt_names.c 2004-04-04 22:33:06.876659872 +0200
+@@ -16,6 +16,7 @@
+ #include <fcntl.h>
+ #include <string.h>
+ #include <sys/time.h>
++#include "rt_names.h"
+
+ static void rtnl_tab_initialize(char *file, char **tab, int size)
+ {
+@@ -79,7 +80,7 @@
+ rtnl_rtprot_tab, 256);
+ }
+
+-char * rtnl_rtprot_n2a(int id, char *buf, int len)
++const char * rtnl_rtprot_n2a(int id, char *buf, int len)
+ {
+ if (id<0 || id>=256) {
+ snprintf(buf, len, "%d", id);
+@@ -95,7 +96,7 @@
+ return buf;
+ }
+
+-int rtnl_rtprot_a2n(__u32 *id, char *arg)
++int rtnl_rtprot_a2n(int *id, char *arg)
+ {
+ static char *cache = NULL;
+ static unsigned long res;
+@@ -146,7 +147,7 @@
+ rtnl_rtscope_tab, 256);
+ }
+
+-char * rtnl_rtscope_n2a(int id, char *buf, int len)
++const char * rtnl_rtscope_n2a(int id, char *buf, int len)
+ {
+ if (id<0 || id>=256) {
+ snprintf(buf, len, "%d", id);
+@@ -162,7 +163,7 @@
+ return buf;
+ }
+
+-int rtnl_rtscope_a2n(__u32 *id, char *arg)
++int rtnl_rtscope_a2n(int *id, char *arg)
+ {
+ static char *cache = NULL;
+ static unsigned long res;
+@@ -209,7 +210,7 @@
+ rtnl_rtrealm_tab, 256);
+ }
+
+-char * rtnl_rtrealm_n2a(int id, char *buf, int len)
++const char * rtnl_rtrealm_n2a(int id, char *buf, int len)
+ {
+ if (id<0 || id>=256) {
+ snprintf(buf, len, "%d", id);
+@@ -275,7 +276,7 @@
+ rtnl_rttable_tab, 256);
+ }
+
+-char * rtnl_rttable_n2a(int id, char *buf, int len)
++const char * rtnl_rttable_n2a(int id, char *buf, int len)
+ {
+ if (id<0 || id>=256) {
+ snprintf(buf, len, "%d", id);
+@@ -291,7 +292,7 @@
+ return buf;
+ }
+
+-int rtnl_rttable_a2n(__u32 *id, char *arg)
++int rtnl_rttable_a2n(int *id, char *arg)
+ {
+ static char *cache = NULL;
+ static unsigned long res;
+@@ -337,7 +338,7 @@
+ rtnl_rtdsfield_tab, 256);
+ }
+
+-char * rtnl_dsfield_n2a(int id, char *buf, int len)
++const char * rtnl_dsfield_n2a(int id, char *buf, int len)
+ {
+ if (id<0 || id>=256) {
+ snprintf(buf, len, "%d", id);
+--- iproute2/misc/rtstat.c.orig 2001-12-24 22:44:30.000000000 +0100
++++ iproute2/misc/rtstat.c 2004-04-04 22:34:44.865763264 +0200
+@@ -14,6 +14,7 @@
+ */
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <unistd.h>
+ #include <getopt.h>
+
+--- iproute2/misc/ssfilter.y.orig 2001-12-25 21:07:50.000000000 +0100
++++ iproute2/misc/ssfilter.y 2004-04-04 22:40:40.134754168 +0200
+@@ -1,6 +1,7 @@
+ %{
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <malloc.h>
+ #include <string.h>
+ #include "ssfilter.h"
+++ /dev/null
-diff -urN iproute2/Makefile.orig iproute2/Makefile
---- iproute2/Makefile.orig Wed Jan 16 00:30:32 2002
-+++ iproute2/Makefile Wed Sep 24 18:54:04 2003
-@@ -25,16 +25,16 @@
-
- ifeq ($(LIBC_INCLUDE)/socketbits.h,$(wildcard $(LIBC_INCLUDE)/socketbits.h))
- ifeq ($(LIBC_INCLUDE)/net/if_packet.h,$(wildcard $(LIBC_INCLUDE)/net/if_packet.h))
-- GLIBCFIX=-I../include-glibc -include ../include-glibc/glibc-bugs.h
-+ GLIBCFIX=-include ../include-glibc/glibc-bugs.h
- endif
- endif
- ifeq ($(LIBC_INCLUDE)/bits/socket.h,$(wildcard $(LIBC_INCLUDE)/bits/socket.h))
-- GLIBCFIX=-I../include-glibc -I/usr/include/db3 -include ../include-glibc/glibc-bugs.h
-+ GLIBCFIX=-include ../include-glibc/glibc-bugs.h
- endif
-
-
- CC = gcc
--CCOPTS = -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g
-+CCOPTS = -D_GNU_SOURCE $(OPT) -Wstrict-prototypes -Wall -g
- CFLAGS = $(CCOPTS) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(DEFINES)
-
- LDLIBS += -L../lib -lnetlink -lutil
+++ /dev/null
---- iproute2/Makefile.orig Fri Oct 18 13:26:28 2002
-+++ iproute2/Makefile Fri Oct 18 13:32:23 2002
-@@ -5,7 +5,7 @@
- DEFINES= -DRESOLVE_HOSTNAMES
-
- #options if you have a bind>=4.9.4 libresolv (or, maybe, glibc)
--LDLIBS=-lresolv
-+LDLIBS=
- ADDLIB=
-
- #options if you compile with libc5, and without a bind>=4.9.4 libresolv
# Conditional build
%bcond_without doc # don't build documentation
%bcond_without tc # don't build tc program (it breaks static linkage)
-%bcond_without tc_esfq # build tc without esfq support (requires patched headers)
-%bcond_without tc_wrr # build tc without wrr support
%bcond_with uClibc # do some hacks to build with uClibc
#
Summary: Utility to control Networking behavior in 2.2.X kernels
Summary(pl): Narzêdzie do kontrolowania Sieci w kernelach 2.2
Summary(pt_BR): Ferramentas para roteamento avançado e configuração de interfaces de rede
Name: iproute2
-%define mainver 2.4.7
-%define snapshot ss020116
+%define mainver 2.4.7
+%define snapshot ss020116
Version: %{mainver}.%{snapshot}
Release: 16
License: GPL
# Source0-md5: 2c7e5f3a10e703745ecdc613f7a7d187
Source1: %{name}-owl-man.tar.bz2
# Source1-md5: cd4425df972a4ab001db31a5eb1c5da5
-Patch0: %{name}-make.patch
-Patch1: %{name}-no_libresolv.patch
-Patch2: %{name}-disable_arpd.patch
-Patch3: %{name}-uspace.patch
-Patch4: %{name}-diffserv-config.patch
-Patch5: %{name}-netlink.patch
-Patch6: %{name}-kernellast.patch
+Patch0: %{name}-Makefile.patch
+Patch1: %{name}-llh.patch
+Patch2: %{name}-diffserv-config.patch
+Patch3: %{name}-netlink.patch
+Patch4: %{name}-ipaddress.patch
+Patch5: %{name}-iprule.patch
# uClibc hacks
-Patch7: %{name}-uClibc.patch
-Patch8: htb3.6_tc.patch
-Patch9: %{name}-stats.patch
+Patch6: %{name}-uClibc.patch
# extensions
-Patch10: wrr-iproute2-2.2.4.patch
-Patch11: %{name}-2.2.4-now-ss001007-esfq.diff
-Patch12: %{name}-kernel_headers.patch
-Patch13: %{name}-ipaddress.patch
-Patch14: %{name}-a-flush-hack.patch
+Patch10: htb3.6_tc.patch
+Patch11: wrr-iproute2-2.2.4.patch
+Patch12: %{name}-2.2.4-now-ss001007-esfq.diff
BuildRequires: bison
+BuildRequires: linux-libc-headers >= 7:2.6.4.0-3
%if %{with doc}
BuildRequires: psutils
BuildRequires: sgml-tools
%prep
%setup -q -n %{name} -a1
+rm -rf include-glibc
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1
-%{?with_uClibc:%patch7 -p1}
-%patch8 -p1
-%patch9 -p1
-%{?with_tc_wrr:%patch10 -p1}
-%{?with_tc_esfq:%patch11 -p1}
+%{?with_uClibc:%patch6 -p1}
+%patch10 -p1
+%patch11 -p1
%patch12 -p1
-%patch13 -p1
-%patch14 -p1
%build
-WRRDEF=""
-%{?with_tc_wrr:grep -q tc_wrr_class_weight kernel-headers/linux/pkt_sched.h || WRRDEF="-DNEED_WRR_DEFS"}
-
%{__make} \
CC="%{__cc}" \
- OPT="%{rpmcflags} ${WRRDEF}" \
- KERNEL_INCLUDE="`pwd`/kernel-headers" \
+ OPT="%{rpmcflags}" \
%{!?with_tc:SUBDIRS="lib ip misc" LDFLAGS="%{rpmldflags}"}
%{?with_doc:%{__make} -C doc}