case class RWRec(startTime: Instant, elapsed: Duration, sPort: Port, dPort: Port, protocol: Protocol, flowType: FlowType, sensor: Sensor, flags: TCPFlags, initFlags: TCPFlags, restFlags: TCPFlags, tcpState: TCPState, application: Port, memo: Short, input: SNMPInterface, output: SNMPInterface, packets: Long, bytes: Long, sIP: IPAddress, dIP: IPAddress, nhIP: IPAddress) extends Product with Serializable
A SiLK flow record.
Note that in addition to the fields of the case class, some derived fields are also provided. (See below.)
- startTime
The instant that the first packet in this flow was observed.
- elapsed
The duration between the instants the first and last packets in this flow were observed.
- sPort
The source port of this flow, or zero if this flow is neither a TCP nor a UDP flow.
- dPort
The destination port of this flow, or zero if this flow is neither a TCP nor a UDP flow.
- protocol
The IP protocol of this flow.
- flowType
The SiLK flow type (class and type) of this flow, or
FlowType(0)
if unknown.- sensor
The SiLK sensor that observed this flow, or
Sensor(0)
if unknown.- flags
The union of all TCP flags observed in this flow, or
TCPFlags(0)
if this flow is not a TCP flow.- initFlags
The flags observed in the initial packet of this TCP flow, or
TCPFlags(0)
if this flow is not a TCP flow or if extended flags are not available.- restFlags
The union of all TCP flags observed after the initial packet of this flow, or
TCPFlags(0)
if this flow is not a TCP flow or if extended flags are not available.- tcpState
Flags relating to the observed status of this flow, including whether extended TCP flags are available. See TCPState for more details.
- application
The detected application of this flow, expressed as the common port number for that application, or
Port(0)
if no application was detected.- memo
A Short value stored as a memo on this flow, or zero if no such memo has been set.
- input
The input SNMP routing interface for this flow, or
SNMPInterface(0)
if routing information is not available.- output
The output SNMP routing interface for this flow, or
SNMPInterface(0)
if routing information is not available.- packets
The number of IP packets observed in this flow.
- bytes
The number of bytes in packets observed in this flow.
- sIP
The source IP address of packets in this flow.
- dIP
The destination IP address of packets in this flow.
- nhIP
The next-hop IP address of packets in this flow, or
IPAddress("0.0.0.0")
orIPAddress("::")
if routing information is not available.
- Grouped
- Alphabetic
- By Inheritance
- RWRec
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new RWRec(startTime: Instant, elapsed: Duration, sPort: Port, dPort: Port, protocol: Protocol, flowType: FlowType, sensor: Sensor, flags: TCPFlags, initFlags: TCPFlags, restFlags: TCPFlags, tcpState: TCPState, application: Port, memo: Short, input: SNMPInterface, output: SNMPInterface, packets: Long, bytes: Long, sIP: IPAddress, dIP: IPAddress, nhIP: IPAddress)
- startTime
The instant that the first packet in this flow was observed.
- elapsed
The duration between the instants the first and last packets in this flow were observed.
- sPort
The source port of this flow, or zero if this flow is neither a TCP nor a UDP flow.
- dPort
The destination port of this flow, or zero if this flow is neither a TCP nor a UDP flow.
- protocol
The IP protocol of this flow.
- flowType
The SiLK flow type (class and type) of this flow, or
FlowType(0)
if unknown.- sensor
The SiLK sensor that observed this flow, or
Sensor(0)
if unknown.- flags
The union of all TCP flags observed in this flow, or
TCPFlags(0)
if this flow is not a TCP flow.- initFlags
The flags observed in the initial packet of this TCP flow, or
TCPFlags(0)
if this flow is not a TCP flow or if extended flags are not available.- restFlags
The union of all TCP flags observed after the initial packet of this flow, or
TCPFlags(0)
if this flow is not a TCP flow or if extended flags are not available.- tcpState
Flags relating to the observed status of this flow, including whether extended TCP flags are available. See TCPState for more details.
- application
The detected application of this flow, expressed as the common port number for that application, or
Port(0)
if no application was detected.- memo
A Short value stored as a memo on this flow, or zero if no such memo has been set.
- input
The input SNMP routing interface for this flow, or
SNMPInterface(0)
if routing information is not available.- output
The output SNMP routing interface for this flow, or
SNMPInterface(0)
if routing information is not available.- packets
The number of IP packets observed in this flow.
- bytes
The number of bytes in packets observed in this flow.
- sIP
The source IP address of packets in this flow.
- dIP
The destination IP address of packets in this flow.
- nhIP
The next-hop IP address of packets in this flow, or
IPAddress("0.0.0.0")
orIPAddress("::")
if routing information is not available.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val application: Port
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val bytes: Long
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- val dIP: IPAddress
- val dPort: Port
- val elapsed: Duration
- def endTime: Instant
The instant that the last packet in this flow was observed.
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- val flags: TCPFlags
- val flowType: FlowType
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def icmpCode: ICMPCode
The code of this ICMP flow, or garbage if this is a TCP or UDP flow, or
ICMPType(0)
if this is not an ICMP, TCP, or UDP flow. - def icmpType: ICMPType
The type of this ICMP flow, or garbage if this is a TCP or UDP flow, or
ICMPType(0)
if this is not an ICMP, TCP, or UDP flow. - val initFlags: TCPFlags
- val input: SNMPInterface
- def isIPv6: Boolean
True if this flow's addresses are IPv6 addresses.
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val memo: Short
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val nhIP: IPAddress
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val output: SNMPInterface
- val packets: Long
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- val protocol: Protocol
- val restFlags: TCPFlags
- val sIP: IPAddress
- val sPort: Port
- val sensor: Sensor
- val startTime: Instant
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val tcpState: TCPState
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
This is documentation for Mothra, a collection of Scala and Spark library functions for working with Internet-related data. Some modules contain APIs of general use to Scala programmers. Some modules make those tools more useful on Spark data-processing systems.
Please see the documentation for the individual packages for more details on their use.
Scala Packages
These packages are useful in Scala code without involving Spark:
org.cert.netsa.data
This package, which is collected as the
netsa-data
library, provides types for working with various kinds of information:org.cert.netsa.data.net
- types for working with network dataorg.cert.netsa.data.time
- types for working with time dataorg.cert.netsa.data.unsigned
- types for working with unsigned integral valuesorg.cert.netsa.io.ipfix
The
netsa-io-ipfix
library provides tools for reading and writing IETF IPFIX data from various connections and files.org.cert.netsa.io.silk
To read and write CERT NetSA SiLK file formats and configuration files, use the
netsa-io-silk
library.org.cert.netsa.util
The "junk drawer" of
netsa-util
so far provides only two features: First, a method for equipping Scala scala.collection.Iterators with exception handling. And second, a way to query the versions of NetSA libraries present in a JVM at runtime.Spark Packages
These packages require the use of Apache Spark:
org.cert.netsa.mothra.datasources
Spark datasources for CERT file types. This package contains utility features which add methods to Apache Spark DataFrameReader objects, allowing IPFIX and SiLK flows to be opened using simple
spark.read...
calls.The
mothra-datasources
library contains both IPFIX and SiLK functionality, whilemothra-datasources-ipfix
andmothra-datasources-silk
contain only what's needed for the named datasource.org.cert.netsa.mothra.analysis
A grab-bag of analysis helper functions and example analyses.
org.cert.netsa.mothra.functions
This single Scala object provides Spark SQL functions for working with network data. It is the entirety of the
mothra-functions
library.