Merge from vendor branch NTPD:
[dragonfly.git] / contrib / ipfilter / HISTORY
1 #
2 # NOTE: Quite a few patches and suggestions come from other sources, to whom
3 #       I'm greatly indebted, even if no names are mentioned.
4 #
5 # Thanks to the Coombs Computing Unit at the ANU for their continued support
6 # in providing a very available location for the IP Filter home page and
7 # distribution center.
8 #
9 # Thanks to Hewlett Packard for making it possible to port IP Filter to
10 # HP-UX 11.00.
11 #
12 # Thanks to Tel.Net Media for supplying me with equipment to ensure that
13 # IP Filter continues to work on Solaris/sparc64.
14 #
15 # Thanks to BSDI for providing object files for BSD/OS 3.1 and the means
16 # to further support development of IP Filter under BSDI.
17 #
18 # Thanks to Craig Bishop of connect.com.au and Sun Microsystems for the
19 # loan of a machine to work on a Solaris 2.x port of this software.
20 #
21 # Thanks also to all those who have contributed patches and other code,
22 # and especially those who have found the time to port IP Filter to new
23 # platforms.
24 #
25 3.4.35 21/6/2004 - Released
26
27 some cases of ICMP checksum alteration were wrong
28
29 block packets that fail to create state table entries
30
31 correctly handle all return values from ip_natout() when fastrouting
32
33 ipmon was not correctly calculating the length of the IPv6 packet (excluded
34 ipv6 header length)
35
36 3.4.34 20/4/2004 - Released
37
38 correct the ICMP packet checksum fixing up when processing ICMP errors for NAT
39
40 various changes to ipsend for sending packets with ipv4 options
41
42 look for ipmon's pidfile in /var/run and /etc/opt/ipf in Solaris' init script
43
44 only allow non-fragmented packets to influence whether or not a logged
45 packet is the same as the one logged before.
46
47 make "ipfstat -f" output more informative
48
49 compatibility for openbsd byte order changes to ip_off/ip_len
50
51 disallow "freebsd" as a make target (encourages people to do the wrong thing)
52
53 3.4.33  15/12/2003 - Released
54
55 pass on messages moving through ipfilter when it is unloading itself on Solaris
56
57 add disabling of auto-detach when the module attaches on Solaris
58
59 compatibility patches for 'struct ifnet' changes on FreeBSD
60
61 implement a maximum for the number of entries in the NAT table (NAT_TABLE_MAX
62 and ipf_nattable_max)
63
64 fix ipfstat -A
65
66 frsynclist() wasn't paying attention to all the places where interface
67 names are, like it should.
68
69 fix where packet header pointers are pointing to after doing an ipf_pullup
70
71 fix comparing ICMP packets with established TCP state where only 8 bytes
72 of header are returned in the ICMP error.
73
74 3.4.32  18/6/2003 - Released
75
76 fix up the behaviour of ipfs
77
78 make parsing errors in ipf/ipnat return an error rather than return
79 indicating success.
80
81 window scaling patch
82
83 make ipfstat work as a set{g,u}id thing - gave up privs before opening
84 /dev/ipl
85
86 checksum adjustment corrections for ICMP & NAT
87
88 attempt to always get an mbuf full of data through pullup if possible
89
90 Fix bug with NAT and fragments causing system to crash
91
92 Add patches for OpenBSD 3.3
93
94 stop LKM locking up the machine on modern NetBSD(?)
95
96 allow timeouts in NAT rules to over-ride fr_defnatage if LARGE_NAT is defined
97
98 Locking patches for IRIX 6.5 from SGI.
99  
100 fix bug in synchronising state sessions where all interfaces were invalidated
101
102 fix bug in openbsd 3.2 bridge diffs
103
104 fix bug parsing port comparisons in proxy rules
105
106 3.4.31  7/12/2002 - Released
107
108 Solaris 10 compatibility
109
110 fix linking into pfil in NetBSD 
111
112 fix IRIX 6.2 compatibility
113
114 add code to check consistency of fr_checkp/fr_check on non-Solaris
115
116 OpenBSD: missing patches for ip6_output.c on OpenBSD 3.2,
117          make LKM work for 3.2 (OpenBSD LKMs now match NetBSD)
118
119 3.4.30  26/11/2002 - Released
120
121 attempt to detect using GNU make and abort if so
122
123 OpenBSD 3.2 patches from Stefan Hermes von GMX
124
125 add MSS clamping code from NetBSD
126
127 correctly display ipv6 output with ipfstat for (accounting) rules
128
129 fix problems with ioctl handling for /dev/ipauth
130
131 set SYN bit in rcmd fake packet to create back channel
132
133 make libpcap reader capable of determining in/out (not in libpcap file)
134 and add more DLT types
135
136 do not allow redirects to localhost for Solaris in NAT parser
137
138 allow return-rst with auth rules
139
140 man page corrections
141
142 fix for handling ipv6 icmp errors
143
144 fix up ipfs command line option processing
145
146 only allow processing a ftp 227 response following a PASV command
147
148 NetBSD: use poll() and adapt to new cdevsw mechanism
149
150 make flushing for just ipv6 things work
151
152 3.4.29  28/8/2002 - Released
153
154 Make substantial changes to the FTP proxy to improve reliability, security
155 and functionality.
156
157 don't send ICMP errors/TCP RST's in response to blocked proxy packets
158
159 fix potential memory leaks when unloading ipfilter from kernel
160
161 fix bug in SIOCGNATL handler that did not preserve the expected
162 byte order from earlier versions in the port number
163
164 set do not fragment flag in generated packets according to system flags,
165 where available.
166
167 preserve filter rule number and group number in state structure
168
169 fix bug in ipmon printing of p/P/b/B
170
171 make some changes to the kmem.c code for IRIX compatibility
172
173 add code to specifically handle ip.tun* interfaces on Solaris
174
175 3.4.28  6/6/2002 - Released
176
177 Fix for H.323 proxy to work on little endian boxes
178
179 IRIX: Update installation documentation
180       add route lock patch
181
182 allow use of groups > 65535
183
184 create a new packet info summary for packets going through ipfr_fastroute()
185 so that where details are different (RST/ICMP errors), the packet now gets
186 correctly NAT'd, etc.
187
188 fix the FTP proxy so that checks for TCP sequence numbers outside the
189 normal offset due to data changes use absolute numbers
190
191 make it possible to remove rules in ipftest
192
193 Update installing onto OpenBSD and split into two directories:
194 OpenBSD-2 and OpenBSD-3
195
196 fix error in printout out the protocol in NAT rules
197
198 always unlock ipfilter if locking fails half way through in ipfs
199
200 fix problems with TCP window scaling
201
202 update of man pages for ipnat(4) and ipftest(1)
203
204 3.4.27  28/04/2002 - Released
205
206 fix calculation of 2's complmenent 16 bit checksum for user space
207
208 add mbuflen() to usespace compiles.
209
210 add more #ifdef complexity for platform portability
211
212 add OpenBSD 3.1 diffs
213
214 3.4.26  25/04/2002 - Released
215
216 fix parsing and printing of NAT rules with regression tests.
217
218 add code to adjust TCP checksums inside ICMP errors where present and as
219 required for NAT.
220
221 fix documentation problems in instal documents
222
223 fix locking problem with auth code on Solaris
224
225 fix use of version macros for FreeBSD and make the use of __FreeBSD_version
226 override previous hacks except when not present
227
228 fix the macros defined for SIOCAUTHR and SIOCAUTHW
229
230 fix the H.323 proxy so it no longer panics (multiple issues: re-entry into
231 nat_ioctl with lock held on Solaris, trying to copy data from kernel space
232 with copyin, unaligned access to get 32bit & 16bit numbers)
233
234 use the ip_ttl ndd parameter on Solaris to fill in ip_ttl for packets
235 generated by IPFilter
236
237 fix comparing state information to delete state table entries
238
239 flag packets as being "bad state" if they're outside the window and prevent
240 them from being able to cause new state to be created - except for SYN packets
241
242 be stricter about what packets match a TCP state table entry if its creation
243 was triggered by a SYN packet.
244
245 add patches to handle TCP window scaling
246
247 don't update TCP state table entries if the packet is not considered to be
248 part of the connection
249
250 ipfs wasn't allowing -i command line option in getopt
251
252 IRIX: fix kvm interface, fix compile warnings, compile the kernel with -O2
253       regardless of user compile, fix the getkflags script to prune down the
254       output more so it is acceptable
255
256 change building in Makefiles to create links to the application in $(TOP)
257 at the end of "build" rather than when each is created.
258
259 update BSD/kupgrade for FreeBSD
260
261 l4check wasn't properly closing things when a connection fails
262
263 man page updates for ipmon(8) and ipnat(5)
264
265 more regression tests added.
266
267 3.4.25  13/03/2002 - Released
268
269 retain rule # in state information
270
271 log the direction of a packet so ipmon gets it right rather than incorrectly
272 deriving it from the rule flags
273
274 add #ifdef for IPFILTER_LOGSIZE (put options IPFILTER_LOGSIZE=16384 in BSD
275 kernel config files to increase that buffer size)
276
277 recognise return-* rules differently to block in ipftest
278
279 fix bug in ipmon output for solaris
280
281 add regression testing for skip rules, logging and using head/group
282
283 fix output of ipmon: was displaying large unsigned ints rather than -1
284 when no rules matched.
285
286 make logging code compile into ipftest and add -l command line option to
287 dump binary log file (read with ipmon -f) when it finishes.
288
289 protect rule # and group # from interference when checking accounting rules
290
291 add regression testing for log output (text) from ipmon.
292
293 document -b command line option for ipmon
294  
295 fix double-quick in Solaris startup script
296
297 3.4.24  01/03/2002 - Released
298
299 fix how files are installed on SunOS5
300
301 fix some minor problems in SunOS5 ipfboot script
302
303 by default, compile all OpenBSD tools in 3.0 for IPv6
304
305 fix NULL-pointer dereference in NAT code
306
307 make a better attempt at replacing the appropriate binaries on BSD systems
308
309 always print IPv6 icmp-types as a number
310
311 impose some rules about what "skip" can be used with
312
313 fix parsing problems with "keep state" and "keep state-age"
314
315 Try to read as much data as is in the log device in ipmon
316
317 remove some redundant checks when searching for rdr/nat rules
318
319 fix bug in handling of ACCT with FTP proxy
320
321 increase array size for interface names, using LIFNAMSIZ
322
323 include H.323 proxy from QNX
324
325 3.4.23  16/01/2002 - Released
326
327 Include patches to install IPFilter into OpenBSD 3.0, both for just kernel
328 compiles and complete system builds.
329
330 Fix bug in automatic flushing of state table which would cause it to hang
331 in an infinite loop bug introduced in 3.4.20.
332
333 Modify the sample proxy (samples/proxy.c) so that it ads a NAT mapping for
334 the outgoing connection to make it look like it comes from the real source.
335
336 Only support ICMPv6 with IPv6.
337
338 Move ipnat.1 to ipnat.8
339
340 Enhance ipmon to print textual ICMP[v6] types and subtypes where possible.
341
342 Make it possible to do IPv6 regression testing with ipftest.
343
344 Use kvm library for kmem access, rather than trying to do it manually with
345 open/lseek/read.
346
347 Fix diffs for ip_input.c on BSDOS so it doesn't crash with fastroute.
348
349 Remove Berkeley advertising licence clause. Reference:
350 ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
351
352 Add more regression tests: ICMPv6 neighbour discovery, ICMP time exceeded
353 and fragmentation required.
354
355 Fix ipfboot script on Solaris to deal with no nameservers or no route to
356 them in a clean manner.
357
358 Support per-rule set timeouts for non-TCP NAT and state
359
360 Add netbios proxy
361
362 Add ICMPv6 stateful checking, including handling multicast destination
363 addresses for neighbour discovery.
364
365 Fix problems with internals of ICMP messages for MTU discovery and
366 unreachables not being correctly adjust on little endian boxes.
367
368 Add "in-via" and "out-via" to filtering rules grammar.  It is now possible
369 to bind a rule to both incoming and outgoing interfaces, in both forward
370 and reverse directions (4 directions in total).  allows for asymetric flows
371 through a firewall.
372
373 Fix ipfstat and ipnat for working on crash dumps.
374
375 Don't let USE_INET6 stay defined for SunOS4
376
377 Count things we see for each interface on solaris.
378
379 Include <netinet/icmp6.h> when compiling with USE_INET6 defined and
380 also include a whole bunch of #define's to make sure the symbols expected
381 can be used.
382
383 Fix up fastroute on BSD systems.
384
385 Make fastrouting work for IPv6 just a bit better.  doesn't split up big
386 packets into fragments like the IPv4 one does.  You can now do a
387 "to <if>:<ipv6_addr>"
388
389 Remove some of the differences between user-space and kernel-space code
390 that is internal to ipfilter.
391
392 Call ipfr_slowtimer() after each packet is processed in ipftest to artificially
393 create the illusion of passing time and include the expire functions in the
394 code compiled for user-space.
395
396 Fix issues with the IPSec proxy not working or leading to a system crash.
397
398 Junk all processing of SPIs and special handling for ESP.
399
400 Add "no-match" as a filter rule action (resets _LAST_ match)
401
402 Add hack to workaround problems with Cassini interface cards on
403 Solaris and VLANs
404
405 Add some protocols to etc/protocols
406
407 3.4.22  03/12/2001 - Released
408
409 various openbsd changes
410
411 sorting based on IP numbers for ipfstat top output
412
413 fix various IPv6 code & compile problems
414
415 modify ip_fil.c to be more netbsd friendly
416
417 fix fastroute bug where it modified a packet post-sending
418
419 fix get_unit() - don't understand why it was broken.
420
421 add FI_IGNOREPKT and don't count so marked packets when doing stats or
422 state/nat.
423
424 extend the interface name saved to log output
425
426 make proxies capable of extending the matching done on a packet with a
427 particular nat session
428
429 change interfaces inside NAT & state code to accomodate redesign to allow
430 IPsec proxy to work.
431
432 fix bug when free'ing loaded rules that results in a memory leak
433 (only an issue with "ipf -rf -", not flush)
434
435 make ipftest capable of loading > 1 file or rules, making it now possible
436 to load both NAT & filter rules
437
438 fix hex input for ipftest to allow interface name & direction to work
439
440 show ipsec proxy details in ipnat output
441
442 if OPT_HEX is set in opts, print a packet out as hex
443
444 don't modify b_next or preseve it or preserve b_prev for solaris
445
446 fix up kinstall scripts to install all the files everywhere they need to
447
448 fix overflowing of bits in ip_off inside iptest
449
450 make userauth and proxy in samples directory compile
451
452 fix minimum size when doing a pullup for ESP & ICMPv6
453
454 3.4.21  24/10/2001 - Released
455
456 include ipsec proxy
457
458 make state work for non-tcp/udp/icmp in a very simple way
459
460 include diffs for ipv6 firewall on openbsd-2.9
461
462 add compatibility filter wrapper for NetBSD-current
463
464 fix command line option problems with ipfs
465
466 if we fill the state table and a automated flush doesn't purge any
467 expiring entries, remove all entries idle for more than half a day
468
469 fix bug with sending resets/icmp errors where the pointer to the data
470 section of the packet was not being set (BSD only)
471
472 split out validating ftp commands and responses into different halves,
473 one for each of server & client.
474
475 do not compile in STATETOP support for specific architectures
476
477 fix INSTALL.FreeBSD to no longer provide directions and properly direct
478 people to the right file for the right version of FreeBSD.
479
480 3.4.20  24/07/2001 - Released
481
482 adjust NAT hashing to give a better spread across the table
483
484 show icmp code/type names in output, where known
485
486 fix bug in altering cached interface names in state when resync'ing
487
488 fix bug in real audio proxy that caused crashs
489  
490 fix compiling using sunos4 cc
491
492 patch from casper to address weird exit problem for ipstat in top mode
493
494 patch from Greg Woods to produce names for icmp types/unreach codes,
495 where they are known
496
497 fix bug where ipfr_fastroute() would use a mblk and it would also get
498 freed later.
499
500 don't match fragments which would cause 64k length to be exceeded
501
502 ftp proxy fix for port numbers being setup for pasv ftp with state/nat 
503
504 change hashing for NAT to include both IP#'s and ports.
505
506 Solaris fixes for IPv6
507
508 fix compiling iplang bits, under Solaris, for ipsend
509
510 3.4.19  29/06/2001 - Released
511
512 fix to support suspend/resume on solaris8 as well as ipv6
513
514 include group/group-head in match of filter rules
515
516 fix endian problem reading snoop files
517
518 make all licence comments point to the one place
519
520 fix ftp proxy to only advance state if a reply is received in response to
521 a recognised command
522
523 3.4.18  05/06/2001 - Released
524
525 fix up parsing of "from ! host" where '!' is separate
526
527 disable hardware checksums for NetBSD
528
529 put ipftest temporary files in . rather than /tmp
530
531 modify ftp proxy to be more intelligent about moving between states
532 and recognise new authentication commands
533
534 allow state/nat table sizes to be externally influenced
535
536 print out host mapping table for NAT with ipnat -l
537
538 fix handling of hardware checksum'ing on Solaris
539
540 fixup makefiles for Solaris
541
542 update regression tests
543
544 fix surrender of SPL's for failure cases
545
546 include patches for OpenBSD's new timeout mechanism
547
548 default ipl_unreach to ICMP_UNREACH_FILTER_PROHIB if defined, else make it
549 ICMP_UNREACH_FILTER
550
551 fix up handling of packets matching auth rules and interaction with state
552
553 add -q command line option to ipfstat on Solaris to list bound interfaces
554
555 add command line option to ipfstat/ipnat to select different core image
556
557 don't use ncurses on Solaris for STATETOP
558
559 fix includes to get FreeBSD version
560
561 do not byte swap ip_id
562
563 fix handling success for packets matching the auth rule
564
565 don't double-count short packets
566
567 add ICMP router discovery message size recognition
568
569 fix packet length calculation for IPv6
570
571 set CPUDIR when for install-sunos5 make target
572
573 SUNWspro -xF causes Solaris 2.5.1 kernel to crash
574
575 3.4.17  06/04/2001 - Released
576
577 fix fragment#0 handling bug where they could get in via cache information
578 created by state table entries
579
580 use ire_walk to look for ire cache entries with link layer headers cached 
581
582 deal with bad SPL assumptions for log reading on BSD
583
584 fix ftp proxy to allow logins with passwords
585
586 some auth rule patches, fixing byte endian problems and returning as an error
587
588 support LOG_SECURITY, where available, in ipmon
589
590 don't return an error for packets which match auth rules
591
592 introduce fr_icmpacktimeout to timeout entries once an ICMP reply has
593 been seen separately to when created
594
595 3.4.16  15/01/2001 - Released
596
597 fix race condition in flushing of state entries that are timing out
598
599 Add TCP ECN patches
600
601 log all NAT entries created, not just those via rules
602
603 3.4.15  17/12/2000 - Released
604
605 add minimum ttl filtering (to be replaced later by return-icmp-as-dest
606 for all ICMP packets matching state entries).
607
608 fix NAT'ing of fragments
609
610 fix sanity checks for ICMPV6
611
612 fix up compiling on IRIX 6.2 with IDF/IDL installed
613
614 3.4.14  02/11/2000 - Released
615
616 cause flushing NAT table to generate log records the same as state flush
617 does.
618
619 fix ftp proxy port/pasv
620
621 fix problem where nat_{in,out}lookup() would release a write lock when it
622 didn't need to.
623
624 add check for ipf6.conf in Solaris ipfboot
625
626 3.4.13  28/10/2000 - Released
627
628 fix introduced bug with ICMP packets being rejected when valid
629
630 fix bug with proxy's that don't set fin_dlen correctly when calling
631 fr_addstate()
632
633 3.4.12  26/10/2000 - Released
634
635 fix installing into FreeBSD-4.1
636
637 fix FTP proxy bug where it'd hang and make NAT slightly more efficient
638
639 fix general compiling errors/warnings on various platforms
640
641 don't access ICMP data fields that aren't there
642
643 3.4.11  09/10/2000 - Released
644
645 return NULL for IPv6 access control lists if it is disabled rather than
646 random garbage.
647
648 fix for getting protocol & packet length for IPv6 packets for pullup.
649
650 update plog script from version 0.8 to version 0.10
651
652 patch from Frank Volf adding fix_datacksum() to NAT code, enhancing the
653 capabilities for "fixing" checksums.
654
655 3.4.10  03/09/2000 - Released
656
657 merge patch from Frank Volf for ICMP nat handling of TCP/UDP data `errors'
658
659 getline() adjusts linenum now
660
661 add tcphalfclosed timeout
662
663 fill in icmp_nextmtu field if it is defined on the platform
664
665 RST generation fix from guido
666
667 force 32bit compile for gcc on solaris if it can't generate 64bit code
668
669 encase logging when fr_chksrc == 2 in #ifdef IPFILTER_LOG
670
671 fix up line wrap problems in plog script
672
673 fix ICMP packet handling to not drop valid ICMP errors
674
675 freebsd 5.0 compat changes
676
677 3.4.9   08/08/2000 - Released
678
679 implement new aging mechanism in fr_tcp_age()
680
681 fix icmp state checking bug
682
683 revamp buildsunos script and build both sparcv7/sparcv9 for Solaris
684 if on an Ultra with a 64bit system & compiler (Caseper Dik)
685
686 open ipfilter device read only if we know we can
687
688 print out better information for ICMP packets in ipmon
689
690 move checking for source spoofed packets to a point where we can generate
691 logs of them
692
693 return EFAULT from ircopyptr/iwcopyptr
694
695 don't do ioctl(SIOCGETFS) for auth stats
696
697 fix up freeing mbufs for post-4.3BSD
698
699 fix returning of inc from ftp proxy
700
701 fix bugs with ipfs -R/-W (Caseper Dik)
702
703 3.4.8   19/07/2000 - Released
704
705 create fake opt_inet6.h for FreeBSD-4 compile as LKM
706
707 add #ifdef's for KLD_MODULE sanity
708
709 NAT fastroute'd packets which come out of return-*
710
711 fix upper/lower case crap in ftp proxy and get seq# checking fixed up.
712
713 3.4.7   08/07/2000 - Released
714
715 make "ipf -y" lookup NAT if's which are unknown
716
717 prepend line numbers to ioctl error messages in ipf/ipnat
718
719 don't apply patches to FreeBSD twice
720
721 allow for ip_len to be on an unaligned boundary early on in fr_precheck
722
723 fix printing of icmp code when it is 0
724
725 correct printing of port numbers in map rules with from/to
726
727 don't allow fr_func to be called at securelevel > 0 or rules to be added
728 if securelevel > 0 if they have a non-zero fr_func.
729
730 3.4.6   11/06/2000 - Released
731
732 add extra regression tests for new nat functionality
733
734 place restrictions on using '!' in map/rdr rules
735
736 fix up solaris compile problems
737
738 3.4.5   10/06/2000 - Released
739
740 mention -sl in ipfstat.8
741
742 fix/support '!' in from/to rules (rdr) for NAT
743
744 add from/to support to rdr NAT rules
745
746 don't send ICMP errors in response to ICMP errors
747
748 fix sunos5 compilation for "ipfstat-top" and cleanup ipfboot
749
750 input accounting list used for both outbound and inbound packets
751
752 3.4.4   23/05/2000 - Released
753
754 don't add TCP state if it is an RST packet and (attempt) to send out
755 RST/ICMP packets in a manner that bypasses IP Filter.
756
757 add patch to work with 4.0_STABLE delayed checksums
758
759 3.4.3   20/05/2000 - Released
760
761 fix ipmon -F
762
763 don't truncate IPv6 packets on Solaris
764
765 fix keep state for ICMP ECHO
766
767 add some NAT stats and use def_nat_age rather than DEF_NAT_AGE
768
769 don't make ftp proxy drop packets
770
771 use MCLISREFERENCED() in tandem with M_EXT to check if IP fields need to be
772 swapped back.
773
774 fix up RST generation for non-Solaris
775
776 get "short" flag right for IPv6
777
778 3.4.2 - 10/5/2000 - Released
779
780 Fix bug in dealing with "hlen == 1 and opt > 1" - Itojun
781
782 ignore previous NAT mappings for 0/0 and 0/32 rules
783
784 bring in a completely new ftp proxy
785
786 allow NAT to cause packets to be dropped.
787
788 add NetBSD callout support for 1.4-current
789
790 3.4.1 - 30/4/2000 - Released
791
792 add ratoui() and fix parsing of group numbers to allow 0 - UINT_MAX
793
794 don't include opt_inet6.h for FreeBSD if KLD_MODULE is defined
795
796 Solaris must use copyin() for all types of ioctl() args
797
798 fix up screen/tty when leaving "top mode" of ipfstat
799
800 linked list for maptable not setup correctly in nat_hostmap()
801
802 check for maptable rather than nat_table[1] to see if malloc for maptable
803 succeeded in nat_init
804
805 fix handling of map NAT rules with "from/to" host specs
806
807 fix printout out of source address when using "from/to" with map rules
808
809 convert ip_len back to network byte order, not plen, for solaris as ip_len
810 may have been changed by NAT and plen won't reflect this
811
812 3.4 - 27/4/2000 - Released
813
814 source address spoofing can be turned on (fr_chksrc) without using
815 filter rules
816
817 group numbers are now 32bits in size, up from 16bits
818
819 IPv6 filtering available
820
821 add frank volf's state-top patches
822
823 add load splitting and round-robin attribute to redirect rules
824
825 FreeBSD-4.0 support (including KLD)
826
827 add top-style operation mode for ipfstat (-t)
828
829 add save/restore of IP Filter state/NAT information (ipfs)
830
831 further ftp proxy security checks
832
833 support for adding and removing proxies at runtime
834
835 3.3.13  26/04/2000 - Released
836
837 Fix parsing of "range" with "portmap"
838
839 Relax checking of ftp replies, slightly.
840
841 Fix NAT timeouts for ICMP packets
842
843 SunOS4 patches for ICMP redirects from Jurgen Keil (jk@tools.de)
844
845 3.3.12  16/03/2000 - Released
846
847 tighten up ftp proxy behaviour.  sigh.  yuck.  hate.
848
849 fix bug in range check for NAT where the last IP# was not used.
850
851 fix problem with icmp codes > 127 in filter rules caused bad things to
852 happen and in particular, where #18 caused the rule to be printed
853 erroneously.
854
855 fix bug with the spl level not being reset when returning EIO from
856 iplioctl due to ipfilter not being initialized yet.
857
858 3.3.11  04/03/2000 - Released
859
860 make "or-block" work with lines that start with "log"
861
862 fix up parsing and printing of rules with syslog levels in them
863
864 fix from Cy Schubert for calling of apr_fini only if non-null
865
866
867 3.3.10  24/02/2000 - Released
868
869 * fix back from guido for state tracking interfaces
870
871 * update for NetBSD pfil interface changes
872
873 * if attaching fails and we can abort, then cleanup when doing so.
874
875 julian@computer.org:
876 * solaris.c (fr_precheck): After calling freemsg on mt, set it point to *mp.
877 * ipf.c (packetlogon): use flag to store the return value from get_flags.
878 * ipmon.c (init_tabs): General cleanup so we do not have to cast
879   an int s->s_port to u_int port and try to check if the u_int port
880   is less than zero.
881
882 3.3.9   15/02/2000 - Released
883
884 fix scheduling of bad locking in fr_addstate() used when we attach onto
885 a filter rule.
886
887 fix up ip_statesync() with storing interface names in ipstate_t
888
889 fix fr_running for LKM's - Eugene Polovnikov
890
891 junk using pullupmsg() for solaris - it's next to useless for what we
892 need to do here anyway - and implement what we require.
893
894 don't call fr_delstate() in fr_checkstate(), when compiled for a user
895 program, early but when we're finished with it (got fr & pass)
896
897 ipnat(5) fix from Guido
898
899 on solaris2, copy message and use that with filter if there is another
900 copy if it being used (db_ref > 1).  bad for performance, but better
901 than causing a crash.
902
903 patch for solaris8-fcs compile from Casper Dik
904
905 3.3.8   01/02/2000 - Released
906
907 fix state handling of SYN packets.
908
909 add parsing recognition of extra icmp types/codes and fix handling of
910 icmp time stamps and mask requests - Frank volf
911
912 3.3.7   25/01/2000 - Released
913
914 sync on state information as well as NAT information when required
915
916 record nat protocol in all nat log records
917
918 don't reuse the IP# from an active NAT session if the IP# in the rule
919 has changed dynamically.
920
921 lookup the protocol for NAT log information in ipmon and pass that to
922 portname.
923
924 fix the bug with changing the outbound interface of a packet where it
925 would lead to a panic.
926
927 use fr_running instead of ipl_inited. (sysctl name change on freebsd)
928
929 return EIO if someone attempts an ioctl on state/nat if ipfilter is not
930 enabled.
931
932 fix rule insertion bug
933
934 make state flushing clean anything that's not fully established (4/4)
935
936 call fr_state_flush() after we've released ipf_state so we don't generate
937 a recursive mutex acquisition panic
938
939 fix parsing of icmp code after return-icmp/return-icmp-as-dest and add
940 some patches to enhance parsing strength
941
942 3.3.6   28/12/1999 - Released
943
944 add in missing rwlock release in fr_checkicmpmatchingstate() and fix check
945 for ICMP_ECHO to only be for packet, not state entry which we don't have yet.
946
947 handle SIOCIPFFB in nat_ioctl() and fr_state_ioctl()
948
949 fix size of friostat for SunOS4
950
951 fix bug in running off the end of a buffer in real audio proxy
952
953 3.3.5   11/12/1999 - Released
954
955 fix parsing of "log level" and printing it back out too
956
957 <net/if_types.h> is only present on Solaris2.6/7/8
958
959 use send_icmp_err rather than icmp_error to send back a frag-needed error
960 when doing PMTU
961
962 do not use -b with add_drv on Solaris unless $BASEDIR is set.
963
964 fix problem where source address in icmp replies is reversed
965
966 fix yet another problem with real audio.
967
968 3.3.4   4/12/1999 - Released
969
970 fix up the real audio proxy to properly setup state information and NAT
971 entries, thanks to Laine Stump for testing/advice/fixes.
972
973 fix ipfr_fastroute to set dst->sin_addr (Sean Farley - appears to prevent
974 FreeBSD 3.3 from panic'ing) as this had been removed in prior hacks to this
975 routine.
976
977 fix kinstall for BSDI
978
979 support ICMP errors being allowed through for ICMP packets going out with
980 keep state enabled
981
982 support hardware checksumming (gigabit ethernet cards) on Solaris thanks to
983 Tel.Net Media for providing hardware for testing.
984
985 patched from Frank Volf for ipmon (ICMP & fragmented packets) and allowing
986 ICMP responses to ICMP packets in the keep state table.
987
988 add in patches for hardware checksumming under solaris
989
990 Solaris install scripts now use $BASEDIR as appropriate.
991
992 add Solaris8 support
993
994 fix "ipf -y" on solaris so that it rescans rules also for changes in
995 interface pointers
996
997 let ipmon become a daemon with -D if it is using syslog
998
999 fix parsing of return-icmp-as-dest(foo)
1000
1001 add reference to ipfstat -g to ipfstat.8
1002
1003 ipf_mutex needs to be declared for irix in ip_fil.c
1004
1005 3.3.3   22/10/1999 - Released
1006
1007 add -g command line option to ipfstat to show groups still define.
1008
1009 fix problem with fragment table not recording rule pointer when called
1010 from state functions (fin_fr not set).
1011
1012 fixup fastroute problems with keep state rules.
1013
1014 load rules into inactive set first, so we don't disable things like NIS
1015 lookups half way through processing - found by Kevin Littlejohn
1016
1017 fix handling of unaligned ip pointer for solaris
1018
1019 patch for fr_newauth from Rudi Sluijtman
1020
1021 fixed htons() bug in fr_tcpsum() where ip_p wasn't cast to u_short
1022
1023 3.3.2   23/09/1999 - Released
1024
1025 patches from Scott Presnell to fix rcmd proxy
1026
1027 patches from Greg to fix Solaris detachment of interfaces
1028
1029 add openbsd compatibility fixes
1030
1031 fix free'ing already freed memory in ipfr_slowtimer()
1032
1033 fix for deferencing invalid memory in cleaning up after a device disappears
1034
1035 3.3.1   14/8/1999 - Released
1036
1037 remove include file sys/user.h for irix
1038
1039 prevent people from running buildsunos directly
1040
1041 fix up some problems with the saving of rule pointers so that NAT saves
1042 that information in case it should need to call fr_addstate() from a proxy.
1043
1044 fix up scanning for the end of FTP messages
1045
1046 don't remove /etc/opt/ipf in postremove
1047
1048 attempt to prevent people running buildsolaris script without doing a
1049 "make solaris"
1050
1051 fix timeout losing on freebsd3
1052
1053 3.3     7/8/1999 - Released
1054
1055 NAT: information (rules, mappings) are stored in hash tables; setup some
1056 basic NAT regression testing.
1057
1058 display version name of installed kernel code when initializing.
1059
1060 add -V command line option to ipf, showing version (program and kernel
1061 module) as well as the run-status of the kernel code.
1062
1063 fix problem with "log" rules actually affecting result of filtering.
1064
1065 automatically use SUNWspro if available and on a 64bit Solaris system for
1066 compiling.
1067
1068 add kernel proxies for rcmd(3) and RealAudio (PNA)
1069
1070 use timeout/untimeout on SunOS4/BSD platforms too rather than hijacking
1071 ip_slowtimo
1072
1073 fix IP headers generated through parsing of text information
1074
1075 fix NAT rules to be in the correct order again.
1076
1077 make keep-state work with to/fastroute keywords and enforce usage of those
1078 interfaces.
1079
1080 update keep-state code with new algorithm from Guido
1081
1082 add FreeBSD-3 support
1083
1084 add return-icmp-as-dest option to retrun an ICMP packet using the original
1085 destination as the source rather than a local IP address
1086
1087 add "level [facility.]<priority>" option to filter language
1088
1089 add changes from Guido to state code.
1090
1091 add code to return EPERM if the device is opened for writing and we're
1092 in securelevel 2 or greater.
1093
1094 authentication code patches from Guido
1095
1096 fix real audio proxy
1097
1098 fix ipmon rule printing of interfaces and add IN/OUT to the end of ipmon
1099 log output.
1100
1101 fix bimap rules with hash tables
1102
1103 update addresses used in NAT mappings for 0/32 rules for any protocol but TCP
1104 if it changes on the interface - check every ip_natexpire()
1105
1106 add redirect regression test
1107
1108 count buckets used in the state hash table.
1109
1110 fix sending of RST's with return-rst to use the ack number provided in
1111 the packet being replied to in addition to the sequence number.
1112
1113 fix to compile as a 64bit application on solaris7-64bit
1114
1115 add NAT IP mapping to ranges of IP addresses that aren't CIDR specified
1116
1117 fix calculation of in_space parameter for NAT
1118
1119 fix `wrapping' when incrementing the next ip address for use in NAT
1120
1121 fix free'ing of kernel memory in ip_natunload on solaris
1122
1123 fix -l/-U command line options from interfering with each other
1124
1125 fix fastroute under solaris2 and cleanup compilation for solaris7
1126
1127 add install scripts and compile cleanly on BSD/OS 4.0
1128
1129 safely open files in /tmp for writing device output when testing.
1130
1131 fix uninitialized pointer bug in NAT
1132
1133 fix SIOCZRLST (zero list rule stats) bug with groups
1134
1135 change some usage of u_short to u_int in function calling
1136
1137 fix compilation for Solaris7 (SUNWspro)
1138
1139 change solaris makefiles to build for either sparc or i386 rather than
1140 per-cpu (sun4u, etc).
1141
1142 fixed bug in ipllog
1143
1144 add patches from George Michaelson for FreeBSD 3.0
1145
1146 add patch from Guido to provide ICMP checking for known state in the same
1147 manner as is done for NAT.
1148
1149 enable FTP PASV proxying and enable wildcarding in NAT/state code for ports
1150 for better PORT/PASV support with FTP.
1151
1152 bring into main tree static nat features: map-block and "auto" portmapping.
1153
1154 add in source host filtering for redirects (alan jones)
1155
1156 3.2.10          22/11/98 - Released
1157
1158 3.2.10beta9     17/11/98 - Released
1159
1160 fix fr_tcpsum problems in handling mbufs with an odd number of bytes
1161 and/or split across an mbuf boundary
1162
1163 fix NAT list entry comparisons and allow multiple entries for the same
1164 proxy (but on different ports).
1165
1166 don't create duplicate NAT entries for repeated PORT commands.
1167
1168 3.2.10beta8     14/11/98 - Released
1169
1170 always exit an rwlock before expecting to enter it again on solaris
1171
1172 fix loop in nat_new for pre-existing nat
1173
1174 don't setup state for an ftp connection if creating nat fails.
1175
1176 3.2.10beta7     05/11/98 - Released
1177
1178 set fake window in ipft_tx.c to ensure code passes tests.
1179
1180 cleaned up/enhanced ipnat -l/ipnat -lv output
1181
1182 fixed NAT handling of non-TCP/UDP packets, esp. for ICMP errors returned.
1183
1184 Solaris recusive mutex on icmp-error/tcp-reset - requires rwlock's rather
1185 than mutexes.
1186
1187 3.2.10beta6     03/11/98 - Released
1188
1189 fix mixed use of krwlock_t and kmutex_t on Solaris2
1190
1191 fix FTP proxy back up, splitting pasv code out of port code.
1192
1193 3.2.10beta5     02/11/98 - Released
1194
1195 fixed port translation in ICMP reply handling
1196
1197 3.2.10beta4     01/11/98 - Released
1198
1199 increase useful statistic collection on solaris
1200
1201 filter DL_UNITDATA_REQ as well as DL_UNITDATA_IND on solaris
1202
1203 disable PASV reply translation for now
1204
1205 fail with an error if we try to load a NAT rule with a non-existant
1206    proxy name - Guido
1207
1208 fix portmap usage with 0/0 and 0/32 map rules
1209
1210 remove ap_unload/ap_expire - automatically done when NAT is cleaned up
1211
1212 print "STATE:CLOSED" from ipmon if the connection progresses past established
1213    rather than "STATE:EXPIRED"
1214
1215 3.2.10beta3     26/10/98 - Released
1216
1217 fixed traceroute/nat problem
1218
1219 rewrote nat/proxy interface
1220
1221 ipnat now lists associated proxy sessions for each NAT where applicable
1222
1223 3.2.10beta2     13/10/98 - Released
1224
1225 use KRWLOCK_T in place of krwlock_t for solaris as well as irix
1226
1227 disable use of read-write lock acquisition by default
1228
1229 add in mb_t for linux, non-kernel
1230
1231 some changes to progress compilation on linux with glibc
1232
1233 change PASV as well as PORT when passed through kernel ftp proxy.
1234
1235 don't allow window to become 0 in tcp state code
1236
1237 make ipmon compile cleaner
1238
1239 irix patches
1240
1241 3.2.10beta      11/09/98 - Released
1242
1243 stop fr_tcpsum() thinking it has run out of data when it hasn't.
1244
1245 stop solaris panics due to fin_dp being something wild.
1246
1247 revisit usage of ATOMIC_*()
1248
1249 log closing state of TCP connection in "keep state"
1250
1251 fix fake-arp table code for ipsend.
1252
1253 ipmon now writes pid to a file.
1254
1255 fix "ipmon -a" to actually activate all logging devices.
1256
1257 add patches for BSDOS4.
1258
1259 perl scripts for log analysis donated.
1260
1261 3.2.9   22/06/98 - Released
1262
1263 fix byte order for ICMP packets generated on Solaris
1264
1265 fix some locking problems.
1266
1267 fix malloc bug in NAT (introduced in 3.2.8).
1268
1269 patch from guido for state connections that get fragmented
1270
1271 3.2.8   08/06/98 - Released
1272
1273 use readers/writers locks in Solaris2 in place of some mutexes.
1274
1275 Solaris2 installation enhancements - Martin Forssen (maf@carlstedt.se)
1276
1277 3.2.7   24/05/98 - Released
1278
1279 u_long -> u_32_t conversions
1280
1281 patches from Bernd Ernesti for NetBSD
1282
1283 fixup ipmon to actually handle HUP's.
1284
1285 Linux fixes from Michael H. Warfield (mhw@wittsend.com)
1286
1287 update for keep state patch (not security related) - Guido
1288
1289 dumphex() uses stdout rather than log
1290
1291 3.2.6   18/05/98 - Released
1292
1293 fix potential security loop hole in keep state code.
1294
1295 update examples.
1296
1297 3.2.5   09/05/98 - Released
1298
1299 BSD/OS 3.1 .o files added for the kernel.
1300
1301 fix sequence # skew vs window size check.
1302
1303 fix minimum ICMP header size check.
1304
1305 remove references to Cybersource.
1306
1307 fix my email address.
1308
1309 remove ntohl in ipnat - Thomas Tornblom
1310
1311 3.2.4   09/04/98 - Released
1312
1313 add script to make devices for /dev on BSD boxes
1314
1315 fixup building into the kernel for FreeBSD 2.2.5
1316
1317 add -D command line option to ipmon to make it a daemon and SIGHUP causes
1318 it to close and reopen the logfile
1319
1320 fixup make clean and make package for SunOS5 - Marc Boucher
1321
1322 postinstall keeps adding "minor=ipf ipl" - George Ross <gdmr@dcs.ed.ac.uk>
1323
1324 protected by IP Filter gif - Sergey Solyanik <solik@atom.ru>
1325
1326 3.2.3   10/11/97 - Released
1327
1328 fix some iplang bugs
1329
1330 fix tcp checksum data overrun, sgi #define changes,
1331 avoid infinite loop when nat'ing to single IP# - Marc Boucher
1332
1333 fixup DEVFS usage for FreeBSD
1334
1335 fix sunos5 "make clean" cleaning up too much
1336
1337 3.2.2   28/11/97 - Released
1338
1339 change packet matching to return actual error, if bad packet, to facilitate
1340 ECONNRESET for TCP.
1341
1342 allow ip:netmask in grammar too now - Guido
1343
1344 assume IRIX has u_int32_t in sys/types.h (needed for R10000)
1345
1346 rewrite parts of command line options for ipmon
1347
1348 fix TCP urgent packet & offset testing and add LAND attack test for iptest
1349
1350 fix grammar error in yacc grammar for iplang
1351
1352 redirect (rdr) destination port bytes-wapped when it shouldn't be.
1353
1354 general: fr_check now returns error code, such as EHOSTUNREACH or
1355 ECONNRESET (attempt to make ECONNRESET work for locally outbound
1356 packets).
1357
1358 linux: enable return-rst, need to filter tcp retransmits which are sent
1359        separately from normal packets
1360
1361 memory leak plugged in ip_proxy.c
1362
1363 BSDI compatibility patches from Guido
1364
1365 tcp checksum fix - Marc Boucher
1366
1367 recursive mutex and ioctl param fix - Marc Boucher
1368
1369 3.2.1   12/11/97 - Released
1370
1371 port to BSD/OS 3.0
1372
1373 port to Linux 2.0.31
1374
1375 patches to make "map a/m -> 0/0" work with ftp proxying properly - Marc Boucher
1376
1377 add "ipf -F s" and "ipf -F S" to flush state table entries.
1378
1379 announce if logging is on or off when ip filter initializes.
1380
1381 "ipf -F a" doesn't flush groups properly for Solaris.
1382
1383 3.2             30/10/97 - Released
1384
1385 ipnat doesn't successfully remove proxy mappings with "-rf" -
1386 Alexander Romanyu
1387
1388 use K&R C function style for solaris kernel code
1389
1390 use m_adj() to decrease packet size in ftp proxy
1391
1392 use mbufchainlen rather than msgdsize,
1393 IRIX update - Marc Boucher
1394
1395 fix NetBSD modunload bug (pfil_add_hook done twice)
1396
1397 patches for OpenBSD 2.1 - Craig Bevins <craigb@bitcom.net.au>
1398
1399 3.2beta10       24/10/97 - Released
1400
1401 fix fragment table entries allocated for NAT.
1402
1403 fix tcp checksum calculations over mbuf/mblk boundaries
1404
1405 fix panic for blen < 0 in ftp kernel proxy - marc boucher
1406
1407 fix flushing of rules which have been grouped.
1408
1409 3.2beta9        20/10/97 - Released
1410
1411 some nit picking on solaris2 with SUNWspro - Michael Lyle <mrl@rpnet.net>
1412
1413 ftp kernel proxy patches from Marc Boucher
1414
1415 3.2beta8        13/10/97 - Released
1416
1417 add support for passing ICMP errors back through NAT.
1418
1419 IRIX port update - Marc Boucher
1420
1421 calculate correct MIN size of packet to log for UDP - Marc Boucher
1422
1423 need htons(ETHERTYPE_x) on little endian BSD boxes - Dave Huang
1424
1425 copyright header fixups
1426
1427 3.2beta7        23/09/97 - Released
1428
1429 fickup problems introduced by prior merges & changes.
1430
1431 3.2beta6        23/09/97 - Released
1432
1433 patch for spin-reading race condition - Marc Boucher.
1434
1435 IRIX port by Marc Boucher.
1436
1437 compatibility updates for Linux to ipsend
1438
1439 3.2beta5        13/09/97 - Released
1440
1441 patches from Bernd Ernesti for NetBSD integration (mostly prototyping and
1442 compiler warning things)
1443
1444 ipf -y will resync IP#'s allocated with 0/32 in NAT to match interface if it
1445 changes.
1446
1447 update manual pages and other documentation updates.
1448
1449 3.2beta4        27/8/97 - Released
1450
1451 enable setting IP and TCP options for iplang/
1452
1453 Solaris2 patches from Marc Boucher.
1454
1455 add groups for filter rules.
1456
1457 3.2beta3        21/8/97 - Released
1458
1459 patches for Solaris2 (interface panic solution ?): fix FIONREAD and
1460 replacing q_qinfo points - Marc Boucher <marc@CAM.ORG>
1461
1462 change ipsend/* and ipsd/* copyright notices to be the same as ip filter's
1463
1464 patch for SYN-ACK skew testing fix from Eric V. Smith <EricSmith@windsor.com>
1465
1466 3.2beta2        6/8/97 - Released
1467
1468 make it load on Solaris 2.3
1469
1470 rewrote logging to remove solaris errors, introduced checking to see if the
1471 same packet is logged successively.
1472
1473 fix filter cache to work when there are no rules loaded.
1474
1475 add "raw" option to ipresend to send entire ethernet frames.
1476
1477 nat list corruption bug - NetBSD - Klaus Klein
1478
1479 3.2beta1        5/7/97 - Released
1480
1481 patches from Jason Thorpe fixing: UNSIGNED_CHAR lossage, off_t being 64bits
1482 lossage, and other NetBSD bits.
1483
1484 NetBSD 1.2G update.
1485
1486 fixup fwtk patches and add protocol field for SIOCGNATL.
1487
1488 rdr bugs reported by Alexander Romanyu (alexr@aix.krid.crimea.ua), with
1489 fixes:
1490 * rdr matched all packets of a given protocol (ignored ports).
1491 * severe bug in nat_delete which caused system crash/freeze.
1492
1493 change Makefile so that CC isn't passed on for FreeBSD/NetBSD (will use
1494 the default CC - cc, not gcc)
1495
1496 3.2alpha9       16/6/97 - Released
1497
1498 added "skip" keyword.
1499
1500 implement preauthentication of packets, as outlined by Guido.
1501
1502 Make it compile as cleanly as possible with -Wall & general code cleanup
1503
1504 getopt returns int, not char. Bernd Ernesti
1505
1506 3.2alpha8       13/6/97 - Released
1507
1508 code added to support "auth" rules which require a user program to allow them
1509 through.  First revision and much of the code came from Guido.
1510
1511 hex output from ipmon doesn't goto syslog when recovering from out of sync
1512 error.  Luke Mewburn (lukem@connect.com.au)
1513
1514 fix solaris2.6 lookup of destination ire's.
1515
1516 ipnat doesn't throw away unused bits (after masking), causing it to
1517 behave incorrectly. Carson Gaspar
1518
1519 NAT code doesn't include inteface name when matching - Alexey Mavrin
1520 <lha@elco.spb.ru>
1521
1522 replace old SunOS tcpip.h with new tcpip.h (from 4.4BSD) - Jason Thorpe.
1523
1524 update install procedures to include ip_proxy.c
1525
1526 mask out unused bits in NAT/RDR rules.
1527
1528 use a generic type (u_32_t) for 32bit variables, rather than rely on
1529 u_long being such - Jason Thorpe.
1530
1531 create a local "netinet" directory and include from ~netinet/*" rather than
1532 just "*" to make keeping the code working on ports easier.
1533
1534 add an m_copydata and m_copyback for SunOS4 (based on 4.4BSD-Lite versions)
1535
1536 documentation updates.
1537
1538 NetBSD update from Jason Thorpe <thorpej@netbsd.org>
1539
1540 allow RST's through with a matching SEQ # and 0 ACK.  Guido Van Rooij
1541
1542 ipmon uses excessive amounts of CPU on Solaris2 - Reinhard Bertram
1543 <Reinhard.Bertram@KOM.th-darmstadt.de>
1544
1545 3.2alpha7       25/5/97 - Released
1546
1547 add strlen for pre-2.2 kernels - Doug Kite <dkite@websgi.icomnet.com>
1548
1549 setup bits and pieces for compiling into a FreeBSD-2.2 kernel.
1550
1551 split up "bsd" targets.  Now a separate netbsd/freebsd/bsd target.
1552 mln_ipl.c has been split up into itself and mlf_ipl.c (for freebsd).
1553
1554 fix (negative) host matching in filtering.
1555
1556 add sysctl interface for some variables when compiled into FreeBSD-2.2 kernels
1557 or later.
1558
1559 make all the candidates for kernel compiling include "netinet/..." and build
1560 a subdirectory "netinet" when compiling and symlink all .h files into this.
1561
1562 add install make target to Makefile.ipsend
1563
1564 3.2alpha6       8/5/97 - Released
1565
1566 Add "!" (not) to hostname/ip matching.
1567
1568 Automatically add packet info to the fragment cache if it is a fragment
1569 and we're translating addreses for.
1570
1571 Automatically add packet info to the fragment cache if it is a fragment
1572 and we're "keeping state" for the packet.
1573
1574 Solaris2 patches - Anthony Baxter (arb@connect.com.au)
1575
1576 change install procedure for FreeBSD 2.2 to allow building to a kernel
1577 which is different to the running kernel.
1578
1579 add FIONREAD for Solaris2!
1580
1581 when expiring NAT table entries, if we would set a time to fr_tcpclosed
1582 (which is 1), make it fr_tcplaskack(20) so that the state tables have a
1583 chance to clear up.
1584
1585 3.2alpha5
1586
1587 add proxying skeleton support and sample ftp transparent proxy code.
1588
1589 add printfs at startup to tell user what is happening.
1590
1591 add packets & bytes for EXPIRE NAT log records.
1592
1593 fix the "install-bsd" target in the root Makefile. Chris Williams
1594 <psion@mv.mv.com>
1595
1596 Fixes for FreeBSD 2.2 (and later revs) to prevent panics.  Julian Assange.
1597
1598 3.2alpha4       2/4/97 - Released
1599
1600 Some compiler warnings cleaned up.
1601
1602 FreeBSD-2.2 patches for LKM completed.
1603
1604 3.2alpha3       31/3/97 - Released
1605
1606 ipmon changes: -N for reading NAT logfile, -S for reading state logfile.
1607 -a for reading all.  -n now toggles hostname resolution.
1608
1609 Add logging of new state entries and expiration of old state entries.
1610 count log successes and failures.
1611
1612 Add logging of new NAT entries and expiration of old NAT entries.
1613 count log successes and failures.
1614
1615 Use u_quad_t for records of bytes & packets where kept
1616 (IP Accounting: fr_hits, fr_bytes; IP state: is_pkts, is_bytes).
1617
1618 Fixup use of CPU and DCPU in Makefiles.
1619
1620 Fix broken 0/32 NAT mapping. Carl Makin <cmakin@nla.gov.au>
1621
1622 3.2alpha2
1623
1624 Implement mapping to 0/32 as being an alias for automatically using the
1625 interface's first IP address.
1626
1627 Implement separate minor devices for both NAT and IP state code.
1628
1629 Fully prototype all functions.
1630
1631 Fix Makefile problem due to attempt to fix Sun compiling problems.
1632
1633 3.1.10          23/3/97 - Released
1634
1635 ipfstat -a requires a -i or -o command line option too.  Print an error
1636 when not present rather than attempt to do something.
1637
1638 patch updates for SunOS4 for kernel compiling.
1639 patch for ipmon -s (flush's syslog file which isn't good).  Andrew J. Schorr
1640 <schorr@ead.dsa.com>
1641
1642 too many people hit their heads hard when compiling code into the kernel
1643 that doesn't let any packets through. (fil.c - IPF_NOMATCH)
1644
1645 icmp-type parsing doesn't return any errors when it isn't constructed
1646 correctly.  Neil Readwin
1647
1648 Using "-conf" with modload on SunOS4 doesn't work.
1649 Timothy Demarest <demarest@arraycomm.com>
1650
1651 Need to define ARCH in makefile for SunOS4 building.  "make sunos4"
1652 in INSTALL.SunOS is incorrect. James R Grinter <jrg@blodwen.demon.co.uk>
1653 [all SunOS targets now run buildsunos]
1654
1655 NAT lookups are still incorrect, matching non-TCP/UDP with TCP/UDP
1656 information. ArkanoiD <ark@paranoid.convey.ru>
1657
1658 Need to check for __FreeBSD_version being 199511 rather than 199607
1659 in mln_ipl.c. Eric Feillant <Eric.Feillant@EUnet.fr>
1660
1661 3.1.9           8/3/97 - Released
1662
1663 fixed incorrect lookup of active NAT entries.
1664
1665 patch for ip_deq() wrong for pre 2.1.6 FreeBSD.
1666 fyeung@fyeung8.netific.com (Francis Yeung)
1667
1668 check for out with return-rst/return-icmp at wrong place - Erkki Ritoniemi
1669 (erkki@vlsi.fi)
1670
1671 text_readip returns the interface pointer pointing to text on stack -
1672 Neil Readwin
1673
1674 fix from Pradeep Krishnan for printout rules "with not opt sec".
1675
1676 3.1.8           18/2/97 - Released
1677
1678 Diffs for ip_output.c and ip_input.c updated to fix bug with fastroute and
1679 compiling warnings about reuse of m0.
1680
1681 prevent use of return-rst and return-icmp with rules blocking packets going
1682 out, preventing panics in certain situations.
1683
1684 loop forms in frag cache table - Yury Pshenychny <yura@rd.zgik.zaporizhzhe.ua>
1685
1686 should use SPLNET/SPLX around expire routines in NAT/frag/state code.
1687
1688 redeclared malloc in 44arp.c - 
1689
1690 3.1.7           8/2/97 - Released
1691
1692 Macros used for ntohs/htons supplied with gcc don't always work very well
1693 when the assignment is the same variable being converted.
1694
1695 Filter matching doesn't not match rule which checks tcp flags on packets
1696 which are fragments - David Wilson
1697
1698 3.1.7beta       30/1/97 - Released
1699
1700 Fix up NAT bugs introduced in last major change (now tested), including
1701 nat_delete(), nat_lookupredir(), checksum changes, etc.
1702
1703 3.1.7alpha      30/1/97 - Released
1704
1705 Many changes to NAT code, including contributions from Laurent Joncheray
1706 <lpj@ans.net>
1707
1708 Use "NO_SLEEP" when allocating memory under SunOS.
1709
1710 Make kernel printf's nicer for BSD/SunOS4
1711
1712 Always do a checksum for packets being filtered going out and being
1713 processed by fastroute.
1714
1715 Leave kernel to play with cdevsw on *BSD systems with LKM's.
1716
1717 ipnat.1 man page fixes.
1718
1719 3.1.6           21/1/97 - Released
1720
1721 Allow NAT to work on BSD systems in conjunction with "pass .. to ifname"
1722
1723 Memory leak introduced in 3.1.3 in NAT lists, clearing of NAT table tried
1724 to free memory twice.
1725
1726 NAT recalculates IP header checksum based on difference between IP#'s and
1727 port numbers - should be just IP#'s (Solaris2 only)
1728
1729 3.1.5           13/1/97 - Released
1730
1731 fixed setting of NAT timeouts and use different timeouts for concurrent
1732 TCP sessions using the same IP# mapping (when port mapping isn't used)
1733
1734 multiple loading/unloading of LKM's doesn't clean up cdevsw properly for
1735 *BSD systems.
1736
1737 3.1.4           10/1/97 - Released
1738
1739 add command line options -C and -F to ipnat to flush NAT list and table
1740
1741 ipnat -l loops on output - Neil Readwin (nreadwin@nysales.micrognosis.com)
1742
1743 NetBSD/FreeBSD kernel malloc changes - Daniel Carosone
1744
1745 3.1.3           10/1/97 - Released
1746
1747 NAT chains not constructed correctly in hash tables - Antony Y.R Lu
1748 (antony@hawk.ee.ncku.edu.tw)
1749
1750 Updated INSTALL.NetBSD, INSTALL.FreeBSD and INSTALL.Sol2
1751
1752 man page update (ipf.5) from Daniel Carosone (dan@geek.com.au)
1753
1754 ICMP header checksum update now included in NAT.
1755
1756 Solaris2 needs to modify IP header checksums in ip_natin and ip_natout.
1757
1758 3.1.2           4/12/96 - Released
1759
1760 ipmon doesn't use syslog all the time when given -s option
1761
1762 fixed mclput panic in ip_input.c and replace ntohs() with NTOHS() macro
1763
1764 check the results of hostname resolution in ipnat
1765
1766 "make *install" fixed for subdirectories.
1767
1768 problems with "ARCH:=" and gnu make resolved
1769
1770 parser reports an error for lines with whitespaces only rather than skipping
1771 them. D.Carosone@abm.com.au (Daniel Carosone)
1772
1773 patches for integration into NetBSD-current (post 1.2).
1774
1775 add an option to allow non-IP packets going up/down the stream on Solaris2
1776 to be dropped. John Bass.
1777
1778 3.1.2beta       21/11/96 - Released
1779
1780 make ipsend compile on Linux 2.0.24
1781
1782 changes to TCP kept state algorithm, making it watch state on TCP
1783 connections in both directions.  Also use the same algorithm for NAT TCP.
1784
1785 -Wall cleanup - Bernd Ernesti
1786
1787 added "or-block" for "pass .. log or-block" after a suggestion from
1788 David Oppenheim (davido@optimation.com.au)
1789
1790 added subdirectories for building IP Filter in SunOS5/BSD for different
1791 cpu architecures
1792
1793 Solaris2 fixes to logging and pre-filtering packet processing - 3.1.1p2
1794
1795 mbuf logging not using mtod(), remove iplbusy - 3.1.1p1         1/11/96
1796
1797 3.1.1           28/10/96 - Released
1798
1799 Installation script fixes and deinstall scripts for IP Filter on:
1800 SunOS4/FreeBSD/NetBSD
1801
1802 Man page fixes - Paul Dubois (dubois@primate.wisc.edu)
1803
1804 Fix use of SOLARIS macro in ipmon, rewrote ipllog() (again!)
1805
1806 parsing isn't completely case insensitive - David Wilson
1807 (davidw@optimation.com.au)
1808
1809 Release ipl_mutex across uiomove() calls
1810
1811 print entire rule entries out for "ipf -z" when zero'ing per-rule stats.
1812
1813 ipfstat returns same output for "hits" in "ipfstat -aio" - Terletsky Slavik
1814 (ts@polynet.lviv.ua)
1815
1816 New algorithm for setting timeouts for TCP connection (more closely follow
1817 TCP FSM) - Pradeep Krishnan (pkrishna@netcom.com)
1818
1819 Track both window sizes for TCP connections through "keep state".
1820
1821 Solaris2 doesn't like _KERNEL defined in stdargs.h - Jos van Wezel
1822 (wezel@bio.vu.nl)
1823
1824 3.1.1-beta2     6/10/96 - Released
1825
1826 Solaris2 fastroute/dup-to/to now works
1827
1828 ipmon `record' reading rewritten
1829
1830 Added post-NetBSD1.2 packet filter patches - Mathew Green (mrg@eterna.com.au)
1831
1832 Attempt to use in_proto.c.diff, not "..diffs" for SunOS4 - David Wilson
1833 (davidw@optimation.com.au)
1834
1835 Michael Ryan (mike@NetworX.ie) reports the following:
1836 * The Trumpet WinSock under Windows always sends its SYN packet with an ACK
1837   value of 1, unlike any other implementation I've seen, which would set it
1838   to zero.  The "keep state" feature of IP Filter doesn't work when receiving
1839   non-zero ACK values on new connection requests.
1840 * */Makefile install rule doesn't install all the binaries/man pages
1841 * Make ipnat use "tcp/udp" instead of "tcpudp"
1842 * Print out "tcp/udp" properly
1843 * ipnat "portmap tcp" matches "portmap udp" when adding/removing
1844 * NAT dest. ip# increased by one on mask of 0xffffffff when it shouldn't
1845
1846 3.1.1-beta      1/9/96 - Released
1847
1848 add better detection of TCP connections closing to TCP state monitoring.
1849
1850 fr_addstate() not called correctly for fragments.  "keep state" and
1851 "keep frag" code don't work together 100% - Songqing Cai
1852 (songqing_cai@sterling.com)
1853
1854 call to fr_addstate() incorrect for adding state in combination with keeping
1855 fragment information - Songqing Cai (songqing_cai@sterling.com)
1856
1857 KFREE() passed fp (incorrect) and not fr (correct) in ip_frag.c - John Hood
1858 (cgull@smoke.marlboro.vt.us)
1859
1860 make ipf parser recognise '\\' as a `continued line' marker - Dima Ruban
1861 (dima@best.net)
1862
1863 3.1.1-alpha     23/8/96 - Released
1864
1865 kernel panic's when ICMP packets go through NAT code
1866
1867 stats aren't zero'd properly with ipf -Z
1868
1869 ipnat doesn't show port numbers correctly all the time and also add the
1870 protocol (tcp/udp/tcpudp) to rdr output - Carson Gaspar (carson@lehman.com)
1871
1872 fast checksum fixing not 100% - backout patch - Bill Dorsey (dorsey@lila.com)
1873
1874 NetBSD-1.2 patches from - VaX#n8 <vax@linkdead.paranoia.com>
1875
1876 Usage() call error in fils.c - Ajay Shekhawat (ajay@cedar.buffalo.edu)
1877
1878 ip_optcopy() staticly defined in ip_output.c in SunOS4 - Nick Hall
1879 (nrh@tardis.ed.ac.uk)
1880
1881 3.1.0           7/7/96 - Released
1882
1883 Reformatted ipnat output to be compatible with it's input, so that
1884 "ipnat -l | ipnat -rf -" is possible.
1885
1886 3.1.0beta       30/6/96 - Released
1887
1888 NetBSD-1.2 patches from Greg Woods (woods@most.weird.com)
1889
1890 kernel module must not be installed stripped (Solaris2), as created by
1891 "make package" for Solaris2 - Peter Heimann
1892 (peter@i3.informatik.rwth-aachen.de)
1893
1894 3.1.0alpha      5/6/96 - Released
1895
1896 include examples in package for solaris2
1897
1898 patches for removing an extra ip header checksum (FreeBSD/NetBSD/SunOS)
1899
1900 removed trailing space from printouts of rules in ipf.
1901
1902 ipresend supports the same range of inputs that ipftest does.
1903
1904 sending a duplicate copy of a packet to another network devices is now
1905 supported. ("dup-to")
1906
1907 sending a packet to an arbitary interface is now supported, irrespective
1908 of its actual route, with no ttl decrement.  Can also be routed without
1909 the ttl being decremented. ("to" and "fastroute").
1910
1911 "call" option added to support calling a generic function if a packet is
1912 matched.
1913
1914 show all (upto 4) recorded bytes from the interface name in logging from
1915 ipmon.
1916
1917 support for using unix file permissions for read/write access on the device
1918 is now in place.
1919
1920 recursive mutex in nat_new() for Solaris 2.x - Per L. Hagen <per@stibo.dk>
1921
1922 ipftest doesn't call initparse() for THISHOST - Catherine Allen
1923 (cla@connect.com.au)
1924
1925 Man page corrections from Rex Bona (rex@pengo.comsmiths.com.au)
1926
1927 3.0.4           10/4/96 - Released
1928
1929 looop in `parsing' IP packets with optlen 0 for ip options.
1930
1931 rule number not initialized and resulted in unexpected results for state
1932 maching.
1933
1934 option parsing and printing bugs - Pradeep Krishnan
1935
1936 3.0.4beta       25/3/96 - Released
1937
1938 wouldn't parse "keep flags keep state" correctly.
1939
1940 SunOS4.1.x ip_input.c doesn't recognise all 1s broadcast address - Nigel Verdon
1941
1942 patches for BSDI's BSD/OS 2.1 and libpcap reader on little endian systems
1943 from Thorsten Lockert <tholo@tetherless.com>
1944
1945 b* functions in fil.c on Solaris 2.4
1946
1947 3.0.3   17/3/96 - Released
1948
1949 added patches to support IP Filter initialisation when compiled into the
1950 kernel.
1951
1952 added -x option to ipmon to display hex dumps of logged packets.
1953
1954 added -H option to ipftest to allow ascii-hex formatted input to specify
1955 arbitary IP packets.
1956
1957 Sending TCP RSTs as a response now work for Solaris2 x86
1958
1959 add patches to make IP Filter compile into NetBSD kernels properly.
1960
1961 patch to stop SunOS 4.1.x kernels panicing with "data traps".
1962
1963 ipfboot script unloads and reloads ipf module on Solaris2 if it is already
1964 loaded into the kernel.
1965
1966 Installation of IP Filter as a Solaris2 package is now supported.
1967
1968 Man pages for ipnat.4, ipnat.5 added.
1969
1970 added some more regression tests and fixed up IP Filter to pass the new tests
1971 (previous versions failed some of the tests in set 12).
1972
1973 IP option filter processing has changed so that saying "with opt lsrr" will
1974 check only for that one, but not mask out other options, so a packet with
1975 strict source routing, along with loose source routing will match all of
1976 "with opt lsrr", "with opt ssrr" and "with opt lsrr,ssrr".
1977
1978 IPL_NAME needed in ipnat.c - Kelly (kelly@count04.mry.scruznet.com)
1979
1980 patches for clean NetBSD compilation from Bernd Ernesti (bernd@arresum.inka.de)
1981
1982 make install is incorrect - Julian Briggs (julian@lightwork.co.uk)
1983
1984 strtol() returns 0x7fffffff for all negative numbers,
1985 printfr() generates incorrect output for "opt sec-class *",
1986 handling of "not opt xxx opt yyy" incorrect.
1987 - Minh Tonthat (minht@sbei.com)/Pradeep Krishnan (pradeepk@sbei.com)
1988
1989 m_pullup() called only for input and not output; caused problems
1990 with filtering icmp - Nigel Verdon (verdenn@gb.swissbank.com)
1991
1992 parsing problem for "port 1" and NetBSD patches incorrect -
1993 Andreas Gustafsson (gson@guava.araneus.fi)
1994
1995 3.0.2   4/2/96 - Released
1996
1997 Corrected bug where NAT recalculates checksums for fragments.
1998
1999 make NAT recalculate UDP checksums (rather than setting them to 0),
2000 if they're non-zero.
2001
2002 DNS patches - Real Page (Real.Page@Matrox.com)
2003
2004 alteration of checksum recalculations in NAT code and addition of
2005 redirection with NAT - Mike Neuman
2006
2007 core dump, if tcp/udp is used with a port number and not service name,
2008 in ipf - Mike Neuman (mcn@engarde.com)
2009
2010 initparse() call, missing to prime "<thishost>" hook - Craig Bishop
2011
2012 3.0.1   14/1/96 - Released
2013
2014 miscellaneous patches for Solaris2
2015
2016 3.0     14/1/96 - Released
2017
2018 Patch included for FDDI, from Richard Ohnemus
2019 (Richard_Ohnemus@dallas.csd.sterling.com)
2020
2021 Code cleanup for release.
2022
2023 3.0beta4 10/1/96
2024
2025 recursive mutex in ipfr_slowtimer fixed, reported by Craig Bishop
2026
2027 recursive mutex in sending TCP RSTs fixed, reported by Tony Becker
2028
2029 3.0beta3 9/1/96
2030
2031 FIxup for Solaris2.5 install and interface name bug in ipftest from
2032 Julian Briggs (julian@lightwork.co.uk)
2033
2034 Byte order patches for ipmon from Tony Becker (tony@mcrsys.com)
2035
2036 3.0beta2 7/1/96
2037
2038 Added the (somewhat warped) IP accounting as it exists in ipfw on FreeBSD.
2039 Note, this isn't really what one would call IP account, when compared to
2040 process accounting, sigh.
2041
2042 Split up ipresend into iptest/ipresend/ipsend
2043
2044 Added another m_pullup() inside fr_check() for BSD style kernels and
2045 added some checks to ipllog() to not log more than is present (for short
2046 packets).
2047
2048 Fixed bug where failed hostname/netname resolution goes undetecte and
2049 becomes 0.0.0.0 (any) (reported Guido van Rooij)
2050
2051 3.0beta 11/11/95        - Released
2052
2053 Rewrote the way rule testing is done, reducing the number of files needed and
2054 generated.
2055
2056 SIOCIPFFL was incorrectly affected by IPFILTER_LOG (Mathew Green)
2057
2058 Patches from Guido van Rooij to fix sending back TCP RSTs on Net-2/Net-3
2059 BSD based Unixes (panic'd)
2060
2061 Patches for FreeBSD/i86 ipmon from Riku Kalinen <riku@tequila.nixu.fi>
2062 (I think someone else already told me about these but they got lost :-/)
2063
2064 Changed Makefile structure to build object files for different operating
2065 systems in separate directories by default.
2066
2067 BSDI has ef0 for first ethernet interface
2068
2069 Allow for a "not" operator before optional keywords.
2070
2071 The "rule number" was being incorrectly incremented every time it went through
2072 the loop rather than when it matched a rule.
2073
2074 2.8.2   24/10/95        - Released
2075
2076 Fixed up problems with "textip" for doing lots of testing.
2077
2078 Fixed bug in detection of "short" tcp/ip packets (all reported as being short).
2079
2080 Solaris 2.4 port now works 100%.
2081
2082 Man page errors reported and fixed.
2083
2084 Removed duplicate entry in etc/services for login on port 49 (Craig Bishop).
2085
2086 Fixed ipmon output to put a space after the log-letter.
2087
2088 Patch from Guido van Rooij to fix parsing problem.
2089
2090 2.8.1   15/10/95        - Released
2091
2092 Added ttl and tos filtering.
2093
2094 Patches for fixing up compilation and port problems (little endian)
2095 from Guido van Rooij <guido@IAEhv.nl>.
2096
2097 Man page problems reported and fixed by Carson Gaspar <carson@lehman.com>.
2098
2099 ipsend doesn't compile properly on Solaris2.4
2100
2101 Lots of work done for Solaris2.4 to make it MT/MP safe and work.
2102
2103 2.8     15/9/95         - Released
2104
2105 ipmon can now send messages to syslogd (-s) and use names instead of
2106 numbers (-N).
2107
2108 IP packets are now "compiled" into a structure only containing filterable
2109 bits.
2110
2111 Added regression testing in the test/ subdirectory, using a new option
2112 (-b) with the ipftest program.
2113
2114 Added "nomatch" return to filter results.  These are counted and show
2115 up in reports from ipfstat.
2116
2117 Moved filter code out of ip_fil.c and into fil.c - there is now only one
2118 instance of it in the package.
2119
2120 Added Solaris 2.4 support.
2121
2122 Added IPSO basic security option filtering.
2123
2124 Added name support for filtering on all 19 named IP options.
2125
2126 Patches from Ivan Brawley to log packet contents as well as packet headers.
2127
2128 Update for sun/conf.c.diff from Ivan Brawley <ibrawley@awadi.com.AU>
2129
2130 Added patches for FreeBSD 1, and added two new switches (-E, -D) to ipf,
2131 along with a new ioctl, SIOCFRENB.
2132 From: Dieter Dworkin Muller <dworkin@village.org>
2133
2134 2.7.3   31/7.95         - Released
2135
2136 Didn't compile cleanly without IPFILTER_LOG defined (Mathew Green).
2137
2138 ipftest now deals with tcpdump3 binary output files (from libpcap) with -P.
2139
2140 Brought ipftest program upto date with actual filter code.
2141
2142 Filter would cause a match to occur when it wasn't meant to if the packet
2143 had short headers and was missing portions that should have been there.
2144 Err, it would rightly not match on them, but their absence caused a match
2145 when it shouldn't have been.
2146
2147 2.7.2   26/7/95         - Released
2148
2149 Problem with filtering just SYN flagged packets reported by
2150 Dieter Dworkin Muller <dworkin@village.org>.  To solve this
2151 problem, added support for masking TCP flags for comparison "flags X/Y".
2152
2153 2.7.1   9/7/95          - Released
2154
2155 Added ip_dirbroadcast support for Sun ip_input.c
2156
2157 Fixed up the install scripts for FreeBSD/NetBSD to recognise where they are
2158 better.
2159
2160 2.7     7/7/95          - Released
2161
2162 Added "return-rst" to return TCP RST's to TCP packets.
2163
2164 Actually ported it to FreeBSD-i386 2.0.0, so it works there properly now.
2165
2166 Added insertion of filter rules.  Use "@<#>" at the beginning of a filter
2167 to insert a rule at row #.
2168
2169 Filter keeps track of how many times each rule is matched.
2170
2171 Changed compile time things to match kernel option (IPFILTER_LKM &
2172 IPFILTER_LOG).
2173
2174 Updated ip_input.c and ip_output.c with paches for 3.5 Multicast IP.
2175 (No change required for 3.6)
2176
2177 Now includes TCP fragments which start inside the TCP header as being short.
2178 Added counting the number of times each rule is matched.
2179
2180
2181 2.6     11/5/95         - Released
2182
2183 Added -n option to ipf: when supplied, no changes are made to the kernel.
2184
2185 Added installation scripts for SunOS 4.1.x and NetBSD/FreeBSD/BSDI.
2186
2187 Rewrote filtering to use a more generic mask & match procedure for
2188 checking if a packet matches a rule.
2189
2190 2.5.2   27/4/95         - Released
2191
2192 "tcp/udp" and a non-initialised pointer caused the "proto" to become
2193 a `random' value; added "ip#/dotted.mask" notation to the BNF.
2194 From Adam W. Feigin  <feigin@iis.ee.ethz.ch>
2195
2196 2.5.1   22/3/95         - Released
2197
2198 "tcp/udp" had a strange effect (undesired) on getserv*() functions,
2199 causing protocol/service lookups to fail.  Reported by Matthew Green.
2200
2201 2.5     17/3/95         - Released
2202
2203 Added a new keyword "all" to BNF and parsing of tcpdump/etherfind/snoop
2204 output through the ipftest program.  Suggestions from:
2205 Michael Ciavarella (mikec@phyto.apana.org.au)
2206
2207 Conflicts occur when "general" filter rules are used for ports and the
2208 lack of a "proto" when used with "port" matches other packets when only
2209 TCP/UDP are implied.
2210 Reported Matthew Green (mrg@fulcom.com.au);
2211 reported & fixed 6-8/3/95
2212
2213 Added filtering of short TCP packets using "with short" 28/2/95
2214 (These can possibly slip by checks for the various flags).  Short UDP
2215 or ICMP are dropped to the floor and logged.
2216
2217 Added filtering of fragmented packets using "with frag" 24/2/95
2218
2219 Port to NetBSD-current completed 20/2/95, using LKM.
2220
2221 Added logging of the rule # which caused the logging to happen and the
2222 interface on which the packet is currently as suggested by
2223 Andreas Greulich (greulich@math-stat.unibe.ch) 10/2/95
2224
2225 2.4     9/2/95          - Released
2226 Fixed saving of IP headers in ICMP packets.
2227
2228 2.3     29/1/95
2229 Added ipf -F [in|out|all] to flush filter rule sets (SIOCIPFFL).
2230 Fixed iplread() and iplsave() with help from Marc Huber.
2231
2232 2.2     7/1/95          - Released
2233 Added code from Marc Huber <huber@fzi.de> to allow it to allocate
2234 its own major char number dynamically when modload'ing.  Fixed up
2235 use of <, >, <=, >= and >< for ports.
2236
2237 2.1     21/12/94        - Released
2238 repackaged to include the correct ip_output.c and ip_input.c *goof*
2239
2240 2.0     18/12/94        - Released
2241 added code to check for port ranges - complete.
2242 rewrote to work as a loadable kernel module - complete.
2243
2244 1.1
2245 added code for ouput filtering as well as input filtering and added support for logging to a simple character device of packet headers.
2246
2247 1.0     22/04/93        - Released
2248 First release cut.