Don't special-case broadcast packets in in-band mode.
authorBen Pfaff <blp@nicira.com>
Thu, 26 Jun 2008 18:52:36 +0000 (11:52 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 26 Jun 2008 18:52:44 +0000 (11:52 -0700)
commitf68ad8aecb9d39a27b47a98ba96635cde9b170c0
tree67ca0331dd8ba9ab89980b37da16a0680a4191da
parent4196aaf17e52253b065d3aef5ff943c2b755b7d9
Don't special-case broadcast packets in in-band mode.

Before, in in-band mode, the secure channel would flood all flows
destined for the broadcast destination when not connected to a
controller.  The rationale was that this allowed for ARP replies
to be forwarded to the local port, so that the secure channel
could obtain the Ethernet address of the controller.  But this
is a false rationale: ARP replies are unicast to the requester,
not broadcast. (Frames unicast to the local port are always handled
by the secure channel.)

Also, even if it were a correct rationale, it would not help in
at least one case: if the controller's Ethernet address has expired
from the ARP cache, but the secure channel's TCP connection to
the controller is still connected, then the secure channel attempt
to ARP would fail, since the broadcast ARP reply would not be
handled by the secure channel (since the secure channel thought
that it was still connected).
secchan/secchan.c