On Fri, Mar 10, 2017 at 4:48 PM, Joe Stringer <j...@ovn.org> wrote:
> On 9 March 2017 at 14:50, Andy Zhou <az...@ovn.org> wrote:
>> Add logics to detect the max level of nesting allowed by the
>> sample action implemented in the datapath.
>>
>> Future patch allows xlate code to generate different odp actions
>> based on this information.
>>
>> Signed-off-by: Andy Zhou <az...@ovn.org>
>
> Acked-by: Joe Stringer <j...@ovn.org>
>
> Couple of minor comments below..
>
> <snip>
>
>> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
>> index 5289693..4b88d4b 100644
>> --- a/ofproto/ofproto-dpif.c
>> +++ b/ofproto/ofproto-dpif.c
>> @@ -983,6 +983,65 @@ check_max_mpls_depth(struct dpif_backer *backer)
>> return n;
>> }
>>
>> +static void
>> +add_sample_actions(struct ofpbuf *actions, int nesting)
>> +{
>> + if (nesting == 0) {
>> + nl_msg_put_odp_port(actions, OVS_ACTION_ATTR_OUTPUT, u32_to_odp(1));
>> + return;
>> + }
>> +
>> + size_t start, actions_start;
>> +
>> + start = nl_msg_start_nested(actions, OVS_ACTION_ATTR_SAMPLE);
>> + actions_start = nl_msg_start_nested(actions, OVS_SAMPLE_ATTR_ACTIONS);
>> + add_sample_actions(actions, nesting - 1);
>> + nl_msg_end_nested(actions, actions_start);
>> + nl_msg_put_u32(actions, OVS_SAMPLE_ATTR_PROBABILITY, UINT32_MAX);
>> + nl_msg_end_nested(actions, start);
>> +}
>> +
>> +/* Tests the nested sample actions levels supported by 'backer''s datapath.
>> + *
>> + * Returns the number of nested sample actions accepted by the datapath
>> + * Otherwise returns the number of MPLS push actions supported by
>> + * the datapath. */
>
> Huh? What does MPLS have to do with sampling?
Cut-and-paste error. Will update the comment.
>
>> +static size_t
>> +check_max_sample_nesting(struct dpif_backer *backer)
>> +{
>> + struct odputil_keybuf keybuf;
>> + struct ofpbuf key;
>> + struct flow flow;
>> + int n;
>> +
>> + struct odp_flow_key_parms odp_parms = {
>> + .flow = &flow,
>> + };
>> +
>> + memset(&flow, 0, sizeof flow);
>> + ofpbuf_use_stack(&key, &keybuf, sizeof keybuf);
>> + odp_flow_key_from_flow(&odp_parms, &key);
>> +
>> + /* OVS datapath has always supported at least 3 nested leves. */
>
> *levels
Will fix. Thanks.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev