[ovs-dev] [PATCH] ofproto-dpif-xlate: Fix a bug.
joestringer at nicira.com
Thu May 22 02:08:39 UTC 2014
Acked-by: Joe Stringer <joestringer at nicira.com>
On 22 May 2014 12:27, Alex Wang <alexw at 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
> same 'ofproto'. Subsequently, the mac-learning tables can be corrupted,
> causes connection loss.
> This commit fixes the bug by making each cache entry refer to the correct
> Signed-off-by: Alex Wang <alexw at 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;
> dev mailing list
> dev at openvswitch.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the dev