1 --- click-1.6.0-27/lib/ino.cc.orig 2007-09-11 15:39:22.000000000 -0400
2 +++ click-1.6.0-27/lib/ino.cc 2009-01-20 22:34:50.000000000 -0500
20 --- click-1.6.0-27/include/clicknet/ip.h.orig 2007-07-16 19:47:50.000000000 -0400
21 +++ click-1.6.0-27/include/clicknet/ip.h 2009-01-19 16:01:43.000000000 -0500
23 #include <click/cxxprotect.h>
26 +#include <linux/autoconf.h>
27 # include <net/checksum.h>
28 # include <linux/in.h>
30 --- click-1.6.0-27/include/click/packet.hh.orig 2007-09-07 16:11:26.000000000 -0400
31 +++ click-1.6.0-27/include/click/packet.hh 2009-01-27 10:13:43.000000000 -0500
33 Packet::mac_header() const
36 - return skb()->mac.raw;
37 + return skb_mac_header(skb());
42 Packet::network_header() const
45 - return skb()->nh.raw;
46 + return skb_network_header(skb());
51 Packet::transport_header() const
54 - return skb()->h.raw;
55 + return skb_transport_header(skb());
60 # if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 13)
61 memcpy(&skb()->stamp, ×tamp, 8);
63 - skb_set_timestamp(skb(), ×tamp.timeval());
64 + memcpy(&skb()->tstamp, ×tamp, 8);
67 _timestamp = timestamp;
69 Packet::set_mac_header(const unsigned char *h)
71 #if CLICK_LINUXMODULE /* Linux kernel module */
72 - skb()->mac.raw = const_cast<unsigned char *>(h);
73 + skb()->mac_header = const_cast<unsigned char *>(h);
74 #else /* User-space and BSD kernel module */
75 _mac = const_cast<unsigned char *>(h);
78 Packet::set_mac_header(const unsigned char *h, uint32_t len)
80 #if CLICK_LINUXMODULE /* Linux kernel module */
81 - skb()->mac.raw = const_cast<unsigned char *>(h);
82 - skb()->nh.raw = const_cast<unsigned char *>(h) + len;
83 + skb()->mac_header = const_cast<unsigned char *>(h);
84 + skb()->network_header = const_cast<unsigned char *>(h) + len;
85 #else /* User-space and BSD kernel module */
86 _mac = const_cast<unsigned char *>(h);
87 _nh = const_cast<unsigned char *>(h) + len;
89 Packet::set_network_header(const unsigned char *h, uint32_t len)
91 #if CLICK_LINUXMODULE /* Linux kernel module */
92 - skb()->nh.raw = const_cast<unsigned char *>(h);
93 - skb()->h.raw = const_cast<unsigned char *>(h) + len;
94 + skb()->network_header = const_cast<unsigned char *>(h);
95 + skb()->transport_header = const_cast<unsigned char *>(h) + len;
96 #else /* User-space and BSD kernel module */
97 _nh = const_cast<unsigned char *>(h);
98 _h = const_cast<unsigned char *>(h) + len;
100 Packet::set_network_header_length(uint32_t len)
102 #if CLICK_LINUXMODULE /* Linux kernel module */
103 - skb()->h.raw = skb()->nh.raw + len;
104 + skb()->transport_header = skb()->network_header + len;
105 #else /* User-space and BSD kernel module */
108 @@ -1076,9 +1076,9 @@
109 _h += (_h ? shift : 0);
111 struct sk_buff *mskb = skb();
112 - mskb->mac.raw += (mskb->mac.raw ? shift : 0);
113 - mskb->nh.raw += (mskb->nh.raw ? shift : 0);
114 - mskb->h.raw += (mskb->h.raw ? shift : 0);
115 + mskb->mac_header += (mskb->mac_header ? shift : 0);
116 + mskb->network_header += (mskb->network_header ? shift : 0);
117 + mskb->transport_header += (mskb->transport_header ? shift : 0);
121 --- click-1.6.0-27/include/click/config-linuxmodule.h.orig 2009-01-19 15:07:24.000000000 -0500
122 +++ click-1.6.0-27/include/click/config-linuxmodule.h 2009-01-27 12:30:56.000000000 -0500
124 #define HAVE_FAST_CHECKSUM 1
126 /* Define if 'int64_t' is typedefed to 'long' in linuxmodule. */
127 -#define HAVE_INT64_IS_LONG_LINUXMODULE 1
128 +/* #undef HAVE_INT64_IS_LONG_LINUXMODULE */
130 /* Define if 'int64_t' is typedefed to 'long long' in linuxmodule. */
131 #define HAVE_INT64_IS_LONG_LONG_LINUXMODULE 1
135 /* Include integer type definitions. */
136 -#if !HAVE_LINUXMODULE_2_6
137 # include <linux/autoconf.h>
139 #include <linux/types.h>
140 typedef ptrdiff_t intptr_t;
141 -typedef unsigned long uintptr_t; /* XXX? */
142 +//typedef unsigned long uintptr_t; /* XXX? */
144 /* Define HAVE_INT64_IS_LONG based on HAVE_INT64_IS_LONG_LINUXMODULE. */
145 #ifdef HAVE_INT64_IS_LONG_LINUXMODULE
146 --- click-1.6.0-27/linuxmodule/Makefile.orig 2009-01-19 15:15:55.000000000 -0500
147 +++ click-1.6.0-27/linuxmodule/Makefile 2009-01-27 12:21:58.000000000 -0500
149 subdir := linuxmodule
150 conf_auxdir = $(top_srcdir)
153 -exec_prefix = ${prefix}
154 -bindir = /usr/local/bin
155 -sbindir = /usr/local/sbin
156 -libdir = /usr/local/lib
157 -linuxdir = /d/kernels/linux-2.6.27.10-click
158 +prefix = /d/click/click-1.6.0-27/inst
159 +exec_prefix = /d/click/click-1.6.0-27/inst
160 +bindir = /d/click/click-1.6.0-27/inst/bin
161 +sbindir = /d/click/click-1.6.0-27/inst/sbin
162 +libdir = /d/click/click-1.6.0-27/inst/lib
163 +linuxdir = /d/kernels/linux-2.6.27.10-click/
165 LIB_CXX_OBJS = string.o straccum.o nameinfo.o \
166 bitvector.o vectorv.o templatei.o bighashmap_arena.o \
168 ##########################################################################
171 -KERNELPATH = /d/kernels/linux-2.6.27.10-click
172 +KERNELPATH = /d/kernels/linux-2.6.27.10-click/
174 ifeq ($(KBUILD_EXTMOD),)
178 CLICKDEFS = -DHAVE_CONFIG_H
179 CLICKINCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
180 - -I$(srcdir) -I$(top_srcdir) -I$(linuxdir)/include
181 + -I$(srcdir) -I$(top_srcdir) -I$(linuxdir)/include -I$(linuxdir)/include/asm/mach-default
183 CXXCOMPILE = $(CLICKCXX) $(LINUXCFLAGS) $(CLICKCPPFLAGS) $(CLICKCFLAGS) \
184 $(CLICKCXXFLAGS) $(CLICKDEFS) $(CLICKINCLUDES) $(CLICKDEPCFLAGS)
186 @/bin/rm -f elements.conf
187 @$(MAKE) elements.conf
188 elements.conf: $(top_builddir)/config.status $(top_builddir)/click-buildtool
189 - echo "linuxmodule app aqm ethernet icmp ip standard tcpudp" | $(top_builddir)/click-buildtool findelem -r linuxmodule -p $(top_srcdir) > elements.conf
190 + echo "linuxmodule app aqm ethernet icmp ip standard tcpudp test" | $(top_builddir)/click-buildtool findelem -r linuxmodule -p $(top_srcdir) > elements.conf
191 $(ELEMENTSCONF).mk: $(ELEMENTSCONF).conf $(top_builddir)/click-buildtool
192 $(CLICK_ELEM2MAKE) -x "$(STD_ELEMENT_OBJS)" < $(ELEMENTSCONF).conf > $(ELEMENTSCONF).mk
193 $(ELEMENTSCONF).cc: $(ELEMENTSCONF).conf $(top_builddir)/click-buildtool
194 --- click-1.6.0-27/linuxmodule/sched.cc.orig 2007-08-28 19:01:58.000000000 -0400
195 +++ click-1.6.0-27/linuxmodule/sched.cc 2009-01-26 16:55:57.000000000 -0500
197 click_thread_priority = priority;
198 if (click_thread_pids)
199 for (int i = 0; i < click_thread_pids->size(); i++) {
200 - struct task_struct *task = find_task_by_pid((*click_thread_pids)[i]);
201 + struct task_struct *task = find_task_by_vpid((*click_thread_pids)[i]);
203 TASK_PRIO(task) = priority;
206 SOFT_SPIN_LOCK(&click_thread_lock);
207 for (int i = 0; i < click_thread_pids->size(); i++) {
208 printk("<1>click: router thread pid %d\n", (*click_thread_pids)[i]);
209 - struct task_struct *ct = find_task_by_pid((*click_thread_pids)[i]);
210 + struct task_struct *ct = find_task_by_vpid((*click_thread_pids)[i]);
212 printk("<1>click: state %d, EIP %08x\n", (int) ct->state, KSTK_EIP(ct));
214 --- click-1.6.0-27/linuxmodule/proclikefs.c.orig 2007-07-16 19:47:50.000000000 -0400
215 +++ click-1.6.0-27/linuxmodule/proclikefs.c 2009-01-26 17:17:09.000000000 -0500
217 #undef CLICK_LINUXMODULE
218 #include <linux/version.h>
219 #include <linux/autoconf.h>
220 +#include <linux/list.h>
221 #ifndef EXPORT_SYMTAB
222 # define EXPORT_SYMTAB
228 -static LIST_HEAD(fs_list);
229 +static struct list_head fs_list;
230 static spinlock_t fslist_lock;
231 extern spinlock_t inode_lock;
232 extern spinlock_t sb_lock;
234 fo->unlocked_ioctl = (void *) return_EIO;
235 fo->compat_ioctl = (void *) return_EIO;
236 fo->aio_fsync = (void *) return_EIO;
237 - fo->sendfile = (void *) return_EIO;
238 + //fo->sendfile = (void *) return_EIO;
239 fo->check_flags = (void *) return_EIO;
240 fo->flock = (void *) return_EIO;
242 @@ -533,10 +534,12 @@
246 - proclikefs_null_super_operations.read_inode = proclikefs_read_inode;
247 + //proclikefs_null_super_operations.read_inode = proclikefs_read_inode;
248 proclikefs_null_super_operations.put_super = proclikefs_put_super;
249 proclikefs_null_root_inode_operations.lookup = proclikefs_null_root_lookup;
250 spin_lock_init(&fslist_lock);
251 + INIT_LIST_HEAD(&fs_list);
252 + printk (KERN_CRIT "Initializing module\n");
256 --- click-1.6.0-27/linuxmodule/Makefile.in.orig 2007-09-12 18:26:17.000000000 -0400
257 +++ click-1.6.0-27/linuxmodule/Makefile.in 2009-01-27 12:21:27.000000000 -0500
261 CLICKINCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
262 - -I$(srcdir) -I$(top_srcdir) -I$(linuxdir)/include
263 + -I$(srcdir) -I$(top_srcdir) -I$(linuxdir)/include -I$(linuxdir)/include/asm/mach-default
265 CXXCOMPILE = $(CLICKCXX) $(LINUXCFLAGS) $(CLICKCPPFLAGS) $(CLICKCFLAGS) \
266 $(CLICKCXXFLAGS) $(CLICKDEFS) $(CLICKINCLUDES) $(CLICKDEPCFLAGS)
267 --- click-1.6.0-27/elements/linuxmodule/tohost.cc.orig 2007-08-31 11:21:55.000000000 -0400
268 +++ click-1.6.0-27/elements/linuxmodule/tohost.cc 2009-01-26 16:52:00.000000000 -0500
271 // do not call eth_type_trans; it changes pkt_type! Instead, do its work
273 - skb->mac.raw = skb->data;
274 + skb->mac_header = skb->data;
277 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
278 --- click-1.6.0-27/elements/linuxmodule/fromdevice.cc.orig 2007-08-29 04:01:48.000000000 -0400
279 +++ click-1.6.0-27/elements/linuxmodule/fromdevice.cc 2009-01-26 14:38:07.000000000 -0500
281 assert(skb_shared(skb) == 0); /* else skb = skb_clone(skb, GFP_ATOMIC); */
283 /* Retrieve the MAC header. */
284 - skb_push(skb, skb->data - skb->mac.raw);
285 + skb_push(skb, skb->data - skb_mac_header(skb));
287 Packet *p = Packet::make(skb);
288 _queue[_tail] = p; /* hand it to run_task */
289 --- click-1.6.0-27/elements/linuxmodule/fromhost.cc.orig 2007-07-16 19:47:50.000000000 -0400
290 +++ click-1.6.0-27/elements/linuxmodule/fromhost.cc 2009-01-26 15:16:05.000000000 -0500
294 // check for existing device
295 - _dev = dev_get_by_name(_devname.c_str());
296 + _dev = dev_get_by_name(&init_net, _devname.c_str());
298 if (_dev->open != fl_open) {
300 @@ -175,16 +175,16 @@
302 ifr.ifr_hwaddr.sa_family = _dev->type;
303 memcpy(ifr.ifr_hwaddr.sa_data, _macaddr.data(), 6);
304 - if ((res = dev_ioctl(SIOCSIFHWADDR, &ifr)) < 0)
305 + if ((res = dev_ioctl(&init_net, SIOCSIFHWADDR, &ifr)) < 0)
306 errh->error("error %d setting hardware address for device '%s'", res, _devname.c_str());
308 sin->sin_family = AF_INET;
309 sin->sin_addr = _destaddr;
310 - if (res >= 0 && (res = devinet_ioctl(SIOCSIFADDR, &ifr)) < 0)
311 + if (res >= 0 && (res = devinet_ioctl(&init_net,SIOCSIFADDR, &ifr)) < 0)
312 errh->error("error %d setting address for device '%s'", res, _devname.c_str());
314 sin->sin_addr = _destmask;
315 - if (res >= 0 && (res = devinet_ioctl(SIOCSIFNETMASK, &ifr)) < 0)
316 + if (res >= 0 && (res = devinet_ioctl(&init_net,SIOCSIFNETMASK, &ifr)) < 0)
317 errh->error("error %d setting netmask for device '%s'", res, _devname.c_str());
321 mm_segment_t oldfs = get_fs();
324 - (void) dev_ioctl(SIOCGIFFLAGS, &ifr);
325 + (void) dev_ioctl(&init_net, SIOCGIFFLAGS, &ifr);
326 ifr.ifr_flags = (up > 0 ? ifr.ifr_flags | flags : ifr.ifr_flags & ~flags);
327 - if ((res = dev_ioctl(SIOCSIFFLAGS, &ifr)) < 0 && errh)
328 + if ((res = dev_ioctl(&init_net, SIOCSIFFLAGS, &ifr)) < 0 && errh)
329 errh->error("error %d bringing %s device '%s'", res, (up > 0 ? "up" : "down"), dev->name);
332 --- click-1.6.0-27/elements/linuxmodule/anydevice.cc.orig 2007-08-29 04:03:55.000000000 -0400
333 +++ click-1.6.0-27/elements/linuxmodule/anydevice.cc 2009-01-21 14:44:39.000000000 -0500
336 AnyDevice::find_device(AnyDeviceMap *adm, ErrorHandler *errh)
338 - _dev = dev_get_by_name(_devname.c_str());
339 + _dev = dev_get_by_name(&init_net,_devname.c_str());
340 _devname_exists = (bool) _dev;
342 _dev = dev_get_by_ether_address(_devname, this);
345 read_lock(&dev_base_lock);
347 - for (dev = dev_base; dev; dev = dev->next)
348 + for_each_netdev(&init_net, dev)//for (dev = dev_base; dev; dev = dev->next)
349 if ((dev->type == ARPHRD_ETHER || dev->type == ARPHRD_80211)
350 && memcmp(en, dev->dev_addr, 6) == 0) {
351 dev_hold(dev); // dev_get_by_name does dev_hold; so
352 --- click-1.6.0-27/elements/linuxmodule/todevice.cc.orig 2007-09-14 12:19:28.000000000 -0400
353 +++ click-1.6.0-27/elements/linuxmodule/todevice.cc 2009-01-26 16:50:39.000000000 -0500
358 +#include <linux/autoconf.h>
359 +#include <linux/version.h>
360 #include <click/config.h>
361 #include <click/glue.hh>
362 #include "polldevice.hh"
363 @@ -243,12 +245,12 @@
367 - if (!spin_trylock(&_dev->xmit_lock)) {
368 + if (!spin_trylock(&_dev->_tx[0]._xmit_lock)) {
370 _task.fast_reschedule();
373 - _dev->xmit_lock_owner = smp_processor_id();
374 + _dev->_tx[0].xmit_lock_owner = smp_processor_id();
379 // (or until Linux sends another packet) unless we poke
380 // net_bh(), which calls qdisc_restart(). We are not allowed
381 // to call qdisc_restart() ourselves, outside of net_bh().
382 - if (is_polling && !busy && _dev->qdisc->q.qlen) {
383 + if (is_polling && !busy && _dev->_tx[0].qdisc->q.qlen) {
385 netif_wake_queue(_dev);
388 # if HAVE_NETIF_TX_LOCK
389 netif_tx_unlock_bh(_dev);
391 - _dev->xmit_lock_owner = -1;
392 - spin_unlock(&_dev->xmit_lock);
393 + _dev->_tx[0].xmit_lock_owner = -1;
394 + spin_unlock(&_dev->_tx[0]._xmit_lock);
398 --- click-1.6.0-27/elements/standard/addressinfo.cc.orig 2007-09-12 02:14:04.000000000 -0400
399 +++ click-1.6.0-27/elements/standard/addressinfo.cc 2009-01-21 13:08:40.000000000 -0500
401 // if it's a device name, return a primary IP address
402 #if CLICK_LINUXMODULE
403 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
404 - net_device *dev = dev_get_by_name(s.c_str());
405 + net_device *dev = dev_get_by_name(&init_net,s.c_str());
408 in_device *in_dev = in_dev_get(dev);
410 # if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
411 # define dev_put(dev) /* nada */
413 - net_device *dev = dev_get_by_name(s.c_str());
414 + net_device *dev = dev_get_by_name(&init_net,s.c_str());
415 if (dev && (dev->type == ARPHRD_ETHER || dev->type == ARPHRD_80211)) {
416 memcpy(store, dev->dev_addr, 6);
418 --- click-1.6.0-27/configure.in.orig 2007-09-18 16:40:01.000000000 -0400
419 +++ click-1.6.0-27/configure.in 2009-01-27 12:14:10.000000000 -0500
423 AC_INIT(click, 1.6.0)
426 AC_CONFIG_HEADER(include/click/config.h:config.h.in include/click/pathvars.h:pathvars.h.in include/click/config-bsdmodule.h:config-bsdmodule.h.in include/click/config-linuxmodule.h:config-linuxmodule.h.in include/click/config-ns.h:config-ns.h.in include/click/config-userlevel.h:config-userlevel.h.in)
431 saveflags="$CPPFLAGS"
432 - CPPFLAGS="$saveflags -D__KERNEL__ -I$linuxdir/include $LINUX_CFLAGS"
434 + CPPFLAGS="$saveflags -D__KERNEL__ -I$linuxdir/include -I$linuxdir/include/asm/mach-default $LINUX_CFLAGS"
436 # CLICK_LINUXMODULE_PROLOGUE()
437 AC_DEFUN([CLICK_LINUXMODULE_PROLOGUE], [[#if HAVE_LINUXMODULE_2_6