package testing
- Alphabetic
- By Inheritance
- testing
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait Encoded extends AnyRef
A value with a format encoded by octets in the IPFIX protocol.
- case class FieldSpecifier(id: Int, length: Int, enterprise: Option[Int]) extends Encoded with Product with Serializable
An IPFIX field specifier, including the field ID, encoded length of the field, and the optional enterprise number.
An IPFIX field specifier, including the field ID, encoded length of the field, and the optional enterprise number. Used by template records, options template records, and the basicList datatype.
- case class Message(sets: Set[Rec]*) extends Encoded with Product with Serializable
An IPFIX standard message.
An IPFIX standard message. Contains a sequence of IPFIX record sets of various types. Observation Domain ID is always set to 1 for now. Export Time is set to the current time. Sequence Number is allocated in increasing order automatically.
Here's an example message:
Message( Set.Template( Rec.Template(0x1001, FieldSpecifier(4, 1), // protocolSpecifier, unsigned8 FieldSpecifier(85, 8) // octetTotalCount, unsigned64 ) ), Set.Data(0x1001, // template described above Rec.Data( 6.toByte, // TCP protocol number (byte) 1234567L // 1,234,567 bytes in TCP (long) ), Rec.Data( 17.toByte, // UDP protocol number (byte) 9876L // 9,876 bytes in UDP (long) ) ) )
This does absolutely minimal checking of what's put into the messages, in order to allow testing of malformed messages, messages discouraged by the standard but still allowed, and the like. It's not meant to be the most convenient thing ever, just convenient enough to quickly describe and generate a variety of IPFIX messages for testing.
- case class Messages(messages: Message*) extends Encoded with Product with Serializable
A collection of messages to turn into bytes together.
- sealed trait Rec extends Encoded
An IPFIX record, which belongs in a matching IPFIX record set.
- sealed abstract class Set[+T <: Rec] extends Encoded
An individual IPFIX record set.
An individual IPFIX record set. May be a template set, an options template set, or a data set.
Value Members
- def withIpfixFilename[T](name: String)(data: => Encoded)(body: (Path) => T): T
- object Encoded
Mostly, implicit conversions from values to their encoded representations.
- object FieldSpecifier extends Serializable
- object Message extends Serializable
- object Rec
- object Set
- object Struct
Classes for structured IPFIX data.
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.