[ovs-dev] Querying OVS for OpenFlow capabilities

Justin Pettit jpettit at ovn.org
Thu Sep 12 21:19:46 UTC 2019


> On Sep 12, 2019, at 2:15 PM, William Tu <u9012063 at gmail.com> wrote:
> 
> On Thu, Sep 12, 2019 at 03:47:58PM -0400, Mark Michelson wrote:
>> On 9/12/19 2:46 PM, Justin Pettit wrote:
>>> 
>>> 
>>>> On Sep 12, 2019, at 11:08 AM, Mark Michelson <mmichels at redhat.com> wrote:
>>>> 
>>>> Hi guys,
>>>> 
>>>> I recently sent a new version of a document describing proposed OVN/OVS compatibility [1]. In it, I suggested that when we add new OpenFlow capabilities to OVS, then OVN needs to probe OVS for the OpenFlow capabilities at startup. This way we can know whether we have the capability, can log an informational message, and can just generally be as graceful as possible.
>>>> 
>>>> Numan brought up that the ability to probe at runtime for an OpenFlow feature may not exist yet. I'm aware right now that we could attempt to program a flow that uses the capability we're interested in and see if it succeeds. But I was wondering if there's a more formal way of doing it.
>>> 
>>> Thanks for writing up that document.  I do think probing is the best way to do it.  We do similar feature probing of the datapath in ovs-vswitchd (see dpif_probe_feature() in lib/dpif.c).
>>> 
>>> This brings up another wrinkle: datapath compatibility.  Feature support changes depending on the datapath, and there's starting to be a proliferation of datapaths (upstream Linux kernel datapath, OVS Linux kernel datapath, Windows datapath, and userspace datapath).  These have different features that can affect the ability to make OVS work as the controller expects.
>>> 
>>> William (cc'd) is looking at adding a new feature compatibility column to the Datapath table that should be landing in master this week.  This will allow a controller to probe for datapath-level features.  (And some of those could probably be proxies for OpenFlow-level support for features.)  I'm not sure if he's started coding it yet, though.
>> 
>> I think this could cover us. The big thing we want to be able to do is to
>> probe for the existence of a runtime feature. If the datapath determines the
>> existence of that feature, then being able to query the datapath for the
>> feature makes sense.
> 
> I've been thinking about doing it for a while but not yet started.
> Glad to know it's useful, I will start working on it this week.

I just pushed the database changes so it doesn't block you.  I hope to get the rest of that timeout policy series pushed today or tomorrow.

--Justin




More information about the dev mailing list