On Tue, 10 Jan 2017 19:29:21 +0530, Pravin Shelar wrote:
> OVS kernel module has compile time checks for various kernel features,
> if any of required tunnel feature is missing OVS kernel module
> compiles in support for its own tunnel implementation. This compat
> tunnel implementation is exposed as ovs_* tunnel device.
> Therefore if ovs_geneve device availability shows that current kernel
> tunnel device does not support all features and we should use OVS
> compat tunnel implementation. To use compat-tunnel implementation we
> have to use gnetlink interface. OVS compat tunnels code do not support
> LWT interface.

I've been trying to wrap my head around this for some time already but
I'm afraid I may still not understand what you mean.

By "exposed as ovs_* tunnel device", do you mean rtnetlink kind? If so,
then the steps to create the interface (a geneve tunnel in this example)
would be:

create an ovs_geneve interface using rtnetlink
if successful {
        delete the created interface
        create geneve interface using genetlink
        if successful {
                done
        } else {
                fail
        }
} else {
        create lwtunnel geneve interface using rtnetlink
        check parameters of the created interface
        if it is lwtunnel {
                done
        } else {
                delete the created interface
                create geneve interface using genetlink
                if successful {
                        done
                } else {
                        fail
                }
        }
}

Is it what you have in mind?

 Jiri
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to