forked from imq/linuximq
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Credits.txt
122 lines (88 loc) · 5.32 KB
/
Credits.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Jan Rafaj <[email protected]>
- Update patch to 2.4.21
Sebastian Strollo <[email protected]>
- Fix "Dead-loop on netdevice imq"-issue
Marcel Sebek <[email protected]>
- Update to 2.6.2-rc1
2004/06/30 - New version of IMQ patch to kernels <=2.6.7 including the following changes:
- Correction of ipv6 support "+"s issue (Hasso Tepper)
- Correction of imq_init_devs() issue that resulted in kernel OOPS unloading IMQ as module (Norbert Buchmuller)
- Addition of functionality to choose number of IMQ devices during kernel config (Andre Correa)
- Addition of functionality to choose how IMQ hooks on PRE and POSTROUTING (after or before NAT) (Andre Correa)
- Cosmetic corrections (Norbert Buchmuller) (Andre Correa)
2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were released with almost no problems. 2.6.14-x was released
with some important changes: nfcache was removed.
After some weeks of trouble we figured out that some IMQ fields in skb were missing in skbuff.c - skb_clone and copy_skb_header.
These functions are correctly patched by this new patch version.
Thanks for all who helped to figure out all the problems with 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX,
Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully I didn't forget anybody). I apologize again for my lack of time.
2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead of qdisc_restart() and moved qdisc_run() to tasklet to avoid
recursive locking. New initialization routines to fix 'rmmod' not working anymore. Used code from ifb.c. (Jussi Kivilinna)
2008/08/06 - 2.6.26 - (JK)
- Replaced tasklet with 'netif_schedule()'.
- Cleaned up and added comments for imq_nf_queue().
2009/04/12
- Add skb_save_cb/skb_restore_cb helper functions for backuping control buffer.
This is needed because qdisc-layer on kernels 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna)
- Add better locking for IMQ device. Hopefully this will solve SMP issues. (Jussi Kivilinna)
- Port to 2.6.27
- Port to 2.6.28
- Port to 2.6.29 + fix rmmod not working
2009/04/20 - (Jussi Kivilinna)
- Use netdevice feature flags to avoid extra packet handling by core networking layer and possibly increase performance.
2009/09/26 - (Jussi Kivilinna)
- Add imq_nf_reinject_lockless to fix deadlock with imq_nf_queue/imq_nf_reinject.
2009/12/08 - (Jussi Kivilinna)
- Port to 2.6.32
- Add check for skb->nf_queue_entry==NULL in imq_dev_xmit()
- Also add better error checking for skb->nf_queue_entry usage
2010/02/25 - (Jussi Kivilinna)
- Port to 2.6.33
2010/08/15 - (Jussi Kivilinna)
- Port to 2.6.35
- Simplify hook registration by using nf_register_hooks.
- nf_reinject doesn't need spinlock around it, therefore remove imq_nf_reinject function. Other nf_reinject users protect
their own data with spinlock. With IMQ however all data is needed is stored per skbuff, so no locking is needed.
- Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of NF_QUEUE, this allows working coexistance of IMQ and other NF_QUEUE users.
- Make IMQ multi-queue. Number of IMQ device queues can be increased with 'numqueues' module parameters. Default number
of queues is 1, in other words by default IMQ works as single-queue device. Multi-queue selection is based on IFB multi-queue patch by Changli Gao <[email protected]>.
2011/03/18 - (Jussi Kivilinna)
- Port to 2.6.38
2011/07/12 - ([email protected])
- Crash fix that happens when the receiving interface has more than one queue (add missing skb_set_queue_mapping in imq_select_queue).
2011/07/26 - (Jussi Kivilinna)
- Add queue mapping checks for packets exiting IMQ.
- Port to 3.0
2011/08/16 - (Jussi Kivilinna)
- Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2
2011/11/03 - Germano Michel <[email protected]>
- Fix IMQ for net namespaces
2011/11/04 - Jussi Kivilinna <[email protected]>
- Port to 3.1
- Clean-up, move 'get imq device pointer by imqX name' to separate function from imq_nf_queue().
2012/01/05 - Jussi Kivilinna <[email protected]>
- Port to 3.2
2012/03/19 - Jussi Kivilinna <[email protected]>
- Port to 3.3
2012/12/12 - Jussi Kivilinna <[email protected]>
- Port to 3.7
- Fix checkpatch.pl warnings
2013/09/10 - Jussi Kivilinna <[email protected]>
- Fixed GSO handling for 3.10, see imq_nf_queue() for comments.
- Don't copy skb->cb_next when copying or cloning skbuffs.
2013/09/16 - Jussi Kivilinna <[email protected]>
- Port to 3.11
2013/11/12 - Jussi Kivilinna <[email protected]>
- Port to 3.12
2015/06/15 - Feng Gao <[email protected]>
- Port to 3.14
- Pop and send one packet when push one packet into the IMQ queue.
It could enhance the IMQ performance about 20%.
2015/06/18 - Feng Gao <[email protected]>
- Port to 3.18
2015/06/18 - Feng Gao <[email protected]>
- Fix the hang issue caused by the imq rule exists in the localout hook in process context
- Fix the crash issue caused by that shutdown the interfaces before remove imq rules
2015/06/19 - Feng Gao <[email protected]>
- Port to 4.0
Also, many thanks to pablo Sebastian Greco for making the initial patch and to those who helped the testing.