Pull configuration information from DMI when available. In its current form,
it will only use DMI information set by Nicira. Otherwise, it will use default
values. This change also makes DPIDs the same as the MAC address of the
local OpenFlow device.
To enable SNAT, run configure with the "--enable-snat" flag. This has
only been tested with the 2.6.23 kernel...more diverse testing will follow.
Documentation and a cleaner build setup will also be in a future check-in.
Allow vendors to define their own actions. Actions were originally fixed-
length, which was a bit constraining. Actions now contain a length field,
which gives them more flexibility.
To report on link status and whether a port is administratively enabled or
disabled, the reference switches poll. This change uses the Linux kernel's
device notification system, so that polling isn't necessary.
The new OFPT_ECHO_REQUEST and OFPT_ECHO_REPLY OpenFlow messages
have the same functionality and are more general (in that they
are not Netlink-specific).
There is no need for a "safe" version of the RCU list iteration macros,
because the ordinary version of the macros is "safe". Linux 2.6.26-rc1
removed these "safe" versions, so this change modifies OpenFlow's uses
of these macros to use the ordinary versions. This also simplifies the
code because we don't need to use the list_entry macros any longer.
We need object files to depend on the build directories, so that the
build directories get created before we try to output files into them.
But making them depend directly on the build directories means that
whenever a build directory changes (including any change to the set of
files inside it) all the source files get recompiled. So, instead, make
them depend on dummy files inside the directories, which will only get
modified if someone does it intentionally.
The new build system supports using a build tree separate from the
source tree, which makes it easier to build for multiple targets
using a single source tree. It also factors out the means for specifying
the modules to be built and the source files that comprise those
modules into simple files named Modules.mk. This is intended to
make it easier to add support for separate hardware table modules in
an upcoming commit.
This is required on the Quanta platform, which needs to down a semaphore
inside the timeout implementation.
Also, add a 2.4 compatibility implementation of kthread so that both
2.4 and 2.6 can use the kthread API.
- Removed BUG() call that could be maliciously/accidentally triggered by a faulty controller.
- Switched from __constant_htons to htons, which seems preferred.