Commit Graph
354 Commits
Author SHA1 Message Date
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
Mikio Hara 75edc57072 IPv4 DSCP match: Add IPv4 ToS/DSCP description capability to dpctl 2009-12-14 12:39:47 -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
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 bc2026689b Safety checks for ARP packets
Verify that ARP packets are for IP and that the protocol length is 4
before extracting source/destination IP addresses.
2009-12-11 15:43:35 -08:00
David Erickson b011d58f5d Added the ability to match fields in ARP packets.
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.
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 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 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
Glen Gibb 0d2a787f01 Remove Nicira extension printing code 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 d1f4c793fa Remove Nicira vendor action print code 2009-10-14 15:56:36 -07:00
Glen Gibb 89941e139b Suport pretty-print for OFPRR_DELETE flow removed
If a flow is removed via a DELETE flow mod then print "delete" instead
of it's numerical value when an ofp_flow_removed is received.
2009-10-12 15:50:07 -07:00
Mikio Hara cd3bc540bd Bug fix: Fix VLAN PCP support for simple controller 2009-08-26 14:22:03 -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 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 01593f3c49 Namespace change: Rename flow expiration to flow removed 2009-07-01 19:58:06 -07:00
Mikio Hara 0f3d726853 Protocol stats: Revise to support new protocol messages and error codes 2009-07-01 13:27:21 -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 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
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 c6f1379fff Flow expiry: Remove all references to OFPC_SEND_FLOW_EXP 2009-06-29 07:03:06 -07:00
Glen Gibb 0947229ada Flow expiry: Pretty-print idle_timeout for nx_flow_end msg 2009-06-29 06:59:30 -07:00
Glen e1e828de32 Flow expiry: Pretty-printing of idle timeout in flow expire msg 2009-06-29 06:58:48 -07:00
Mikio Hara 58ee7f213f Emergency flow cache: Add emergency flow cache framework
Emergency flow cache use completely separate flow table from working
and its table ID for stats is 0xfe.
2009-06-29 06:57:37 -07:00
Mikio Hara 43f19193fb Remove experimental SNAT (source NAT) support 2009-06-29 05:33:18 -07:00
Mikio Hara 2dcc603a5c Fix typo in automake.mk 2009-06-29 05:32:46 -07:00
Mikio Hara d56d5661df Protocol stats: Add OpenFlow protocol statistical information
collector

Fix BUG#49: Add OpenFlow protocol statistical information collector
and user interface. This feature use PRIVATE_VENDOR_ID to communicate
betwewn control plane process and user interface. PRIVATE_VENDOR_ID is
defined only for private use (and based on private OUI).
2009-06-29 05:22:54 -07:00
Mikio Hara 62d52c275f Remove experimental file descriptor based vconn. 2009-06-29 05:20:06 -07:00
Mikio Hara b75b611139 Failover: Add simple controller failover
Fix BUG#47: Add simple controller failover to provide control plane
session redundancy.
Improved BUG#47: Add liveliness check of a peer using ECHO exchange
with non-zero XID.
Fix BUG#50: Change minimum configurable value of inactivity-timer for
OpenFlow control plane session to provide quick controller failover.
Change ofprotocol(8) man page to describe failover.
2009-06-29 05:15:34 -07:00
Mikio Hara 5ff6ec248d Change code base to Nicira's master branch 2009-06-29 05:03:42 -07:00
Mikio Hara 695db2964e Change code base to Nicira's for-nox/0.4 branch
Remove monolithic OpenFlow switch.
Add userspace datapath.
Fix BUG#13: Revise check wildcards for in_port != out_port output
validation.
Fix BUG#30: Made use of get_jiffies_64 instead of jiffies.
Fix BUG#31: Fix NetFPGA crash in case of test_delete test harness run.
Fix BUG#32: Add stack depth limitation to avoid inifinite loop in
log_backtrace.
Fix BUG#33: Improve NetFPGA kernel extension and NetFPGA image to
support MAC address rewrite features (two actions) on NetFPGA enabled
OpenFlow switch.
Fix BUG#34: Add NetFPGA kernel extension source codes to create
distribution package with NetFPGA correctly.
Fix BUG#38: Improve regression test for FLOW_MOD ACTION SET_DL_SRC and
SET_DL_DST.
Fix BUG#39: Correct misunderstanding of byte order ops for OFPAT_XXX.
2009-06-29 05:02:16 -07:00
Mikio Hara 3aa4128031 Fix BUG#12.
Make ds_put_char_multiple() use the provided character instead of a
space.
2009-01-22 16:19:14 -08:00
Brandon Heller d24896f815 merged nicira-private/master 2008-12-02 02:29:05 -08:00
Ben Pfaff 33f163a76e Add missing "%s" to VLOG_WARN_RL call.
Thanks to Justin for pointing out the problem.
2008-12-01 21:26:57 -08:00
Brandon Heller 676eae5942 Merge commit 'nicira-private/master' into experimental 2008-11-30 22:50:45 -08:00
Ben Pfaff ca2e44b48d Simplify code in stream_recv().
There is no need to test whether retval is nonzero at this point in the
code: we already know that it is negative from the two previous "if"
branches.
2008-11-26 22:25:39 -08:00
Ben Pfaff 12333d6650 Make dpif_close() accept a null pointer.
It's customary for destructor functions to accept and ignore null pointers.

This commit does not fix any known bug.
2008-11-26 22:25:39 -08:00
Ben Pfaff 58b3bc45e4 rconn_destroy() should close monitoring connections, to avoid a leak.
Our current code base never closes an rconn that has a monitoring
connection, so this does not fix any larger problem.
2008-11-26 22:25:39 -08:00