55 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
Tatsuya Yabe 6778bd8cdf Add a hardware implementation template
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.
2010-05-03 15:54:37 -07: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
Glen Gibb 9521a635c0 ip-in-arp: add capability bit for feature
Added capability bit to indicate if the switch supports matching IP
fields in ARP packets.
2009-12-17 16:44:44 -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
Rob Sherwood ed2d28c865 added dpctl support for setting ofp_desc_stat->dp_desc
* udatapath : tested and works
* kernel datapath : implemented, but build is broken :-(
* addressed Glen's code review at :
    https://mailman.stanford.edu/pipermail/openflow-dev/2009-December/000620.html
2009-12-11 18:16:39 -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
Brandon Heller bb697af959 Spec: remove multi_phy_tx spec text and capability bit
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.
2009-12-11 18:14:38 -08:00
Glen Gibb 47a0ed66bc Merge branch 'devel/yiannisy/slicing'
Conflicts:
	include/openflow/openflow.h
	regress/lib/Perl5/OF/OFUtil.pm
	regress/projects/black_box/regress/tests.txt
	udatapath/datapath.c
	utilities/wireshark_dissectors/openflow/packet-openflow.c
2009-12-11 18:11:16 -08:00
Mikio Hara f72223e66a Specify port number when requsting port stats
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.
2009-12-11 15:43:37 -08:00
Justin Pettit 1936cc1c68 Implement flow cookies in user datapath. 2009-12-11 15:43:36 -08:00
Mikio Hara 1c9b2f7b2d IPv4 DSCP match: Add IPv4 DSCP field match feature
Note: Now regression test sets *and* tests the IPv4 DSCP bits.  Test
script was renamed from test_set_nw_tos to test_set_n_match_nw_tos.
2009-12-11 15:43:36 -08:00
Glen Gibb 63c3a0e289 Copy necessary fields into flow for ARP matches
Previously missed the code to handle ARP matches in flow mods.
2009-12-11 15:43:35 -08:00
Rob Sherwood 20634da473 added dp_desc field to ofp_stats_desc
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
2009-12-11 15:43:35 -08:00
David Erickson e224493afd Addresses issues raised by Brandon Heller's review 2009-12-11 15:43:35 -08:00
David Erickson bc94ac2e58 Improve flow duration precision
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.
2009-12-11 15:43:35 -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 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 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
Glen Gibb f492a9d519 Remove tcp_flags/ip_tos tracking used by NetFlow 2009-10-15 14:14:47 -07:00
Glen Gibb ea288488c8 Replace ns_flow_end with ofp_flow_removed
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.
2009-10-14 15:56:37 -07:00
Glen Gibb add3e639a9 Replace NXFER_* with OFPRR_* constants 2009-10-14 15:56:36 -07:00
Glen Gibb d1957f2054 s/nx_flow_end_reason/ofp_flow_removed_reason/g
Replaced references to custom Nicira flow end reason and replaced with
OpenFlow flow removed reason.
2009-10-14 15:56:36 -07:00
Glen Gibb 2b1c086060 Remove Nicira action processing
No custom Nicira actions in reference code so remove handlers from codebase.
2009-10-14 15:56:36 -07:00
Glen Gibb 5f171ff224 Remove unused Nicira message processing code
No longer sending NXT_FLOW_END_CONFIG messages so remove code associated
with this message.
2009-10-14 15:56:36 -07:00
Glen Gibb ec0c97d6a1 Removed send_flow_end field from datapath struct
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.
2009-10-14 15:56:36 -07:00
Mikio Hara 32637a8693 Bug fix: Fix an insufficienty wildcards look up of VLAN PCP 2009-08-26 14:23:50 -07:00
Mikio Hara ce40743f5e Bug fix: Fix memory leak in mod_flow handler 2009-08-26 13:01:33 -07:00
Mikio Hara 59c9a188d6 Cosmetic change: Made use of definition instead of raw value 2009-07-16 12:53:19 -07:00
Mikio Hara 623e899a93 Bug fix: Restore 64-bit struct alignment
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.
2009-07-16 09:23:19 -07:00
Mikio Hara ad94e12a04 Change meaning miss_send_len of set config and max_len field of output
action

If "max_send_len" (or the "max_len" field for the controller output
action) is zero, then send a packet-in with zero bytes of the packet
data.
2009-07-15 09:47:15 -07:00
Mikio Hara 034c75b75d Emergency flow cache: Rename error code from OFPFMFC_EMERG to
OFPFMFC_BAD_EMERG_TIMEOUT
2009-07-15 09:38:15 -07:00
Mikio Hara 36a60a74fc Emergency flow cache: Suppress flow removed notification for flows in
emergency flow table, add logic to emergency flow to reject entries
with timer
2009-07-11 21:02:04 -07:00
Mikio Hara 9b3b165270 Change manufacturer information 2009-07-02 05:46:48 -07:00
Mikio Hara 01593f3c49 Namespace change: Rename flow expiration to flow removed 2009-07-01 19:58:06 -07:00
Mikio Hara 680f63b514 Rewrite IP ToS/DSCP: Add IP ToS/DSCP field rewrite feature 2009-07-01 11:28:51 -07:00
Mikio Hara ed0d7bc8e8 Bug fix: Fix memory leak in stats reqeust handler 2009-06-30 20:46:41 -07:00
Mikio Hara 292ffb1f39 Barrier command: Add new protocol messages: barrier request and reply
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.
2009-06-29 11:21:40 -07:00
Mikio Hara 1ae2cd3781 Start port enumeration: Change OpenFlow start port enumeration at 1 2009-06-29 10:02:02 -07: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
tyabe dde4979698 Vlan pcp match: Implemented on datapath and udatapath 2009-06-29 07:27:42 -07:00
Glen Gibb 875412fefd Flow expiry: Correct function proto for vendor_stats_init 2009-06-29 07:26:36 -07:00
Glen Gibb 500fb599be Flow expiry: Send flow exp if the flow's send_exp flag is set 2009-06-29 07:04:48 -07:00
Glen Gibb 44d43c2988 Flow expiry: Add send_flow_exp to nx_flow_end msg
Need to pass message that indicates whether to send flow expiry message
to the controller.
2009-06-29 07:04:02 -07:00
Glen Gibb 1f535b5443 Flow expiry: Add a send_flow_exp flag to the sw_flow struct
This flag is used to indicate whether a flow expiry should be sent to
the controller.
2009-06-29 07:03:31 -07:00
Glen Gibb c6f1379fff Flow expiry: Remove all references to OFPC_SEND_FLOW_EXP 2009-06-29 07:03:06 -07:00
Glen Gibb ad42ba0b93 Flow expiry: Added idle_timout to nx_flow_end struct
Extra field added to struct
Padding field split
Populate idle_timeout in dp_send_flow_end funcs
2009-06-29 06:59:05 -07:00