Releases: irai/packet
v0.4.0
Fixes and refactoring of package names
Essential fixes for ip and dhcp packets. All users should upgrade to this version.
- fix IP4 encode is producing incorrect packets
- fix dhcp4 subnet not working
- create handlers folder and moved all handlers here
- rename dhcp4, icmp, dns, arp package
Full Changelog: v0.3.1...v0.4.0
v0.3.0
Major restructure and cleanup prior to public release
- upgrade to use go 1.18 netip package
- performance improvements (packet parsing zero allocation, fastlog zero allocation)
- cleanup dhcp4, icmp, arp, dns, mdns
- new session and frame structures
- reduce external dependencies
Full Changelog: v0.2.6...v0.3.0
Minor release to enable channel reader and pprof profiling
Minor release
- Use go channel to receive and process network packets
- Add support for pprof
- Minimise allocations
Detailed changes
2021-10-04 logging (commit#: c940f30)
2021-10-04 engine: return after logging 0x880a packet (commit#: 0c28591)
2021-10-04 engine: log 0x880a packets (commit#: 03b3a06)
2021-10-04 engine: changed nic monitoring (commit#: 6c008bd)
2021-10-03 engine: minimise []byte allocation for ipv4 (commit#: 6f6373d)
2021-10-02 packetlistener: add pprof options (commit#: 3abb95b)
2021-10-02 Merge branch 'profiling' into worker_channel (commit#: d6a2d43)
2021-10-02 icmp6: eliminate buffer allocation (commit#: 42345c0)
2021-10-02 icmp4: avoid buffer allocation (commit#: 00aa248)
2021-10-02 engine: logging (commit#: dccdfcc)
2021-10-02 dns: fastlog dns entry (commit#: da01730)
2021-10-01 arp: reuse buffer pool to avoid allocation (commit#: f52ca30)
2021-09-30 engine: separate reader and worker in engine main loop (commit#: 4d8fc3a)
2021-09-30 engine: increase worker queue len (commit#: 6d357f6)
2021-09-29 engine: parse LLDP frame (commit#: 481e0ea)
2021-09-28 packet: testing (commit#: ef6e52d)
2021-09-28 packet: re-engineering ethernet files for clarity (commit#: 73e1903)
2021-09-28 packet: fix sending ethernet frame less than 60 bytes long (commit#: d245466)
2021-09-28 logging (commit#: edff784)
2021-09-28 logging (commit#: 2d75a3c)
2021-09-28 icmp4: log icmp4 port unreacheable (commit#: 25b3132)
2021-09-28 fastlog: add Uint8Hex function fastlog: fix front bracket if nil value (commit#: 2cc9d85)
2021-09-28 engine: parse ieee1905 packet (commit#: 07e41e1)
2021-09-28 engine: parse ethernet pause flow control (commit#: f3b9a6b)
2021-09-28 comments (commit#: 7bc2bde)
2021-09-28 comments (commit#: 03db16c)
Major release with changes to naming and packet processing
Major changes
This version has additional self-healing code to recover if the system encounters a network error of if network packets are not being received. A monitoring goroutine will send a sigterm if IP packets are not received within a few minutes.
- api: new admin api to request logs
- api: new admin api to set log level
- packet: new processing of names via integrated mdns, llmnr, ssdp, nbns
- packet: auto detection of inactive network link and restart
- packet: save OS configuration if link errors encountered
- packet: experimental sleep proxy responder to attempt to identify Apple names earlier
- logging: use of fastlog - improve logging speed by 3-5 times with no memory allocation
- logging: force flush log to disk on exit and major errors to retain logs on reboot
- icmp6: more accurate options parsing
- nbns: integrated nbns processing without requiring external package
Detailed changes
2021-09-19 packet: fix attempting to stop hunt for non LLA IPv6 (commit#: 7186d4c)
2021-09-19 logging (commit#: f8a3393)
2021-09-19 logging (commit#: e91b104)
2021-09-19 logging (commit#: e0708fd)
2021-09-19 logging (commit#: 40bca34)
2021-09-19 cleanup (commit#: c082468)
2021-09-16 engine: log ubiquiti discovery protocol (commit#: 2311718)
2021-09-15 Merge branch 'b1.1.8' (commit#: 9f12835)
2021-09-15 fastlog (commit#: dfad97b)
2021-09-15 engine: log mdns ipv6 entries (commit#: 9390b3b)
2021-09-15 engine: fast logging (commit#: b6d9d96)
2021-09-15 engine: close plugins on stop engine (commit#: 3f64ad1)
2021-09-15 engine: cache names if possible (commit#: fd0a475)
2021-09-13 fastlog: increase buffer size to 2048 (commit#: cb5cab1)
2021-09-13 fastlog: fix tests (commit#: d59a137)
2021-09-13 fastlog: fix test (commit#: 6248298)
2021-09-13 fastlog: fix segfault in String (commit#: c5fa4b2)
2021-09-13 dns: fix incorrect mutex in processDNS (commit#: fe669d3)
2021-09-12 packet: update minute checker (commit#: 3c54e2b)
2021-09-12 packet: log ipx packets (commit#: 45eb9f8)
2021-09-12 Merge branch 'b1.1.7' (commit#: 6ed1d8e)
2021-09-12 mdns: set manufacturer to appleif using sleep-proxy (commit#: 0927cd0)
2021-09-12 logging (commit#: 39d691a)
2021-09-12 dns: logging (commit#: b810f02)
2021-09-11 packet: naming log (commit#: 5930696)
2021-09-11 packet: name logging (commit#: 9b12110)
2021-09-11 mdns: update sleep proxy response (commit#: d3bae49)
2021-09-11 mdns: update sleep proxy do responsd with ID (commit#: 7d6255b)
2021-09-11 mdns: fix sleep proxy service name (commit#: 0bf28ee)
2021-09-11 mdns: fix sleep proxy port number (commit#: 8a6bef0)
2021-09-11 mdns: change packetlistener default log (commit#: 1d0384a)
2021-09-11 mdns: auto send sleep proxy response (commit#: 436a3a2)
2021-09-11 mdns: add windows10 tests (commit#: ca9e766)
2021-09-11 mdns: add sleep proxy response (commit#: ee46af0)
2021-09-11 llmnr: add name processing (commit#: 407e2ae)
2021-09-11 comments (commit#: 7405e3b)
2021-09-10 sddp: fastlog mdns: fastlog (commit#: 395f763)
2021-09-09 ssdp: fastlog mdns: fastlog (commit#: 87e1f02)
2021-09-08 logging (commit#: ea415c0)
2021-09-08 icmp6: fix not processing RS with payload zero (commit#: 7ac4306)
2021-09-06 mdns: log mdns query questions (commit#: 8cab1a4)
2021-09-06 icmp6: log icmp6 option errors (commit#: 5844a73)
2021-09-06 icmp6: fix not parsing source LLA in router solicitation (commit#: 7df9385)
2021-09-06 fastlog: remove reflection in Int funtion (commit#: a09057b)
2021-09-06 fastlog: add Bytes function to log byte strings (commit#: 52b86d5)
2021-09-06 commens (commit#: cf602dc)
2021-09-05 logging (commit#: 5651f12)
2021-09-05 logging (commit#: 3a22e6f)
2021-09-05 logging (commit#: 36922e4)
2021-09-05 logging (commit#: 05149b0)
2021-09-05 icmp6: ignore destination unreachable (commit#: 72f0a58)
2021-09-05 icmp6: fix error processing route information option (commit#: 6b919c7)
2021-09-05 icmp6: fastlog (commit#: 0dfb65a)
2021-09-05 dhcp4: use fastlogin request processing (commit#: 639a764)
2021-09-05 dhcp4: fix freeing same lease repeteadly (commit#: c1790ff)
2021-09-05 dhcp4: additional fastlog (commit#: ef14c64)
2021-09-04 engine: send sigterm if not receiving IP packets in 3 minutes (commit#: 8593e73)
2021-09-04 dns: fix nsec processing infinite loop (commit#: 22da30e)
2021-09-03 mdns: use fastlog (commit#: 6326aa5)
2021-09-03 icmp6: changing to fastlog (commit#: 8cc4a67)
2021-09-03 fastlog: add Time and Duration methods (commit#: befefe1)
2021-09-03 fastlog: add Sprintf method (commit#: 11a76b4)
2021-09-03 dhcp4: more changes to fastlog (commit#: a2cc899)
2021-09-02 dhcp4: add initial support for fastlog (commit#: 5bd1f87)
2021-09-01 mdns: parse dns OPT and cleanup logs (commit#: 123d99b)
2021-08-16 logging (commit#: 51cc6b8)
2021-08-15 golint (commit#: 2f16355)
2021-08-15 golint & comments (commit#: b10e3a5)
2021-08-15 cleanup dead code (commit#: 8a41f85)
2021-08-14 fastlog: fix panic in Write if buffer is full (commit#: d6cc773)
2021-08-13 logging (commit#: d60681c)
2021-08-13 logging (commit#: 450d44a)
2021-08-13 engine: fix incorrect llmnr port number (commit#: e141d9e)
2021-08-13 engine: fix incorrect llmnr port number again (commit#: 63369c1)
2021-08-12 test: fix engine test context segfault (commit#: 95bd6ee)
2021-08-12 engine: update order for udp processing (commit#: 8bbb336)
2021-08-12 engine: fix notification is always offline (commit#: 0c394c2)
2021-08-12 comments (commit#: 916296d)
2021-08-12 arp: implement fastlog (commit#: a09053c)
2021-08-10 icmp4: remove srcAddr from ping interface arp: force ether src mac to host to prevent switch disabling ethernet (commit#: 985ecf3)
2021-08-10 comments (commit#: 5719f60)
2021-08-09 Merge tag 'v1.1.5' (commit#: 2f2f50e)
2021-08-05 Merge tag 'v1.1.4' (commit#: 5cd4f12)
2021-08-04 Merge tag 'v1.1.3' into main (commit#: 5b024d9)
2021-08-04 Merge branch 'v1.1.1' into main (commit#: 11bb9ef)
2021-08-04 icmp6: tests (commit#: f474ae1)
2021-08-04 icmp6: tests (commit#: 31be0b4)
2021-08-03 packet: store name in MACEntry (commit#: f6e50c7)
2021-08-03 Merge branch 'v1.1.1' into main (commit#: 9ed404e)
2021-08-03 Merge branch 'v1.1.1' into main (commit#: 14371b5)
2021-08-03 logging (commit#: 7b1d324)
2021-08-03 logging (commit#: 5d11356)
2021-08-03 icmp6: fix invalid client IP when receiving NA and override (commit#: 11fa554)
2021-08-03 fix test (commit#: 0e1846d)
2021-08-03 fastlog: add Error() (commit#: ec05e86)
2021-08-03 fastlog: add bool() (commit#: 39bea70)
2021-08-02 ssdp: fix not capturing ssdp name (commit#: 822755a)
2021-08-02 ssdp: cleanup (commit#: 355c285)
2021-08-02 mdns: cleanup (commit#: f905c0a)
2021-08-02 fastlog: rename interface to FastLog (commit#: 36fa454)
2021-08-01 ssdp: comments (commit#: d46d20b)
2021-08-01 nbns: log nbns name (commit#: 00db6ed)
2021-08-01 nbns: fix nbns nodestatus packet (commit#: 1946f3a)
2021-08-01 fastlog: fix segfault in struct and stringer methods (commit#: 4e1595b)
2021-08-01 engine: send nbns node status on startup (commit#: 7730255)
2021-07-31 tests (commit#: f7f2628)
2021-07-31 packetlistener: add nbns options (commit#: 2ea4738)
2021-07-31 packet: cleanup server loop (commit#: 1958d1a)
2021-07-31 packet: add nbns name to host and notification (commit#: 9f549d3)
2021-07-31 nbns: fix encoding format (commit#: ed9d7c8)
2021-07-31 logging: fix segfault if struct is nil (commit#: 5b92c8c)
2021-07-31 engine: cleanup server loop (commit#: dd41ae5)
2021-07-31 comments (commit#: 14803fe)
2021-07-29 engine: handle nbns packets (commit#: a839200)
2021-07-28 nbns: initial working code (commit#: 6a6d27f)
2021-07-26 upgrade golang.org/x/net version july21 (commit#: 3d9d3c4)
2021-07-26 fastlog: add Uint16, Uint32, Stringer and Any (commit#: 074abec)
v0.1.1
Main changes
- Implement fast log in critical path - logs 3+times faster with much reduced overhead and allocations
- handles RRCP packets
- reenabled promiscuous mode which was incorrectly disabled in first release
- handle MDSN packets to retrieve name and model
- send ARP packets spoof with src set to host mac to prevent port disabling in Arris modem
- handle SSDP packets
- several bug fixes
Detailed changes
2021-07-25 cleanup stale file (commit#: 2aea96a)
2021-07-24 remove logrus dependency (commit#: 0250b2d)
2021-07-24 packet: fix not writing log (commit#: 23ba26a)
2021-07-24 packet: add upd fast packet logging (commit#: 00369ee)
2021-07-24 logging (commit#: 07b442b)
2021-07-24 icmp6: add fastlog to NS (commit#: 8508a4c)
2021-07-24 fastlog: fix line wrap and add icmp6 (commit#: b34530f)
2021-07-24 fastlog: fix adding extra space in ip6 field (commit#: 702f1c3)
2021-07-24 fastlog: cleanup (commit#: f182d0d)
2021-07-24 fastlog: cleanup (commit#: 32bd616)
2021-07-24 fastlog: add IPv6 logging (commit#: f2426ca)
2021-07-23 logging (commit#: 3b04779)
2021-07-23 fastlogging: fast ether and ip6 logging (commit#: aacc4f0)
2021-07-23 fastlog: fix format (commit#: 1ef812a)
2021-07-23 fastlog: add MAC and IP logging (commit#: 238418a)
2021-07-21 fastlogging: increase buffer size (commit#: 0a4c802)
2021-07-21 fastlogging: improve performance (commit#: 925879b)
2021-07-20 logging (commit#: 44edf56)
2021-07-19 fastlog: initial implementation (commit#: d1d86cb)
2021-07-19 fastlogging (commit#: 21d4873)
2021-07-19 engine: fastlogging (commit#: 24fccdf)
2021-07-18 packet: update ether IsValid (commit#: 7e0e41b)
2021-07-18 packet: better processing of 802.3 frames engine: handle 802.3 frames packet: wip rrcp packets (commit#: 1de926f)
2021-07-18 logging (commit#: 9c38b49)
2021-07-18 logging (commit#: 12a4047)
2021-07-18 engine: reduce stp logging (commit#: 2ecd80b)
2021-07-18 engine: log llc payload (commit#: cd5f314)
2021-07-13 mdns: logging (commit#: 6fa7dcc)
2021-07-13 engine: log NTP frames if broadcast (commit#: 4b77636)
2021-07-13 engine: logging (commit#: 394552c)
2021-07-13 engine: detect fast roaming remote request engine: (commit#: 9eb3879)
2021-07-13 arp: logging (commit#: 14b83ff)
2021-07-12 server: increase dns channel size to prevent blocking (commit#: 939e52e)
2021-07-12 rename function (commit#: c7e130e)
2021-07-12 packet: fix segfault when printing host struct (commit#: 45bb374)
2021-07-12 mdns: fix segfault in temporary host String() (commit#: 3fc9fbb)
2021-07-11 testing (commit#: feb5e1d)
2021-07-11 mdns: extract model if available (commit#: d444ba4)
2021-07-11 logging (commit#: 7363340)
2021-07-11 golint (commit#: ab0b355)
2021-07-11 comments (commit#: d5b299b)
2021-07-10 packet: check channel has space before wrtiting (commit#: b291730)
2021-07-10 logging (commit#: b4b582d)
2021-07-10 lock/unlock tracking (commit#: b2a4e12)
2021-07-10 engine: increase notification channel size (commit#: bf612bd)
2021-07-10 engine: fix not incliding mdnsname in intial notification (commit#: e22bf3f)
2021-07-10 engine: fix notification incorrect setting host to offline (commit#: 26857e7)
2021-07-10 engine: fix incorrect closing of external channels (commit#: 66d9c33)
2021-07-10 comments (commit#: f3999b4)
2021-07-10 comments (commit#: 59277b7)
2021-07-10 comment out deadlock checking (commit#: f99ee3c)
2021-07-08 ssdp: testing (commit#: 7fb13b1)
2021-07-08 ssdp: process m-search response (commit#: 672c1b1)
2021-07-08 ssdp: fix missing 0x0d 0x0a in m-search message (commit#: e9c1f64)
2021-07-08 ssdp: fix invalid service location lookup (commit#: 47094a0)
2021-07-08 ssdp: add support for ssdp packets (commit#: 2804574)
2021-07-08 packet: print host upnp and model (commit#: b97643a)
2021-07-08 packelistener: add ssdp option (commit#: afe9434)
2021-07-08 mdns: fix not updating mdns name (commit#: 561e6d7)
2021-07-08 mdns: fix mdns name includes .local. (commit#: d3ad5e5)
2021-07-08 logging (commit#: faebc75)
2021-07-08 logging (commit#: cdf7efe)
2021-07-08 logging (commit#: b80c87a)
2021-07-08 logging (commit#: 96e0dc1)
2021-07-08 logging (commit#: 7c7de02)
2021-07-08 logging (commit#: 4a5fe21)
2021-07-08 engine: process ssdp packets packet: add name and model to host (commit#: 029d6c0)
2021-07-08 engine: notification of mdns and ssdp changes (commit#: 58e48ef)
2021-07-06 ssdp: add ssdp parsing (commit#: 8b472ec)
2021-07-06 mdns: fix not handling invalid resource types mdns: more testing (commit#: af70ea0)
2021-07-06 mdns: cleanup (commit#: ec4c4d2)
2021-07-06 dns: testing (commit#: 55399f8)
2021-07-05 server: fix not setting promiscous mode (commit#: d2a5f17)
2021-07-05 mdns: ignore query packets (commit#: 5c6eb3c)
2021-07-05 mdns: fix infinite loop when invalid mdns type (commit#: d0d4b8a)
2021-07-05 logging (commit#: caa4564)
2021-07-05 logging (commit#: 98730f3)
2021-07-05 logging (commit#: 59bf2f8)
2021-07-05 icmp6: logging (commit#: 9da2630)
2021-07-05 engine: add support for LLC frame (commit#: b6e1be2)
2021-07-05 dns: mdns fixes (commit#: 7606307)
2021-07-05 dns: add multicast listen (commit#: 2edbb9f)
2021-07-04 mdns: initial implementation (commit#: f66054f)
2021-07-04 engine: process mdns and llmnr packets (commit#: e67b8c3)
2021-07-04 dns: fix segfault (commit#: 992e688)
2021-07-04 dns: fix incorrect mdns src port (commit#: 49dc401)
2021-07-04 dns: fix incorrect mdns query type (commit#: b2104bc)
2021-07-04 dns: fix incorrect mdns packet (commit#: 1c21d9b)
2021-07-04 dns: first pass mdns (commit#: 6669567)
2021-07-04 dns: add llmnr packet sending (commit#: 8026ec6)
2021-07-03 engine: log LLDP packets (commit#: e6f2ef9)
2021-07-03 arp: logging with fmt (commit#: 7cac0cb)
2021-07-03 arp: logging (commit#: 688951f)
2021-07-02 engine: add plex protocol logging (commit#: 9b07fb3)
2021-06-18 test: fix tests (commit#: fe7a2ae)
2021-06-16 packet: new error types (commit#: 454ee6a)
2021-06-16 logging (commit#: abd791c)
2021-06-16 icmp6: avoid Addr allocation in send packet (commit#: 749bf0d)
2021-06-16 icmp4: remove check for nil mac in sendPacket (commit#: ae68159)
2021-06-16 dns: fix race in DNSEntry (commit#: 81f74ac)
2021-06-16 delete dead code (commit#: 40f0ddf)
2021-06-15 packet: fix concurrency issue in capture.go (commit#: eebfb71)
2021-06-15 logging (commit#: 17a5a2c)
2021-06-15 fix race issues in test scripts (commit#: 5af0349)
2021-06-14 packet: check for errors in minute ticker (commit#: d7f3a70)
2021-06-14 icmp6: update minute checker to ping all nodes (commit#: b86437f)
2021-06-14 arp: fix arp announcement (commit#: 5622fcc)
2021-06-13 test (commit#: 3b855b3)
2021-06-13 renaming function (commit#: 3b073d8)
2021-06-13 packet: fix incorrect host addr (commit#: 0e21e71)
2021-06-13 packet: don't log udp 433 port (commit#: d203912)
2021-06-13 packet: don't change hunt stage when requesting for another server (commit#: d45181a)
2021-06-13 packet: add addr to host structure (commit#: 86b315f)
2021-06-13 fix testing (commit#: 73e400f)
2021-06-13 arp: do not send unsolicited reply in arp spoof loop (commit#: 3ea553d)
2021-06-13 arp: change to use addr (commit#: f470182)
2021-06-12 comments (commit#: 689671f)
2021-06-12 arp: send single unsolicited reply in spoof (commit#: 2d2fa1c)
2021-06-12 arp: send single arp announcement packet (commit#: c061d76)
2021-06-12 arp: major behaviour change to send arp packet with ether src set to host (commit#: 961cdbc)
2021-06-12 arp: code cleanup and golint (commit#: 1404333)
2021-06-12 arp: cleanup target arp table at end of spoof loop (commit#: f7ef52d)
2021-06-10 packet: log RRCP packets (commit#: f67a7a4)
2021-06-10 comments (commit#: 46d3232)
Initial production release
IPv4 and IPv6
Initial production ready version with support for IPv6 and IPv4