Please make sure the flow rule is added to the flow table of the OVS. Then following packets of the same flow will not sent to the SDN controller. They should be handled directly by the OVS.
For the static scenario. Your direction of implementation should be OK. If you want to modify the flow at runtime, then you need to add a REST API to the SDN controller and use mod operation to modify the already added flow on the switch. (This step may be too much work for you, so firstly make sure the first step is handled correctly.)
please check it. o( ̄▽ ̄)