Ben Pfaff [Tue, 16 Sep 2008 21:13:22 +0000 (14:13 -0700)]
ofp-pki: Give controller and switch CA distinctive names.
This makes it possible to tell them apart by looking at the certificates,
instead of having to just know which is which.
Ben Pfaff [Tue, 16 Sep 2008 23:06:43 +0000 (16:06 -0700)]
Change STP parameters to the minimum values allowed by 802.1D.
This makes the secchan start up much faster.
Ben Pfaff [Mon, 15 Sep 2008 23:43:40 +0000 (16:43 -0700)]
Add -Wdeclaration-after-statement to CFLAGS.
This should help us avoid writing non-portable code.
Ben Pfaff [Mon, 15 Sep 2008 23:31:37 +0000 (16:31 -0700)]
Fix "make distcheck".
Ben Pfaff [Mon, 15 Sep 2008 23:32:02 +0000 (16:32 -0700)]
Ignore some more generated files.
Ben Pfaff [Mon, 15 Sep 2008 23:04:55 +0000 (16:04 -0700)]
Fix OpenFlow extensions submodule to build again.
Ben Pfaff [Mon, 15 Sep 2008 22:43:44 +0000 (15:43 -0700)]
Merge commit 'origin/master'
Conflicts:
switch/datapath.c
utilities/dpctl.c
Ben Pfaff [Mon, 15 Sep 2008 22:31:36 +0000 (15:31 -0700)]
Merge branch "partner", to simplify partner integration.
Justin Pettit [Mon, 15 Sep 2008 22:27:04 +0000 (15:27 -0700)]
Add support for OFPFC_MODIFY Flow Mod command.
The OFPFC_MODIFY command allows the controller to modify the actions of
existing flows. When it does this, it does not reset counters or timers.
Justin Pettit [Wed, 10 Sep 2008 22:12:14 +0000 (15:12 -0700)]
Ignore hwtable_dummy.c symlink in kernel build directories.
Ben Pfaff [Mon, 15 Sep 2008 18:19:23 +0000 (11:19 -0700)]
Implement OFPT_HELLO simple version negotiation.
Ben Pfaff [Thu, 11 Sep 2008 22:12:46 +0000 (15:12 -0700)]
Break passive vconns out into separate pvconn routines and data structures.
There really was nothing in common between the active and passive vconns.
This arrangement makes more sense.
Ben Pfaff [Thu, 11 Sep 2008 18:46:57 +0000 (11:46 -0700)]
Make "struct vconn" opaque.
Ben Pfaff [Mon, 15 Sep 2008 21:24:57 +0000 (14:24 -0700)]
Fix handling of port flags.
The "port watcher" in secchan was not keeping track of updates to port
flags by the controller, which caused some combinations of secchan
and controller to not turn on ports when the STP state otherwise should
have done so.
Thanks to Justin for reporting the problem.
Justin Pettit [Mon, 15 Sep 2008 06:05:37 +0000 (23:05 -0700)]
Fix broken stat requests over netlink.
A recent change (696db2) modified the way stats were being sent over the
netlink socket. Unfortunately, the responder set the transaction id to the
type, which caused the requestor to ignore the repsone.
Justin Pettit [Sat, 13 Sep 2008 01:57:21 +0000 (18:57 -0700)]
Keep old stats when a Flow Add replaces an existing entry.
Justin Pettit [Sat, 13 Sep 2008 01:50:37 +0000 (18:50 -0700)]
Clean up the code in the sample hardware table code.
Justin Pettit [Sat, 13 Sep 2008 01:47:29 +0000 (18:47 -0700)]
Fix crash when no actions are specified.
Actions are allocated as a pointer to an array of actions in flows. When
flows are freed, the code was always freeing the action pointer.
Under some circumstances the pointer may not be set.
Ben Pfaff [Thu, 11 Sep 2008 18:37:13 +0000 (11:37 -0700)]
Use vconn_init() instead of explicit initialization in one last place.
Commit
b5e16b0723, "Respin "Make vconns keep track of their names and
include them in log messages,"" was supposed to do this everywhere, but
this instance was evidently missed.
Ben Pfaff [Thu, 11 Sep 2008 02:59:26 +0000 (19:59 -0700)]
Get rid of OFP_MAXLEN.
Statistics or vendor extensions can fill up the whole 64 kB.
Ben Pfaff [Wed, 10 Sep 2008 22:00:47 +0000 (15:00 -0700)]
Delete OFPST_SWITCH and make it available as a Nicira vendor extension.
Ben Pfaff [Wed, 10 Sep 2008 20:22:25 +0000 (13:22 -0700)]
Make switches send error messages when they receive a bad request.
Ben Pfaff [Wed, 10 Sep 2008 20:20:36 +0000 (13:20 -0700)]
Add vendor-specific messages and statistics to OpenFlow protocol.
Ben Pfaff [Wed, 10 Sep 2008 19:51:56 +0000 (12:51 -0700)]
Fix uninitialized data read in secchan.
Found by valgrind.
Justin Pettit [Wed, 10 Sep 2008 20:03:05 +0000 (13:03 -0700)]
Use new method to describe table entries in OpenFlow wire protocol.
Older versions of OpenFlow pre-defined a few different types of tables and the
Features Reply message would indicate how many of those entries existed. This
was very inflexible, so now the Features Reply just indicates how many tables
there are. The controller now sends a Table Stats request to find out how
many entries are supported and the fields that can be wildcarded.
This change also removes the "buffer_mb" field from the Features Reply, since
it was not being used and seemed to be of limited value.
Ben Pfaff [Tue, 9 Sep 2008 21:15:57 +0000 (14:15 -0700)]
Implement 802.1D Spanning Tree Protocol.
Ben Pfaff [Tue, 9 Sep 2008 20:10:09 +0000 (13:10 -0700)]
Zero out otherwise uninitialized padding in make_unbuffered_packet_out().
Found with valgrind.
Ben Pfaff [Tue, 9 Sep 2008 20:09:33 +0000 (13:09 -0700)]
Fix instructions for running ofp-pki: "new-pki" is now "init".
Thanks to Dan for pointing out the problem.
Ben Pfaff [Tue, 9 Sep 2008 19:53:47 +0000 (12:53 -0700)]
Send of0 packets from workqueue, to avoid recursive locking of ofN device.
lockdep reported the following warning, showing that dev_queue_xmit()
for of0 and for another ethernet device (eth0?) were taking locks of
the same class. It was not a problem in this particular case, because
of0 != eth0, but if a flow were to send a packet back to of0 then we
would have a deadlock.
Solution: use a workqueue to send packets to avoid recursive locking.
We will still waste a lot of CPU time if we get a packet that loops back
to of0. Solution for that still needed.
=============================================
[ INFO: possible recursive locking detected ]
2.6.26.5 #1
---------------------------------------------
memcheck/1258 is trying to acquire lock:
(_xmit_ETHER){-+..}, at: [<
c025b126>] __qdisc_run+0xa0/0x18a
but task is already holding lock:
(_xmit_ETHER){-+..}, at: [<
c024f3cd>] dev_queue_xmit+0x23c/0x334
other info that might help us debug this:
9 locks held by memcheck/1258:
#0: (genl_mutex){--..}, at: [<
c0262037>] genl_rcv+0x12/0x2b
#1: (dp_mutex){--..}, at: [<
c88e9a13>] dp_genl_openflow+0x58/0x91 [openflow_mo
d]
#2: (rcu_read_lock){..--}, at: [<
c024e749>] netif_receive_skb+0x9e/0x328
#3: (rcu_read_lock){..--}, at: [<
c0267f77>] ip_local_deliver_finish+0x2a/0x1d7
#4: (slock-AF_INET/1){-+..}, at: [<
c027f1b8>] tcp_v4_rcv+0x29f/0x5ef
#5: (rcu_read_lock){..--}, at: [<
c024f308>] dev_queue_xmit+0x177/0x334
#6: (_xmit_ETHER){-+..}, at: [<
c024f3cd>] dev_queue_xmit+0x23c/0x334
#7: (rcu_read_lock){..--}, at: [<
c88ea214>] dp_dev_xmit+0x0/0x6c [openflow_mod
]
#8: (rcu_read_lock){..--}, at: [<
c024f308>] dev_queue_xmit+0x177/0x334
stack backtrace:
Pid: 1258, comm: memcheck Not tainted 2.6.26.5 #1
[<
c02c11cc>] ? printk+0xf/0x13
[<
c01368c5>] __lock_acquire+0x8c2/0xbe4
[<
c0134d35>] ? add_lock_to_list+0x64/0x8a
[<
c0107a78>] ? native_sched_clock+0x82/0x94
[<
c0136c3e>] lock_acquire+0x57/0x73
[<
c025b126>] ? __qdisc_run+0xa0/0x18a
[<
c02c3919>] _spin_lock+0x1c/0x49
[<
c025b126>] ? __qdisc_run+0xa0/0x18a
[<
c025b126>] __qdisc_run+0xa0/0x18a
[<
c024f382>] dev_queue_xmit+0x1f1/0x334
[<
c88e9cde>] xmit_skb+0x5b/0x65 [openflow_mod]
[<
c88e9e60>] dp_output_port+0x178/0x1ae [openflow_mod]
[<
c88eaf91>] do_output+0x2a/0x4c [openflow_mod]
[<
c88eb11f>] execute_actions+0x16c/0x198 [openflow_mod]
[<
c88eb622>] run_flow_through_tables+0xe9/0xf6 [openflow_mod]
[<
c88eb63e>] fwd_port_input+0xf/0x3d [openflow_mod]
[<
c88ea260>] dp_dev_xmit+0x4c/0x6c [openflow_mod]
[<
c88ea214>] ? dp_dev_xmit+0x0/0x6c [openflow_mod]
[<
c024f042>] dev_hard_start_xmit+0x20f/0x276
[<
c024f3e2>] dev_queue_xmit+0x251/0x334
[<
c026bfcb>] ip_finish_output+0x1ea/0x222
[<
c026c081>] ip_output+0x7e/0x83
[<
c026b37a>] ip_local_out+0x18/0x1b
[<
c026baa2>] ip_queue_xmit+0x288/0x2c9
[<
c0136a0c>] ? __lock_acquire+0xa09/0xbe4
[<
c0111264>] ? kernel_map_pages+0xfc/0x113
[<
c027ddad>] ? tcp_v4_send_check+0x80/0xba
[<
c027a281>] tcp_transmit_skb+0x695/0x6cd
[<
c016060a>] ? __kmalloc_track_caller+0xee/0x12a
[<
c024aacc>] ? __alloc_skb+0x51/0xff
[<
c027a43c>] tcp_send_ack+0xdf/0xe7
[<
c02781e4>] tcp_rcv_state_process+0x389/0xc33
[<
c027eebd>] tcp_v4_do_rcv+0x3bd/0x419
[<
c027f2c7>] tcp_v4_rcv+0x3ae/0x5ef
[<
c026805f>] ip_local_deliver_finish+0x112/0x1d7
[<
c0268185>] ip_local_deliver+0x61/0x6a
[<
c0267d14>] ip_rcv_finish+0x2a4/0x2c3
[<
c0267f23>] ip_rcv+0x1f0/0x21a
[<
c024e990>] netif_receive_skb+0x2e5/0x328
[<
c024ea52>] process_backlog+0x7f/0xca
[<
c024d867>] net_rx_action+0x72/0x127
[<
c0120ea1>] __do_softirq+0x7b/0xf2
[<
c0105a5d>] do_softirq+0x66/0xb3
[<
c024ec69>] netif_rx_ni+0x29/0x2e
[<
c88ea2cd>] dp_dev_recv+0x4d/0x6c [openflow_mod]
[<
c88e9e06>] dp_output_port+0x11e/0x1ae [openflow_mod]
[<
c88eaf91>] do_output+0x2a/0x4c [openflow_mod]
[<
c88eb11f>] execute_actions+0x16c/0x198 [openflow_mod]
[<
c88eb312>] recv_flow+0x1c7/0x2a5 [openflow_mod]
[<
c88eb14b>] ? recv_flow+0x0/0x2a5 [openflow_mod]
[<
c88eab37>] fwd_control_input+0x53/0x60 [openflow_mod]
[<
c88e9a27>] dp_genl_openflow+0x6c/0x91 [openflow_mod]
[<
c02621ce>] genl_rcv_msg+0x17e/0x198
[<
c0262050>] ? genl_rcv_msg+0x0/0x198
[<
c02614c6>] netlink_rcv_skb+0x30/0x76
[<
c0262043>] genl_rcv+0x1e/0x2b
[<
c0261053>] netlink_unicast+0x1a9/0x20f
[<
c02612dc>] netlink_sendmsg+0x223/0x230
[<
c0245384>] sock_sendmsg+0xca/0xe1
[<
c012c501>] ? autoremove_wake_function+0x0/0x33
[<
c015f6ce>] ? cache_free_debugcheck+0x2a3/0x2be
[<
c0107a78>] ? native_sched_clock+0x82/0x94
[<
c0134382>] ? lock_release_holdtime+0x1a/0x115
[<
c01f52b7>] ? copy_from_user+0x34/0x11b
[<
c024b6a5>] ? verify_iovec+0x40/0x6f
[<
c02454da>] sys_sendmsg+0x13f/0x192
[<
c0168d51>] ? pipe_write+0x434/0x43f
[<
c0107a78>] ? native_sched_clock+0x82/0x94
[<
c0107a78>] ? native_sched_clock+0x82/0x94
[<
c0134382>] ? lock_release_holdtime+0x1a/0x115
[<
c0107a78>] ? native_sched_clock+0x82/0x94
[<
c0134382>] ? lock_release_holdtime+0x1a/0x115
[<
c0246189>] sys_socketcall+0x14e/0x169
[<
c0102d43>] ? restore_nocheck+0x12/0x15
[<
c0102ce2>] syscall_call+0x7/0xb
=======================
Ben Pfaff [Mon, 8 Sep 2008 17:05:12 +0000 (10:05 -0700)]
Add ability to monitor both ends of secchan connections from dpctl.
Ben Pfaff [Fri, 5 Sep 2008 21:33:08 +0000 (14:33 -0700)]
vconn: New function vconn_get_name().
Ben Pfaff [Mon, 8 Sep 2008 16:25:25 +0000 (09:25 -0700)]
Re-add extensions submodule that was accidentally dropped.
Ben Pfaff [Sat, 6 Sep 2008 04:23:34 +0000 (21:23 -0700)]
Compatibility fixes for 2.6.18 kernel
Functions added in the 2.6.22 kernel in tcp.h and skbuff.h
have been added to the compatibility headers. Additionally
the data argument was dropped in 2.6.22 for the work queue
macros, requiring them to be redfined for previous kernels.
Based on changes from David Erickson.
Ben Pfaff [Sat, 6 Sep 2008 00:09:53 +0000 (17:09 -0700)]
Do not send in-band control traffic to the controller.
This commit prevents the secure channel from sending any traffic to
or from the controller up to the controller over its OpenFlow connection.
Instead, such traffic is always handled completely locally. This is
what the changes to in-band control up until now have been converging on:
each time, we have reduced the category of traffic that can be sent up
to the controller because we have found that doing so can cause a control
loop. This change goes all the way.
Ben Pfaff [Mon, 18 Aug 2008 20:57:14 +0000 (13:57 -0700)]
Use make_openflow() function to simplify send_features_request().
Ben Pfaff [Thu, 14 Aug 2008 18:43:05 +0000 (11:43 -0700)]
Fix typo in comment.
Ben Pfaff [Thu, 4 Sep 2008 20:44:29 +0000 (13:44 -0700)]
In userspace switch, don't truncate packets to 0 bytes with max_len of 0.
From partner.
Ben Pfaff [Thu, 4 Sep 2008 20:33:15 +0000 (13:33 -0700)]
Drop unneeded inclusions of ofp-print.h.
Ben Pfaff [Thu, 4 Sep 2008 20:28:28 +0000 (13:28 -0700)]
Don't use designated struct member initializers in code compiled outside of Linux.
Needed for partner builds.
Ben Pfaff [Thu, 4 Sep 2008 20:18:28 +0000 (13:18 -0700)]
Don't use designated array initializers in code compiled outside of Linux.
Needed for partner builds.
Ben Pfaff [Thu, 4 Sep 2008 18:22:02 +0000 (11:22 -0700)]
Rename utility functions to avoid partner namespace conflicts.
Ben Pfaff [Thu, 4 Sep 2008 20:51:54 +0000 (13:51 -0700)]
Revert "Do not send in-band control traffic to the controller."
This reverts commit
123301f8b57df7e539478c607d52d21b55e023c0,
because it broke second-hop OpenFlow switches' attempts to connect
to the controller.
Probably re-spin it later, with more testing this time.
Ben Pfaff [Thu, 4 Sep 2008 18:13:11 +0000 (11:13 -0700)]
Tolerate existing definitions of MIN, MAX macros.
Enables partner builds.
Ben Pfaff [Thu, 4 Sep 2008 18:12:01 +0000 (11:12 -0700)]
Fix included headers.
Enables partner builds.
Ben Pfaff [Thu, 4 Sep 2008 18:10:46 +0000 (11:10 -0700)]
Rename struct queue to struct ofp_queue.
Fixes namespace conflict for partner development.
Ben Pfaff [Thu, 4 Sep 2008 17:46:38 +0000 (10:46 -0700)]
Avoid pointer arithmetic on void*.
This is a GCC extension not supported by other compilers.
Ben Pfaff [Thu, 4 Sep 2008 17:42:04 +0000 (10:42 -0700)]
Add -Wpointer-arith to compiler flags.
This should help us to avoid doing pointer arithmetic on void * pointers,
which is a GCC extension that other compilers do not support.
Ben Pfaff [Thu, 4 Sep 2008 17:35:50 +0000 (10:35 -0700)]
Rename struct buffer to struct ofpbuf.
Fixes namespace conflict for partner development.
Ben Pfaff [Thu, 4 Sep 2008 16:48:27 +0000 (09:48 -0700)]
Simplify code by using rconn_send_with_limit() helper function.
Ben Pfaff [Thu, 4 Sep 2008 16:47:33 +0000 (09:47 -0700)]
Initialize otherwise uninitialized variable.
Found by valgrind.
Ben Pfaff [Thu, 4 Sep 2008 16:47:05 +0000 (09:47 -0700)]
Respin "Make vconns keep track of their names and include them in log messages."
This time, leave out the segfaults.
Justin Pettit [Thu, 4 Sep 2008 00:51:42 +0000 (17:51 -0700)]
Add serial number to description status message.
Justin Pettit [Thu, 4 Sep 2008 00:43:30 +0000 (17:43 -0700)]
Revert "Make vconns keep track of their names and include them in log messages."
This reverts commit
a39a2431c12d25aab4d6ed560da3607611a74937.
Ben Pfaff [Wed, 3 Sep 2008 17:10:39 +0000 (10:10 -0700)]
Also disable atexit hooks in fatal_signal_fork().
This fixes a problem in ofp-discover, where it would daemonize itself
after setting an IP address on one of its interfaces. The daemonize
function would call fatal_signal_fork() then exit(0), which would in turn
cause the netdev code to disable the interface and thereby remove the IP
address.
The bug that this fixes was introduced in commit
3cc1ae6a3, "Add ability
to run fatal signal hooks upon normal termination too."
Ben Pfaff [Tue, 2 Sep 2008 22:44:58 +0000 (15:44 -0700)]
Do not send in-band control traffic to the controller.
This commit prevents the secure channel from sending any traffic to
or from the controller up to the controller over its OpenFlow connection.
Instead, such traffic is always handled completely locally. This is
what the changes to in-band control up until now have been converging on:
each time, we have reduced the category of traffic that can be sent up
to the controller because we have found that doing so can cause a control
loop. This change goes all the way.
Ben Pfaff [Tue, 2 Sep 2008 22:42:34 +0000 (15:42 -0700)]
Minimal fix for in-band control loop with hub.
When a hub has two switches and the controller on three of its ports,
control traffic from the controller to switch 1 is seen by switch 2 as
data traffic, and switch 2 sends it up over its OpenFlow connection. That
control traffic is in turn seen by the switch 1 as data traffic, and so
switch 1 sends it up over its OpenFlow connection. And so on: this is a
loop.
This commit fixes the situation by not sending up over the OpenFlow
connection traffic to the controller that arrived on the controller's
port, as well as traffic from the controller.
Ben Pfaff [Tue, 2 Sep 2008 21:28:22 +0000 (14:28 -0700)]
Make vconns keep track of their names and include them in log messages.
Ben Pfaff [Tue, 2 Sep 2008 20:44:49 +0000 (13:44 -0700)]
Update ext.
Ben Pfaff [Fri, 29 Aug 2008 17:05:14 +0000 (10:05 -0700)]
Make "make dist", "make clean" work without extensions submodule present.
Ben Pfaff [Fri, 29 Aug 2008 16:55:34 +0000 (09:55 -0700)]
Fix detection of OpenFlow extensions submodule.
Ben Pfaff [Fri, 29 Aug 2008 00:47:01 +0000 (17:47 -0700)]
Fix "make distcheck" error due to failure to clean files added by Automake.
Ben Pfaff [Fri, 29 Aug 2008 00:36:33 +0000 (17:36 -0700)]
Add support for extensions submodule.
Ben Pfaff [Wed, 27 Aug 2008 18:29:57 +0000 (11:29 -0700)]
Remove duplicate prefixes on switch-status items.
Ben Pfaff [Wed, 27 Aug 2008 18:29:53 +0000 (11:29 -0700)]
Make the secchan report a few more switch-status items.
Ben Pfaff [Wed, 27 Aug 2008 18:29:45 +0000 (11:29 -0700)]
Add ability to run fatal signal hooks upon normal termination too.
This is convenient since in many cases we want these hooks to run in
both cases.
Ben Pfaff [Wed, 27 Aug 2008 18:28:53 +0000 (11:28 -0700)]
Add license notice to acinclude.m4, configure.ac.
Ben Pfaff [Thu, 28 Aug 2008 20:17:16 +0000 (13:17 -0700)]
Make -P or --pidfile keep programs from running if already running.
Ben Pfaff [Thu, 28 Aug 2008 20:15:32 +0000 (13:15 -0700)]
Fix test for fcntl return value.
POSIX only says that -1 is an error; other return values have unspecified
meanings.
Ben Pfaff [Thu, 24 Jul 2008 00:38:42 +0000 (17:38 -0700)]
Make OpenFlow kernel module print protocol version.
Ben Pfaff [Wed, 27 Aug 2008 18:50:11 +0000 (11:50 -0700)]
Allow multiple -l or --listen options on secchan command line.
Bug #149.
Ben Pfaff [Tue, 19 Aug 2008 22:18:51 +0000 (15:18 -0700)]
vlog: Apply rate-limiting everywhere it seems warranted.
Ben Pfaff [Tue, 19 Aug 2008 22:16:57 +0000 (15:16 -0700)]
vlog: Implement rate-limiting.
Ben Pfaff [Tue, 19 Aug 2008 20:58:59 +0000 (13:58 -0700)]
vlog: Simplify vlog() by using dynamic-string functions.
Ben Pfaff [Tue, 19 Aug 2008 20:57:55 +0000 (13:57 -0700)]
New functions ds_put_strftime(), ds_chomp().
Ben Pfaff [Tue, 19 Aug 2008 20:57:17 +0000 (13:57 -0700)]
New header for saturating arithmetic.
Ben Pfaff [Tue, 19 Aug 2008 20:56:28 +0000 (13:56 -0700)]
Eliminate dpctl dependency on /sbin/ifconfig.
Ben Pfaff [Tue, 19 Aug 2008 20:47:17 +0000 (13:47 -0700)]
Allow multiple ports on dpctl addif and delif commands, for convenience.
Ben Pfaff [Tue, 26 Aug 2008 18:53:51 +0000 (11:53 -0700)]
Implement new OpenFlow "switch statistics" feature.
This should be useful for reporting the status of a switch on its
front-panel display (for those switches that have one) or in the
controller UI.
Ben Pfaff [Tue, 19 Aug 2008 18:17:58 +0000 (11:17 -0700)]
rconn: Add functions for reporting connection statistics.
Ben Pfaff [Tue, 19 Aug 2008 18:17:26 +0000 (11:17 -0700)]
Add functions for reporting dhcp client statistics.
Ben Pfaff [Tue, 19 Aug 2008 18:14:52 +0000 (11:14 -0700)]
Change netdev_get_in4() to re-check the IP address on each call.
As part of implementing switch stats, secchan wants to report the
IP address currently configured on an interface. Caching it for
all time defeats that purpose.
Ben Pfaff [Tue, 19 Aug 2008 18:12:59 +0000 (11:12 -0700)]
New functions ds_truncate(), ds_last().
Ben Pfaff [Tue, 19 Aug 2008 18:12:45 +0000 (11:12 -0700)]
New function ds_put_printable().
Use the function in dhcp_option_to_string().
Justin Pettit [Fri, 22 Aug 2008 20:21:58 +0000 (13:21 -0700)]
Fix a couple of typos.
Justin Pettit [Fri, 22 Aug 2008 19:47:54 +0000 (12:47 -0700)]
Send PORT_STATUS messages on port and link changes. Add ability to remotely enable and disable a port through the PORT_MOD message.
Ben Pfaff [Fri, 22 Aug 2008 17:34:15 +0000 (10:34 -0700)]
rconn: Fix bug #100, "Inactivity time-out slow under heavy load."
The timeout() function returns a duration relative to the time at which the
current state was entered, but rconn_run_wait() was treating it as the
waiting time remaining.
Ben Pfaff [Mon, 18 Aug 2008 22:01:35 +0000 (15:01 -0700)]
Un-learn the port on which a MAC is located after some time.
Otherwise, we can send frames the wrong port indefinitely, if the device
in question does not itself initiate sending data.
Justin Pettit [Thu, 21 Aug 2008 23:16:33 +0000 (16:16 -0700)]
Remove unnecessary AC_PROG_LD since OpenFlow no longer uses libtool.
Justin Pettit [Wed, 20 Aug 2008 00:06:10 +0000 (17:06 -0700)]
Initialize the table structures to zero.
Justin Pettit [Tue, 19 Aug 2008 06:48:58 +0000 (23:48 -0700)]
Cleanup git-status by not showing some unnecessary files.
Justin Pettit [Tue, 19 Aug 2008 05:23:03 +0000 (22:23 -0700)]
Fix problem where packets never matched in hash table and flows always added regardless of whether they currently exist.
Justin Pettit [Tue, 19 Aug 2008 05:13:36 +0000 (22:13 -0700)]
Link to the normal OpenFlow lib directory, not this hidden one.
Ben Pfaff [Fri, 8 Aug 2008 23:09:15 +0000 (16:09 -0700)]
Don't compare wildcards, nw_src_mask, nw_dst_mask fields in hash table.
They should always compare equal, so there's no point in wasting the
time.
Ben Pfaff [Fri, 8 Aug 2008 21:03:37 +0000 (14:03 -0700)]
Allow and use shorthands such as "ip" or "tcp" for specifying flows.
Ben Pfaff [Fri, 8 Aug 2008 21:05:09 +0000 (14:05 -0700)]
Make ofp_packet_in() print the flow corresponding to the buffer also.
Ben Pfaff [Thu, 7 Aug 2008 05:00:29 +0000 (22:00 -0700)]
Implement subnet mask matching in OpenFlow.
Ben Pfaff [Mon, 18 Aug 2008 21:20:21 +0000 (14:20 -0700)]
Use ETH_ALEN in place of hard-coded 6 in datapath/flow.h.
Ben Pfaff [Wed, 6 Aug 2008 21:12:22 +0000 (14:12 -0700)]
Fix typo in comment.
Justin Pettit [Mon, 18 Aug 2008 06:17:07 +0000 (23:17 -0700)]
Fix dump-flows to be usable by add-flows.
Some of the fields when printing a flow are hex, but they don't have a
preceeding "0x". When one tries to import them, they're treated as decimal
and weird results occur. Bug 27.
Justin Pettit [Mon, 18 Aug 2008 06:15:21 +0000 (23:15 -0700)]
Use a consistent naming convention for counts.