Hello.
I have an issue with src-mac learning in OFPDA.
----Switch:
accton-5712-54x.
----OFPDA version:
root@onl-x86:~# ofdpa -V
version 2.0.4.0 -- Built on Wed Jun 1 2016 at 04:20:50 UTC
Issue description:
If mac address already learned at one port, and frame with the same src-mac came on another port - this frame will drop. It is happen in both mode:
---src-mac-learning through CONTROLLER (when ofdpa_srcmac_learn.py executed with enable = 1)
---src-mac-learning NOT through CONTROLLER (when ofdpa_srcmac_learn.py executed with enable = 0)
So, if src-mac learned (appropriate flow set in OFDPA_Table_ID_50_Bridging), frame with that src-mac can came ONLY on port, behind that this mac learned. If that frame came to another port - it will DROP.
This behavior make impossible realization of this usecases:
1) Realization of unicast mac-forwarding via shortest-path, а flood via spanning-tree. CONTROLLER know full network topology, src-mac learning occur through CONTROLLER. When CONTROLLER receive frame with certain src-mac? he can set flows that frames destined for this mac forwarded via shortest-path. If dst-mac is unknown frame flooded via tree - same as in traditional L2 network.
For example consider scheme:

Green - shortest-path unicast forwarding flows that controller add to OFDPA_Table_ID_50_Bridging when frame from h1 came to controller in PACKET_IN. CONTROLLER know full topology so he can add flow that L2 unicast forwarding occured via shortest-path.
Blue - tree that use for flood. S3 is a Root.
When h1 send frame that will flood, for example arp request or unknown unicast frame, this frame propagate via flooding tree. But when it came on S4 port1 this flooded frame will DROP because S4 think that frames from h1 can arrive only on S4 port2.
2) Realization of LAG:
---when two OF switches connect through several links (LACP not use in this case). CONTROLLER learn topology and know what links can aggregate in LAG.
---when OF switch connect to traditional L2 switch, that have several lonks aggregate in LAG and LACP enabled. CONTROLLER receive LACP packets and understand what ports of OF switch need to aggregate in LAG.
When using LAG there are situation when frames with same src-mac came on different OFDPA switch ports, but this frame will DROP in all ports except one (port on that this src-mac learn).
For example consider scheme:

QUESTIONS:
If there are ways to:
1) in OFDPA disable src-mac-learn on certain, so that switch NOT inspect src-mac in frames. For example we can disable src-mac-learn in ports that participate in direct (patch-cors) links between OFDPA switches. With this feature we can realize L2 unicast forwarding via shortest-path, and flood via tree.
2) in OFDPA chek in src-mac already learned without consider IN_PORT (in src-mac learning table math only for src-mac, without IN_PORT match), so LAB with traditional switches will work. In Russian service provider (that want to try SDN) network it very impotant case - to connect traditional switch to SDN network through LAG, the best - in multi chassis LAG, when one traditional switch connect to several SDN switches, but think that it connect to onle one switch.