Acked-by: Joe Stringer <joestrin...@nicira.com>

On 22 May 2014 12:27, Alex Wang <al...@nicira.com> wrote:

> Commit b256dc525c8 (ofproto-dpif-xlate: Cache xlate_actions() effects.)
> caches the variables needed for refreshing mac-learning table in
> xlate_normal().  Wherein, the cache entry always records reference to
> the original 'ofproto'.
>
> When patch port is used to connect two 'ofproto's, packet goes through the
> patch port will have two mac-learning cache entries created for each
> 'ofproto'.  So, each entry should reference to the corresponding 'ofproto'.
> However, due to the bug mentioned above, all cache entries will refer to
> the
> same 'ofproto'.  Subsequently, the mac-learning tables can be corrupted,
> which
> causes connection loss.
>
> This commit fixes the bug by making each cache entry refer to the correct
> 'ofproto'.
>
> Signed-off-by: Alex Wang <al...@nicira.com>
> ---
>  ofproto/ofproto-dpif-xlate.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
> index a87db54..63b4741 100644
> --- a/ofproto/ofproto-dpif-xlate.c
> +++ b/ofproto/ofproto-dpif-xlate.c
> @@ -1570,7 +1570,7 @@ xlate_normal(struct xlate_ctx *ctx)
>
>          /* Save enough info to update mac learning table later. */
>          entry = xlate_cache_add_entry(ctx->xin->xcache, XC_NORMAL);
> -        entry->u.normal.ofproto = ctx->xin->ofproto;
> +        entry->u.normal.ofproto = ctx->xbridge->ofproto;
>          entry->u.normal.flow = xmemdup(flow, sizeof *flow);
>          entry->u.normal.vlan = vlan;
>      }
> --
> 1.7.9.5
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to