Package: inet.applications.packetdrill
PacketDrillApp
simple moduleThis is a port of Google's Packetdrill testing tool into the INET Framework.
Google released the script-based Packetdrill tool in 2013. It allows one to test transport protocols like UDP and TCP on Linux and BSD-based operating systems. Scripts define test cases that inject packets to the protocol implementation under test, perform operations using the API controlling the transport protocol, and verify the sending of packets, all at specified times. The ported version provides a simple and powerful method of testing transport protocols implemented in INET.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Used in compound modules
Name | Type | Description |
---|---|---|
PacketDrillHost | compound module |
IPv4 host with SCTP, TCP, UDP layers and a packetdrill application. The application has a direct connection to the TunInterface. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
scriptFile | string | ||
startTime | double | 0s | |
localPort | int |
port number of the initiator |
|
remotePort | int | ||
localAddress | string | ||
remoteAddress | string | ||
interfaceTableModule | string | ||
interface | string |
tun interface name |
|
inboundStreams | int | 20 | |
outboundStreams | int | 20 | |
streamReset | int | 0 | |
crcMode | string | "declared" | |
latency | double | 0s |
Properties
Name | Value | Description |
---|---|---|
display | i=block/app |
Gates
Name | Direction | Size | Description |
---|---|---|---|
socketIn | input | ||
socketOut | output |
Source code
// // This is a port of Google's Packetdrill testing tool into the INET Framework. // // Google released the script-based Packetdrill tool in 2013. It allows one // to test transport protocols like UDP and TCP on Linux and BSD-based // operating systems. Scripts define test cases that inject packets to the // protocol implementation under test, perform operations using the API // controlling the transport protocol, and verify the sending of packets, all // at specified times. The ported version provides a simple and powerful // method of testing transport protocols implemented in INET. // simple PacketDrillApp like IApp { parameters: string scriptFile; double startTime @unit(s) = default(0s); int localPort; // port number of the initiator int remotePort; string localAddress; string remoteAddress; string interfaceTableModule; string interface; // tun interface name int inboundStreams = default(20); int outboundStreams = default(20); int streamReset = default(0); string crcMode @enum("declared","computed") = default("declared"); double latency @unit(s) = default(0s); @display("i=block/app"); gates: input socketIn; output socketOut; }File: src/inet/applications/packetdrill/PacketDrillApp.ned