On 10/12/2015 15:16, "Jarno Rajahalme" <ja...@ovn.org> wrote:

>With the comment below,
>
>Acked-by: Jarno Rajahalme <ja...@ovn.org>
>
>> On Dec 9, 2015, at 6:27 PM, Daniele Di Proietto
>><diproiet...@vmware.com> wrote:
>> 
>> When converting between ODP attributes and struct flow_wildcards, we
>> check that all the prerequisites are exact matched on the mask.
>> 
>> For ND(ICMPv6) attributes, an exact match on tp_src and tp_dst
>> (which in this context are the icmp type and code) shold look like
>> htons(0xff), not htons(0xffff).  Fix this in two places.
>> 
>> The consequences were that the datapath wouldn't match on the ND
>> attributes, and the flow would get revalidated away.
>> 
>
>You mean that the datapath mask would not match the generated mask?

I actually meant that the flow installed in the datapath would have
the ND attributes wildcarded. I rephrased it to

"The consequences were that the ODP mask wouldn't include the ND
attributes and the flow would be deleted by the revalidation."

>
>Also, adding a reference to the big comment in xlate_wc_finish() would be
>informative.

Agreed, I've added that in the both places.

Pushed to master and branch-2.5, thanks!

>
>  Jarno
>
>> Signed-off-by: Daniele Di Proietto <diproiet...@vmware.com>
>> ---
>> lib/odp-util.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>> 
>> diff --git a/lib/odp-util.c b/lib/odp-util.c
>> index 3717aee..fbc0788 100644
>> --- a/lib/odp-util.c
>> +++ b/lib/odp-util.c
>> @@ -4358,8 +4358,8 @@ odp_flow_key_from_flow__(const struct
>>odp_flow_key_parms *parms,
>>             if (flow->tp_dst == htons(0)
>>                 && (flow->tp_src == htons(ND_NEIGHBOR_SOLICIT)
>>                     || flow->tp_src == htons(ND_NEIGHBOR_ADVERT))
>> -                && (!export_mask || (data->tp_src == htons(0xffff)
>> -                                     && data->tp_dst ==
>>htons(0xffff)))) {
>> +                && (!export_mask || (data->tp_src == htons(0xff)
>> +                                     && data->tp_dst == htons(0xff))))
>>{
>> 
>>                 struct ovs_key_nd *nd_key;
>> 
>> @@ -4905,8 +4905,8 @@ parse_l2_5_onward(const struct nlattr
>>*attrs[OVS_KEY_ATTR_MAX + 1],
>>                     flow->arp_tha = nd_key->nd_tll;
>>                     if (is_mask) {
>>                         if (!is_all_zeros(nd_key, sizeof *nd_key) &&
>> -                            (flow->tp_src != htons(0xffff) ||
>> -                             flow->tp_dst != htons(0xffff))) {
>> +                            (flow->tp_src != htons(0xff) ||
>> +                             flow->tp_dst != htons(0xff))) {
>>                             return ODP_FIT_ERROR;
>>                         } else {
>>                             expected_attrs |= UINT64_C(1) <<
>>OVS_KEY_ATTR_ND;
>> -- 
>> 2.1.4
>> 
>> _______________________________________________
>> dev mailing list
>> dev@openvswitch.org
>> 
>>https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailm
>>an_listinfo_dev&d=BQIFAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=
>>SmB5nZacmXNq0gKCC1s_Cw5yUNjxgD4v5kJqZ2uWLlE&m=Xezpsxh69y-Uz_6rO62BbHfP27O
>>_O-dXO4nIt8fNWaM&s=t4pQ27B0QAdHA45YBD1orCBHiE_1QXHu7zjhJ3auKPc&e=
>

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to