[ovs-dev] packet loopback because different xcfgp pointer is used in xlate_normal*
Huanle Han
hanxueluo at gmail.com
Thu Aug 17 17:00:57 UTC 2017
Hi, Ben
I find a bug in ovs that mcast packet loops back because a different xcfgp
pointer is used in xlate_normal*().
I find it on v2.5.0 and I haven't verify it on master yet.
Here is the my investigation:
In function xlate_normal_mcast_send_group, the inbundle pointer and
outbundle pointer may be unequal even they are actually same port. ovs
sends the packet back, because mcast_xbundle != in_xbundle. I think it's
because they are from different xcfgs.
if mcast_xbun
```
xcfg = ovsrcu_get(struct xlate_cfg *, &xcfgp);
LIST_FOR_EACH(b, bundle_node, &grp->bundle_lru) {
mcast_xbundle = xbundle_lookup(xcfg, b->port);
if (mcast_xbundle && mcast_xbundle != in_xbundle) {
xlate_report(ctx, OFT_DETAIL, "forwarding to mcast group port");
output_normal(ctx, mcast_xbundle, xvlan);
}
......
}
```
Question 1: Does this bug fixed in master? if it is, which commit?
mac-learning table of my vswitch is used up, entry is expired all the
time. mac_learning_run() returning need_revalidate makes xbridge/xbundle
reset in type_run() frequently.
Question 2: Is it necessary to reset xbridge/xbundle/xport
when REV_MAC_LEARNING?
Thanks, Huanle
More information about the dev
mailing list