1 This file should be prepended to each time a release is made.
5 Kernel Version: 2.4.14+
6 Changes: Removed 2.4 kernel patch from VLAN distribution..it's now in the
7 standard linux kernel. Other updates include vconfig changes
8 to fix some compile problems, and to enable cross-compiling to
9 ARM (this assumes you are using the Intrinsyc cross-compiler in
10 it's standard location).
16 Kernel Version: 2.4.12-pre5
18 Mostly added other peoples fixes and patches (thanks folks!)
19 Finally fixed mc-list leakage (Ard van Breemen)
20 Flush mc-list at vlan-destory (Ard van Breemen)
21 Add vconfig man page to distribution (Ard van Breemen)
22 Fix problem with /proc and renaming VLAN devices (af AT devcon D.T net)
23 Add relatively large change by Nick Eggelston that makes VLAN
24 devices more transparent to tools like tcpdump and other raw
25 packet snoopers. This will only be enabled when the REORDER_HDR
31 Kernel Version: 2.4.9-pre4
32 Status: Should be stable, but a decent amount of rework went into
35 Code should no longer require /proc interface in order to
36 get at the IOCTLs. The IOCTLs are now tied to sockets.
37 When using modules, it may auto-load now, too...
39 Fixed format string error in proc fs display.
41 Fixed crash bug relating to memory allocation with locks
42 held (we now use GF_ATOMIC).
44 hard_start_xmit will now grow the packet header if there
45 is not enough headroom. This may fix an MPLS-over-VLAN problem,
46 though the real solution is to make MPLS allocate
47 more headroom anyway...
49 vconfig was changed to use the new IOCTL API, and the old
50 vconfig WILL NOT WORK with this or any newer patches...
56 Status: Should be stable, but a decent amount of rework went into
59 Re-worked code to comply with linux network code gurus'
60 wishes. This included several boundary case fixes, including
61 some that could crash your kernel.
63 The default naming scheme is eth0.5 now, for VID == 5 on
64 eth0. Use vconfig to change the naming scheme if you want.
66 There were *NO* changes to the 2.2 series patch, and there
67 probably won't be any more changes to it, ever!
72 Kernel Version: 2.2.18/19, 2.4.3-pre3
73 Status: Very similar to 1.0.0, should be relatively stable.
75 Incorporated a fix for changing a MAC on a VLAN, it now
76 correctly sets PACKET_HOST.
77 Thanks to Martin Bokaemper for this one.
79 The 2.4 series patch should now compile as a module, thanks
80 to a tweak from someone who's mail I have lost! Anyway, 3
81 cheers to the un-named coder!
83 There were *NO* changes to the 2.2 series patch, though I did
84 verify that it seems to work fine with the 2.2.19 kernel.
88 Date: January 14, 2001
90 Kernel Version: 2.2.18, 2.4.0
91 Status: Fairly similar to 0.0.15, should be relatively stable.
94 Really fixed (and tested) MAC change-ability. When you set the
95 MAC address on a VLAN, it will also attempt to set the underlying
96 device to PROMISCious mode (otherwise, the VLAN will not
99 Hashed-device lookup is disabled by default because some people
100 had trouble with the 'lo' device. Please feel free to re-enable by
101 editing the line in net/core/dev.
102 (search for #define BEN_FAST_DEV_LOOKUP).
104 vconfig should warn when creating VLAN 1, because that VLAN is
105 not compatible with many switches.
108 Date: December 31, 2000
110 Kernel Version: 2.2.18, 2.4.prerelease
111 Status: This one is pretty fresh..beware, especially the 2.4 patch.
114 Merged most of Matti Aarnio's patches. This means no significant patch
115 to eth.c now, and will help port VLANs to non-ethernet devices
116 (ie ppp, TokenRing??).
118 Setting the MAC address should work now..I think it was broken before.
120 Miscellaneous code re-organization to make patches to existing files smaller.
123 Date: October 26, 2000
125 Kernel Version: 2.2.17, 2.4.pre9
126 Status: Seems stable.
128 Removed vlan-space-per-machine, so vlan-space-per-NIC is mandatory now.
130 DHCP might work now, as I've added support for encapsulating regular ethernet
131 frames if they are sent to the vlan driver.
133 Fixed up the name/index hashing stuff to handle changing the name on a device.
135 Took out default VID & default priority, as their usefullness was in question,
136 and the code was broken anyway.
139 Date: October 11, 2000
141 Kernel Version: 2.2.17, 2.4.pre9
142 Status: BUSTED!! Don't use it.
144 Added support for MULTICAST to the VLAN devices. Thanks to
145 Gleb & Co for most of that code.
147 Added the ability to set the MAC address on the VLAN. For now,
148 you'll either need to set your Ethernet NIC into PROMISC mode, or
149 maybe figure out some multi-cast ethernet address to set on the
150 NIC. This has not been tested well at all.
152 Added a hashed device-name lookup scheme. This greatly speeds
153 up ifconfig -a. I was able to run an ifconfig -a in 20 seconds on a
154 Celeron 500, with 4000 vlan devices configured!!
156 Added vlan_test.pl to help me find dumb bugs. Feel free to make this
157 much more powerful, and send the code back to me!
159 vconfig.c has been converted to C code now, instead of C++.
162 Significantly cleaned up the code w/out decreasing any useful
163 functionality, I believe.
165 Removed the dhcp stuff from the VLAN distribution.
168 Date: August 27, 2000
170 Kernel Version: 2.2.16, 2.4.pre7
171 Status: This one turned out pretty stable, no known bugs.
174 Added ability to re-order the VLAN packet so that it looks
175 like a real ethernet packet for the ingress pathway. This
176 should help DHCP and other programs that insist on reading
177 the raw buffer and then make assumptions about byte offsets.
178 I don't have a good way to test this fully, so consider it
179 experimental :) This behavior can be changed at run-time,
180 and is set on a per-VLAN basis. The default is NOT to reorder
181 the header, which has been the only behavior up untill this
182 point. The vconfig program can set/clear the flag, by using
183 a VLAN IOCTL. You can read the flag's value from the
184 /proc/net/vlan/vlan* files.
186 You can also set a default priority on a NON-VLAN device.
187 This priority will only be used when the default_VID for the
188 device is set as well. This priority won't be mapped anywhere,
189 just copied straight into the skb->priority. It is a uint16.
191 The 2.3 patch is now the 2.4 patch, and it has been tested
197 Kernel Version: 2.2.13 & 2.2.14, 2.3.99
198 Status: As of August 27, this seems like a very stable patch.
200 Added real support for PRIORITY. Through IOCTL calls (see the
201 vconfig program), you can set explicit ingress and egress mappings
202 to/from the VLAN QOS bits and the sk_buff->priority field. This
203 is not tested very well, as I don't know much about how people really
204 use the priority field... Took out the round-robin aggretation that
205 went in in rls 0.10, as it was mainly just a hack, and doing link
206 aggregation at a lower level and then putting VLAN on top of that
207 virtual device probably makes more sense. The vconfig program
208 changed to support the new features..here's it's new usage:<br>
210 Usage: add [interface-name] [vlan_id]
212 set_dflt [interface-name] [vlan_id]
213 add_port [port-name] [vlan_id]
214 rem_port [port-name] [vlan_id]
215 set_egress_map [vlan-name] [skb_priority] [vlan_qos]
216 set_ingress_map [vlan-name] [skb_priority] [vlan_qos]
217 set_name_type [name-type]
218 set_bind_mode [bind-type]
220 * The [interface-name] is the name of the ethernet card that hosts
221 the VLAN you are talking about.
222 * The port-name is the name of the physical interface that a VLAN
224 * The vlan_id is the identifier (0-4095) of the VLAN you are operating on.
225 * skb_priority is the priority in the socket buffer (sk_buff).
226 * vlan_qos is the 3 bit priority in the VLAN header
227 * name-type: VLAN_PLUS_VID (vlan0005), VLAN_PLUS_VID_NO_PAD (vlan5),
228 DEV_PLUS_VID (eth0.0005), DEV_PLUS_VID_NO_PAD (eth0.5)
229 * bind-type: PER_DEVICE # Allows vlan 5 on eth0 and eth1 to be unique.
230 PER_KERNEL # Forces vlan 5 to be unique across all devices.
232 The 2.3 patches have been ported foward to 2.3.99, thanks to
233 Patrick for the vlanproc.c updates!
237 Date: February 26, 2000
239 Kernel Version: 2.2.13 & 2.2.14, 2.3.47
240 Status: Added several new features in the critical path...beware!
242 Added support for PRIORITY. The way it works is that the lower
243 3 bits of the skb->priority are set into the PRIORITY field in
244 the VLAN header. No special handling is done with priority,
245 but it should be handled by other switches and such. This has
246 not been tested, but the default case (no priority in the skb)
247 seems to work at least.
249 The big change is that you can now aggregate several ethernet
250 ports in a single VLAN. The packets will be transmitted in a
251 round robin fashion. In order for this to work, you have
252 to change the MAC addresses on all cards to the same thing,
253 and put the cards in promiscious mode (because most drivers don't
254 __really__ honor the request to set the MAC all the way to
255 the NIC. This works with two different speed NICs, but I think
256 it will only be really useful if they are the same speed. Here
257 is how I set them up in my test environment:
260 ifconfig eth1 hw ether 00:40:05:41:00:5e # This is the MAC of eth0
263 ifconfig eth1 promisc
265 /usr/local/bin/vconfig add eth0 5
266 /usr/local/bin/vconfig add_port eth1 5
267 ifconfig vlan0005 192.168.2.1
269 On my other machine, I have this:
271 ifconfig eth1 hw ether 00:48:54:66:68:68 # This is the MAC of eth0
274 ifconfig eth1 promisc
276 /usr/local/bin/vconfig add eth0 5
277 /usr/local/bin/vconfig add_port eth1 5
278 ifconfig vlan0005 192.168.2.3
280 Note that there are now two patches, one for the 2.2 series,
281 and one for the 2.3 series.
284 Date: February 6, 2000
286 Kernel Version: 2.2.13 & 2.2.14
287 Status: Mostly solid. May be issues with adding/removing, but it
288 works at least most of the time.
289 Changes: Changed the way vlan names are created: They now have the
290 VID in the name. You can revert to the old behavior by
291 changing an #define in the 802_18/vlan.h file. Changed
292 the destruction process for vlans. Not sure if this fixed the
293 kernel lock problem I found while adding/removing VLAN devices,
294 and also hacking with DHCP, but the problem seemed to go away.
295 Added patch to dhcp to allow it to work with VLANs. However,
296 I don't grok DHCP as well as might be desired, so use at your
297 own risk!! Added some debugging code (you have to compile
298 it in if you need it)
301 Date: December 22, 1999
303 Kernel Version: 2.2.13+
304 Status: ARP seems to fail in certain cases (but not on my machines.)
305 Changes: Fixed compile warnings and a linking problem due to #ifdef's.
306 No major changes in functionality or performance.
308 Date: December 5, 1999
310 Kernel Version: 2.2.13+
311 Status: ARP seems to fail in certain cases (but not on my machines.)
312 Several (many?) ethernet drivers can't handle the extra 4 bytes
313 of VLAN, so the MTU on the network may have to be set to 1496,
314 or fix the ethernet drivers!!
315 Changes: Re-wrote the /proc code to never go above 4k buffers. This means
316 that each port now has it's own file entry. Fixed crash bug with
317 removing VLAN devices. Byte and pkt counters are now updated correctly,
318 and are found in the /proc/net/vlan/<device> file.
321 Date: October 20, 1999
323 Kernel Version: 2.2.10+
324 Status: ping -f still kills one of my machines, but it takes longer...and I'm
325 not sure if its the fault of the VLAN code, or maybe some hardware problem.
326 Changes: Coded around an extraneous skb alloc/free so that there should be no
327 extra buffer copying as compared to an ethernet interface, unless the
328 vlan device spans more than one interface. Put #ifdef around all printk
329 debugging calls, at least for non-control code (ie no more printk in the
333 Date: October 19, 1999
335 Kernel Version: 2.2.10
336 Status: Ping & FTP work, ping -f kills it after some time...not sure why yet.
337 Changes: Got tcpdump working with VLAN pkts (use the -e option). Got basic VLAN
338 functionality working, though problems remain, including a KERNEL CRASH
339 that can be induced by ping -f on one of the vlan interfaces. My test
340 setup consists of two linux boxes, each running my modified kernel.
341 Since I have no third-party implementation to test against, it is likely
342 the code is not too right yet!!
343 Performance isn't all that great: Running a Cyrix 155 <-> a Cyrix 233,
344 connected through a 10bt hub, I get 910 Mbps on regular ethernet,
345 and only 650 Mbps on the VLAN device. This was using a 30 MB file.
350 Kernel Version: 2.2.2
351 Status: Definately broken, but lots of code in there!!
352 Changes: Initial partially functional release (not very functional.)