#### 2.3.2 SPA Messages ¶

The fwknop system (and subsequently libfko), support a specific set of message types. The message type value is used by fwknop to help determine the correct message format and content. These message types are:

Variable: `int` fko_message_type_t ¶
  `FKO_COMMAND_MSG`

    A request to have the fwknop server execute the given command. The format for this type is: ‘`<ip of requestor>,<command text>`’.

        "192.168.1.2,uname -a"

  `FKO_ACCESS_MSG`

    A basic access request. This is the most common type in use. The format for this type is: ‘`<ip of requestor>,<protocol>/<port>`’. Note that multiple protocol/port entries are allowed.

        "192.168.1.2,tcp/22"
        "192.168.1.2,tcp/22,udp/5005"

  `FKO_NAT_ACCESS_MSG`

    An access request that also provide information for the fwknop server to create a Network Address Translation (NAT to an internal address. The format for this string is: ‘`<internal ip>,<ext nat port>`’.

        "10.10.1.2,9922"

  `FKO_CLIENT_TIMEOUT_ACCESS_MSG`

    This is an FKO_ACCESS_REQUEST with a timeout parameter for the fwknop server. The timeout value is provided via the `client_timeout` data field.

  `FKO_CLIENT_TIMEOUT_NAT_ACCESS_MSG`

    This is an FKO_NAT_ACCESS_REQUEST with a timeout parameter for the fwknop server. The timeout value is provided via the `client_timeout` data field.

  `FKO_LOCAL_NAT_ACCESS_MSG`

    This is similar to the FKO_NAT_ACCESS request except the NAT is to the local to the server (i.e. a service listening on 127.0.0.1).

  `FKO_CLIENT_TIMEOUT_LOCAL_NAT_ACCESS_MSG`

    This is an FKO_LOCAL_NAT_ACCESS_REQUEST with a timeout parameter for the fwknop server. The timeout value is provided via the `client_timeout` data field.