jNetPcap 1.4 Overview

Quicklinks

Overview

jNetPcap 1.4 is based on stable code found in jNetPcap 1.3. Has all the same bug fixes and features with the following addition:

  1. Lazy packet decoding
  2. Provides new packet dispatcher JPacketBuffer
  3. Adds support for libpcap 1.0.0 API functions
    1. pcap_create
    2. pcap_set_snaplen
    3. pcap_set_promisc
    4. pcap_can_set_rfmon
    5. pcap_set_rfmon
    6. pcap_set_timeout
    7. pcap_set_buffer_size
    8. pcap_setdirection
    9. pcap_activate

CORE Protocols


LANNetworkTcp/IpVoipVPNWANSigtran
EthernetIp4TcpRtpL2TPPPP+Sctp
IEEE(802.3)Ip6Udp+Rtcp*LCP
LLC(802.2)IcmpHttpSdp*PPPoE
SNAPArp*DNSSip+HDLC
SLLRip1*FTP*ATMaal0
VLAN(802.1q)Rip2*Telnet*ATMaal5
+STP(802.2d)*Xwindows*ATMnni
+Null/Loopback*ATMuni

Note: protocols with a + are newly added to this release.
Note: protocols with a * are planned or under development for this release.

Changelog

== Release 1.4.r1425 (2013-08-19) ==

  • Bug #133 Wrong assumption about multiplicity of headers
  • Bug #132 BufferUnderFlowException caused by hard-coded offset
  • Bug #131 org.jnetpcap.nio.JMemory.tranferFrom uses incorrect value for dstOffset
  • Bug #130 JRegistry.toDebugString throw null pointer exception
  • Bug #129 Exception in thread "DisposableGC" java.lang.Error: Maximum
  • Bug #128 PcapSockAddr.toString() should use standard IPv6
  • Bug #125 FormatUtils.asStringIp6 prepends byte values < 0 with zeros
  • Bug #124 AnnotatedMethod permission issue
  • Bug #122 Maximum permit count exceeded, semaphores
  • Bug #119 Wrong path to pcap library
  • Bug #118 DTMF RTP payload is not supported
  • Bug #117 FormatUtils.asStringIp6() causes an OutOfMemoryException
  • Bug #115 Ip6 header class is missing field setters
  • Bug #114 ICMP Echo lacks id and sequence setter methods
  • Bug #113 QinQ not working
  • Bug #112 Icmp protocol types and description
  • Bug #111 TcpOptions missing @HeaderLength method
  • Bug #110 Rtcp SDES and BYE message issue
  • Bug #109 DisposableGC g0 - exception
  • Bug #108 Out of memory exception in multi-threaded env
  • Bug #107 Reflection exception in mutli-threaded setup

== Release 1.4.r1380 (2012-06-21) ==
  • Feature #3537229 - PcapDumper enhancements
  • Bug #3415846 - (reopened) several issues/limitations in validate_sip. Sip INFO was still not working in previous update. Sip is working much better now in 1.4.r1380.
  • Also fixed the fumbled package that was released for 32-bit linux

== Release 1.4.r1390 (2012-09-13) ==
  • Bug #3566724 - JPacket.toString fails from multiple-threads
  • Bug #3533880 - Ethernet.fcs invalid when postfix > 4
  • Bug #3533498 - JBuffer.getDouble/getFloat does not match ByteBuffer
  • Bug #3567403 - DisposableGC g0 - exception

Note: also AIX support on PowerPC platform has been succesfully ported. The build scripts are being updated for next release, but 1.4.r1390 code will compile on AIX.

Known issues that are currently under investigation but have not been resolved in 1.4.r1390 yet:

  • Bug #3413081 - Semaphore exception in DispatchGC
  • Bug #3567398 - Reflection exception in mutli-threaded setup
  • Bug #3567399 - Out of memory exception in multi-threaded env
  • Bug #3542563 - Capture length incorrect if not multiple of 8 (Napatech cards)

== Release 1.4.r1380 (2012-06-21) ==
  • Feature #3537229 - PcapDumper enhancements
  • Bug #3415846 - (reopened) several issues/limitations in validate_sip. Sip INFO was still not working in previous update. Sip is working much better now in 1.4.r1380.
  • Also fixed the fumbled package that was released for 32-bit linux

== Release 1.4.r1370 (2012-06-18) ==
  • Feature #3536047 - Add generic AVP accessors to JMappedHeader
  • Feature #3534459 - Add RTCP Protocol
  • Feature #3533501 - Add NullHeader support
  • Feature #3533499 - Add SCTP protocol
  • Bug #3533880 - Ethernet.fcs invalid when postfix > 4
  • Bug #3533498 - JBuffer.getDouble/getFloat does not match ByteBuffer
  • Bug #3483180 - RTCP packets are recognised as RTP packets
  • Bug #3482648 - RTP packets with sequence number 0
  • Bug #3482647 - DTMF RTP payload is not supported
  • Bug #3441774 - JBuffer.peer(ByteBuffer) always returns 0
  • Bug #3428904 - Ethernet Postfix sometimes shows up as TCP payload
  • Bug #3415977 - Add REFER/UPDATE SIP message types
  • Bug #3415846 - several issues/limitations in validate_sip
  • Bug #3407676 - Invalid TCP option throws exception
  • Bug #3406732 - Excessive garbage collection + negative reserved mem
  • Bug #3401623 - IllegalStateException out of nowhere
  • Bug #3401549 - BufferUnderflowException
  • Bug #3394110 - improperly escaped quotes in xml output
  • Bug #3321797 - Tcp.Flag.asSet() messes flags up.

Known issues still to be resolved:

  • Bug #3413081 - Semaphore exception in DispatchGC. Requires redesign of parts of Disposable GC. The Semaphore counting algorithm is being replaced with AtomicLong counter. The issue will be resolved in next update. The redesign is a several week process.
  • Bug #3383751 - JFlowKey compare problem. This issue is still under consideration, as the comparison between keys can be arbitrary and the issue reported not necessarily a problem. In addition, the flow-keys API will possibly be redesigned to utilize protocol specific "hashcodes" (a simple 32-bit integer) which will greatly simplify code by deprecating FlowKey based API.

== Release 1.4.r1300 (2011-01-22) ==

  • Code base re-synced with 1.3.b4 release. It is now very stable.
  • All previous 1.4b0004 features have been temporarily removed. They will be put back in slowly.
  • Only supported on Windows and Linux platforms. For now, Solaris and FreeBSD have been removed. Will be added back in shortly.
  • Added libpcap 1.0.0 API supported on top of the 1.3.b4 stable code base.
  • Added com.slytechs.library library management package. Allows detail inspection of runtime availability of native symbols. This provides a mechanism where detailed API availability can be checked at runtime.
  • Split jnetpcap API into 2 native libraries. The standards jnetpcap.so and jnetpcap-pcap100.so, where pcap100 stands for libpcap 1.0.0 API.
  • On linux, build scripts now link to generic /usr/lib/libpcap.so file instead of version specific ones. This allows any type of libpcap package to be available on the system. The user can check API availability with the new library management package, or more conveniently is Pcap.isPcap100Loaded(): boolean or each individual symbol Pcap.isLoaded(String apiMethodName):boolean.

== Release 1.4b0004 (2010-06-08) ==

  • Lazy packet decoding - allows decoding to be offloaded to another thread
  • JPacketBufferHandler - more efficient packet handler
  • Solaris platform support