21 Commits
Author SHA1 Message Date
Yiannis Yiakoumis fe01e64cf2 doc: fix help message for default pidfile
The default pidfile is /var/run/ofdatapath.pid
2010-06-28 16:38:31 -07:00
Yiannis Yiakoumis cb38fcc3fb spec : Clarify valid ports for enqueue action.
- Only ports < OFPP_MAX and OFPP_IN_PORT are valid ports
  for enqueuing.
- Also fixed spec typo (thanks to Reid Price for reporting).
2009-12-16 01:57:16 -08:00
Yiannis Yiakoumis ae39860411 Bugfix: Remove class tc configuration after queue delete.
When removing queues from datapath, tc state was being left
at the qdisc configuration.
Add netdev_delete_class function which clears this state.
2009-12-16 01:20:30 -08:00
Yiannis Yiakoumis d89f04f662 Bugfix : report error when add-queue for non-existing port.
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.
2009-12-17 13:17:09 -08:00
Yiannis Yiakoumis fd62ef166b Reject queue-add request when there are no queues left.
Send an error when an add-queue request cannot be served
due to lack of queues at the port under configuration.
2009-12-14 18:10:41 -08:00
Yiannis Yiakoumis 7232e213c1 Update ofdatapath man-page for --no-slicing option. 2009-12-14 18:10:29 -08:00
Yiannis Yiakoumis 9e82ac43ce Bugfix for check overlap flag
We didn't detect flow-mod conflict when adding a finer granularity
flow which conflicts with an installed, coarser granularity flow.

Thanks Justin for pointing this out :
https://mailman.stanford.edu/pipermail/openflow-dev/2009-November/000529.html
2009-12-11 18:15:45 -08:00
Yiannis Yiakoumis a906134053 Remove warning messages (mostly due to UNUSED params). 2009-12-08 15:53:01 -08:00
Yiannis Yiakoumis 4a53e14a2d Introduce --no-slicing option.
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).
2009-12-08 15:17:51 -08:00
Yiannis Yiakoumis 66fab36e5e List slicing dependencies to INSTALL file. 2009-12-08 15:17:27 -08:00
Yiannis Yiakoumis 19bb7743e2 Fix len comment at ofp_action_enqueue (openflow.h)
All actions need to be *8 size. The length field
comment was left to the old 12 bytes value.
2009-12-08 09:41:16 -08:00
Yiannis Yiakoumis e30373a869 Fix bug that printed all packets in.
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.
2009-12-04 20:19:57 -08:00
Yiannis Yiakoumis 25fbffd3aa Update wireshark dissector with slicing messages. 2009-12-04 14:44:48 -08:00
Yiannis Yiakoumis f7d7efb043 Update testsuite with slicing tests.
Introduced the following tests :
 -> test_queue_config
 -> test_queue_stats
 -> test_forward_exact_queue.
2009-12-04 14:44:48 -08:00
Yiannis Yiakoumis 5733b22917 Updated datapath for slicing feature
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
2009-12-04 14:44:48 -08:00
Yiannis Yiakoumis 201a5b7ab7 Update dpctl and ofp-print for slicing mechanism
Changes both for standard openflow messages and queue configuration.

Code by Dan Talayco.
2009-12-04 14:44:48 -08:00
Yiannis Yiakoumis bb59ae5d74 Openflow Vendor Extension (experimental) placeholder
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.
2009-12-04 14:44:48 -08:00
Yiannis Yiakoumis 5731d545f1 Add queue support to netdev abstraction
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.
2009-12-04 14:44:48 -08:00
Yiannis Yiakoumis f53757c4dd Define vendor extension for queue configuration
Queue configuration is not part of the OpenFlow protocol.
We define a vendor extension to allow config through dpctl.

Code by Dan Talayco.
2009-12-04 14:44:48 -08:00
Yiannis Yiakoumis 7ef69e0259 Introduce slicing mechanism changes in spec and openflow.h
For further details refer to this feature wiki-page:
http://openflowswitch.org/wk/index.php/Slicing
2009-12-04 14:44:39 -08:00
Yiannis Yiakoumis a47208dc76 Flow mod behavior: Add a new flag to flow mods and flow conflict
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
2009-06-29 10:00:55 -07:00