Set of modifications and additions to establish a platform
for implementing a hardware table in userspace. Modules in
skeleton directory is used as a template for creating
hardware dependent libraries.
This caused segfault instead of reporting the error.
The problem was that dp_lookup_port doesn't provide any sense
whether a port exists in the datapath. It refers to the
DP_MAX_PORTS entries to the switch, not to currently
configured ports in the switch. Instead of checking
p we check p->netdev and detect non-queue case.
This flag was added on March 3, 2008 to comply with a specific vendor's
hardware limitations. This vendor is out of business, and with the
assumption of a software datapath backup, it is unlikely that a switch
would be unable to support sending to a physical port and the controller
simultaneously.
This commmit removes the corresponding spec text and replaces the
capability bit with a reserved one.
Thanks to Justin Pettit for the history.
Enable the port stats for a particular port to be requested by
specifying a port number. Can request all port stats by specifying
OFPP_NONE for the port number.
added a human readable string to ofp_stats_desc to describe
the datapath, e.g., "switch4 in closet 3b of Gates"
* updated openflow.h
* updated udatapath: defaults to "$HOSTNAME pid=$$"
* updated kernel datapath: defaults to "$HOSTNAME idx=$i"
* updated wireshark plugin
* added regression test for ofp_desc_stats
* addressed KK's review comments from:
https://mailman.stanford.edu/pipermail/openflow-dev/2009-December/000545.html
Improve precision of flow duration (time a flow has
been installed in a switch) from seconds to nanoseconds
to improve throughput measurement accuracy when using
flow stats messages. This implementation splits the
existing duration fields into duration_sec and
duration_nsec for both flow expiration and flow stats
messages. Passes included unit tests on Ubuntu 8.04.
Enable ofdatapath to run without slicing.
When the related dependencies are not met,
using the --no-slicing runtime option, ofdatapath
can run without tc backend/frontend support (and
therefore without slicing support).
This commit updates the userspace datapath to handle the slicing
mechanism.
-> Keep list of queues per port.
-> Map flows to queues
-> Report queue configuration and statistics
-> Send appropriate error messages
Handle OF venor extensions (experimental). Currently only
for slicing configuration messages.
Slicing configuration messages are typically initiated by
dpctl. After capturing them here, we use the appropriate
functionality from datapath and netdev to change the
underlying queueing configuration.
datapath/udatapath now sends ofp_flow_removed messages instead of
nx_flow_end. This allows for the removal of secchan/flow-end.* as
flow-end message now no longer need to be translated.
send_flow_end was a hold-over from 0.8.x releases. Version 0.9 removed the
datapath-wide send flow mod expire flag and replaced it by a per-flow flag.
This field was used by the NetFlow code to force notification of expires.
Commit 238c5065 (Vlan pcp match: Reorder VLAN priority field...)
changed ofp_match from 36B to 40B, breaking the 8B alignment of a
number of structs. This commit modifies those structs to at least
pass the assertion tests and regression tests.
When a switch receives a barrier message it must first complete all
commands sent before the barrier message before executing any commands
after it. When all commands before the Barrier message have completed,
it must send a barrier reply message back to the controller.
detection handler for table maintanance
Add a CHECK_OVERLAP flag to flow mods which requires the switch to do
the (potentially more costly) check that there doesn't already exist a
conflicting flow with the same priority. If there is one, the mod
fails and an error code is returned.
Flow expiry: Record OFPFF_SEND_FLOW_EXP flag in user data path