There has been always a confusion in my mind regarding the difference between OpenFlow ALL and FLOOD action. If you are one of them, go on!
Technically, the spec definition says:
FLOOD: Flood the packet along the minimum spanning tree, not including the incoming interface.
ALL: Send the packet out all interfaces, not including the incoming interface.
So, what’s the difference?
ALL action is pretty much clear in what it says. What is implied by saying “along the minimum spanning tree” is that flood the packet on all the ports where STP is disabled.
Now if we take a case of Juniper Junos OS with OpenFlow which do not support STP, in that case all the ports will have STP disabled due to lack of feature and both ALL & FLOOD actions will behave in the same way.
Hope it helps!