ChangeLog 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. 20100504
  2. - (djm) Swap nf9 last/first switched. They were reversed in the struct
  3. vs our template flowset. Patch from stephen AT sfnelson.org.
  4. https://bugzilla.mindrot.org/show_bug.cgi?id=1760
  5. 20091001
  6. - (djm) Lots of manpage tweaks from Tamas TEVESZ, ice AT extreme.hu
  7. - (djm) Support manual specification of an interface index to be used
  8. as the input and output interface of all flows generated. Patch from
  9. kempf AT rpi.edu
  10. - (djm) One more manpage tweak from Tamas TEVESZ.
  11. - (djm) Display softflowd start time in "softflowctl statistics" display.
  12. Suggestion from Tamas TEVESZ.
  13. 20080515
  14. - (djm) Fix typo in manpage for PID file location; patch from
  15. ice AT extreme.hu
  16. - (djm) Make privsep directory compile-time configurable; patch from
  17. ice AT extreme.hu
  18. 20070901
  19. - (djm) Implement a very simple freelist allocator for flows and expiry
  20. events
  21. 20070831
  22. - (djm) Move max_flows into struct FLOWTRACK
  23. 20070726
  24. - (djm) Add flow_get/flow_put and expiry_get/expiry_put functions to
  25. allocate and deallocate flows and expiry events, instead of calling
  26. malloc/free directly. Right now these functions just call malloc/free
  27. anyway, but they will soon be used to implemented pooled flow/expiry
  28. allocations.
  29. 20070725
  30. - (djm) KNF
  31. - (djm) Correctly exit from mainloop on signal - patch from Florian Weimer
  32. - (djm) openlog with LOG_NDELAY so socket is connected before privdrop -
  33. patch from Florian Weimer
  34. 20061102
  35. - (djm) Document -v option and close Ed in manpage; from Nino Jogun
  36. nino80 AT gmail.com
  37. 20061101
  38. - (djm) Collect licenses into LICENSE file
  39. - (djm) malloc(x*y) -> calloc(x, y)
  40. - (djm) Sync sys-tree.h
  41. - (djm) Release 0.9.8
  42. 20060315
  43. - (djm) Add "send-template" softflowctl command to resend a NetFlow 9
  44. template record immediately
  45. 20060315
  46. - (djm) Fix DLT_RAW support, from jhanna AT shaw.ca
  47. - (djm) Support ${DESTDIR} in Makefile install target, from
  48. ssnodgra AT pheran.com
  49. - (djm) Encode ICMP type and code into port numbers (apparently this is
  50. what Cisco exporters do), patch from ssnodgra AT pheran.com slightly
  51. tweaked by me
  52. - (djm) Crank version number to 0.9.8
  53. - (djm) Add RPM packaging files from ssnodgra AT pheran.com
  54. 20060214
  55. - (djm) Add missing getopt() bit for flowtrack mode
  56. 20060211
  57. - (djm) Add option to ignore port and protocol information from flows,
  58. allowing flows from the same IP addresses to be automatically
  59. coalesced
  60. 20060126
  61. - (djm) Correctly expire quiescent flows when they hit maximum_lifetime;
  62. bug noticed and patch tested by andreas.brillisauer AT hetzner.de
  63. 20051206
  64. - (djm) Make sure installation directories exist, spotted by
  65. alshu AT tut.by
  66. 20051118
  67. - (djm) Some extra paranoia and verbosity on malloc failures
  68. - (djm) Support Linux "cooked socket" datalink type, from Tony Lewis
  69. gnutered AT yahoo.com.au
  70. 20051001
  71. - (djm) Fix typo, from rbreathe AT brookes.ac.uk
  72. 20050505
  73. - (djm) Fix time printing bug in debug mode
  74. - (djm) Fix reversed NetFlow v.9 first_switched and last_switched times
  75. 20050505
  76. - (djm) Fix bug in sequence number generation. Reported by
  77. b.ghita AT jack.see.plymouth.ac.uk and mwlucas AT blackhelicopters.org
  78. - (djm) Report pcap stats in statistics display
  79. 20050114
  80. - (djm) Release 0.9.7
  81. 20050110
  82. - (djm) Fix endianness problem in NetFlow v.9 port number export. Found and
  83. fixed by paolo.lucente AT ic.cnr.it
  84. - (djm) Add option to set hoplimit/TTL in support of multicast export support
  85. - (djm) Document multicast export
  86. 20041109
  87. - (djm) Test for struct ip6_ext in autoconf and define a replacement if
  88. missing, some systems lack it
  89. 20040930
  90. - (djm) Increase caplen a little for IPv6
  91. - (djm) Remove unused debugging code from NetFlow v.9 support
  92. - (djm) Add a timeout to cluster expiry expiry events, so we get more flows
  93. per packet. Default is to check for expiries every 60s
  94. - (djm) Allow timouts to be disabled (by setting them to 0)
  95. - (djm) Include IP_PROTOCOL_VERSION field in NetFlow v.9 packets
  96. - (djm) Don't bother tracking IPv6 flows if NetFlow export version
  97. doesn't support it
  98. - (djm) Don't crank up pcap snaplen unless we are interested in IPv6 either
  99. - (djm) Unbreak v6 flow export
  100. - (djm) Unbreak compilation on non-OpenBSD
  101. - (djm) Update README with recent changes (NetFlow v.9, v6 flows)
  102. - (djm) Release 0.9.6
  103. 20040929
  104. - (djm) Improve IPv6 code: track flowlables bidirectionally (but don't key on
  105. them for now), print addresses:port tuples unambiguously and apply correct
  106. timeout for ICMPv6 flows
  107. - (djm) Remove NetFlow v.1 types from NetFlow v.5 code
  108. - (djm) NetFlow v.9 support
  109. 20040913
  110. - (djm) Split out netflow send functions into separate files
  111. - (djm) Switch to a table of netflow exporter functions in preparation for
  112. additional export protocols
  113. - (djm) Collect netflow export target information together in a struct, in
  114. preparation for more export protocols and support for multiple export targets
  115. - (djm) Optimise the datalink_check function, by caching the last datalink type
  116. used.
  117. 20040909
  118. - (djm) Implement IPv6 flow tracking. Currently no export functionality.
  119. - (djm) Portability fixes for Linux, add closefrom()
  120. - (djm) Use strlcat/strlcpy instead of strn* functions
  121. - (djm) Comment out dump_packet (uncomment when debugging)
  122. 20040909
  123. - (djm) inline is unnecessary
  124. - (djm) Rework datalink processing, in preparation of IPv6 support
  125. - (djm) Next step in preparation of IPv6 support: make flow structure and
  126. lookup function support both IPv4 and IPv6 addresses (v6 addrs aren't yet
  127. used)
  128. - (djm) Another step on the road: factor out transport-layer protocol parsing
  129. from IPv4 parsing code
  130. - (djm) Be more careful about putting flows into canonical format
  131. - (djm) Prepare for IPv6 packet to flow conversion routine
  132. 20040901
  133. - (djm) Fix a tiny, stupid bug that prevents flow export
  134. - (djm) Release version 0.9.2
  135. 20040827
  136. - (djm) NetFlow v.5 supports 30 flows per packet
  137. - (djm) Use struct sockaddr in arguments (not sockaddr_storage), properly
  138. check length
  139. - (djm) Mention NetFlow v.5 support in manpage
  140. - (djm) Release version 0.9.1
  141. 20040716
  142. - (djm) Fix collector.pl when no address family specified on commandline
  143. spotted by pgennai AT netstarnetworks.com
  144. 20040710
  145. - (djm) Tidy up code: remove some debugging gunk, kill a global
  146. - (djm) Add support for NetFlow v.5 export format to softflowd
  147. - (djm) Add support for NetFlow v.5 export format to collector.pl
  148. 20040430
  149. - (djm) Release version 0.9
  150. 20040417
  151. - (djm) Fix invalid packet bug
  152. 20040417
  153. - (djm) Eliminate periodic expiry scans, wait in poll() only until the next
  154. scheduled expiry event
  155. - (djm) Separate timeout for ICMP traffic, generic timeout is too long
  156. 20040416
  157. - (djm) A bunch of changes necessary to support building on Solaris 9 (though
  158. the resultant binary doesn't seem to work properly):
  159. - Use getaddrinfo instead of inet_aton to parse host/port for export
  160. - Use setreuid if setresuid isn't around (ditto for gid)
  161. - Add replacement daemon() function from OpenBSD
  162. - Provide our own logit() function, because Solaris syslog() doesn't
  163. support LOG_PERROR
  164. - A heap of configure and common.h additions and fixes
  165. - (djm) Fix busted preprocessor
  166. - (djm) Support "[host]:port" syntax to specify numeric IPv6 export target
  167. - (djm) Fix connect() for IPv6 export targets
  168. - (djm) IPv6 listen support for collector.pl
  169. - (djm) Allow v4 operation of collector.pl if v6 modules aren't present
  170. - (djm) More flow export fixes
  171. - (djm) Tidy manpage and mention v6 export syntax
  172. - (djm) Unbreak Solaris, pass socklen around instead of using sa_len
  173. - (djm) Unbreak "make install"
  174. 20040415
  175. - (djm) Clear socket errors before UDP send; from pfflowd
  176. - (djm) Print flow start and finish times in collector.pl
  177. - (djm) Linux needs grp.h for setgroups()
  178. - (djm) Never endprotoent()
  179. - (djm) Use autoconf to detect various things; in preparation of more
  180. portability
  181. - (djm) Detect int and define standard int types in configure
  182. 20031111
  183. - (djm) Remove -Werror from CFLAGS, it causes problems in released software
  184. 20031109
  185. - (djm) Give compile-time choice over flow and expiry event tree type
  186. default is splay tree for flows and red-black tree for expiry events
  187. (limited benchmarking indicates that this is the fastest)
  188. - (djm) Lock the BPF device to prevent changes should the unpriv child
  189. be compromised (only OpenBSD supports this ioctl for now)
  190. 20031001
  191. - (djm) Realloc audit
  192. - (djm) Chroot to /var/empty and drop privileges on daemonisation
  193. - (djm) More things TODO
  194. 20030620
  195. - (djm) Fixup collector timestamp printing
  196. - (djm) Rework TODO, add section on planned fragment handling
  197. - (djm) Add "strip" target to Makefile
  198. - (djm) Add "help" keyword to recognised softflowctl responses
  199. - (djm) Fix fragment handling bug: we would try to look into fragmented
  200. payload on later fragments. This could cause random tcp/udp port numbers
  201. to be recorded.
  202. - (djm) Fix malicious fragment handling bug: deliberately tiny fragments
  203. (e.g. http://citeseer.nj.nec.com/ptacek98insertion.html) would be ignored
  204. and would not create flow entries.
  205. - (djm) Count fragments that we have seen
  206. - (djm) Release version 0.8.1
  207. 20030307
  208. - (djm) Add basic perl netflow collector
  209. 20021110
  210. - (djm) Refactor, dramatically shrink mainloop
  211. 20021105
  212. - (djm) Don't exit on failure to lookup net/mask. From Alejandro Roman
  213. <aroman@uyr.com.ar>
  214. 20021031
  215. - (djm) Add some examples to the manpage
  216. 20021030
  217. - (djm) New user-friendly time specification code from OpenSSH/Kevin Steves
  218. - (djm) Always use local sys-tree.h (for older OpenBSD's)
  219. 20021029
  220. - (djm) Multiple fixes and improvements from Octavian Cerna <tavy@ylabs.com>
  221. - softflowd.c (connsock): Fix arguments to `connect': addr is a pointer,
  222. not a structure.
  223. (flow_update_expiry): Properly compute the flow lifetime.
  224. (send_netflow_v1): Count the leftover packet.
  225. Send flow_start, flow_finish and uptime_ms as Cisco equipment
  226. does: milliseconds since system boot.
  227. (timeval_sub_ms): New function.
  228. (main): Changed POLL_WAIT to be (EXPIRY_WAIT/2) as stated in the
  229. comment above `poll': twice per recheck.
  230. `poll' takes the last argument in milliseconds.
  231. Initialize system_boot_time as the time at the start of capture
  232. (fixme: how does this affect reading from capture files?)
  233. 20021024
  234. - (djm) Release softflowd-0.7.1
  235. $Id$