On operating systems where the kernel modules for OVS patch ports and GRE tunneling are not available, the openvswitch agent will log error messages from ovs-vsctl commands when creating the patch port linking the integration bridge and tunnel bridge at startup, and log error message from ovs-ofctl commands when creating flows that match on tun_id or have set_tunnel actions while attempting to bring up GRE networks. These errors occurring does not effect the flow of control in the agent. These resulting virtual networks will operate locally, but will not have external connectivity.
We need to revisit whether these errors being logged is sufficient, or if some other action needs to be taken when GRE tunnels are not supported by the OS.
I would actually like to see the agent do a check upon start-up and fail completely if it is configured to use tunnels, but is running a version of OVS that does not support tunneling. Seems like this could be as simple as just trying to create a dummy gre port, and catching the error. Seems valuable to have for RC1, if you have a chance. Let me know.