Commit Graph
667 Commits
Author SHA1 Message Date
Justin Pettit 60bb88023b By more liberal (egads!) about allocating space for netlink messages. 2008-04-02 16:48:29 -07:00
Ben Pfaff ebb1d65cf7 Allow timeout implementations to block, by using a kernel thread instead of a timer.
This is required on the Quanta platform, which needs to down a semaphore
inside the timeout implementation.

Also, add a 2.4 compatibility implementation of kthread so that both
2.4 and 2.6 can use the kthread API.
2008-04-01 13:01:07 -07:00
Ben Pfaff 15bd8ce4ba Fix typo in comment. 2008-04-01 13:01:07 -07:00
Ben Pfaff 88ce0ff709 Add clarifying comment. 2008-04-01 10:00:40 -07:00
Ben Pfaff 666158e792 Get rid of tables' dependency on the datapath. 2008-04-01 09:52:59 -07:00
Ben Pfaff c720cc542a Make the datapath responsible for the controller connection also. 2008-04-01 09:52:59 -07:00
Ben Pfaff fadf2608a7 Merge datapath.[ch] with forward.[ch]. 2008-04-01 09:52:59 -07:00
Ben Pfaff dbb2acb53e Better abstract controller_connection. 2008-04-01 09:52:59 -07:00
Ben Pfaff f180230927 Reverse the dependency of controller.c on forward.c.
Now controller.c doesn't depend on datapath.c or forward.c,
which brings us one step closer to a reasonable dependency
hierarchy.
2008-04-01 09:52:59 -07:00
Ben Pfaff e283eeb6e7 Hide contents of sw_chain. 2008-04-01 09:52:59 -07:00
Ben Pfaff d819180e3d Add comments to queue module. 2008-04-01 09:52:59 -07:00
Ben Pfaff 327a6be24f Clean up and comment poll-loop module. 2008-04-01 09:52:59 -07:00
Ben Pfaff 704c2666c6 Clean up and comment netdev implementation. 2008-04-01 09:52:59 -07:00
Ben Pfaff 57ed58bca4 Get rid of ip.h, migrating its users to packets.h. 2008-04-01 09:52:59 -07:00
Ben Pfaff d927b51cb4 Get rid of mac.h, migrating its users to packets.h.
As a consequence, this fixes tests for multicast and local Ethernet
addresses, which formerly tested for the high bits but should
have tested for the low bits of the first octet.
2008-04-01 09:52:59 -07:00
Ben Pfaff 62a5944bb3 Support jumbo frames, by allocating enough memory for the device MTU. 2008-04-01 09:52:59 -07:00
Ben Pfaff b500040ab2 Use LIST_FOR_EACH_SAFE, not LIST_FOR_EACH, when deleting from a list. 2008-04-01 09:52:59 -07:00
Ben Pfaff 34e3dc5916 Fix memory leak in poll-loop.c. 2008-04-01 09:52:59 -07:00
Justin Pettit 1558120be7 - Fixed endian issue with action type. Thanks, Ben!
- Removed BUG() call that could be maliciously/accidentally triggered by a faulty controller.
- Switched from __constant_htons to htons, which seems preferred.
2008-03-30 01:41:42 -07:00
Justin Pettit 3c08544960 Fixed some tab/space issues. 2008-03-30 01:38:01 -07:00
Justin Pettit 005486c773 Fixed some space/tab issues. 2008-03-30 01:37:33 -07:00
Justin Pettit 214eecdc74 Remove dead "t" directory. 2008-03-30 00:39:54 -07:00
Justin Pettit 978cbbfb82 Increase the version number to v0.2.1. 2008-03-28 10:10:44 -07:00
Ben Pfaff 8a7d8ff6bf Compile, but do not distribute, the generate file dhparams.c.
Improves upon 3d5c5b2b2, "Remove explicit addition of auto-generated
dhparams.c", by allowing "make" to work as well as "make dist" :-)
2008-03-28 09:36:45 -07:00
Justin Pettit 3d5c5b2b2a Remove explicit addition of auto-generated dhparams.c, since it makes "make dist" puke. 2008-03-28 00:17:45 -07:00
Justin Pettit e943605b31 Remove dead linux-2.6-uml directory. 2008-03-28 00:04:09 -07:00
Justin Pettit 3e81299a19 Increase version to 0.2.0. 2008-03-27 23:59:37 -07:00
Justin Pettit ba6cc49c65 Update references to point to non-alpha OpenFlow site. 2008-03-27 23:58:48 -07:00
Justin Pettit de6e0a76a3 Update 2007 copyrights to include 2008. 2008-03-27 23:51:58 -07:00
casado 3f0201adb5 Update copyright on all non-GPL files 2008-03-27 20:12:18 -07:00
casado 6209d47f7b - Turn off ssl support by default
- Update docs
- Add ldl to link line (needed from non-ssl builds)
2008-03-27 19:48:54 -07:00
Ben Pfaff 10fad27b63 Add list of to-do items for userspace switch. 2008-03-27 17:50:33 -07:00
Ben Pfaff a8b4fd4096 Improve comment. 2008-03-27 17:50:33 -07:00
Ben Pfaff 8ca0b52be6 Documentation wording improvements from Justin. 2008-03-27 17:50:33 -07:00
Ben Pfaff 18f6c89fb0 Set l4 pointer properly in buffers that contain IP options.
The important part of this change is handling of IP options.  The
rest is intended to ensure that packet->l3 and packet->l4 never
point outside the valid range of a packet in the presence of a
minimum-length Ethernet frame.  Other code (particularly in forward.c)
assumes that if the IP protocol is TCP or UDP, then packet->l4 points
to a tcp_header or udp_header.  Whether this is a good idea is
debatable--it probably warrants clean-up, at least--but that what's
there now.
2008-03-27 17:50:33 -07:00
Ben Pfaff 98d149406a Implement userspace switch. 2008-03-27 17:50:33 -07:00
Ben Pfaff fa20a0ed56 Add tag to enum for OpenFlow statistics type. 2008-03-27 17:50:33 -07:00
Ben Pfaff ee5d466f7f New function list_replace(), to replace a list element in-place. 2008-03-27 17:50:33 -07:00
Ben Pfaff 76c58e37e3 Add pointers to headers to buffer, and initialize them in flow_extract.
This will be used in the userspace switch implementation.
2008-03-27 17:50:33 -07:00
Ben Pfaff bce273b4c0 Add abstraction of packet queue, and use it in the controller.
The packet queue abstraction will also be used in the userspace
switch.
2008-03-27 17:50:33 -07:00
Ben Pfaff a9111b6015 Add the ability to connect to a vconn asynchronously.
Until now, vconn_connect() has always completed the connection
synchronously, blocking as necessary.  In the userspace
switch, we want to be able to continue forwarding packets even
if the connection to the controller drops.  Thus, this change set
that makes that possible.

The approach taken is perhaps more ambitious than needed, as it
actually adds a new high-level mechanism for polling on arbitrary
file descriptors.  This necessitates quite a bit of change to
each of the userspace programs that use vconns, but it also has
the effect of simplifying them.  The new structure of these programs
is a lot less fragile than the old one (which tended to end up
livelocking or hanging when something wasn't quite right), so it
seems like the changes are worth it.
2008-03-27 17:50:33 -07:00
Ben Pfaff 5f9a684de5 Add 1024-bit Diffie-Hellman parameters to vconn-ssl.
1024-bit Diffie-Hellman is somewhat weak, but I haven't been able to
figure out how to make OpenSSL use longer Diffie-Hellman keys than that.
If this isn't available, OpenSSL doesn't let connections proceed.

This change should be reverted when we figure out how to make OpenSSL
use longer Diffie-Hellman keys.
2008-03-27 17:50:33 -07:00
Ben Pfaff 5875f5b634 Make vlog preserve errno.
This means that adding logging to code disturbs the program's state
as little as possible.  This is a precautionary measure, not in response
to any particular bug.
2008-03-27 17:50:33 -07:00
Ben Pfaff beddfa0e0e Add additional definitions for Ethernet addresses and headers and for VLAN headers. 2008-03-27 17:50:33 -07:00
Ben Pfaff be8f42912a Fix LIST_FOR_EACH_SAFE macro.
The previous definition had a syntax error that prevented it from
working.
2008-03-27 17:50:33 -07:00
Ben Pfaff 8dae627930 Initialize pad byte in ofp_packet_in messages, to avoid leaking kernel state. 2008-03-27 17:50:33 -07:00
root 291431ce2d Add "#include <string.h>" so strerror() doesn't produce compiler warnings. 2008-03-20 18:14:58 -07:00
Ben Pfaff 852d777bc1 Mention additional required software for working from a Git tree. 2008-03-20 12:03:14 -07:00
Justin Pettit d170209c76 Make sure all the needed SSL files are included in generated distributions. 2008-03-19 23:13:42 -07:00
Justin Pettit f9a097c3b4 Correct the date of the 1.9 release. 2008-03-19 23:12:08 -07:00