Siena Fast Forwarding Documentation (v. 2.0.1)
Driver Program: Input Format and Commands

This page contains a (almost complete) specification of the syntax of the driver program, as well as a documentation of its control commands. An example is also available from the Example Section:

DriverInput

( Statement ; )*

Statement

IFConfig
Select
ControlCommand

IFConfig

ifconfig number Predicate
ifconfig number TagSetList

Predicate

Constraint
Predicate Or Constraint
Predicate And Constraint

Or

||
|
\/

And

&&
,
/\

Constraint

Name Operator LiteralValue
Name any Type  // any-value constraint

Name

{A-Za-z}{A-Za-z/.-}*

Operator

=
!=
<
>
=*  // prefix
*=  // suffix
**  // substring

LiteralValue

C-style integer literal
C-style string literal
C-style double literal
true
false

Number

C-style integer literal

Type

integer
string
boolean
double
any

TagSetList

{ TagSet }
TagSetList [,] { TagSet }

TagSet

Tag
TagSet [,] Tag

Tag

Name
C-style string literal

Select

select Message ;
select { TagSet } ;

Message

Attribute
Message Attribute

Attribute

Name = LiteralValue

ControlCommand
  • statistics [format]
    prints the current statistics using the given format string, or the preconfigured format string if none is given.

  • set statistics_only = true
    only reads and counts the input predicates and messages, without compiling or a forwarding table. This might be useful to count the number of filters, predicates, constraints, etc. in a particular file.

  • set preprocessing_limit = number
    sets the number of preprocessing rounds for the FwdTable algorithm.

  • set algorithm = algorithm
    uses the given algorithm for the forwarding table. known algorithms are: fwdtable, bddbtable, zddbtable, btable, btrietable, sorted_btable, bxtable, bctable, bvtable, ttable, tagstable,

  • timer start
    starts the performance timers

  • timer stop
    stops the performance timers

  • output on
    activates the normal output of the matcher

  • output off
    suppresses the normal output of the matcher

  • output > [filename]
    redirects the output of the matcher to the given file, or to standard output if a name is not given

  • clear
    clears the forwarding table. This is necessary to reconstruct the table (from scratch). This operation also releases the memory allocated for the forwwarding table.

  • clear recycle
    clears the forwarding table without releasing the allocated memory. This means that the memory will be recycled for the new content of the table.

  • consolidate
    consolidates the current value of the forwarding table. This is necessary* before the forwarding table can be used for matching.