Hi,
To the best of my knowledge there is no way for a switch to
inspect the packet/byte ID of a packet,
or have the logic of "every other packet", so this has to be done
at the controller, i.e. forward all
packets to the controller.
This is fairly inefficient but if the controller runs at the same
host as the OVS switch the performance might not be too terrible,
you can try it out and see.
You can look for a list of headers that you can match on at the
OpenFlow 1.0 spec:
https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.0.0.pdf
If you don't care about being every even, but just dropping some
packets you can periodically
install a new flow:
1. install flow 1 that will forward all packets
2. wait for x secs
3. install flow 2 that will drop all packets
4. wait for x secs
5. go back to 1
There are some flags that are described on the spec about how to
force a flow to be replaced
by the current flow mod.
You can also always try and modify OVS to do what you want but
this is a more involved task.
Depending on what you are trying to do, and how much the
performance is important, you might
also want to consider using the click router, which is a software
router that gives you more flexibility.
Hope this helps and good luck with your experiment,
Niky