[ovs-dev] [PATCH] ofproto-dpif: Never wildcard dl_type for "normal" action.

Justin Pettit jpettit at nicira.com
Wed Jun 12 00:34:41 UTC 2013


Thanks.  I pushed this to master.

--Justin


On Jun 11, 2013, at 5:30 PM, Ethan Jackson <ethan at nicira.com> wrote:

> Acked-by: Ethan Jackson <ethan at nicira.com>
> 
> On Tue, Jun 11, 2013 at 5:21 PM, Justin Pettit <jpettit at nicira.com> wrote:
>> The is_gratuitous_arp() function is occasionally called when
>> processing the "normal" action.  The previous code only disabled
>> wildcarding the dl_type field when the function was called, but
>> since it runs occasionally, it could lead to inconsistencies in the
>> facet table.  This commit causes the dl_type to never be wildcarded
>> when the "normal" action is used.
>> 
>> Signed-off-by: Justin Pettit <jpettit at nicira.com>
>> ---
>> ofproto/ofproto-dpif.c |    5 ++++-
>> 1 files changed, 4 insertions(+), 1 deletions(-)
>> 
>> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
>> index 8df2679..ace8ba7 100644
>> --- a/ofproto/ofproto-dpif.c
>> +++ b/ofproto/ofproto-dpif.c
>> @@ -7531,7 +7531,6 @@ update_mirror_stats(struct ofproto_dpif *ofproto, mirror_mask_t mirrors,
>> static bool
>> is_gratuitous_arp(const struct flow *flow, struct flow_wildcards *wc)
>> {
>> -    memset(&wc->masks.dl_type, 0xff, sizeof wc->masks.dl_type);
>>     if (flow->dl_type != htons(ETH_TYPE_ARP)) {
>>         return false;
>>     }
>> @@ -7707,6 +7706,10 @@ xlate_normal(struct xlate_ctx *ctx)
>> 
>>     ctx->xout->has_normal = true;
>> 
>> +    /* Check the dl_type, since we may check for gratuituous ARP. */
>> +    memset(&ctx->xout->wc.masks.dl_type, 0xff,
>> +           sizeof ctx->xout->wc.masks.dl_type);
>> +
>>     memset(&ctx->xout->wc.masks.dl_src, 0xff,
>>            sizeof ctx->xout->wc.masks.dl_src);
>>     memset(&ctx->xout->wc.masks.dl_dst, 0xff,
>> --
>> 1.7.5.4
>> 
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev




More information about the dev mailing list