FlowDirection README

Goal: Example module for ilustrating function of flowdir library.

Method: Get flow from input interface and store it in buffer, where it will wait until
        its counterpart arrive to produce a bidirectional flow. Then try to identify
        this bidirectional flow with flowdir library and after that send identified
        flows to output interface. If flows counterpart does not arrive, then try to
        identify it as singleflow and send it to output interface.

Input interface: Unirec containing at least:
                 - Source address      (SRC_IP)
                 - Destination addres  (DST_IP)
                 - Source port         (SRC_PORT)
                 - Destination port    (DST_PORT)
                 - Protocol            (PROTOCOL)
                 - Start timestamp     (TIME_FIRT)
                 - End timestamp       (TIME_LAST)
Default Unirec used for input interface is <COLLECTOR_FLOW>.

Output interface: <COLLECTOR_FLOW> and DIRECTION_FLAGS*.

Algorithm: Buffer is hash table and hash function used is SuperFastHash.


DIRECTION_FLAGS: 1Byte size bit field.
                    1.Bit(LSB) => Not recognize (NRC)
                    2.Bit(LSB) => Single flow   (SF)
                    3.Bit(LSB) => Response      (RSP)
                    4.Bit(LSB) => Request       (REQ)
                 Each flow is identified with only one of these: NRC, RSP, REQ
                 with corresponding bit set to 1.
                 If flow is singleflow (there was no counterpart for it)
                 then SF bit is set to 1.
