generate-polls

generate-polls - Generate CGC CB Polls

SYNOPSIS

generate-polls [-h] [--count COUNT] [--depth DEPTH] [--seed SEED]
  [--duplicate DUPLICATE] [--repeat REPEAT] [--rounds ROUNDS] [--store_seed]
  [--package PACKAGE] machine state_graph output

DESCRIPTION

generate-polls is a generative graph traversal engine that can be used to automatically generate deterministic iterations of a non-deterministic state graph. The resulting output is intended to be used with cb-replay.

ARGUMENTS

machine
Specify the python file that implements an Actions class, which controls the state machine
state_graph
Specify the yaml file that specifies the state graph
output
Specify the output directory

OPTIONS

-h
Display a usage message and exit
--count COUNT
Specify the number of traversals through the state graph per round
--depth COUNT
Specify the maximum number of state transitions per iteration
--seed SEED
Specify the PRNG seed value
--duplicate DUPLICATE
Specify the number of polls that should be duplicated in a round
--repeat REPEAT
Specify the maximum number of times a duplicated poll may be repeated in a round
--rounds ROUND
Specify the number of rounds to generate polls
--store_seed
Store the PRNG seed for the magic page in the XML
--package PACKAGE
Package the polls in a single binary file

EXAMPLE USES

generate-polls machine.py state-graph.yaml /tmp
This will generate 100 XML files in '/tmp' that each correspond to a traversal through the state machine.
generate-polls --count 10 --seed 0 machine.py state-graph.yaml /tmp
This will generate 10 XML files in '/tmp' that each correspond to a traversal through the state machine, setting the PRNG seed to 0.
generate-polls --depth 5 machine.py state-graph.yaml /tmp
This will generate 100 XML files in '/tmp' that each correspond to a traversal through the state machine, with traversing a maximum of 5 nodes in the graph.

ADDITIONAL OUTPUT

In addition to the generated XML, the following additional content is generated:

edges.png
A bar chart that shows the count of times a given edge is traversed per depth of traversal
nodes.png
A bar chart that shows the count of times a given node is executed at a given depth of traversal
counts.png
A bar chart that shows the count of times a given node is included within the polls.
graph.dot
A dot notation of the graph, appropriate for use with GraphViz

COPYRIGHT

Copyright (C) 2015, Brian Caswell

SEE ALSO

cb-replay(1), Understanding Poll Generators

For more information relating to DARPA's Cyber Grand Challenge, please visit http://www.darpa.mil/cybergrandchallenge/