void CPythonNode::configure(CNodeConfig &config)
{
    config.setDescription("Run Python scripts as nodes.");
    config.setCategory("Script");
    // Add parameters
    config.addFilename("input_script", "Python Script", "Python script to execute.");

    // Add the gates.
    config.addInput("in_table", "table");
    config.addInput("in_flow", "tcpstreams");
    config.addOutput("out", "table");
}
void CTcpStreamFeaturesNode::configure(CNodeConfig &config)
{
    // Add parameters
    config.addInt("timezone", "GMT time", "The timezone value.", 0);
    config.addBool("split_dest_ip", "Split Destination IP",
                   "Split each octet of the destination IP address as different features.",
                   false);
    config.addUInt("dest_ip_split_number", "Destination IP Features",
                   "The number of octets to use as attributes, starting from the "
                   "least significant to the most significant [1-4]", 4);
    config.addBool("split_src_ip", "Split Source IP",
                   "Split each octet of the source IP address as different attributes.",
                   false);
    config.addUInt("src_ip_split_number", "Source IP Features",
                   "The number of octets to use as attributes, starting from the "
                   "least significant to the most significant [1-4]", 4);
    config.addUInt("word_count", "Words to Extract",
                  "The number of words to extract from the data stream as they appear.",
                  8);
    config.addUInt("word_length", "Maximum Length of a Word",
                   "The number of characters a word can be matched to.", 16);

    // Add the gates.
    config.addInput("in", "tcpstreams");
    config.addOutput("out", "table");
}
void CTcpStreamExtractorNode::configure(CNodeConfig &config)
{
    config.setDescription("Extract streams from TCP packets.");

    // Add parameters
    config.addUInt("payload_size", "TCP Stream Data Size",
                   "The maximum number of bytes that will be stored for "
                   "the contents of a TCP stream.",
                   102400);
    config.addBool("dest_filter", "Should destination IPs be filtered?",
                   "Filter specifiying if IP addresses are filtered "
                   "for analysis.", false);
    config.addString("dest_ip_filter_from", "Starting Valid Destination IP Address",
                     "The first IP value which will be considered "
                     "for the analysis.");
    config.addString("dest_ip_filter_to", "End Valid Destination IP Address",
                     "The last IP value which will be taken into account.");
    config.addUInt("dest_port_filter_from", "Starting Valid Destination Port",
                   "Packages that target a destination port above this "
                   "parameter are accepted.",0);
    config.addUInt("dest_port_filter_to", "Last Valid Destination Port",
                   "Packages targeting a destination port below this "
                   "parameter are accepted", 1024);

    // Add the gates.
    config.addInput("in", "tcpdump");
    config.addOutput("out", "tcpstreams");
}
void CTcpDumpNode::configure(CNodeConfig &config)
{
    config.setDescription("Parse the contents received into TCP Packets.");

    // Add inputs and outputs
    config.addInput("in", "file");
    config.addOutput("out", "tcpdump");
}
void CMawiLabelsNode::configure(CNodeConfig &config)
{
    // Set a Description of this node.
    config.setDescription("Parse a file as an XML of labeled anomalies "
                          "from the MAWI dataset.");

    // Add parameters
    //config.addFilename("input_file", "XML File", "XML file containing the anomalies.");

    // Add the gates.
    config.addInput("in", "file");
    config.addOutput("out", "table");
}