Thanks, applied and backported,~
On Wed, May 21, 2014 at 7:08 PM, Joe Stringer <joestrin...@nicira.com>wrote: > 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