Specifically implemented the ability to match on
the lower 8 bits of the ARP opcode as nw_proto, and
the ARP source and dest protocol addresses as nw_src
and nw_dst respectively.
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).
tap devices do not have any queue configuration.
But we need to set queue_fd[0] which is the default
socket that best-effort traffic goes out.
When this was not set, fd defaulted to 0, which is
stdio, and resulted to print all packets.
Thanks Mikio for spotting the exact problem.
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.
netdev uses tc to implement the queueing mechanism.
Queue configuration takes place through dpctl.
Each queue is represented by a send-only socket, while
there is a default socket that receives traffic and
sends best-effort traffic. This is necessary to overcome
limitations from user-only implementation.
Fix the test_flow_stats test:
- update the wildcard
- specify valid IP addresses for src/dst
- set the ethertype
- verify that 1 ofp_flow_stats body is returned
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.
Private vendor extension file had separate handling for big/little
endian. All places in the code where these values are put on/removed
from the wire are wrapped by hton* and ntoh* function calls, eliminating
the need for separate constants.