[ovs-dev] [PATCHv11 1/5] datapath: Add UFID interface to openvswitch.h.
Joe Stringer
joestringer at nicira.com
Tue Dec 2 23:00:03 UTC 2014
Thanks for review, I pushed patches #1-3 to master.
I plan to send the datapath changes to net-next this afternoon.
On 2 December 2014 at 13:48, Pravin Shelar <pshelar at nicira.com> wrote:
> On Tue, Nov 25, 2014 at 5:07 PM, Joe Stringer <joestringer at nicira.com> wrote:
>> An upcoming set of patches will implement support for indexing flows by
>> Unique Flow IDentifiers (UFID) rather than the traditional unmasked key.
>> This patch implements the interface changes required. The implementation
>> will follow.
>>
>> Signed-off-by: Joe Stringer <joestringer at nicira.com>
>> CC: Pravin B Shelar <pshelar at nicira.com>
>
> Acked-by: Pravin B Shelar <pshelar at nicira.com>
>> ---
>> v11: Split from "datapath: Add support for unique flow identifiers."
>> ---
>> datapath/README.md | 13 +++++++++++++
>> datapath/linux/compat/include/linux/openvswitch.h | 19 +++++++++++++++++++
>> 2 files changed, 32 insertions(+)
>>
>> diff --git a/datapath/README.md b/datapath/README.md
>> index a8effa3..9c03a2b 100644
>> --- a/datapath/README.md
>> +++ b/datapath/README.md
>> @@ -131,6 +131,19 @@ performs best-effort detection of overlapping wildcarded flows and may reject
>> some but not all of them. However, this behavior may change in future versions.
>>
>>
>> +Unique flow identifiers
>> +-----------------------
>> +
>> +An alternative to using the original match portion of a key as the handle for
>> +flow identification is a unique flow identifier, or "UFID". UFIDs are optional
>> +for both the kernel and user space program.
>> +
>> +User space programs that support UFID are expected to provide it during flow
>> +setup in addition to the flow, then refer to the flow using the UFID for all
>> +future operations. The kernel is not required to index flows by the original
>> +flow key if a UFID is specified.
>> +
>> +
>> Basic rule for evolving flow keys
>> ---------------------------------
>>
>> diff --git a/datapath/linux/compat/include/linux/openvswitch.h b/datapath/linux/compat/include/linux/openvswitch.h
>> index c8fa66e..67715f8 100644
>> --- a/datapath/linux/compat/include/linux/openvswitch.h
>> +++ b/datapath/linux/compat/include/linux/openvswitch.h
>> @@ -471,6 +471,13 @@ struct ovs_key_nd {
>> * a wildcarded match. Omitting attribute is treated as wildcarding all
>> * corresponding fields. Optional for all requests. If not present,
>> * all flow key bits are exact match bits.
>> + * @OVS_FLOW_ATTR_UFID: A unique identifier for the flow. Causes the flow to
>> + * be indexed by this value rather than the %OVS_FLOW_ATTR_KEY%. Optional
>> + * for all requests. Present in notifications if the flow was created with a
>> + * UFID.
>> + * @OVS_FLOW_ATTR_UFID_FLAGS: A 32-bit value of OR'd OVS_UFID_F_* flags that
>> + * provide alternative semantics for flow installation and retrieval. Optional
>> + * for all requests.
>> *
>> * These attributes follow the &struct ovs_header within the Generic Netlink
>> * payload for %OVS_FLOW_* commands.
>> @@ -486,12 +493,24 @@ enum ovs_flow_attr {
>> OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */
>> OVS_FLOW_ATTR_PROBE, /* Flow operation is a feature probe, error
>> * logging should be suppressed. */
>> + OVS_FLOW_ATTR_UFID, /* Variable length unique flow identifier. */
>> + OVS_FLOW_ATTR_UFID_FLAGS,/* u32 of OVS_UFID_F_*. */
>> __OVS_FLOW_ATTR_MAX
>> };
>>
>> #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
>>
>> /**
>> + * Omit attributes for notifications.
>> + *
>> + * If a datapath request contains an OVS_UFID_F_OMIT_* flag, then the datapath
>> + * may omit the corresponding 'ovs_flow_attr' from the response.
>> + */
>> +#define OVS_UFID_F_OMIT_KEY (1 << 0)
>> +#define OVS_UFID_F_OMIT_MASK (1 << 1)
>> +#define OVS_UFID_F_OMIT_ACTIONS (1 << 2)
>> +
>> +/**
>> * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action.
>> * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with
>> * @OVS_ACTION_ATTR_SAMPLE. A value of 0 samples no packets, a value of
>> --
>> 1.7.10.4
>>
More information about the dev
mailing list