This document doesn't replace documentation relevant to the database software you are
using, ie. README.mysql, README.pgsql or README.sqlite3.

The 'vxlan', and 'tunnel_*' fields.
Such fields are being introduced to support tunnel primitives. The guidelines below
(typically in MySQL format) are to add such primitives to the SQL schema:

* vxlan field:
  - "vxlan INT(4) UNSIGNED NOT NULL," to declare the field itself
  - "PRIMARY KEY (..., vxlan, ...)" to put it in the primary key

* tunnel_mac_src field:
  - "tunnel_mac_src (CHAR(17) NOT NULL)," to declare the field itself
  - "PRIMARY KEY (..., tunnel_mac_src, ...)" to put it in the primary key

* tunnel_mac_dst field:
  - "tunnel_mac_dst (CHAR(17) NOT NULL)," to declare the field itself
  - "PRIMARY KEY (..., tunnel_mac_dst, ...)" to put it in the primary key

* tunnel_ip_src field:
  - "tunnel_ip_src CHAR(15) NOT NULL," to declare the field itself (*)
  - "PRIMARY KEY (..., tunnel_ip_src, ...)" to put it in the primary key 

* tunnel_ip_dst field:
  - "tunnel_ip_dst CHAR(15) NOT NULL," to declare the field itself (*)
  - "PRIMARY KEY (..., tunnel_ip_dst, ...)" to put it in the primary key

* tunnel_ip_proto field:
  - "tunnel_ip_proto CHAR(6) NOT NULL," to declare the field itself (**)
  - "PRIMARY KEY (..., tunnel_ip_proto, ...)" to put it in the primary key 

* tunnel_tos field:
  - "tunnel_tos INT(4) UNSIGNED NOT NULL," to declare the field itself
  - "PRIMARY KEY (..., tunnel_tos, ...)" to put it in the primary key

* tunnel_port_src field:
  - "tunnel_port_src (INT(2) UNSIGNED NOT NULL)," to declare the field itself
  - "PRIMARY KEY (..., tunnel_port_src, ...)" to put it in the primary key

* tunnel_port_dst field:
  - "tunnel_port_dst (INT(2) UNSIGNED NOT NULL)," to declare the field itself
  - "PRIMARY KEY (..., tunnel_port_dst, ...)" to put it in the primary key

* tunnel_flow_label field:
  - "tunnel_flow_label INT(4) UNSIGNED NOT NULL," to declare the field itself
  - "PRIMARY KEY (..., tunnel_flow_label, ...)" to put it in the primary key

The primitive is not declared as part of any default table version; yet will not fail
version checks which are enabled when 'sql_optimize_clauses' feature is disabled.

(*) Field must be defined longer, ie. 45 chars, for IPv6 addresses.
(**) Field must be defined as "INT(1) UNSIGNED NOT NULL" if sql_num_protos: true
