Are you using l2_learning and only l2_learning?
I am using l2_learning, log.level with --DEBUG flag, and a custom
module that only handles Flow Removed events (only to print them)
Are you sure? Try monitoring the OpenFlow connection to the
controller (this can be done with Wireshark, for example, or with
a little modification to POX). Do you see packet-ins with the
ARPs in them?
Sorry you are right, by using Wireshark with OF dissector i see the
packet In messages containing arp.
However, since the hosts don't exchange ARP Messages, but POX
receives Packet In messages were do these messages come from?
Also,
why the ARP request packets encapsulated in Packet In target a specific
MAC, as opposed to usual ARP request targeting every MAC? Is it a
"keep-alive" like mechanism for ARP Cache entries, or am i way off base?
Are you sure they're not? You've inspected the right interfaces with
Wireshark or whatever? I am guessing they are there. (And that
Linux's ARP logic is not as straightforward as one might imagine.)
Well i was certain initially, but now i have some doubts that i did not
do something wrong in tcpdump. Now that i used wireshark not only to
dissect the OF messages but to inspect the OF Bridge interfaces i was
proved wrong again...
I guess i got carried away by me expectation not to sent/receive
messages for a host with an already known MAC and perhaps i terminated
the capture prematurely.
Seems like this is a Linux ARP logic matter as you said. I will search
further on that direction.
Sorry for bothering you with this, and thanks again for all your help