mac-learning: Refactor to increase generality.
authorBen Pfaff <blp@nicira.com>
Tue, 22 Mar 2011 16:47:02 +0000 (09:47 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 22 Mar 2011 16:47:02 +0000 (09:47 -0700)
commitdb8077c315f12fd523ace965cc22778ed8d5939a
treef2d7acc0a062154bf3b1716921b4c9d8314a8d89
parent83db796889bf98f8699fbd7305ffe920a0b527a1
mac-learning: Refactor to increase generality.

In an upcoming commit I want to store a pointer in MAC learning entries
in the bridge, instead of an integer port number.  The MAC learning library
has other clients, and the others do not gracefully fit this new model, so
in fact the data will have to become a union.  However, this does not fit
well with the current mac_learning API, since mac_learning_learn()
currently initializes and compares the data.  It seems better to break up
the API so that only the client has to know the data's format and how to
initialize it or compare it.  This commit makes this possible.

This commit doesn't change the type of the data stored in a MAC learning
entry yet.

As a side effect this commit has the benefit that clients that don't need
gratuitous ARP locking don't have to specify any policy for it at all.
lib/learning-switch.c
lib/mac-learning.c
lib/mac-learning.h
ofproto/ofproto.c
vswitchd/bridge.c