xref: /netbsd-src/external/bsd/ipf/dist/HISTORY (revision c9d5dc6c77aa32fd07899a7a63638e95ffa433dd)
1bc4097aaSchristos#
2bc4097aaSchristos# NOTE: Quite a few patches and suggestions come from other sources, to whom
3bc4097aaSchristos#       I'm greatly indebted, even if no names are mentioned.
4bc4097aaSchristos#
5bc4097aaSchristos# Thanks to the Coombs Computing Unit at the ANU for their continued support
6bc4097aaSchristos# in providing a very available location for the IP Filter home page and
7bc4097aaSchristos# distribution center.
8bc4097aaSchristos#
9bc4097aaSchristos# Thanks also to all those who have contributed patches and other code,
10bc4097aaSchristos# and especially those who have found the time to port IP Filter to new
11bc4097aaSchristos# platforms.
12bc4097aaSchristos#
13*c9d5dc6cSdarrenr5.1.2 - RELEASED - 22 Jul 2012
14*c9d5dc6cSdarrenr
15*c9d5dc6cSdarrenr3546266 macro letters could be more consistent
16*c9d5dc6cSdarrenr3546265 not all of the state statistics are displayed
17*c9d5dc6cSdarrenr3546261 scripts for updating BSD environment out of date
18*c9d5dc6cSdarrenr3546260 compiler warnings about non-integer array subscript
19*c9d5dc6cSdarrenr3546259 asserting numdereflists == 0 is not correct
20*c9d5dc6cSdarrenr3546258 expression matching does not see IPF_EXP_END
21*c9d5dc6cSdarrenr3544317 ipnat/ipfstat are not using ipfexp_t
22*c9d5dc6cSdarrenr3545324 proxy checksum calculation is not hardware aware
23*c9d5dc6cSdarrenr3545321 FTP sequence number adjustment incorrectly applied
24*c9d5dc6cSdarrenr3545320 EPSV is not recognised
25*c9d5dc6cSdarrenr3545319 move nat rule creation to ip_proxy.c
26*c9d5dc6cSdarrenr3545317 better feedback of checksum requirements for proxies
27*c9d5dc6cSdarrenr3545314 ftp proxy levels do not make sense
28*c9d5dc6cSdarrenr3545312 EPRT is not supported by ftp proxy
29*c9d5dc6cSdarrenr3544318 ipnat.conf parsing ignores LHS address family
30*c9d5dc6cSdarrenr3545309 non-ipv6 safe proxies do not fail with ipv6
31*c9d5dc6cSdarrenr3545323 NAT updates the source port twice
32*c9d5dc6cSdarrenr3545322 ipv6 nat rules cannot start proxies
33*c9d5dc6cSdarrenr3544314 bucket copyout tries to copy too much data
34*c9d5dc6cSdarrenr3544313 remove nat encap feature
35*c9d5dc6cSdarrenr3546248 compat rule pointer type mismatch
36*c9d5dc6cSdarrenr3546247 UDP hardware checksum offload not recognised
37*c9d5dc6cSdarrenr3545311 ifp_ifaddr does not find the first set address
38*c9d5dc6cSdarrenr3545310 ipmon needs ipl_sec on 64bit boundary
39*c9d5dc6cSdarrenr3545326 reference count changes made without lock
40*c9d5dc6cSdarrenr3544315 stateful matching does not use ipfexp_t
41*c9d5dc6cSdarrenr3543493 tokens are not flushed when disabled
42*c9d5dc6cSdarrenr3543487 NAT rules do not always release lookup objects
43*c9d5dc6cSdarrenr3543491 function comments in ip_state.c are old
44*c9d5dc6cSdarrenr3543404 ipnat.conf parsing uses family/ip version badly
45*c9d5dc6cSdarrenr3543403 incorrect line number printed in ipnat parsing errors
46*c9d5dc6cSdarrenr3543402 Not all NAT statistics are printed
47*c9d5dc6cSdarrenr3542979 NAT session list management is too simple
48*c9d5dc6cSdarrenr3542978 ipv4 and ipv6 nat insert have common hash insertion
49*c9d5dc6cSdarrenr3542977 ipnat_t refence tracking incomplete
50*c9d5dc6cSdarrenr3542975 proxies must use ipnat_t separately
51*c9d5dc6cSdarrenr3542980 printing ipv6 expressions is wrong
52*c9d5dc6cSdarrenr3542983 ippool cannot handle more than one ipv6 address
53*c9d5dc6cSdarrenr3543018 mask array shifted incorrectly.
54*c9d5dc6cSdarrenr3542974 reason for dropping packet is lost
55*c9d5dc6cSdarrenr3542982 line numbers not recorded/displayed correctly by ipf
56*c9d5dc6cSdarrenr3542981 exclamation mark cuases trouble with pools
57*c9d5dc6cSdarrenr3541655 test suite checksums incorrect
58*c9d5dc6cSdarrenr3541653 display proxy fail status correctly
59*c9d5dc6cSdarrenr3540993 IP header offset excluded in pullup calculations
60*c9d5dc6cSdarrenr3540994 pullupmsg does not work as required
61*c9d5dc6cSdarrenr3540992 pointer to ipv6 frag header not updated on pullup
62*c9d5dc6cSdarrenr3541645 netmask management adds /32 for /0
63*c9d5dc6cSdarrenr3541637 ipnat parser does not zero port fields for non-port protocol
64*c9d5dc6cSdarrenr3541635 pool names cannot by numbers
65*c9d5dc6cSdarrenr3540995 IPv6 fragment tracking does not always work
66*c9d5dc6cSdarrenr3540996 printing of nextip for ipv6 nat rules is wrong
67*c9d5dc6cSdarrenr3540999 ipnat.conf parsing has trouble with icmpidmap for ipv6
68*c9d5dc6cSdarrenr3540825 whois output parsing error for ipv6
69*c9d5dc6cSdarrenr3540814 ipfd_lock serves no purpose
70*c9d5dc6cSdarrenr3540810 lookup objects need tail pointers
71*c9d5dc6cSdarrenr3540809 refactor hash table lookups for nat
72*c9d5dc6cSdarrenr3540819 radix tree does not work with ipv6
73*c9d5dc6cSdarrenr3540820 mutex emulation should be logged
74*c9d5dc6cSdarrenr3540828 ipfstat filtering with -m fails tests
75*c9d5dc6cSdarrenr3536480 ippool could be more like the others
76*c9d5dc6cSdarrenr3536477 pool printing not uniform
77*c9d5dc6cSdarrenr3536483 flushing empty destination lists causes panic
78*c9d5dc6cSdarrenr3536481 more use of bzero after KMALLOC required
79*c9d5dc6cSdarrenr3536479 ipnat.conf line numbers not stored
80*c9d5dc6cSdarrenr3536484 Makefile missing dependency for ippool
81*c9d5dc6cSdarrenr3536199 TFTP proxy requires something extra
82*c9d5dc6cSdarrenr3536198 ICMP checksum out by one
83*c9d5dc6cSdarrenr3536203 ipnat does not return an error
84*c9d5dc6cSdarrenr3536201 ipf.conf parsing too address friendly
85*c9d5dc6cSdarrenr3536200 printing of bytes/packets not indented
86*c9d5dc6cSdarrenr3497941 ipv4 multicast detection incorrect on little endian
87*c9d5dc6cSdarrenr3535361 to interfaces printed out of order
88*c9d5dc6cSdarrenr3535363 ipf parser is inconsistent
89*c9d5dc6cSdarrenr3532306 deleting ipnat rules does not work
90*c9d5dc6cSdarrenr3532054 new error required for ipf_rx_create
91*c9d5dc6cSdarrenr3532053 icmp6 checksums wrong
92*c9d5dc6cSdarrenr3532052 icmpv6 state check with incorrect length
93*c9d5dc6cSdarrenr3531871 checksum verification wants too many icmp6 bytes
94*c9d5dc6cSdarrenr3531870 ipnat.conf parsing needs to support inet6
95*c9d5dc6cSdarrenr3532048 error in ipf group parsing
96*c9d5dc6cSdarrenr3531868 ICMPV6 checksum not validated
97*c9d5dc6cSdarrenr3531893 ipftest exits without error for bad input
98*c9d5dc6cSdarrenr3531890 whois pool parsing builds bad structures
99*c9d5dc6cSdarrenr3531891 icmpv6 text parsing ignorant of icmp types
100*c9d5dc6cSdarrenr3531653 rewrite with icmp does not work
101*c9d5dc6cSdarrenr3530563 NAT operations fail with EPERM
102*c9d5dc6cSdarrenr3530544 first pass at gcc -Wextra cleanup
103*c9d5dc6cSdarrenr3530540 lookup create functions do not set error properly
104*c9d5dc6cSdarrenr3530539 ipf_main_soft_destroy doesn't need 2nd arg
105*c9d5dc6cSdarrenr3530541 reorder structure for better packing
106*c9d5dc6cSdarrenr3530543 ipnat purge needs documentation
107*c9d5dc6cSdarrenr3530515 BSD upgrade script required
108*c9d5dc6cSdarrenr3528029 ipmon bad-mutex panic
109*c9d5dc6cSdarrenr3530247 loading address pools light on input validation
110*c9d5dc6cSdarrenr3530255 radix tree delete uses wrong lookup
111*c9d5dc6cSdarrenr3530254 radix tree allocation support wrong
112*c9d5dc6cSdarrenr3530264 ipmon prints qd for some 64bit numbers
113*c9d5dc6cSdarrenr3530260 decapsulate rules not printed correctly.
114*c9d5dc6cSdarrenr3530266 ipfstat -v/-d flags confused
115*c9d5dc6cSdarrenr2939220 why a packet is blocked is not discernable
116*c9d5dc6cSdarrenr2939218 output interface not recorded
117*c9d5dc6cSdarrenr2941850 use of destination lists with to/dup-to beneficial
118*c9d5dc6cSdarrenr3457747 build errors introduced with radix change
119*c9d5dc6cSdarrenr3535360 timeout groups leak
120*c9d5dc6cSdarrenr3535359 memory leak with tokens
121*c9d5dc6cSdarrenr3535358 listing rules in groups requires tracking groups
122*c9d5dc6cSdarrenr3535357 rule head removal is problematic
123*c9d5dc6cSdarrenr3530259 not all ioctl error checked wth SIOCIPFINTERROR
124*c9d5dc6cSdarrenr3530258 error routine that uses fd required
125*c9d5dc6cSdarrenr3530253 inadequate function comment blocks
126*c9d5dc6cSdarrenr3530249 walking lookup tables leaks memory
127*c9d5dc6cSdarrenr3530241 extra lock padding required for freebsd
128*c9d5dc6cSdarrenr3529901 ipf returns 0 when rules fail to load
129*c9d5dc6cSdarrenr3529491 checksum validation could be better
130*c9d5dc6cSdarrenr3529486 tcp checksum wrong for ipv6
131*c9d5dc6cSdarrenr3533779 ipv6 nat rules missing inet6 keyword
132*c9d5dc6cSdarrenr3532693 ipnat.conf rejects some ipv6 addresses
133*c9d5dc6cSdarrenr3532691 ipv4 should not be forced for icmp
134*c9d5dc6cSdarrenr3532689 ipv6 nat rules do not print inet6
135*c9d5dc6cSdarrenr3532688 ipv6 address always printed with "to <if>"
136*c9d5dc6cSdarrenr3532687 with v6hdrs not supported like with ipopts
137*c9d5dc6cSdarrenr3532686 ipf expressions do not work with ipv6
138*c9d5dc6cSdarrenr3540825 whois output parsing error for ipv6
139*c9d5dc6cSdarrenr3540818 NAT for certain IPv6 ICMP packets should not be allowed
140*c9d5dc6cSdarrenr3540815 memory leak with destination lists
141*c9d5dc6cSdarrenr3540814 ipfd_lock serves no purpose
142*c9d5dc6cSdarrenr3540810 lookup objects need tail pointers
143*c9d5dc6cSdarrenr3540809 refactor hash table lookups for nat
144*c9d5dc6cSdarrenr3540808 completed tokens do not stop iteration
145*c9d5dc6cSdarrenr3530492 address hash table name not used
146*c9d5dc6cSdarrenr3528029 ipmon bad-mutex panic
147*c9d5dc6cSdarrenr3530256 hook memory leaked
148*c9d5dc6cSdarrenr3530271 pools parsing produces badly formed address structures
149*c9d5dc6cSdarrenr3488061 cleanup for illumos build
150*c9d5dc6cSdarrenr3484434 SIOCIPFINTERROR must work for all devices
151*c9d5dc6cSdarrenr3484067 mandoc -Tlint warnings to be fixed
152*c9d5dc6cSdarrenr3483343 compile warning in ipfcomp.c
153*c9d5dc6cSdarrenr3482893 building without IPFILTER_LOG fails
154*c9d5dc6cSdarrenr3482765 building netbsd kernel without inet6 fails
155*c9d5dc6cSdarrenr3482116 ipf_check frees packet from ipftest
156*c9d5dc6cSdarrenr3481663 does not compile on solaris 11
157*c9d5dc6cSdarrenr
158*c9d5dc6cSdarrenr5.1.1 - RELEASED - 9 May 2012
159*c9d5dc6cSdarrenr
160*c9d5dc6cSdarrenr3481322 ip_fil_compat.c needs a cleanup
161*c9d5dc6cSdarrenr3481211 add user errors to dtrace
162*c9d5dc6cSdarrenr3481152 compatibility for 4.1 needs more work
163*c9d5dc6cSdarrenr3481153 PRIu64 problems on FreeBSD
164*c9d5dc6cSdarrenr3481155 ipnat listing incorrect
165*c9d5dc6cSdarrenr3480543 change leads to compat problems
166*c9d5dc6cSdarrenr3480538 compiler errors from earlier patch
167*c9d5dc6cSdarrenr3480537 ipf_instance_destroy is incomplete
168*c9d5dc6cSdarrenr3480536 _fini order leads to panic
169*c9d5dc6cSdarrenr3479991 compiler warnings about size mismatches
170*c9d5dc6cSdarrenr3479974 copyright dates are wrong (fix)
171*c9d5dc6cSdarrenr3479464 add support for leaks testing
172*c9d5dc6cSdarrenr3479457 %qu is not the prefered way
173*c9d5dc6cSdarrenr3479451 iterators leak memory
174*c9d5dc6cSdarrenr3479453 nat rules with pools leak
175*c9d5dc6cSdarrenr3479454 memory leak in hostmap table
176*c9d5dc6cSdarrenr3479461 load_hash uses memory after free
177*c9d5dc6cSdarrenr3479462 printpool leaks memory
178*c9d5dc6cSdarrenr3479452 missing FREE_MB_T to freembt leaks
179*c9d5dc6cSdarrenr3479450 ipfdetach is called when detached
180*c9d5dc6cSdarrenr3479448 group mapping rules memory leak
181*c9d5dc6cSdarrenr3479455 memory leak from tuning
182*c9d5dc6cSdarrenr3479458 ipf must be running in global zone
183*c9d5dc6cSdarrenr3479460 driver replace is wrong
184*c9d5dc6cSdarrenr3479459 radix tree tries to free null pointer
185*c9d5dc6cSdarrenr3479463 rwlock emulation does not free memory
186*c9d5dc6cSdarrenr3479465 parser leaks memory
187*c9d5dc6cSdarrenr3475959 hardware checksum not correctly used
188*c9d5dc6cSdarrenr3475426 ip pseudo checksum wrong
189*c9d5dc6cSdarrenr3473566 radix tree does not delete dups right
190*c9d5dc6cSdarrenr3472987 compile is not clean
191*c9d5dc6cSdarrenr3472337 not everything is zero'd
192*c9d5dc6cSdarrenr3472344 interface setup needs to be after insert
193*c9d5dc6cSdarrenr3472340 wildcard counter drops twice
194*c9d5dc6cSdarrenr3472338 change fastroute interface
195*c9d5dc6cSdarrenr3472335 kernel lock defines not placed correctly
196*c9d5dc6cSdarrenr3472324 ICMP INFOREQ/REPLY not handled
197*c9d5dc6cSdarrenr3472330 multicast packets tagged by address
198*c9d5dc6cSdarrenr3472333 ipf_deliverlocal called incorrectly
199*c9d5dc6cSdarrenr3472345 mutex debug could be more granular
200*c9d5dc6cSdarrenr3472761 building i19 regression is flawed
201*c9d5dc6cSdarrenr3456457 use of bsd tree.h needs to be removed
202*c9d5dc6cSdarrenr3460522 code cleanup required for building on freebsd
203*c9d5dc6cSdarrenr3459734 trade some cpu for memory
204*c9d5dc6cSdarrenr3457747 build errors introduced with radix change
205*c9d5dc6cSdarrenr3457804 build errors from removal of pcap-int,h
206*c9d5dc6cSdarrenr3440163 rewrite radix tree
207*c9d5dc6cSdarrenr3428004 snoop, tcpdump, etherfind readers are unused
208*c9d5dc6cSdarrenr3439495 ipf_rand_push never called (fix brackets)
209*c9d5dc6cSdarrenr3437732 getnattype does not need to use ipnat_t (fix variable name)
210*c9d5dc6cSdarrenr3437696 fr_cksum is a nightmare
211*c9d5dc6cSdarrenr3439061 ipf_send_ip doesn't need 3rd arg
212*c9d5dc6cSdarrenr3439059 ipid needs to be file local
213*c9d5dc6cSdarrenr3437740 complete buildout of fnew
214*c9d5dc6cSdarrenr3438575 add dtrace probes to block events
215*c9d5dc6cSdarrenr3438347 comment blocks missing softc
216*c9d5dc6cSdarrenr3437687 description of ipf_makefrip wrong
217*c9d5dc6cSdarrenr3438340 more stats as dtrace probes
218*c9d5dc6cSdarrenr3438316 free on nat structure uses fixed size
219*c9d5dc6cSdarrenr3437745 nat iterator using the wrong size
220*c9d5dc6cSdarrenr3437710 fail checksum verification if packet is short
221*c9d5dc6cSdarrenr3437696 fr_cksum is a nightmare
222*c9d5dc6cSdarrenr3437732 getnattype does not need to use ipnat_t
223*c9d5dc6cSdarrenr3437735 rename ipf_allocmbt to allocmbt
224*c9d5dc6cSdarrenr3437697 fr_family to version assignment is wrong
225*c9d5dc6cSdarrenr3437746 ap_session_t has unused fields
226*c9d5dc6cSdarrenr3437747 move softc structure to .h file (ip_state.c)
227*c9d5dc6cSdarrenr3437704 there is no DTRACE_PROBE5
228*c9d5dc6cSdarrenr3437748 wrong interface in qpktinfo_t
229*c9d5dc6cSdarrenr3437729 create function to hexdump mb_t
230*c9d5dc6cSdarrenr3438273 msgdsize should be easier to read
231*c9d5dc6cSdarrenr3437683 object direction not set for 32bit
232*c9d5dc6cSdarrenr3433767 calling ip_cksum could be easier
233*c9d5dc6cSdarrenr3433764 left over locking
234*c9d5dc6cSdarrenr3428015 printing proxy data size is useless
235*c9d5dc6cSdarrenr3428013 add M_ADJ to hide adjmsg/m_adj
236*c9d5dc6cSdarrenr3428012 interface name is not always returned correctly
237*c9d5dc6cSdarrenr3428002 ip_ttl is too low
238*c9d5dc6cSdarrenr3427997 ipft readers do not set buffer length
239*c9d5dc6cSdarrenr3426558 resistence is futile
240*c9d5dc6cSdarrenr3424495 various copy-paste errors
241*c9d5dc6cSdarrenr1826936 shall we allow ipf to be as dumb as its admin
242*c9d5dc6cSdarrenr3424477 specfuncs needs to go
243*c9d5dc6cSdarrenr3424484 missing fr_checkv6sum
244*c9d5dc6cSdarrenr3424478 one entry at a time
245*c9d5dc6cSdarrenr2998760 auth rules do not mix well with to/dup-to/fastroute
246*c9d5dc6cSdarrenr3424195 add ctfmerge to sunos5 makefile
247*c9d5dc6cSdarrenr3424132 some dtrace probes to start with
248*c9d5dc6cSdarrenr3423812 makefile needs ip_frag.h for some files
249*c9d5dc6cSdarrenr3423817 reference count useful in verbose output
250*c9d5dc6cSdarrenr3423800 walking lists does not drop reference
251*c9d5dc6cSdarrenr3423805 fragmentation stats not reported correclty
252*c9d5dc6cSdarrenr3423808 ip addresses reportied incorrectly with ipfstat -f
253*c9d5dc6cSdarrenr3423821 track packets and bytes for fragmentation
254*c9d5dc6cSdarrenr3423803 attempt to double free rule
255*c9d5dc6cSdarrenr3423805 fragmentation stats not reported correctly
256*c9d5dc6cSdarrenr3422712 system panic with ipfstat -f
257*c9d5dc6cSdarrenr3422619 pullup counter bumped for every packet
258*c9d5dc6cSdarrenr3422608 dummy rtentry required to build
259*c9d5dc6cSdarrenr3422018 frflush next to ipf_fini_all is redundant
260*c9d5dc6cSdarrenr3422012 instance cleanup is not clean
261*c9d5dc6cSdarrenr3421845 instance name not set
262*c9d5dc6cSdarrenr3005622 ip_fil5.1.0 does not load on Solaris 10 U8
263*c9d5dc6cSdarrenr2976332 stateful filtering is incompatible with ipv4 options
264*c9d5dc6cSdarrenr3387509 ipftest needs help construction ip packets with options
265*c9d5dc6cSdarrenr2998746 passp can never be null
266*c9d5dc6cSdarrenr3064034 mbuf clobbering problem with ipv6
267*c9d5dc6cSdarrenr3105725 ipnat divide by zero panic
268*c9d5dc6cSdarrenr2998750 ipf_htent_insert can leak memory
269*c9d5dc6cSdarrenr3064034 mbuf clobbering problem with ipv6
270*c9d5dc6cSdarrenr3105725 ipnat divie by zero panic
271*c9d5dc6cSdarrenr
272bc4097aaSchristos5.1 - RELEASED - 9 May 2010
273bc4097aaSchristos
274bc4097aaSchristos* See WhatsNew50.txt
275bc4097aaSchristos
276bc4097aaSchristos4.1 - RELEASED - 12 February 2004
277bc4097aaSchristos
278bc4097aaSchristos4.0-BETA1 20 August 2003
279bc4097aaSchristos
280bc4097aaSchristossupport 0/32 and 0/0 on the RHS in redirect rules
281bc4097aaSchristos
282bc4097aaSchristoswhere LHS and RHS netmasks are the same size for redirect, do 1:1 mapping
283bc4097aaSchristosfor bimap rules.
284bc4097aaSchristos
285bc4097aaSchristosallow NAT rule to match 'all' interfaces with * as interface name
286bc4097aaSchristos
287bc4097aaSchristosdo mapping of ICMP sequence id#'s in pings
288bc4097aaSchristos
289bc4097aaSchristosallow default age for NAT entries to be set per NAT rule
290bc4097aaSchristos
291bc4097aaSchristosprovide round robin selection of destination addresses for redirect
292bc4097aaSchristos
293bc4097aaSchristosipmon can load a configuration file with instructions on actions
294bc4097aaSchristosto take when a matching log entry is received
295bc4097aaSchristos
296bc4097aaSchristosnow requires pfil to work on Solaris & HP-UX
297bc4097aaSchristos
298bc4097aaSchristossupports mapping outbound connections to a specific address/port
299bc4097aaSchristos
300bc4097aaSchristossupport toggling of logging per ipfilter 'device'
301bc4097aaSchristos
302bc4097aaSchristosuse queues to expire data rather than lists
303bc4097aaSchristos
304bc4097aaSchristosadd MSN RPC proxy
305bc4097aaSchristos
306bc4097aaSchristosadd IRC proxy
307bc4097aaSchristos
308bc4097aaSchristossupport rules with dynamic ip addresses
309bc4097aaSchristos
310bc4097aaSchristosadd ability to define a pool of addresses & networks which can then
311bc4097aaSchristosbe placed in a single rule
312bc4097aaSchristos
313bc4097aaSchristossupport passing entire packet back to user program for authentication
314bc4097aaSchristos
315bc4097aaSchristossupport master/slave for state information sharing
316bc4097aaSchristos
317bc4097aaSchristosreorganise generic code into a lib directory and make libipf.a
318bc4097aaSchristos
319bc4097aaSchristosuser programs enforce version matching with the kernel
320bc4097aaSchristos
321bc4097aaSchristossupports window scaling if seen at TCP session setup
322bc4097aaSchristos
323bc4097aaSchristosgenerates C code from filter rules to compile in or load as native
324bc4097aaSchristosmachine code.
325bc4097aaSchristos
326bc4097aaSchristossupports loading rules comprised of BPF bytecode statements
327bc4097aaSchristos
328bc4097aaSchristosHP-UX 11 port completed
329bc4097aaSchristos
330bc4097aaSchristosand packets-per-second filtering
331bc4097aaSchristos
332bc4097aaSchristosadd numerical tags to rules for filtering and display in ipmon output
333bc4097aaSchristos
334bc4097aaSchristos3.4.4 23/05/2000 - Released
335bc4097aaSchristos
336bc4097aaSchristosdon't add TCP state if it is an RST packet and (attempt) to send out
337bc4097aaSchristosRST/ICMP packets in a manner that bypasses IP Filter.
338bc4097aaSchristos
339bc4097aaSchristosadd patch to work with 4.0_STABLE delayed checksums
340bc4097aaSchristos
341bc4097aaSchristos3.4.3 20/05/2000 - Released
342bc4097aaSchristos
343bc4097aaSchristosfix ipmon -F
344bc4097aaSchristos
345bc4097aaSchristosdon't truncate IPv6 packets on Solaris
346bc4097aaSchristos
347bc4097aaSchristosfix keep state for ICMP ECHO
348bc4097aaSchristos
349bc4097aaSchristosadd some NAT stats and use def_nat_age rather than DEF_NAT_AGE
350bc4097aaSchristos
351bc4097aaSchristosdon't make ftp proxy drop packets
352bc4097aaSchristos
353bc4097aaSchristosuse MCLISREFERENCED() in tandem with M_EXT to check if IP fields need to be
354bc4097aaSchristosswapped back.
355bc4097aaSchristos
356bc4097aaSchristosfix up RST generation for non-Solaris
357bc4097aaSchristos
358bc4097aaSchristosget "short" flag right for IPv6
359bc4097aaSchristos
360bc4097aaSchristos3.4.2 - 10/5/2000 - Released
361bc4097aaSchristos
362bc4097aaSchristosFix bug in dealing with "hlen == 1 and opt > 1" - Itojun
363bc4097aaSchristos
364bc4097aaSchristosignore previous NAT mappings for 0/0 and 0/32 rules
365bc4097aaSchristos
366bc4097aaSchristosbring in a completely new ftp proxy
367bc4097aaSchristos
368bc4097aaSchristosallow NAT to cause packets to be dropped.
369bc4097aaSchristos
370bc4097aaSchristosadd NetBSD callout support for 1.4-current
371bc4097aaSchristos
372bc4097aaSchristos3.4.1 - 30/4/2000 - Released
373bc4097aaSchristos
374bc4097aaSchristosadd ratoui() and fix parsing of group numbers to allow 0 - UINT_MAX
375bc4097aaSchristos
376bc4097aaSchristosdon't include opt_inet6.h for FreeBSD if KLD_MODULE is defined
377bc4097aaSchristos
378bc4097aaSchristosSolaris must use copyin() for all types of ioctl() args
379bc4097aaSchristos
380bc4097aaSchristosfix up screen/tty when leaving "top mode" of ipfstat
381bc4097aaSchristos
382bc4097aaSchristoslinked list for maptable not setup correctly in nat_hostmap()
383bc4097aaSchristos
384bc4097aaSchristoscheck for maptable rather than nat_table[1] to see if malloc for maptable
385bc4097aaSchristossucceeded in nat_init
386bc4097aaSchristos
387bc4097aaSchristosfix handling of map NAT rules with "from/to" host specs
388bc4097aaSchristos
389bc4097aaSchristosfix printout out of source address when using "from/to" with map rules
390bc4097aaSchristos
391bc4097aaSchristosconvert ip_len back to network byte order, not plen, for solaris as ip_len
392bc4097aaSchristosmay have been changed by NAT and plen won't reflect this
393bc4097aaSchristos
394bc4097aaSchristos3.4 - 27/4/2000 - Released
395bc4097aaSchristos
396bc4097aaSchristossource address spoofing can be turned on (fr_chksrc) without using
397bc4097aaSchristosfilter rules
398bc4097aaSchristos
399bc4097aaSchristosgroup numbers are now 32bits in size, up from 16bits
400bc4097aaSchristos
401bc4097aaSchristosIPv6 filtering available
402bc4097aaSchristos
403bc4097aaSchristosadd frank volf's state-top patches
404bc4097aaSchristos
405bc4097aaSchristosadd load splitting and round-robin attribute to redirect rules
406bc4097aaSchristos
407bc4097aaSchristosFreeBSD-4.0 support (including KLD)
408bc4097aaSchristos
409bc4097aaSchristosadd top-style operation mode for ipfstat (-t)
410bc4097aaSchristos
411bc4097aaSchristosadd save/restore of IP Filter state/NAT information (ipfs)
412bc4097aaSchristos
413bc4097aaSchristosfurther ftp proxy security checks
414bc4097aaSchristos
415bc4097aaSchristossupport for adding and removing proxies at runtime
416bc4097aaSchristos
417bc4097aaSchristos3.3.13  26/04/2000 - Released
418bc4097aaSchristos
419bc4097aaSchristosFix parsing of "range" with "portmap"
420bc4097aaSchristos
421bc4097aaSchristosRelax checking of ftp replies, slightly.
422bc4097aaSchristos
423bc4097aaSchristosFix NAT timeouts for ICMP packets
424bc4097aaSchristos
425bc4097aaSchristosSunOS4 patches for ICMP redirects from Jurgen Keil (jk@tools.de)
426bc4097aaSchristos
427bc4097aaSchristos3.3.12  16/03/2000 - Released
428bc4097aaSchristos
429bc4097aaSchristostighten up ftp proxy behaviour.  sigh.  yuck.  hate.
430bc4097aaSchristos
431bc4097aaSchristosfix bug in range check for NAT where the last IP# was not used.
432bc4097aaSchristos
433bc4097aaSchristosfix problem with icmp codes > 127 in filter rules caused bad things to
434bc4097aaSchristoshappen and in particular, where #18 caused the rule to be printed
435bc4097aaSchristoserroneously.
436bc4097aaSchristos
437bc4097aaSchristosfix bug with the spl level not being reset when returning EIO from
438bc4097aaSchristosiplioctl due to ipfilter not being initialized yet.
439bc4097aaSchristos
440bc4097aaSchristos3.3.11  04/03/2000 - Released
441bc4097aaSchristos
442bc4097aaSchristosmake "or-block" work with lines that start with "log"
443bc4097aaSchristos
444bc4097aaSchristosfix up parsing and printing of rules with syslog levels in them
445bc4097aaSchristos
446bc4097aaSchristosfix from Cy Schubert for calling of apr_fini only if non-null
447bc4097aaSchristos
448bc4097aaSchristos
449bc4097aaSchristos3.3.10	24/02/2000 - Released
450bc4097aaSchristos
451bc4097aaSchristos* fix back from guido for state tracking interfaces
452bc4097aaSchristos
453bc4097aaSchristos* update for NetBSD pfil interface changes
454bc4097aaSchristos
455bc4097aaSchristos* if attaching fails and we can abort, then cleanup when doing so.
456bc4097aaSchristos
457bc4097aaSchristosjulian@computer.org:
458bc4097aaSchristos* solaris.c (fr_precheck): After calling freemsg on mt, set it point to *mp.
459bc4097aaSchristos* ipf.c (packetlogon): use flag to store the return value from get_flags.
460bc4097aaSchristos* ipmon.c (init_tabs): General cleanup so we do not have to cast
461bc4097aaSchristos  an int s->s_port to u_int port and try to check if the u_int port
462bc4097aaSchristos  is less than zero.
463bc4097aaSchristos
464bc4097aaSchristos3.3.9	15/02/2000 - Released
465bc4097aaSchristos
466bc4097aaSchristosfix scheduling of bad locking in fr_addstate() used when we attach onto
467bc4097aaSchristosa filter rule.
468bc4097aaSchristos
469bc4097aaSchristosfix up ip_statesync() with storing interface names in ipstate_t
470bc4097aaSchristos
471bc4097aaSchristosfix fr_running for LKM's - Eugene Polovnikov
472bc4097aaSchristos
473bc4097aaSchristosjunk using pullupmsg() for solaris - it's next to useless for what we
474bc4097aaSchristosneed to do here anyway - and implement what we require.
475bc4097aaSchristos
476bc4097aaSchristosdon't call fr_delstate() in fr_checkstate(), when compiled for a user
477bc4097aaSchristosprogram, early but when we're finished with it (got fr & pass)
478bc4097aaSchristos
479bc4097aaSchristosipnat(5) fix from Guido
480bc4097aaSchristos
481bc4097aaSchristoson solaris2, copy message and use that with filter if there is another
482bc4097aaSchristoscopy if it being used (db_ref > 1).  bad for performance, but better
483bc4097aaSchristosthan causing a crash.
484bc4097aaSchristos
485bc4097aaSchristospatch for solaris8-fcs compile from Casper Dik
486bc4097aaSchristos
487bc4097aaSchristos3.3.8	01/02/2000 - Released
488bc4097aaSchristos
489bc4097aaSchristosfix state handling of SYN packets.
490bc4097aaSchristos
491bc4097aaSchristosadd parsing recognition of extra icmp types/codes and fix handling of
492bc4097aaSchristosicmp time stamps and mask requests - Frank volf
493bc4097aaSchristos
494bc4097aaSchristos3.3.7	25/01/2000 - Released
495bc4097aaSchristos
496bc4097aaSchristossync on state information as well as NAT information when required
497bc4097aaSchristos
498bc4097aaSchristosrecord nat protocol in all nat log records
499bc4097aaSchristos
500bc4097aaSchristosdon't reuse the IP# from an active NAT session if the IP# in the rule
501bc4097aaSchristoshas changed dynamically.
502bc4097aaSchristos
503bc4097aaSchristoslookup the protocol for NAT log information in ipmon and pass that to
504bc4097aaSchristosportname.
505bc4097aaSchristos
506bc4097aaSchristosfix the bug with changing the outbound interface of a packet where it
507bc4097aaSchristoswould lead to a panic.
508bc4097aaSchristos
509bc4097aaSchristosuse fr_running instead of ipl_inited. (sysctl name change on freebsd)
510bc4097aaSchristos
511bc4097aaSchristosreturn EIO if someone attempts an ioctl on state/nat if ipfilter is not
512bc4097aaSchristosenabled.
513bc4097aaSchristos
514bc4097aaSchristosfix rule insertion bug
515bc4097aaSchristos
516bc4097aaSchristosmake state flushing clean anything that's not fully established (4/4)
517bc4097aaSchristos
518bc4097aaSchristoscall fr_state_flush() after we've released ipf_state so we don't generate
519bc4097aaSchristosa recursive mutex acquisition panic
520bc4097aaSchristos
521bc4097aaSchristosfix parsing of icmp code after return-icmp/return-icmp-as-dest and add
522bc4097aaSchristossome patches to enhance parsing strength
523bc4097aaSchristos
524bc4097aaSchristos3.3.6	28/12/1999 - Released
525bc4097aaSchristos
526bc4097aaSchristosadd in missing rwlock release in fr_checkicmpmatchingstate() and fix check
527bc4097aaSchristosfor ICMP_ECHO to only be for packet, not state entry which we don't have yet.
528bc4097aaSchristos
529bc4097aaSchristoshandle SIOCIPFFB in nat_ioctl() and fr_state_ioctl()
530bc4097aaSchristos
531bc4097aaSchristosfix size of friostat for SunOS4
532bc4097aaSchristos
533bc4097aaSchristosfix bug in running off the end of a buffer in real audio proxy
534bc4097aaSchristos
535bc4097aaSchristos3.3.5	11/12/1999 - Released
536bc4097aaSchristos
537bc4097aaSchristosfix parsing of "log level" and printing it back out too
538bc4097aaSchristos
539bc4097aaSchristos<net/if_types.h> is only present on Solaris2.6/7/8
540bc4097aaSchristos
541bc4097aaSchristosuse send_icmp_err rather than icmp_error to send back a frag-needed error
542bc4097aaSchristoswhen doing PMTU
543bc4097aaSchristos
544bc4097aaSchristosdo not use -b with add_drv on Solaris unless $BASEDIR is set.
545bc4097aaSchristos
546bc4097aaSchristosfix problem where source address in icmp replies is reversed
547bc4097aaSchristos
548bc4097aaSchristosfix yet another problem with real audio.
549bc4097aaSchristos
550bc4097aaSchristos3.3.4	4/12/1999 - Released
551bc4097aaSchristos
552bc4097aaSchristosfix up the real audio proxy to properly setup state information and NAT
553bc4097aaSchristosentries, thanks to Laine Stump for testing/advice/fixes.
554bc4097aaSchristos
555bc4097aaSchristosfix ipfr_fastroute to set dst->sin_addr (Sean Farley - appears to prevent
556bc4097aaSchristosFreeBSD 3.3 from panic'ing) as this had been removed in prior hacks to this
557bc4097aaSchristosroutine.
558bc4097aaSchristos
559bc4097aaSchristosfix kinstall for BSDI
560bc4097aaSchristos
561bc4097aaSchristossupport ICMP errors being allowed through for ICMP packets going out with
562bc4097aaSchristoskeep state enabled
563bc4097aaSchristos
564bc4097aaSchristossupport hardware checksumming (gigabit ethernet cards) on Solaris thanks to
565bc4097aaSchristosTel.Net Media for providing hardware for testing.
566bc4097aaSchristos
567bc4097aaSchristospatched from Frank Volf for ipmon (ICMP & fragmented packets) and allowing
568bc4097aaSchristosICMP responses to ICMP packets in the keep state table.
569bc4097aaSchristos
570bc4097aaSchristosadd in patches for hardware checksumming under solaris
571bc4097aaSchristos
572bc4097aaSchristosSolaris install scripts now use $BASEDIR as appropriate.
573bc4097aaSchristos
574bc4097aaSchristosadd Solaris8 support
575bc4097aaSchristos
576bc4097aaSchristosfix "ipf -y" on solaris so that it rescans rules also for changes in
577bc4097aaSchristosinterface pointers
578bc4097aaSchristos
579bc4097aaSchristoslet ipmon become a daemon with -D if it is using syslog
580bc4097aaSchristos
581bc4097aaSchristosfix parsing of return-icmp-as-dest(foo)
582bc4097aaSchristos
583bc4097aaSchristosadd reference to ipfstat -g to ipfstat.8
584bc4097aaSchristos
585bc4097aaSchristosipf_mutex needs to be declared for irix in ip_fil.c
586bc4097aaSchristos
587bc4097aaSchristos3.3.3	22/10/1999 - Released
588bc4097aaSchristos
589bc4097aaSchristosadd -g command line option to ipfstat to show groups still define.
590bc4097aaSchristos
591bc4097aaSchristosfix problem with fragment table not recording rule pointer when called
592bc4097aaSchristosfrom state functions (fin_fr not set).
593bc4097aaSchristos
594bc4097aaSchristosfixup fastroute problems with keep state rules.
595bc4097aaSchristos
596bc4097aaSchristosload rules into inactive set first, so we don't disable things like NIS
597bc4097aaSchristoslookups half way through processing - found by Kevin Littlejohn
598bc4097aaSchristos
599bc4097aaSchristosfix handling of unaligned ip pointer for solaris
600bc4097aaSchristos
601bc4097aaSchristospatch for fr_newauth from Rudi Sluijtman
602bc4097aaSchristos
603bc4097aaSchristosfixed htons() bug in fr_tcpsum() where ip_p wasn't cast to u_short
604bc4097aaSchristos
605bc4097aaSchristos3.3.2	23/09/1999 - Released
606bc4097aaSchristos
607bc4097aaSchristospatches from Scott Presnell to fix rcmd proxy
608bc4097aaSchristos
609bc4097aaSchristospatches from Greg to fix Solaris detachment of interfaces
610bc4097aaSchristos
611bc4097aaSchristosadd openbsd compatibility fixes
612bc4097aaSchristos
613bc4097aaSchristosfix free'ing already freed memory in ipfr_slowtimer()
614bc4097aaSchristos
615bc4097aaSchristosfix for deferencing invalid memory in cleaning up after a device disappears
616bc4097aaSchristos
617bc4097aaSchristos3.3.1	14/8/1999 - Released
618bc4097aaSchristos
619bc4097aaSchristosremove include file sys/user.h for irix
620bc4097aaSchristos
621bc4097aaSchristosprevent people from running buildsunos directly
622bc4097aaSchristos
623bc4097aaSchristosfix up some problems with the saving of rule pointers so that NAT saves
624bc4097aaSchristosthat information in case it should need to call fr_addstate() from a proxy.
625bc4097aaSchristos
626bc4097aaSchristosfix up scanning for the end of FTP messages
627bc4097aaSchristos
628bc4097aaSchristosdon't remove /etc/opt/ipf in postremove
629bc4097aaSchristos
630bc4097aaSchristosattempt to prevent people running buildsolaris script without doing a
631bc4097aaSchristos"make solaris"
632bc4097aaSchristos
633bc4097aaSchristosfix timeout losing on freebsd3
634bc4097aaSchristos
635bc4097aaSchristos3.3	7/8/1999 - Released
636bc4097aaSchristos
637bc4097aaSchristosNAT: information (rules, mappings) are stored in hash tables; setup some
638bc4097aaSchristosbasic NAT regression testing.
639bc4097aaSchristos
640bc4097aaSchristosdisplay version name of installed kernel code when initializing.
641bc4097aaSchristos
642bc4097aaSchristosadd -V command line option to ipf, showing version (program and kernel
643bc4097aaSchristosmodule) as well as the run-status of the kernel code.
644bc4097aaSchristos
645bc4097aaSchristosfix problem with "log" rules actually affecting result of filtering.
646bc4097aaSchristos
647bc4097aaSchristosautomatically use SUNWspro if available and on a 64bit Solaris system for
648bc4097aaSchristoscompiling.
649bc4097aaSchristos
650bc4097aaSchristosadd kernel proxies for rcmd(3) and RealAudio (PNA)
651bc4097aaSchristos
652bc4097aaSchristosuse timeout/untimeout on SunOS4/BSD platforms too rather than hijacking
653bc4097aaSchristosip_slowtimo
654bc4097aaSchristos
655bc4097aaSchristosfix IP headers generated through parsing of text information
656bc4097aaSchristos
657bc4097aaSchristosfix NAT rules to be in the correct order again.
658bc4097aaSchristos
659bc4097aaSchristosmake keep-state work with to/fastroute keywords and enforce usage of those
660bc4097aaSchristosinterfaces.
661bc4097aaSchristos
662bc4097aaSchristosupdate keep-state code with new algorithm from Guido
663bc4097aaSchristos
664bc4097aaSchristosadd FreeBSD-3 support
665bc4097aaSchristos
666bc4097aaSchristosadd return-icmp-as-dest option to retrun an ICMP packet using the original
667bc4097aaSchristosdestination as the source rather than a local IP address
668bc4097aaSchristos
669bc4097aaSchristosadd "level [facility.]<priority>" option to filter language
670bc4097aaSchristos
671bc4097aaSchristosadd changes from Guido to state code.
672bc4097aaSchristos
673bc4097aaSchristosadd code to return EPERM if the device is opened for writing and we're
674bc4097aaSchristosin securelevel 2 or greater.
675bc4097aaSchristos
676bc4097aaSchristosauthentication code patches from Guido
677bc4097aaSchristos
678bc4097aaSchristosfix real audio proxy
679bc4097aaSchristos
680bc4097aaSchristosfix ipmon rule printing of interfaces and add IN/OUT to the end of ipmon
681bc4097aaSchristoslog output.
682bc4097aaSchristos
683bc4097aaSchristosfix bimap rules with hash tables
684bc4097aaSchristos
685bc4097aaSchristosupdate addresses used in NAT mappings for 0/32 rules for any protocol but TCP
686bc4097aaSchristosif it changes on the interface - check every ip_natexpire()
687bc4097aaSchristos
688bc4097aaSchristosadd redirect regression test
689bc4097aaSchristos
690bc4097aaSchristoscount buckets used in the state hash table.
691bc4097aaSchristos
692bc4097aaSchristosfix sending of RST's with return-rst to use the ack number provided in
693bc4097aaSchristosthe packet being replied to in addition to the sequence number.
694bc4097aaSchristos
695bc4097aaSchristosfix to compile as a 64bit application on solaris7-64bit
696bc4097aaSchristos
697bc4097aaSchristosadd NAT IP mapping to ranges of IP addresses that aren't CIDR specified
698bc4097aaSchristos
699bc4097aaSchristosfix calculation of in_space parameter for NAT
700bc4097aaSchristos
701bc4097aaSchristosfix `wrapping' when incrementing the next ip address for use in NAT
702bc4097aaSchristos
703bc4097aaSchristosfix free'ing of kernel memory in ip_natunload on solaris
704bc4097aaSchristos
705bc4097aaSchristosfix -l/-U command line options from interfering with each other
706bc4097aaSchristos
707bc4097aaSchristosfix fastroute under solaris2 and cleanup compilation for solaris7
708bc4097aaSchristos
709bc4097aaSchristosadd install scripts and compile cleanly on BSD/OS 4.0
710bc4097aaSchristos
711bc4097aaSchristossafely open files in /tmp for writing device output when testing.
712bc4097aaSchristos
713bc4097aaSchristosfix uninitialized pointer bug in NAT
714bc4097aaSchristos
715bc4097aaSchristosfix SIOCZRLST (zero list rule stats) bug with groups
716bc4097aaSchristos
717bc4097aaSchristoschange some usage of u_short to u_int in function calling
718bc4097aaSchristos
719bc4097aaSchristosfix compilation for Solaris7 (SUNWspro)
720bc4097aaSchristos
721bc4097aaSchristoschange solaris makefiles to build for either sparc or i386 rather than
722bc4097aaSchristosper-cpu (sun4u, etc).
723bc4097aaSchristos
724bc4097aaSchristosfixed bug in ipllog
725bc4097aaSchristos
726bc4097aaSchristosadd patches from George Michaelson for FreeBSD 3.0
727bc4097aaSchristos
728bc4097aaSchristosadd patch from Guido to provide ICMP checking for known state in the same
729bc4097aaSchristosmanner as is done for NAT.
730bc4097aaSchristos
731bc4097aaSchristosenable FTP PASV proxying and enable wildcarding in NAT/state code for ports
732bc4097aaSchristosfor better PORT/PASV support with FTP.
733bc4097aaSchristos
734bc4097aaSchristosbring into main tree static nat features: map-block and "auto" portmapping.
735bc4097aaSchristos
736bc4097aaSchristosadd in source host filtering for redirects (alan jones)
737bc4097aaSchristos
738bc4097aaSchristos3.2.10		22/11/98 - Released
739bc4097aaSchristos
740bc4097aaSchristos3.2.10beta9	17/11/98 - Released
741bc4097aaSchristos
742bc4097aaSchristosfix fr_tcpsum problems in handling mbufs with an odd number of bytes
743bc4097aaSchristosand/or split across an mbuf boundary
744bc4097aaSchristos
745bc4097aaSchristosfix NAT list entry comparisons and allow multiple entries for the same
746bc4097aaSchristosproxy (but on different ports).
747bc4097aaSchristos
748bc4097aaSchristosdon't create duplicate NAT entries for repeated PORT commands.
749bc4097aaSchristos
750bc4097aaSchristos3.2.10beta8	14/11/98 - Released
751bc4097aaSchristos
752bc4097aaSchristosalways exit an rwlock before expecting to enter it again on solaris
753bc4097aaSchristos
754bc4097aaSchristosfix loop in nat_new for pre-existing nat
755bc4097aaSchristos
756bc4097aaSchristosdon't setup state for an ftp connection if creating nat fails.
757bc4097aaSchristos
758bc4097aaSchristos3.2.10beta7	05/11/98 - Released
759bc4097aaSchristos
760bc4097aaSchristosset fake window in ipft_tx.c to ensure code passes tests.
761bc4097aaSchristos
762bc4097aaSchristoscleaned up/enhanced ipnat -l/ipnat -lv output
763bc4097aaSchristos
764bc4097aaSchristosfixed NAT handling of non-TCP/UDP packets, esp. for ICMP errors returned.
765bc4097aaSchristos
766bc4097aaSchristosSolaris recusive mutex on icmp-error/tcp-reset - requires rwlock's rather
767bc4097aaSchristosthan mutexes.
768bc4097aaSchristos
769bc4097aaSchristos3.2.10beta6	03/11/98 - Released
770bc4097aaSchristos
771bc4097aaSchristosfix mixed use of krwlock_t and kmutex_t on Solaris2
772bc4097aaSchristos
773bc4097aaSchristosfix FTP proxy back up, splitting pasv code out of port code.
774bc4097aaSchristos
775bc4097aaSchristos3.2.10beta5	02/11/98 - Released
776bc4097aaSchristos
777bc4097aaSchristosfixed port translation in ICMP reply handling
778bc4097aaSchristos
779bc4097aaSchristos3.2.10beta4	01/11/98 - Released
780bc4097aaSchristos
781bc4097aaSchristosincrease useful statistic collection on solaris
782bc4097aaSchristos
783bc4097aaSchristosfilter DL_UNITDATA_REQ as well as DL_UNITDATA_IND on solaris
784bc4097aaSchristos
785bc4097aaSchristosdisable PASV reply translation for now
786bc4097aaSchristos
787bc4097aaSchristosfail with an error if we try to load a NAT rule with a non-existant
788bc4097aaSchristos   proxy name - Guido
789bc4097aaSchristos
790bc4097aaSchristosfix portmap usage with 0/0 and 0/32 map rules
791bc4097aaSchristos
792bc4097aaSchristosremove ap_unload/ap_expire - automatically done when NAT is cleaned up
793bc4097aaSchristos
794bc4097aaSchristosprint "STATE:CLOSED" from ipmon if the connection progresses past established
795bc4097aaSchristos   rather than "STATE:EXPIRED"
796bc4097aaSchristos
797bc4097aaSchristos3.2.10beta3	26/10/98 - Released
798bc4097aaSchristos
799bc4097aaSchristosfixed traceroute/nat problem
800bc4097aaSchristos
801bc4097aaSchristosrewrote nat/proxy interface
802bc4097aaSchristos
803bc4097aaSchristosipnat now lists associated proxy sessions for each NAT where applicable
804bc4097aaSchristos
805bc4097aaSchristos3.2.10beta2	13/10/98 - Released
806bc4097aaSchristos
807bc4097aaSchristosuse KRWLOCK_T in place of krwlock_t for solaris as well as irix
808bc4097aaSchristos
809bc4097aaSchristosdisable use of read-write lock acquisition by default
810bc4097aaSchristos
811bc4097aaSchristosadd in mb_t for linux, non-kernel
812bc4097aaSchristos
813bc4097aaSchristossome changes to progress compilation on linux with glibc
814bc4097aaSchristos
815bc4097aaSchristoschange PASV as well as PORT when passed through kernel ftp proxy.
816bc4097aaSchristos
817bc4097aaSchristosdon't allow window to become 0 in tcp state code
818bc4097aaSchristos
819bc4097aaSchristosmake ipmon compile cleaner
820bc4097aaSchristos
821bc4097aaSchristosirix patches
822bc4097aaSchristos
823bc4097aaSchristos3.2.10beta	11/09/98 - Released
824bc4097aaSchristos
825bc4097aaSchristosstop fr_tcpsum() thinking it has run out of data when it hasn't.
826bc4097aaSchristos
827bc4097aaSchristosstop solaris panics due to fin_dp being something wild.
828bc4097aaSchristos
829bc4097aaSchristosrevisit usage of ATOMIC_*()
830bc4097aaSchristos
831bc4097aaSchristoslog closing state of TCP connection in "keep state"
832bc4097aaSchristos
833bc4097aaSchristosfix fake-arp table code for ipsend.
834bc4097aaSchristos
835bc4097aaSchristosipmon now writes pid to a file.
836bc4097aaSchristos
837bc4097aaSchristosfix "ipmon -a" to actually activate all logging devices.
838bc4097aaSchristos
839bc4097aaSchristosadd patches for BSDOS4.
840bc4097aaSchristos
841bc4097aaSchristosperl scripts for log analysis donated.
842bc4097aaSchristos
843bc4097aaSchristos3.2.9	22/06/98 - Released
844bc4097aaSchristos
845bc4097aaSchristosfix byte order for ICMP packets generated on Solaris
846bc4097aaSchristos
847bc4097aaSchristosfix some locking problems.
848bc4097aaSchristos
849bc4097aaSchristosfix malloc bug in NAT (introduced in 3.2.8).
850bc4097aaSchristos
851bc4097aaSchristospatch from guido for state connections that get fragmented
852bc4097aaSchristos
853bc4097aaSchristos3.2.8	08/06/98 - Released
854bc4097aaSchristos
855bc4097aaSchristosuse readers/writers locks in Solaris2 in place of some mutexes.
856bc4097aaSchristos
857bc4097aaSchristosSolaris2 installation enhancements - Martin Forssen (maf@carlstedt.se)
858bc4097aaSchristos
859bc4097aaSchristos3.2.7	24/05/98 - Released
860bc4097aaSchristos
861bc4097aaSchristosu_long -> u_32_t conversions
862bc4097aaSchristos
863bc4097aaSchristospatches from Bernd Ernesti for NetBSD
864bc4097aaSchristos
865bc4097aaSchristosfixup ipmon to actually handle HUP's.
866bc4097aaSchristos
867bc4097aaSchristosLinux fixes from Michael H. Warfield (mhw@wittsend.com)
868bc4097aaSchristos
869bc4097aaSchristosupdate for keep state patch (not security related) - Guido
870bc4097aaSchristos
871bc4097aaSchristosdumphex() uses stdout rather than log
872bc4097aaSchristos
873bc4097aaSchristos3.2.6	18/05/98 - Released
874bc4097aaSchristos
875bc4097aaSchristosfix potential security loop hole in keep state code.
876bc4097aaSchristos
877bc4097aaSchristosupdate examples.
878bc4097aaSchristos
879bc4097aaSchristos3.2.5	09/05/98 - Released
880bc4097aaSchristos
881bc4097aaSchristosBSD/OS 3.1 .o files added for the kernel.
882bc4097aaSchristos
883bc4097aaSchristosfix sequence # skew vs window size check.
884bc4097aaSchristos
885bc4097aaSchristosfix minimum ICMP header size check.
886bc4097aaSchristos
887bc4097aaSchristosremove references to Cybersource.
888bc4097aaSchristos
889bc4097aaSchristosfix my email address.
890bc4097aaSchristos
891bc4097aaSchristosremove ntohl in ipnat - Thomas Tornblom
892bc4097aaSchristos
893bc4097aaSchristos3.2.4	09/04/98 - Released
894bc4097aaSchristos
895bc4097aaSchristosadd script to make devices for /dev on BSD boxes
896bc4097aaSchristos
897bc4097aaSchristosfixup building into the kernel for FreeBSD 2.2.5
898bc4097aaSchristos
899bc4097aaSchristosadd -D command line option to ipmon to make it a daemon and SIGHUP causes
900bc4097aaSchristosit to close and reopen the logfile
901bc4097aaSchristos
902bc4097aaSchristosfixup make clean and make package for SunOS5 - Marc Boucher
903bc4097aaSchristos
904bc4097aaSchristospostinstall keeps adding "minor=ipf ipl" - George Ross <gdmr@dcs.ed.ac.uk>
905bc4097aaSchristos
906bc4097aaSchristosprotected by IP Filter gif - Sergey Solyanik <solik@atom.ru>
907bc4097aaSchristos
908bc4097aaSchristos3.2.3	10/11/97 - Released
909bc4097aaSchristos
910bc4097aaSchristosfix some iplang bugs
911bc4097aaSchristos
912bc4097aaSchristosfix tcp checksum data overrun, sgi #define changes,
913bc4097aaSchristosavoid infinite loop when nat'ing to single IP# - Marc Boucher
914bc4097aaSchristos
915bc4097aaSchristosfixup DEVFS usage for FreeBSD
916bc4097aaSchristos
917bc4097aaSchristosfix sunos5 "make clean" cleaning up too much
918bc4097aaSchristos
919bc4097aaSchristos3.2.2	28/11/97 - Released
920bc4097aaSchristos
921bc4097aaSchristoschange packet matching to return actual error, if bad packet, to facilitate
922bc4097aaSchristosECONNRESET for TCP.
923bc4097aaSchristos
924bc4097aaSchristosallow ip:netmask in grammar too now - Guido
925bc4097aaSchristos
926bc4097aaSchristosassume IRIX has u_int32_t in sys/types.h (needed for R10000)
927bc4097aaSchristos
928bc4097aaSchristosrewrite parts of command line options for ipmon
929bc4097aaSchristos
930bc4097aaSchristosfix TCP urgent packet & offset testing and add LAND attack test for iptest
931bc4097aaSchristos
932bc4097aaSchristosfix grammar error in yacc grammar for iplang
933bc4097aaSchristos
934bc4097aaSchristosredirect (rdr) destination port bytes-wapped when it shouldn't be.
935bc4097aaSchristos
936bc4097aaSchristosgeneral: fr_check now returns error code, such as EHOSTUNREACH or
937bc4097aaSchristosECONNRESET (attempt to make ECONNRESET work for locally outbound
938bc4097aaSchristospackets).
939bc4097aaSchristos
940bc4097aaSchristoslinux: enable return-rst, need to filter tcp retransmits which are sent
941bc4097aaSchristos       separately from normal packets
942bc4097aaSchristos
943bc4097aaSchristosmemory leak plugged in ip_proxy.c
944bc4097aaSchristos
945bc4097aaSchristosBSDI compatibility patches from Guido
946bc4097aaSchristos
947bc4097aaSchristostcp checksum fix - Marc Boucher
948bc4097aaSchristos
949bc4097aaSchristosrecursive mutex and ioctl param fix - Marc Boucher
950bc4097aaSchristos
951bc4097aaSchristos3.2.1	12/11/97 - Released
952bc4097aaSchristos
953bc4097aaSchristosport to BSD/OS 3.0
954bc4097aaSchristos
955bc4097aaSchristosport to Linux 2.0.31
956bc4097aaSchristos
957bc4097aaSchristospatches to make "map a/m -> 0/0" work with ftp proxying properly - Marc Boucher
958bc4097aaSchristos
959bc4097aaSchristosadd "ipf -F s" and "ipf -F S" to flush state table entries.
960bc4097aaSchristos
961bc4097aaSchristosannounce if logging is on or off when ip filter initializes.
962bc4097aaSchristos
963bc4097aaSchristos"ipf -F a" doesn't flush groups properly for Solaris.
964bc4097aaSchristos
965bc4097aaSchristos3.2		30/10/97 - Released
966bc4097aaSchristos
967bc4097aaSchristosipnat doesn't successfully remove proxy mappings with "-rf" -
968bc4097aaSchristosAlexander Romanyu
969bc4097aaSchristos
970bc4097aaSchristosuse K&R C function style for solaris kernel code
971bc4097aaSchristos
972bc4097aaSchristosuse m_adj() to decrease packet size in ftp proxy
973bc4097aaSchristos
974bc4097aaSchristosuse mbufchainlen rather than msgdsize,
975bc4097aaSchristosIRIX update - Marc Boucher
976bc4097aaSchristos
977bc4097aaSchristosfix NetBSD modunload bug (pfil_add_hook done twice)
978bc4097aaSchristos
979bc4097aaSchristospatches for OpenBSD 2.1 - Craig Bevins <craigb@bitcom.net.au>
980bc4097aaSchristos
981bc4097aaSchristos3.2beta10	24/10/97 - Released
982bc4097aaSchristos
983bc4097aaSchristosfix fragment table entries allocated for NAT.
984bc4097aaSchristos
985bc4097aaSchristosfix tcp checksum calculations over mbuf/mblk boundaries
986bc4097aaSchristos
987bc4097aaSchristosfix panic for blen < 0 in ftp kernel proxy - marc boucher
988bc4097aaSchristos
989bc4097aaSchristosfix flushing of rules which have been grouped.
990bc4097aaSchristos
991bc4097aaSchristos3.2beta9	20/10/97 - Released
992bc4097aaSchristos
993bc4097aaSchristossome nit picking on solaris2 with SUNWspro - Michael Lyle <mrl@rpnet.net>
994bc4097aaSchristos
995bc4097aaSchristosftp kernel proxy patches from Marc Boucher
996bc4097aaSchristos
997bc4097aaSchristos3.2beta8	13/10/97 - Released
998bc4097aaSchristos
999bc4097aaSchristosadd support for passing ICMP errors back through NAT.
1000bc4097aaSchristos
1001bc4097aaSchristosIRIX port update - Marc Boucher
1002bc4097aaSchristos
1003bc4097aaSchristoscalculate correct MIN size of packet to log for UDP - Marc Boucher
1004bc4097aaSchristos
1005bc4097aaSchristosneed htons(ETHERTYPE_x) on little endian BSD boxes - Dave Huang
1006bc4097aaSchristos
1007bc4097aaSchristoscopyright header fixups
1008bc4097aaSchristos
1009bc4097aaSchristos3.2beta7	23/09/97 - Released
1010bc4097aaSchristos
1011bc4097aaSchristosfickup problems introduced by prior merges & changes.
1012bc4097aaSchristos
1013bc4097aaSchristos3.2beta6	23/09/97 - Released
1014bc4097aaSchristos
1015bc4097aaSchristospatch for spin-reading race condition - Marc Boucher.
1016bc4097aaSchristos
1017bc4097aaSchristosIRIX port by Marc Boucher.
1018bc4097aaSchristos
1019bc4097aaSchristoscompatibility updates for Linux to ipsend
1020bc4097aaSchristos
1021bc4097aaSchristos3.2beta5	13/09/97 - Released
1022bc4097aaSchristos
1023bc4097aaSchristospatches from Bernd Ernesti for NetBSD integration (mostly prototyping and
1024bc4097aaSchristoscompiler warning things)
1025bc4097aaSchristos
1026bc4097aaSchristosipf -y will resync IP#'s allocated with 0/32 in NAT to match interface if it
1027bc4097aaSchristoschanges.
1028bc4097aaSchristos
1029bc4097aaSchristosupdate manual pages and other documentation updates.
1030bc4097aaSchristos
1031bc4097aaSchristos3.2beta4	27/8/97 - Released
1032bc4097aaSchristos
1033bc4097aaSchristosenable setting IP and TCP options for iplang/
1034bc4097aaSchristos
1035bc4097aaSchristosSolaris2 patches from Marc Boucher.
1036bc4097aaSchristos
1037bc4097aaSchristosadd groups for filter rules.
1038bc4097aaSchristos
1039bc4097aaSchristos3.2beta3	21/8/97 - Released
1040bc4097aaSchristos
1041bc4097aaSchristospatches for Solaris2 (interface panic solution ?): fix FIONREAD and
1042bc4097aaSchristosreplacing q_qinfo points - Marc Boucher <marc@CAM.ORG>
1043bc4097aaSchristos
1044bc4097aaSchristoschange ipsend/* and ipsd/* copyright notices to be the same as ip filter's
1045bc4097aaSchristos
1046bc4097aaSchristospatch for SYN-ACK skew testing fix from Eric V. Smith <EricSmith@windsor.com>
1047bc4097aaSchristos
1048bc4097aaSchristos3.2beta2	6/8/97 - Released
1049bc4097aaSchristos
1050bc4097aaSchristosmake it load on Solaris 2.3
1051bc4097aaSchristos
1052bc4097aaSchristosrewrote logging to remove solaris errors, introduced checking to see if the
1053bc4097aaSchristossame packet is logged successively.
1054bc4097aaSchristos
1055bc4097aaSchristosfix filter cache to work when there are no rules loaded.
1056bc4097aaSchristos
1057bc4097aaSchristosadd "raw" option to ipresend to send entire ethernet frames.
1058bc4097aaSchristos
1059bc4097aaSchristosnat list corruption bug - NetBSD - Klaus Klein
1060bc4097aaSchristos
1061bc4097aaSchristos3.2beta1	5/7/97 - Released
1062bc4097aaSchristos
1063bc4097aaSchristospatches from Jason Thorpe fixing: UNSIGNED_CHAR lossage, off_t being 64bits
1064bc4097aaSchristoslossage, and other NetBSD bits.
1065bc4097aaSchristos
1066bc4097aaSchristosNetBSD 1.2G update.
1067bc4097aaSchristos
1068bc4097aaSchristosfixup fwtk patches and add protocol field for SIOCGNATL.
1069bc4097aaSchristos
1070bc4097aaSchristosrdr bugs reported by Alexander Romanyu (alexr@aix.krid.crimea.ua), with
1071bc4097aaSchristosfixes:
1072bc4097aaSchristos* rdr matched all packets of a given protocol (ignored ports).
1073bc4097aaSchristos* severe bug in nat_delete which caused system crash/freeze.
1074bc4097aaSchristos
1075bc4097aaSchristoschange Makefile so that CC isn't passed on for FreeBSD/NetBSD (will use
1076bc4097aaSchristosthe default CC - cc, not gcc)
1077bc4097aaSchristos
1078bc4097aaSchristos3.2alpha9	16/6/97 - Released
1079bc4097aaSchristos
1080bc4097aaSchristosadded "skip" keyword.
1081bc4097aaSchristos
1082bc4097aaSchristosimplement preauthentication of packets, as outlined by Guido.
1083bc4097aaSchristos
1084bc4097aaSchristosMake it compile as cleanly as possible with -Wall & general code cleanup
1085bc4097aaSchristos
1086bc4097aaSchristosgetopt returns int, not char. Bernd Ernesti
1087bc4097aaSchristos
1088bc4097aaSchristos3.2alpha8	13/6/97 - Released
1089bc4097aaSchristos
1090bc4097aaSchristoscode added to support "auth" rules which require a user program to allow them
1091bc4097aaSchristosthrough.  First revision and much of the code came from Guido.
1092bc4097aaSchristos
1093bc4097aaSchristoshex output from ipmon doesn't goto syslog when recovering from out of sync
1094bc4097aaSchristoserror.  Luke Mewburn (lukem@connect.com.au)
1095bc4097aaSchristos
1096bc4097aaSchristosfix solaris2.6 lookup of destination ire's.
1097bc4097aaSchristos
1098bc4097aaSchristosipnat doesn't throw away unused bits (after masking), causing it to
1099bc4097aaSchristosbehave incorrectly. Carson Gaspar
1100bc4097aaSchristos
1101bc4097aaSchristosNAT code doesn't include inteface name when matching - Alexey Mavrin
1102bc4097aaSchristos<lha@elco.spb.ru>
1103bc4097aaSchristos
1104bc4097aaSchristosreplace old SunOS tcpip.h with new tcpip.h (from 4.4BSD) - Jason Thorpe.
1105bc4097aaSchristos
1106bc4097aaSchristosupdate install procedures to include ip_proxy.c
1107bc4097aaSchristos
1108bc4097aaSchristosmask out unused bits in NAT/RDR rules.
1109bc4097aaSchristos
1110bc4097aaSchristosuse a generic type (u_32_t) for 32bit variables, rather than rely on
1111bc4097aaSchristosu_long being such - Jason Thorpe.
1112bc4097aaSchristos
1113bc4097aaSchristoscreate a local "netinet" directory and include from ~netinet/*" rather than
1114bc4097aaSchristosjust "*" to make keeping the code working on ports easier.
1115bc4097aaSchristos
1116bc4097aaSchristosadd an m_copydata and m_copyback for SunOS4 (based on 4.4BSD-Lite versions)
1117bc4097aaSchristos
1118bc4097aaSchristosdocumentation updates.
1119bc4097aaSchristos
1120bc4097aaSchristosNetBSD update from Jason Thorpe <thorpej@netbsd.org>
1121bc4097aaSchristos
1122bc4097aaSchristosallow RST's through with a matching SEQ # and 0 ACK.  Guido Van Rooij
1123bc4097aaSchristos
1124bc4097aaSchristosipmon uses excessive amounts of CPU on Solaris2 - Reinhard Bertram
1125bc4097aaSchristos<Reinhard.Bertram@KOM.th-darmstadt.de>
1126bc4097aaSchristos
1127bc4097aaSchristos3.2alpha7	25/5/97 - Released
1128bc4097aaSchristos
1129bc4097aaSchristosadd strlen for pre-2.2 kernels - Doug Kite <dkite@websgi.icomnet.com>
1130bc4097aaSchristos
1131bc4097aaSchristossetup bits and pieces for compiling into a FreeBSD-2.2 kernel.
1132bc4097aaSchristos
1133bc4097aaSchristossplit up "bsd" targets.  Now a separate netbsd/freebsd/bsd target.
1134bc4097aaSchristosmln_ipl.c has been split up into itself and mlf_ipl.c (for freebsd).
1135bc4097aaSchristos
1136bc4097aaSchristosfix (negative) host matching in filtering.
1137bc4097aaSchristos
1138bc4097aaSchristosadd sysctl interface for some variables when compiled into FreeBSD-2.2 kernels
1139bc4097aaSchristosor later.
1140bc4097aaSchristos
1141bc4097aaSchristosmake all the candidates for kernel compiling include "netinet/..." and build
1142bc4097aaSchristosa subdirectory "netinet" when compiling and symlink all .h files into this.
1143bc4097aaSchristos
1144bc4097aaSchristosadd install make target to Makefile.ipsend
1145bc4097aaSchristos
1146bc4097aaSchristos3.2alpha6	8/5/97 - Released
1147bc4097aaSchristos
1148bc4097aaSchristosAdd "!" (not) to hostname/ip matching.
1149bc4097aaSchristos
1150bc4097aaSchristosAutomatically add packet info to the fragment cache if it is a fragment
1151bc4097aaSchristosand we're translating addreses for.
1152bc4097aaSchristos
1153bc4097aaSchristosAutomatically add packet info to the fragment cache if it is a fragment
1154bc4097aaSchristosand we're "keeping state" for the packet.
1155bc4097aaSchristos
1156bc4097aaSchristosSolaris2 patches - Anthony Baxter (arb@connect.com.au)
1157bc4097aaSchristos
1158bc4097aaSchristoschange install procedure for FreeBSD 2.2 to allow building to a kernel
1159bc4097aaSchristoswhich is different to the running kernel.
1160bc4097aaSchristos
1161bc4097aaSchristosadd FIONREAD for Solaris2!
1162bc4097aaSchristos
1163bc4097aaSchristoswhen expiring NAT table entries, if we would set a time to fr_tcpclosed
1164bc4097aaSchristos(which is 1), make it fr_tcplaskack(20) so that the state tables have a
1165bc4097aaSchristoschance to clear up.
1166bc4097aaSchristos
1167bc4097aaSchristos3.2alpha5
1168bc4097aaSchristos
1169bc4097aaSchristosadd proxying skeleton support and sample ftp transparent proxy code.
1170bc4097aaSchristos
1171bc4097aaSchristosadd printfs at startup to tell user what is happening.
1172bc4097aaSchristos
1173bc4097aaSchristosadd packets & bytes for EXPIRE NAT log records.
1174bc4097aaSchristos
1175bc4097aaSchristosfix the "install-bsd" target in the root Makefile. Chris Williams
1176bc4097aaSchristos<psion@mv.mv.com>
1177bc4097aaSchristos
1178bc4097aaSchristosFixes for FreeBSD 2.2 (and later revs) to prevent panics.  Julian Assange.
1179bc4097aaSchristos
1180bc4097aaSchristos3.2alpha4	2/4/97 - Released
1181bc4097aaSchristos
1182bc4097aaSchristosSome compiler warnings cleaned up.
1183bc4097aaSchristos
1184bc4097aaSchristosFreeBSD-2.2 patches for LKM completed.
1185bc4097aaSchristos
1186bc4097aaSchristos3.2alpha3	31/3/97 - Released
1187bc4097aaSchristos
1188bc4097aaSchristosipmon changes: -N for reading NAT logfile, -S for reading state logfile.
1189bc4097aaSchristos-a for reading all.  -n now toggles hostname resolution.
1190bc4097aaSchristos
1191bc4097aaSchristosAdd logging of new state entries and expiration of old state entries.
1192bc4097aaSchristoscount log successes and failures.
1193bc4097aaSchristos
1194bc4097aaSchristosAdd logging of new NAT entries and expiration of old NAT entries.
1195bc4097aaSchristoscount log successes and failures.
1196bc4097aaSchristos
1197bc4097aaSchristosUse u_quad_t for records of bytes & packets where kept
1198bc4097aaSchristos(IP Accounting: fr_hits, fr_bytes; IP state: is_pkts, is_bytes).
1199bc4097aaSchristos
1200bc4097aaSchristosFixup use of CPU and DCPU in Makefiles.
1201bc4097aaSchristos
1202bc4097aaSchristosFix broken 0/32 NAT mapping. Carl Makin <cmakin@nla.gov.au>
1203bc4097aaSchristos
1204bc4097aaSchristos3.2alpha2
1205bc4097aaSchristos
1206bc4097aaSchristosImplement mapping to 0/32 as being an alias for automatically using the
1207bc4097aaSchristosinterface's first IP address.
1208bc4097aaSchristos
1209bc4097aaSchristosImplement separate minor devices for both NAT and IP state code.
1210bc4097aaSchristos
1211bc4097aaSchristosFully prototype all functions.
1212bc4097aaSchristos
1213bc4097aaSchristosFix Makefile problem due to attempt to fix Sun compiling problems.
1214bc4097aaSchristos
1215bc4097aaSchristos3.1.10		23/3/97 - Released
1216bc4097aaSchristos
1217bc4097aaSchristosipfstat -a requires a -i or -o command line option too.  Print an error
1218bc4097aaSchristoswhen not present rather than attempt to do something.
1219bc4097aaSchristos
1220bc4097aaSchristospatch updates for SunOS4 for kernel compiling.
1221bc4097aaSchristospatch for ipmon -s (flush's syslog file which isn't good).  Andrew J. Schorr
1222bc4097aaSchristos<schorr@ead.dsa.com>
1223bc4097aaSchristos
1224bc4097aaSchristostoo many people hit their heads hard when compiling code into the kernel
1225bc4097aaSchristosthat doesn't let any packets through. (fil.c - IPF_NOMATCH)
1226bc4097aaSchristos
1227bc4097aaSchristosicmp-type parsing doesn't return any errors when it isn't constructed
1228bc4097aaSchristoscorrectly.  Neil Readwin
1229bc4097aaSchristos
1230bc4097aaSchristosUsing "-conf" with modload on SunOS4 doesn't work.
1231bc4097aaSchristosTimothy Demarest <demarest@arraycomm.com>
1232bc4097aaSchristos
1233bc4097aaSchristosNeed to define ARCH in makefile for SunOS4 building.  "make sunos4"
1234bc4097aaSchristosin INSTALL.SunOS is incorrect. James R Grinter <jrg@blodwen.demon.co.uk>
1235bc4097aaSchristos[all SunOS targets now run buildsunos]
1236bc4097aaSchristos
1237bc4097aaSchristosNAT lookups are still incorrect, matching non-TCP/UDP with TCP/UDP
1238bc4097aaSchristosinformation. ArkanoiD <ark@paranoid.convey.ru>
1239bc4097aaSchristos
1240bc4097aaSchristosNeed to check for __FreeBSD_version being 199511 rather than 199607
1241bc4097aaSchristosin mln_ipl.c. Eric Feillant <Eric.Feillant@EUnet.fr>
1242bc4097aaSchristos
1243bc4097aaSchristos3.1.9		8/3/97 - Released
1244bc4097aaSchristos
1245bc4097aaSchristosfixed incorrect lookup of active NAT entries.
1246bc4097aaSchristos
1247bc4097aaSchristospatch for ip_deq() wrong for pre 2.1.6 FreeBSD.
1248bc4097aaSchristosfyeung@fyeung8.netific.com (Francis Yeung)
1249bc4097aaSchristos
1250bc4097aaSchristoscheck for out with return-rst/return-icmp at wrong place - Erkki Ritoniemi
1251bc4097aaSchristos(erkki@vlsi.fi)
1252bc4097aaSchristos
1253bc4097aaSchristostext_readip returns the interface pointer pointing to text on stack -
1254bc4097aaSchristosNeil Readwin
1255bc4097aaSchristos
1256bc4097aaSchristosfix from Pradeep Krishnan for printout rules "with not opt sec".
1257bc4097aaSchristos
1258bc4097aaSchristos3.1.8		18/2/97 - Released
1259bc4097aaSchristos
1260bc4097aaSchristosDiffs for ip_output.c and ip_input.c updated to fix bug with fastroute and
1261bc4097aaSchristoscompiling warnings about reuse of m0.
1262bc4097aaSchristos
1263bc4097aaSchristosprevent use of return-rst and return-icmp with rules blocking packets going
1264bc4097aaSchristosout, preventing panics in certain situations.
1265bc4097aaSchristos
1266bc4097aaSchristosloop forms in frag cache table - Yury Pshenychny <yura@rd.zgik.zaporizhzhe.ua>
1267bc4097aaSchristos
1268bc4097aaSchristosshould use SPLNET/SPLX around expire routines in NAT/frag/state code.
1269bc4097aaSchristos
1270bc4097aaSchristosredeclared malloc in 44arp.c -
1271bc4097aaSchristos
1272bc4097aaSchristos3.1.7		8/2/97 - Released
1273bc4097aaSchristos
1274bc4097aaSchristosMacros used for ntohs/htons supplied with gcc don't always work very well
1275bc4097aaSchristoswhen the assignment is the same variable being converted.
1276bc4097aaSchristos
1277bc4097aaSchristosFilter matching doesn't not match rule which checks tcp flags on packets
1278bc4097aaSchristoswhich are fragments - David Wilson
1279bc4097aaSchristos
1280bc4097aaSchristos3.1.7beta	30/1/97 - Released
1281bc4097aaSchristos
1282bc4097aaSchristosFix up NAT bugs introduced in last major change (now tested), including
1283bc4097aaSchristosnat_delete(), nat_lookupredir(), checksum changes, etc.
1284bc4097aaSchristos
1285bc4097aaSchristos3.1.7alpha	30/1/97 - Released
1286bc4097aaSchristos
1287bc4097aaSchristosMany changes to NAT code, including contributions from Laurent Joncheray
1288bc4097aaSchristos<lpj@ans.net>
1289bc4097aaSchristos
1290bc4097aaSchristosUse "NO_SLEEP" when allocating memory under SunOS.
1291bc4097aaSchristos
1292bc4097aaSchristosMake kernel printf's nicer for BSD/SunOS4
1293bc4097aaSchristos
1294bc4097aaSchristosAlways do a checksum for packets being filtered going out and being
1295bc4097aaSchristosprocessed by fastroute.
1296bc4097aaSchristos
1297bc4097aaSchristosLeave kernel to play with cdevsw on *BSD systems with LKM's.
1298bc4097aaSchristos
1299bc4097aaSchristosipnat.1 man page fixes.
1300bc4097aaSchristos
1301bc4097aaSchristos3.1.6		21/1/97 - Released
1302bc4097aaSchristos
1303bc4097aaSchristosAllow NAT to work on BSD systems in conjunction with "pass .. to ifname"
1304bc4097aaSchristos
1305bc4097aaSchristosMemory leak introduced in 3.1.3 in NAT lists, clearing of NAT table tried
1306bc4097aaSchristosto free memory twice.
1307bc4097aaSchristos
1308bc4097aaSchristosNAT recalculates IP header checksum based on difference between IP#'s and
1309bc4097aaSchristosport numbers - should be just IP#'s (Solaris2 only)
1310bc4097aaSchristos
1311bc4097aaSchristos3.1.5		13/1/97 - Released
1312bc4097aaSchristos
1313bc4097aaSchristosfixed setting of NAT timeouts and use different timeouts for concurrent
1314bc4097aaSchristosTCP sessions using the same IP# mapping (when port mapping isn't used)
1315bc4097aaSchristos
1316bc4097aaSchristosmultiple loading/unloading of LKM's doesn't clean up cdevsw properly for
1317bc4097aaSchristos*BSD systems.
1318bc4097aaSchristos
1319bc4097aaSchristos3.1.4		10/1/97	- Released
1320bc4097aaSchristos
1321bc4097aaSchristosadd command line options -C and -F to ipnat to flush NAT list and table
1322bc4097aaSchristos
1323bc4097aaSchristosipnat -l loops on output - Neil Readwin (nreadwin@nysales.micrognosis.com)
1324bc4097aaSchristos
1325bc4097aaSchristosNetBSD/FreeBSD kernel malloc changes - Daniel Carosone
1326bc4097aaSchristos
1327bc4097aaSchristos3.1.3		10/1/97 - Released
1328bc4097aaSchristos
1329bc4097aaSchristosNAT chains not constructed correctly in hash tables - Antony Y.R Lu
1330bc4097aaSchristos(antony@hawk.ee.ncku.edu.tw)
1331bc4097aaSchristos
1332bc4097aaSchristosUpdated INSTALL.NetBSD, INSTALL.FreeBSD and INSTALL.Sol2
1333bc4097aaSchristos
1334bc4097aaSchristosman page update (ipf.5) from Daniel Carosone (dan@geek.com.au)
1335bc4097aaSchristos
1336bc4097aaSchristosICMP header checksum update now included in NAT.
1337bc4097aaSchristos
1338bc4097aaSchristosSolaris2 needs to modify IP header checksums in ip_natin and ip_natout.
1339bc4097aaSchristos
1340bc4097aaSchristos3.1.2		4/12/96 - Released
1341bc4097aaSchristos
1342bc4097aaSchristosipmon doesn't use syslog all the time when given -s option
1343bc4097aaSchristos
1344bc4097aaSchristosfixed mclput panic in ip_input.c and replace ntohs() with NTOHS() macro
1345bc4097aaSchristos
1346bc4097aaSchristoscheck the results of hostname resolution in ipnat
1347bc4097aaSchristos
1348bc4097aaSchristos"make *install" fixed for subdirectories.
1349bc4097aaSchristos
1350bc4097aaSchristosproblems with "ARCH:=" and gnu make resolved
1351bc4097aaSchristos
1352bc4097aaSchristosparser reports an error for lines with whitespaces only rather than skipping
1353bc4097aaSchristosthem. D.Carosone@abm.com.au (Daniel Carosone)
1354bc4097aaSchristos
1355bc4097aaSchristospatches for integration into NetBSD-current (post 1.2).
1356bc4097aaSchristos
1357bc4097aaSchristosadd an option to allow non-IP packets going up/down the stream on Solaris2
1358bc4097aaSchristosto be dropped. John Bass.
1359bc4097aaSchristos
1360bc4097aaSchristos3.1.2beta	21/11/96 - Released
1361bc4097aaSchristos
1362bc4097aaSchristosmake ipsend compile on Linux 2.0.24
1363bc4097aaSchristos
1364bc4097aaSchristoschanges to TCP kept state algorithm, making it watch state on TCP
1365bc4097aaSchristosconnections in both directions.  Also use the same algorithm for NAT TCP.
1366bc4097aaSchristos
1367bc4097aaSchristos-Wall cleanup - Bernd Ernesti
1368bc4097aaSchristos
1369bc4097aaSchristosadded "or-block" for "pass .. log or-block" after a suggestion from
1370bc4097aaSchristosDavid Oppenheim (davido@optimation.com.au)
1371bc4097aaSchristos
1372bc4097aaSchristosadded subdirectories for building IP Filter in SunOS5/BSD for different
1373bc4097aaSchristoscpu architecures
1374bc4097aaSchristos
1375bc4097aaSchristosSolaris2 fixes to logging and pre-filtering packet processing - 3.1.1p2
1376bc4097aaSchristos
1377bc4097aaSchristosmbuf logging not using mtod(), remove iplbusy - 3.1.1p1		1/11/96
1378bc4097aaSchristos
1379bc4097aaSchristos3.1.1		28/10/96 - Released
1380bc4097aaSchristos
1381bc4097aaSchristosInstallation script fixes and deinstall scripts for IP Filter on:
1382bc4097aaSchristosSunOS4/FreeBSD/NetBSD
1383bc4097aaSchristos
1384bc4097aaSchristosMan page fixes - Paul Dubois (dubois@primate.wisc.edu)
1385bc4097aaSchristos
1386bc4097aaSchristosFix use of SOLARIS macro in ipmon, rewrote ipllog() (again!)
1387bc4097aaSchristos
1388bc4097aaSchristosparsing isn't completely case insensitive - David Wilson
1389bc4097aaSchristos(davidw@optimation.com.au)
1390bc4097aaSchristos
1391bc4097aaSchristosRelease ipl_mutex across uiomove() calls
1392bc4097aaSchristos
1393bc4097aaSchristosprint entire rule entries out for "ipf -z" when zero'ing per-rule stats.
1394bc4097aaSchristos
1395bc4097aaSchristosipfstat returns same output for "hits" in "ipfstat -aio" - Terletsky Slavik
1396bc4097aaSchristos(ts@polynet.lviv.ua)
1397bc4097aaSchristos
1398bc4097aaSchristosNew algorithm for setting timeouts for TCP connection (more closely follow
1399bc4097aaSchristosTCP FSM) - Pradeep Krishnan (pkrishna@netcom.com)
1400bc4097aaSchristos
1401bc4097aaSchristosTrack both window sizes for TCP connections through "keep state".
1402bc4097aaSchristos
1403bc4097aaSchristosSolaris2 doesn't like _KERNEL defined in stdargs.h - Jos van Wezel
1404bc4097aaSchristos(wezel@bio.vu.nl)
1405bc4097aaSchristos
1406bc4097aaSchristos3.1.1-beta2	6/10/96 - Released
1407bc4097aaSchristos
1408bc4097aaSchristosSolaris2 fastroute/dup-to/to now works
1409bc4097aaSchristos
1410bc4097aaSchristosipmon `record' reading rewritten
1411bc4097aaSchristos
1412bc4097aaSchristosAdded post-NetBSD1.2 packet filter patches - Mathew Green (mrg@eterna.com.au)
1413bc4097aaSchristos
1414bc4097aaSchristosAttempt to use in_proto.c.diff, not "..diffs" for SunOS4 - David Wilson
1415bc4097aaSchristos(davidw@optimation.com.au)
1416bc4097aaSchristos
1417bc4097aaSchristosMichael Ryan (mike@NetworX.ie) reports the following:
1418bc4097aaSchristos* The Trumpet WinSock under Windows always sends its SYN packet with an ACK
1419bc4097aaSchristos  value of 1, unlike any other implementation I've seen, which would set it
1420bc4097aaSchristos  to zero.  The "keep state" feature of IP Filter doesn't work when receiving
1421bc4097aaSchristos  non-zero ACK values on new connection requests.
1422bc4097aaSchristos* */Makefile install rule doesn't install all the binaries/man pages
1423bc4097aaSchristos* Make ipnat use "tcp/udp" instead of "tcpudp"
1424bc4097aaSchristos* Print out "tcp/udp" properly
1425bc4097aaSchristos* ipnat "portmap tcp" matches "portmap udp" when adding/removing
1426bc4097aaSchristos* NAT dest. ip# increased by one on mask of 0xffffffff when it shouldn't
1427bc4097aaSchristos
1428bc4097aaSchristos3.1.1-beta	1/9/96 - Released
1429bc4097aaSchristos
1430bc4097aaSchristosadd better detection of TCP connections closing to TCP state monitoring.
1431bc4097aaSchristos
1432bc4097aaSchristosfr_addstate() not called correctly for fragments.  "keep state" and
1433bc4097aaSchristos"keep frag" code don't work together 100% - Songqing Cai
1434bc4097aaSchristos(songqing_cai@sterling.com)
1435bc4097aaSchristos
1436bc4097aaSchristoscall to fr_addstate() incorrect for adding state in combination with keeping
1437bc4097aaSchristosfragment information - Songqing Cai (songqing_cai@sterling.com)
1438bc4097aaSchristos
1439bc4097aaSchristosKFREE() passed fp (incorrect) and not fr (correct) in ip_frag.c - John Hood
1440bc4097aaSchristos(cgull@smoke.marlboro.vt.us)
1441bc4097aaSchristos
1442bc4097aaSchristosmake ipf parser recognise '\\' as a `continued line' marker - Dima Ruban
1443bc4097aaSchristos(dima@best.net)
1444bc4097aaSchristos
1445bc4097aaSchristos3.1.1-alpha	23/8/96 - Released
1446bc4097aaSchristos
1447bc4097aaSchristoskernel panic's when ICMP packets go through NAT code
1448bc4097aaSchristos
1449bc4097aaSchristosstats aren't zero'd properly with ipf -Z
1450bc4097aaSchristos
1451bc4097aaSchristosipnat doesn't show port numbers correctly all the time and also add the
1452bc4097aaSchristosprotocol (tcp/udp/tcpudp) to rdr output - Carson Gaspar (carson@lehman.com)
1453bc4097aaSchristos
1454bc4097aaSchristosfast checksum fixing not 100% - backout patch - Bill Dorsey (dorsey@lila.com)
1455bc4097aaSchristos
1456bc4097aaSchristosNetBSD-1.2 patches from - VaX#n8 <vax@linkdead.paranoia.com>
1457bc4097aaSchristos
1458bc4097aaSchristosUsage() call error in fils.c - Ajay Shekhawat (ajay@cedar.buffalo.edu)
1459bc4097aaSchristos
1460bc4097aaSchristosip_optcopy() staticly defined in ip_output.c in SunOS4 - Nick Hall
1461bc4097aaSchristos(nrh@tardis.ed.ac.uk)
1462bc4097aaSchristos
1463bc4097aaSchristos3.1.0		7/7/96 - Released
1464bc4097aaSchristos
1465bc4097aaSchristosReformatted ipnat output to be compatible with it's input, so that
1466bc4097aaSchristos"ipnat -l | ipnat -rf -" is possible.
1467bc4097aaSchristos
1468bc4097aaSchristos3.1.0beta	30/6/96 - Released
1469bc4097aaSchristos
1470bc4097aaSchristosNetBSD-1.2 patches from Greg Woods (woods@most.weird.com)
1471bc4097aaSchristos
1472bc4097aaSchristoskernel module must not be installed stripped (Solaris2), as created by
1473bc4097aaSchristos"make package" for Solaris2 - Peter Heimann
1474bc4097aaSchristos(peter@i3.informatik.rwth-aachen.de)
1475bc4097aaSchristos
1476bc4097aaSchristos3.1.0alpha	5/6/96 - Released
1477bc4097aaSchristos
1478bc4097aaSchristosinclude examples in package for solaris2
1479bc4097aaSchristos
1480bc4097aaSchristospatches for removing an extra ip header checksum (FreeBSD/NetBSD/SunOS)
1481bc4097aaSchristos
1482bc4097aaSchristosremoved trailing space from printouts of rules in ipf.
1483bc4097aaSchristos
1484bc4097aaSchristosipresend supports the same range of inputs that ipftest does.
1485bc4097aaSchristos
1486bc4097aaSchristossending a duplicate copy of a packet to another network devices is now
1487bc4097aaSchristossupported. ("dup-to")
1488bc4097aaSchristos
1489bc4097aaSchristossending a packet to an arbitary interface is now supported, irrespective
1490bc4097aaSchristosof its actual route, with no ttl decrement.  Can also be routed without
1491bc4097aaSchristosthe ttl being decremented. ("to" and "fastroute").
1492bc4097aaSchristos
1493bc4097aaSchristos"call" option added to support calling a generic function if a packet is
1494bc4097aaSchristosmatched.
1495bc4097aaSchristos
1496bc4097aaSchristosshow all (upto 4) recorded bytes from the interface name in logging from
1497bc4097aaSchristosipmon.
1498bc4097aaSchristos
1499bc4097aaSchristossupport for using unix file permissions for read/write access on the device
1500bc4097aaSchristosis now in place.
1501bc4097aaSchristos
1502bc4097aaSchristosrecursive mutex in nat_new() for Solaris 2.x - Per L. Hagen <per@stibo.dk>
1503bc4097aaSchristos
1504bc4097aaSchristosipftest doesn't call initparse() for THISHOST - Catherine Allen
1505bc4097aaSchristos(cla@connect.com.au)
1506bc4097aaSchristos
1507bc4097aaSchristosMan page corrections from Rex Bona (rex@pengo.comsmiths.com.au)
1508bc4097aaSchristos
1509bc4097aaSchristos3.0.4		10/4/96 - Released
1510bc4097aaSchristos
1511bc4097aaSchristoslooop in `parsing' IP packets with optlen 0 for ip options.
1512bc4097aaSchristos
1513bc4097aaSchristosrule number not initialized and resulted in unexpected results for state
1514bc4097aaSchristosmaching.
1515bc4097aaSchristos
1516bc4097aaSchristosoption parsing and printing bugs - Pradeep Krishnan
1517bc4097aaSchristos
1518bc4097aaSchristos3.0.4beta	25/3/96	- Released
1519bc4097aaSchristos
1520bc4097aaSchristoswouldn't parse "keep flags keep state" correctly.
1521bc4097aaSchristos
1522bc4097aaSchristosSunOS4.1.x ip_input.c doesn't recognise all 1s broadcast address - Nigel Verdon
1523bc4097aaSchristos
1524bc4097aaSchristospatches for BSDI's BSD/OS 2.1 and libpcap reader on little endian systems
1525bc4097aaSchristosfrom Thorsten Lockert <tholo@tetherless.com>
1526bc4097aaSchristos
1527bc4097aaSchristosb* functions in fil.c on Solaris 2.4
1528bc4097aaSchristos
1529bc4097aaSchristos3.0.3	17/3/96 - Released
1530bc4097aaSchristos
1531bc4097aaSchristosadded patches to support IP Filter initialisation when compiled into the
1532bc4097aaSchristoskernel.
1533bc4097aaSchristos
1534bc4097aaSchristosadded -x option to ipmon to display hex dumps of logged packets.
1535bc4097aaSchristos
1536bc4097aaSchristosadded -H option to ipftest to allow ascii-hex formatted input to specify
1537bc4097aaSchristosarbitary IP packets.
1538bc4097aaSchristos
1539bc4097aaSchristosSending TCP RSTs as a response now work for Solaris2 x86
1540bc4097aaSchristos
1541bc4097aaSchristosadd patches to make IP Filter compile into NetBSD kernels properly.
1542bc4097aaSchristos
1543bc4097aaSchristospatch to stop SunOS 4.1.x kernels panicing with "data traps".
1544bc4097aaSchristos
1545bc4097aaSchristosipfboot script unloads and reloads ipf module on Solaris2 if it is already
1546bc4097aaSchristosloaded into the kernel.
1547bc4097aaSchristos
1548bc4097aaSchristosInstallation of IP Filter as a Solaris2 package is now supported.
1549bc4097aaSchristos
1550bc4097aaSchristosMan pages for ipnat.4, ipnat.5 added.
1551bc4097aaSchristos
1552bc4097aaSchristosadded some more regression tests and fixed up IP Filter to pass the new tests
1553bc4097aaSchristos(previous versions failed some of the tests in set 12).
1554bc4097aaSchristos
1555bc4097aaSchristosIP option filter processing has changed so that saying "with opt lsrr" will
1556bc4097aaSchristoscheck only for that one, but not mask out other options, so a packet with
1557bc4097aaSchristosstrict source routing, along with loose source routing will match all of
1558bc4097aaSchristos"with opt lsrr", "with opt ssrr" and "with opt lsrr,ssrr".
1559bc4097aaSchristos
1560bc4097aaSchristosIPL_NAME needed in ipnat.c - Kelly (kelly@count04.mry.scruznet.com)
1561bc4097aaSchristos
1562bc4097aaSchristospatches for clean NetBSD compilation from Bernd Ernesti (bernd@arresum.inka.de)
1563bc4097aaSchristos
1564bc4097aaSchristosmake install is incorrect - Julian Briggs (julian@lightwork.co.uk)
1565bc4097aaSchristos
1566bc4097aaSchristosstrtol() returns 0x7fffffff for all negative numbers,
1567bc4097aaSchristosprintfr() generates incorrect output for "opt sec-class *",
1568bc4097aaSchristoshandling of "not opt xxx opt yyy" incorrect.
1569bc4097aaSchristos- Minh Tonthat (minht@sbei.com)/Pradeep Krishnan (pradeepk@sbei.com)
1570bc4097aaSchristos
1571bc4097aaSchristosm_pullup() called only for input and not output; caused problems
1572bc4097aaSchristoswith filtering icmp - Nigel Verdon (verdenn@gb.swissbank.com)
1573bc4097aaSchristos
1574bc4097aaSchristosparsing problem for "port 1" and NetBSD patches incorrect -
1575bc4097aaSchristosAndreas Gustafsson (gson@guava.araneus.fi)
1576bc4097aaSchristos
1577bc4097aaSchristos3.0.2	4/2/96 - Released
1578bc4097aaSchristos
1579bc4097aaSchristosCorrected bug where NAT recalculates checksums for fragments.
1580bc4097aaSchristos
1581bc4097aaSchristosmake NAT recalculate UDP checksums (rather than setting them to 0),
1582bc4097aaSchristosif they're non-zero.
1583bc4097aaSchristos
1584bc4097aaSchristosDNS patches - Real Page (Real.Page@Matrox.com)
1585bc4097aaSchristos
1586bc4097aaSchristosalteration of checksum recalculations in NAT code and addition of
1587bc4097aaSchristosredirection with NAT - Mike Neuman
1588bc4097aaSchristos
1589bc4097aaSchristoscore dump, if tcp/udp is used with a port number and not service name,
1590bc4097aaSchristosin ipf - Mike Neuman (mcn@engarde.com)
1591bc4097aaSchristos
1592bc4097aaSchristosinitparse() call, missing to prime "<thishost>" hook - Craig Bishop
1593bc4097aaSchristos
1594bc4097aaSchristos3.0.1	14/1/96 - Released
1595bc4097aaSchristos
1596bc4097aaSchristosmiscellaneous patches for Solaris2
1597bc4097aaSchristos
1598bc4097aaSchristos3.0	14/1/96	- Released
1599bc4097aaSchristos
1600bc4097aaSchristosPatch included for FDDI, from Richard Ohnemus
1601bc4097aaSchristos(Richard_Ohnemus@dallas.csd.sterling.com)
1602bc4097aaSchristos
1603bc4097aaSchristosCode cleanup for release.
1604bc4097aaSchristos
1605bc4097aaSchristos3.0beta4 10/1/96
1606bc4097aaSchristos
1607bc4097aaSchristosrecursive mutex in ipfr_slowtimer fixed, reported by Craig Bishop
1608bc4097aaSchristos
1609bc4097aaSchristosrecursive mutex in sending TCP RSTs fixed, reported by Tony Becker
1610bc4097aaSchristos
1611bc4097aaSchristos3.0beta3 9/1/96
1612bc4097aaSchristos
1613bc4097aaSchristosFIxup for Solaris2.5 install and interface name bug in ipftest from
1614bc4097aaSchristosJulian Briggs (julian@lightwork.co.uk)
1615bc4097aaSchristos
1616bc4097aaSchristosByte order patches for ipmon from Tony Becker (tony@mcrsys.com)
1617bc4097aaSchristos
1618bc4097aaSchristos3.0beta2 7/1/96
1619bc4097aaSchristos
1620bc4097aaSchristosAdded the (somewhat warped) IP accounting as it exists in ipfw on FreeBSD.
1621bc4097aaSchristosNote, this isn't really what one would call IP account, when compared to
1622bc4097aaSchristosprocess accounting, sigh.
1623bc4097aaSchristos
1624bc4097aaSchristosSplit up ipresend into iptest/ipresend/ipsend
1625bc4097aaSchristos
1626bc4097aaSchristosAdded another m_pullup() inside fr_check() for BSD style kernels and
1627bc4097aaSchristosadded some checks to ipllog() to not log more than is present (for short
1628bc4097aaSchristospackets).
1629bc4097aaSchristos
1630bc4097aaSchristosFixed bug where failed hostname/netname resolution goes undetecte and
1631bc4097aaSchristosbecomes 0.0.0.0 (any) (reported Guido van Rooij)
1632bc4097aaSchristos
1633bc4097aaSchristos3.0beta	11/11/95	- Released
1634bc4097aaSchristos
1635bc4097aaSchristosRewrote the way rule testing is done, reducing the number of files needed and
1636bc4097aaSchristosgenerated.
1637bc4097aaSchristos
1638bc4097aaSchristosSIOCIPFFL was incorrectly affected by IPFILTER_LOG (Mathew Green)
1639bc4097aaSchristos
1640bc4097aaSchristosPatches from Guido van Rooij to fix sending back TCP RSTs on Net-2/Net-3
1641bc4097aaSchristosBSD based Unixes (panic'd)
1642bc4097aaSchristos
1643bc4097aaSchristosPatches for FreeBSD/i86 ipmon from Riku Kalinen <riku@tequila.nixu.fi>
1644bc4097aaSchristos(I think someone else already told me about these but they got lost :-/)
1645bc4097aaSchristos
1646bc4097aaSchristosChanged Makefile structure to build object files for different operating
1647bc4097aaSchristossystems in separate directories by default.
1648bc4097aaSchristos
1649bc4097aaSchristosBSDI has ef0 for first ethernet interface
1650bc4097aaSchristos
1651bc4097aaSchristosAllow for a "not" operator before optional keywords.
1652bc4097aaSchristos
1653bc4097aaSchristosThe "rule number" was being incorrectly incremented every time it went through
1654bc4097aaSchristosthe loop rather than when it matched a rule.
1655bc4097aaSchristos
1656bc4097aaSchristos2.8.2	24/10/95	- Released
1657bc4097aaSchristos
1658bc4097aaSchristosFixed up problems with "textip" for doing lots of testing.
1659bc4097aaSchristos
1660bc4097aaSchristosFixed bug in detection of "short" tcp/ip packets (all reported as being short).
1661bc4097aaSchristos
1662bc4097aaSchristosSolaris 2.4 port now works 100%.
1663bc4097aaSchristos
1664bc4097aaSchristosMan page errors reported and fixed.
1665bc4097aaSchristos
1666bc4097aaSchristosRemoved duplicate entry in etc/services for login on port 49 (Craig Bishop).
1667bc4097aaSchristos
1668bc4097aaSchristosFixed ipmon output to put a space after the log-letter.
1669bc4097aaSchristos
1670bc4097aaSchristosPatch from Guido van Rooij to fix parsing problem.
1671bc4097aaSchristos
1672bc4097aaSchristos2.8.1	15/10/95	- Released
1673bc4097aaSchristos
1674bc4097aaSchristosAdded ttl and tos filtering.
1675bc4097aaSchristos
1676bc4097aaSchristosPatches for fixing up compilation and port problems (little endian)
1677bc4097aaSchristosfrom Guido van Rooij <guido@IAEhv.nl>.
1678bc4097aaSchristos
1679bc4097aaSchristosMan page problems reported and fixed by Carson Gaspar <carson@lehman.com>.
1680bc4097aaSchristos
1681bc4097aaSchristosipsend doesn't compile properly on Solaris2.4
1682bc4097aaSchristos
1683bc4097aaSchristosLots of work done for Solaris2.4 to make it MT/MP safe and work.
1684bc4097aaSchristos
1685bc4097aaSchristos2.8	15/9/95		- Released
1686bc4097aaSchristos
1687bc4097aaSchristosipmon can now send messages to syslogd (-s) and use names instead of
1688bc4097aaSchristosnumbers (-N).
1689bc4097aaSchristos
1690bc4097aaSchristosIP packets are now "compiled" into a structure only containing filterable
1691bc4097aaSchristosbits.
1692bc4097aaSchristos
1693bc4097aaSchristosAdded regression testing in the test/ subdirectory, using a new option
1694bc4097aaSchristos(-b) with the ipftest program.
1695bc4097aaSchristos
1696bc4097aaSchristosAdded "nomatch" return to filter results.  These are counted and show
1697bc4097aaSchristosup in reports from ipfstat.
1698bc4097aaSchristos
1699bc4097aaSchristosMoved filter code out of ip_fil.c and into fil.c - there is now only one
1700bc4097aaSchristosinstance of it in the package.
1701bc4097aaSchristos
1702bc4097aaSchristosAdded Solaris 2.4 support.
1703bc4097aaSchristos
1704bc4097aaSchristosAdded IPSO basic security option filtering.
1705bc4097aaSchristos
1706bc4097aaSchristosAdded name support for filtering on all 19 named IP options.
1707bc4097aaSchristos
1708bc4097aaSchristosPatches from Ivan Brawley to log packet contents as well as packet headers.
1709bc4097aaSchristos
1710bc4097aaSchristosUpdate for sun/conf.c.diff from Ivan Brawley <ibrawley@awadi.com.AU>
1711bc4097aaSchristos
1712bc4097aaSchristosAdded patches for FreeBSD 1, and added two new switches (-E, -D) to ipf,
1713bc4097aaSchristosalong with a new ioctl, SIOCFRENB.
1714bc4097aaSchristosFrom: Dieter Dworkin Muller <dworkin@village.org>
1715bc4097aaSchristos
1716bc4097aaSchristos2.7.3	31/7.95		- Released
1717bc4097aaSchristos
1718bc4097aaSchristosDidn't compile cleanly without IPFILTER_LOG defined (Mathew Green).
1719bc4097aaSchristos
1720bc4097aaSchristosipftest now deals with tcpdump3 binary output files (from libpcap) with -P.
1721bc4097aaSchristos
1722bc4097aaSchristosBrought ipftest program upto date with actual filter code.
1723bc4097aaSchristos
1724bc4097aaSchristosFilter would cause a match to occur when it wasn't meant to if the packet
1725bc4097aaSchristoshad short headers and was missing portions that should have been there.
1726bc4097aaSchristosErr, it would rightly not match on them, but their absence caused a match
1727bc4097aaSchristoswhen it shouldn't have been.
1728bc4097aaSchristos
1729bc4097aaSchristos2.7.2	26/7/95		- Released
1730bc4097aaSchristos
1731bc4097aaSchristosProblem with filtering just SYN flagged packets reported by
1732bc4097aaSchristosDieter Dworkin Muller <dworkin@village.org>.  To solve this
1733bc4097aaSchristosproblem, added support for masking TCP flags for comparison "flags X/Y".
1734bc4097aaSchristos
1735bc4097aaSchristos2.7.1	9/7/95		- Released
1736bc4097aaSchristos
1737bc4097aaSchristosAdded ip_dirbroadcast support for Sun ip_input.c
1738bc4097aaSchristos
1739bc4097aaSchristosFixed up the install scripts for FreeBSD/NetBSD to recognise where they are
1740bc4097aaSchristosbetter.
1741bc4097aaSchristos
1742bc4097aaSchristos2.7	7/7/95		- Released
1743bc4097aaSchristos
1744bc4097aaSchristosAdded "return-rst" to return TCP RST's to TCP packets.
1745bc4097aaSchristos
1746bc4097aaSchristosActually ported it to FreeBSD-i386 2.0.0, so it works there properly now.
1747bc4097aaSchristos
1748bc4097aaSchristosAdded insertion of filter rules.  Use "@<#>" at the beginning of a filter
1749bc4097aaSchristosto insert a rule at row #.
1750bc4097aaSchristos
1751bc4097aaSchristosFilter keeps track of how many times each rule is matched.
1752bc4097aaSchristos
1753bc4097aaSchristosChanged compile time things to match kernel option (IPFILTER_LKM &
1754bc4097aaSchristosIPFILTER_LOG).
1755bc4097aaSchristos
1756bc4097aaSchristosUpdated ip_input.c and ip_output.c with paches for 3.5 Multicast IP.
1757bc4097aaSchristos(No change required for 3.6)
1758bc4097aaSchristos
1759bc4097aaSchristosNow includes TCP fragments which start inside the TCP header as being short.
1760bc4097aaSchristosAdded counting the number of times each rule is matched.
1761bc4097aaSchristos
1762bc4097aaSchristos
1763bc4097aaSchristos2.6	11/5/95		- Released
1764bc4097aaSchristos
1765bc4097aaSchristosAdded -n option to ipf: when supplied, no changes are made to the kernel.
1766bc4097aaSchristos
1767bc4097aaSchristosAdded installation scripts for SunOS 4.1.x and NetBSD/FreeBSD/BSDI.
1768bc4097aaSchristos
1769bc4097aaSchristosRewrote filtering to use a more generic mask & match procedure for
1770bc4097aaSchristoschecking if a packet matches a rule.
1771bc4097aaSchristos
1772bc4097aaSchristos2.5.2	27/4/95		- Released
1773bc4097aaSchristos
1774bc4097aaSchristos"tcp/udp" and a non-initialised pointer caused the "proto" to become
1775bc4097aaSchristosa `random' value; added "ip#/dotted.mask" notation to the BNF.
1776bc4097aaSchristosFrom Adam W. Feigin  <feigin@iis.ee.ethz.ch>
1777bc4097aaSchristos
1778bc4097aaSchristos2.5.1	22/3/95		- Released
1779bc4097aaSchristos
1780bc4097aaSchristos"tcp/udp" had a strange effect (undesired) on getserv*() functions,
1781bc4097aaSchristoscausing protocol/service lookups to fail.  Reported by Matthew Green.
1782bc4097aaSchristos
1783bc4097aaSchristos2.5	17/3/95		- Released
1784bc4097aaSchristos
1785bc4097aaSchristosAdded a new keyword "all" to BNF and parsing of tcpdump/etherfind/snoop
1786bc4097aaSchristosoutput through the ipftest program.  Suggestions from:
1787bc4097aaSchristosMichael Ciavarella (mikec@phyto.apana.org.au)
1788bc4097aaSchristos
1789bc4097aaSchristosConflicts occur when "general" filter rules are used for ports and the
1790bc4097aaSchristoslack of a "proto" when used with "port" matches other packets when only
1791bc4097aaSchristosTCP/UDP are implied.
1792bc4097aaSchristosReported Matthew Green (mrg@fulcom.com.au);
1793bc4097aaSchristosreported & fixed 6-8/3/95
1794bc4097aaSchristos
1795bc4097aaSchristosAdded filtering of short TCP packets using "with short" 28/2/95
1796bc4097aaSchristos(These can possibly slip by checks for the various flags).  Short UDP
1797bc4097aaSchristosor ICMP are dropped to the floor and logged.
1798bc4097aaSchristos
1799bc4097aaSchristosAdded filtering of fragmented packets using "with frag" 24/2/95
1800bc4097aaSchristos
1801bc4097aaSchristosPort to NetBSD-current completed 20/2/95, using LKM.
1802bc4097aaSchristos
1803bc4097aaSchristosAdded logging of the rule # which caused the logging to happen and the
1804bc4097aaSchristosinterface on which the packet is currently as suggested by
1805bc4097aaSchristosAndreas Greulich (greulich@math-stat.unibe.ch) 10/2/95
1806bc4097aaSchristos
1807bc4097aaSchristos2.4	9/2/95		- Released
1808bc4097aaSchristosFixed saving of IP headers in ICMP packets.
1809bc4097aaSchristos
1810bc4097aaSchristos2.3	29/1/95
1811bc4097aaSchristosAdded ipf -F [in|out|all] to flush filter rule sets (SIOCIPFFL).
1812bc4097aaSchristosFixed iplread() and iplsave() with help from Marc Huber.
1813bc4097aaSchristos
1814bc4097aaSchristos2.2	7/1/95		- Released
1815bc4097aaSchristosAdded code from Marc Huber <huber@fzi.de> to allow it to allocate
1816bc4097aaSchristosits own major char number dynamically when modload'ing.  Fixed up
1817bc4097aaSchristosuse of <, >, <=, >= and >< for ports.
1818bc4097aaSchristos
1819bc4097aaSchristos2.1	21/12/94	- Released
1820bc4097aaSchristosrepackaged to include the correct ip_output.c and ip_input.c *goof*
1821bc4097aaSchristos
1822bc4097aaSchristos2.0	18/12/94	- Released
1823bc4097aaSchristosadded code to check for port ranges - complete.
1824bc4097aaSchristosrewrote to work as a loadable kernel module - complete.
1825bc4097aaSchristos
1826bc4097aaSchristos1.1
1827bc4097aaSchristosadded code for ouput filtering as well as input filtering and added support for logging to a simple character device of packet headers.
1828bc4097aaSchristos
1829bc4097aaSchristos1.0	22/04/93	- Released
1830bc4097aaSchristosFirst release cut.
1831