of_01: Fix nasty typo in handle_PORT_STATUS

The port status 'reason' was checked against the enum for
flow_removed_reason instead of port_reason.  Unfortunately,
the names only differ by one (similar looking) character.
Fixed.

Signed-off-by: Murphy McCauley
arp_responder: Only learn from arp.hwsrc

This fixes arp_responder to learn only from arp.hwsrc and
not the source ethernet MAC address.
README: Update slightly
flow_table: Fix timeout checking
flow_table: Check before removing ops from pending

In at least some cases, ops aren't in the pending list.  It's
possible they never are (?).  This checks before trying to
remove them to avoid an exception.

This closes issue #40.
flow_table: Remove ops from op-to-barrier map

This removes entries from the op-to-barrier map when we hear
the barrier.
libopenflow: Add flip() to ofp_match

This function returns a copy of the match with the source and
destination entries swapped.
of_01: Allow HELLO messages with arbitrary version

We now allow HELLO messages with different version numbers, hoping
that the other side shifts down to 0x01 for subsequent messages.
Non-HELLO messages still trigger a disconnect.
l2_multi: Various improvements/changes

This does some cleanup and reworking of l2_multi:
* Install paths in both directions
* Set in_port in flow entries
* Wait for path to be installed before forwarding packet
* Various cleanup/modernizing

Note: you must now run discovery explicitly.
libopenflow: Fix multipart stats reply length

The length of multipart ofp_stats_reply messages was being
calculated improperly (the number of parts was being used
rather than the sum of the part lengths).  Fixed.
packet: Many improvements to DHCP

In particular, this adds classes to represent many DHCP options,
making it pretty easy to actually understand and create meaningful
DHCP packets.
packet: Fix whitespace in DHCP
misc: Add DHCP server

This adds a quick and dirty DHCP server.  It's not particularly
well tested or anything, and it's not nearly as configurable
as it should be.
core: Make listen_to_dependencies more flexible

You can now specify listener options.
samples: Add mixed_switches demo

This little demo shows one way to load different components
for different switches.
dhcpd: Honor broadcast flag

If a client requests broadcast responses, we now do so.
dhcpd: Implement address release
dhcpd: Send NAK when we're out of addresses

If we run out of addresses to give, we now NAK the client.
I'm not positive this behavior is correct.
dhcpd: Check that messages are to us

This isn't really a strict check, and we still don't check the server
identifier option if it's given.
dhcpd: Add a lot of configuration flexibility

There's now a class for address pools, and a default implementation
that allocates addresses fairly flexibly out of a subnet.

Partially thanks to the above (as well as some other changes),
the DHCP server is now much more configurable, including a lot
of configuration being possible from the commandline.