143 Commits
Author SHA1 Message Date
Glen Gibb 49581ff4eb secchan: Fix port status detection
secchan was reporting the *opposite* port status for port down/link
down.

Bug reported by: Takayuki Hama <t-hama@cb.jp.nec.com>
2010-02-24 16:13:17 -08:00
Glen Gibb 9f15ba2113 Remove remote command execution support 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 8c2e2dd667 Remove unused udp_open function
udp_open was used by NetLink code. Remove this function as the NetLink
code has been removed.
2009-10-14 15:56:36 -07:00
Glen Gibb cf13ab2dd9 Remove NetFlow from reference switch
Remove NetFlow code from reference switch, except in nicira-ext.h
2009-10-14 15:56:36 -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
Glen Gibb fddc939b07 Flow expiry: Send flow expires on delete
Set the reason to OFPER_DELETE
2009-06-29 07:08:01 -07:00
Glen Gibb b7e8127132 Flow expiry: Remove send_ofp_exp references 2009-06-29 07:05:11 -07:00
Glen Gibb 0b96028bea Flow expiry: Send flow exp only if flow's send expiry flag set 2009-06-29 07:04:34 -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 11dab620bd Flow expiry: Populate idle_timeout field of ofp_flow_expire
Copy value from the nx_flow_end struct passed into the function.
2009-06-29 07:00:11 -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 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 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
Ben Pfaff 14439fa80c Maintain separate async and sync connections to nl:0 in secchan.
When a network link is flooded with traffic, secchan's OpenFlow socket
queue becomes congested with traffic.  This leaves no room for replies
to OpenFlow requests relayed to that socket by secchan.

This commit modifies secchan to use separate sockets for asynchronous
traffic and for OpenFlow requests/replies, which should avoid the problem.
2008-11-21 13:05:37 -08:00
Ben Pfaff c3a7107e9e Dynamically allocate switch status categories.
I got tired of increasing the statically allocated number of categories
whenever we exceeded it, so this will make things simpler.
2008-11-21 12:39:24 -08:00
Ben Pfaff 92500deb63 Get rid of unused parameter to rate_limit_start(). 2008-11-21 12:23:01 -08:00
Ben Pfaff bd9bd56036 Don't rate-limit packet_ins from flows that the controller set up. 2008-11-21 10:48:00 -08:00
Justin Pettit 1b557ee56c Rename switchmon to switchui. 2008-11-05 15:24:29 -08:00
Ben Pfaff 9953943475 Move "update" remote command from base secchan into Debian packaging.
The update command only works with Debian anyway, so there's no point
in installing it elsewhere.
2008-11-05 10:04:31 -08:00
Ben Pfaff fe6988251d Create vlog sockets after daemonizing, so that pidfiles can be used.
Otherwise, pidfiles contain the process ID of the process that forked
and exited, so that "vlogconf --target <program.pid>" will fail.
2008-11-04 16:14:00 -08:00
Ben Pfaff 70ebdff4f8 Use "set -e" command instead of "#! /bin/sh -e" magic.
Otherwise, running the script through an explicit shell invocation, such
as "sh -x <script>" for debugging, will fail to set -e and therefore the
script's behavior will change.
2008-11-04 14:26:38 -08:00
Ben Pfaff af26d107aa Add build number to datapath version and --version output from programs. 2008-11-04 14:10:00 -08:00
Ben Pfaff a660f93e18 In reboot script, send SIGUSR1 to ofp-switchmon to make it display "Rebooting". 2008-11-04 09:34:26 -08:00
Ben Pfaff 0202d2c761 Call VLOG_WARN before send_child_message(), to get correct errno value.
Otherwise we end up with nonsense like "failed to stat...: Success" in
the log.
2008-11-03 17:04:22 -08:00
Ben Pfaff 6b617bac12 Move exported headers to include/openflow, private headers to lib/.
This makes it easier to install the headers, or to use them directly from
another software package with -I$(openflow)/include, without invading
the top-level include file namespace.
2008-10-29 15:15:45 -07:00
Ben Pfaff 65ac65a6d2 Improve the command interface so that it sends back acks or errors. 2008-10-28 12:46:18 -07:00
Ben Pfaff bf3e778844 Add a warning when secchan is invoked with a controller specified as the datapath. 2008-10-27 15:13:11 -07:00
Ben Pfaff b2aec952c7 Add Nicira extension for remote command execution. 2008-10-27 12:58:27 -07:00
Ben Pfaff de5caa4906 Change the secchan "hook" mechanism to be easier to add new callbacks. 2008-10-27 12:58:27 -07:00
Ben Pfaff 18d534b64e Break secchan into multiple files, to make it more maintainable. 2008-10-24 09:43:44 -07:00
Ben Pfaff 9795d7d750 Update manpages to mention new --log-file option.
Move vlog option descriptions into a separate file lib/vlog.man that
is substituted into manpages.

Get rid of individual rules for substituting most files in favor of
a single suffix rule.  Unfortunately this loses the (Emacs-specific)
read-only markings but it simplifies the makefiles.
2008-10-23 14:07:26 -07:00
Ben Pfaff b6eb6bc746 vlog: Add ability to log to an arbitrary file, and following related changes:
* New command-line options for configuring log files, hence:
  - Centralized vlog usage messages.
* New vlogconf action for reopening log files.
* New vlogconf support for specifying a target by pidfile.
2008-10-23 14:07:25 -07:00
Ben Pfaff ddbf6040e3 Make pkidir, rundir, logdir modifiable from "configure" command line.
Make "make" behave properly when these are changed by re-running
"configure", by putting their definitions into a generated file that
depends on Makefile.
2008-10-23 14:07:25 -07:00
Ben Pfaff be0ea769dd Make the format of vlog messages user-configurable. 2008-10-23 11:08:23 -07:00
Justin Pettit f1126f43ad Switch default OpenFlow port from 975 and 976 to 6633. 2008-10-22 17:17:50 -07:00
Ben Pfaff b50bbdf27d Centralize daemon option processing and usage. 2008-10-16 16:16:36 -07:00
Ben Pfaff f248de356e Fix typo in manpage. 2008-10-16 13:46:06 -07:00
Ben Pfaff 4fbcabe104 Revamp build system to make it easier to integrate openflowext. 2008-10-16 11:11:59 -07:00
Ben Pfaff 4a7706ed49 secchan: Make sure fail-open doesn't drop the first messages from connection.
Fail-open mode is entered or left in a secchan "periodic" callback, which
may not be called immediately after the connection to the controller
actually comes up.  This can cause the fail-open local-packet CB to
locally handle messages from the datapath and drop them, causing the
controller to think that it's being ignore and drop the connection.

Thanks to Dan for raising the issue.
2008-10-15 15:46:48 -07:00
Ben Pfaff 37c94b45fd Rework STP implementation in controller.
Before, we tried to use the port configuration bits to implement STP; e.g.
if a port was in LISTEN state we turned off sending and receiving frame
other than BPDUs.  Unfortunately this interacts very badly with in-band
control: when the switch connects to the controller, it can be connected
to the controller over a port that is not in FORWARD, and so then the
controller disabled that port, and the connection eventually dropped when
an echo request/reply failed to get through.

Now, we implement STP by querying the flows on the switch and killing
off the ones that STP does not allow.  This works much better because,
although we still kill off the in-band control connection, the in-band
hook in secchan is then able to resurrect it.

--no-stp is still the default since this has not been tested very much.
2008-10-14 16:48:47 -07:00
Ben Pfaff 2c5272bc28 Set DHCP maximum retransmission timeout to 3 seconds in secchan.
This should help discovery complete faster, especially with hops across
multiple OpenFlow switches to the controller.
2008-10-14 16:14:13 -07:00
Ben Pfaff 0949dc379b secchan: Log switch datapath id at startup. 2008-10-14 16:14:13 -07:00
Ben Pfaff 83319dfc65 secchan: Remove unhelpful STP-related log message. 2008-10-14 13:31:09 -07:00
Ben Pfaff 11a8137e64 secchan: Increase max number of local_cbs to accommodate STP. 2008-10-14 13:31:09 -07:00
Ben Pfaff 4a4424a739 Support up to 0xff00 ports in OpenFlow, without changing the implemented max. 2008-10-14 10:53:27 -07:00