Commit Graph

37 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
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 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
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
Brandon Heller 6e342edace Merge commit 'nicira-public/master' into experimental 2008-11-25 07:00:40 -08:00
Brandon Heller 103e686c2c merged Nicira wire version 0x96 updates; also added compat.h to datapath/linux-2.6/compat-2.6/compat26.h 2008-11-21 15:03:50 -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 b4518e78a0 New function netdev_set_etheraddr(). 2008-10-29 13:46:54 -07:00
Ben Pfaff a948b96315 New routine ofpbuf_put_zeros() to simplify a common code sequence. 2008-10-14 13:31:09 -07:00
Ben Pfaff 3bcc21747f Add support for TAP virtual network devices in netdev. 2008-10-09 15:53:05 -07:00
Ben Pfaff 6de5998363 No longer necessary to obtain Ethernet header in netdev_send(). 2008-10-06 09:49:15 -07:00
Glen Gibb 1feb499bf3 Merge commit '7b3017805866b2bb36a092a3ea25ff0ec9b6fd9e' into experimental
Conflicts:

	datapath/hwtable-dummy/hwtable-dummy.c
	datapath/hwtable_dummy/Modules.mk
	datapath/hwtable_dummy/hwtable_dummy.c
	datapath/hwtable_nf2/hwtable_nf2.c
	utilities/dpctl.c

Resolved above conflicts
2008-09-22 16:02:39 -07:00
Justin Pettit 9da88ee2ad Modify OpenFlow commands related to ports to be more expressive.
This new OpenFlow message format provides a cleaner interface and greater
detail and control over ports.  It is now possible to see what features
the switch's port is currently configured as having, what it's advertising,
and what it's capable of handling.  It is also possible to return the
features advertised by the port's peer.
2008-09-22 15:18:22 -07:00
Ben Pfaff eb0341e711 Rename utility functions to avoid partner namespace conflicts. 2008-09-04 13:53:27 -07:00
Ben Pfaff 5549180a54 Rename struct buffer to struct ofpbuf.
Fixes namespace conflict for partner development.
2008-09-04 13:53:26 -07:00
Ben Pfaff 3cc1ae6a32 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.
2008-08-28 14:24:39 -07:00
Ben Pfaff ab43666b20 vlog: Apply rate-limiting everywhere it seems warranted. 2008-08-26 13:25:21 -07:00
Ben Pfaff 16c4a745d7 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.
2008-08-26 11:51:17 -07:00
Justin Pettit f1c6daebf3 Send PORT_STATUS messages on port and link changes. Add ability to remotely enable and disable a port through the PORT_MOD message. 2008-08-22 12:47:54 -07:00
Ben Pfaff 2d4b692ecd netdev: Let netdev_get_in4(), netdev_get_in6() take null pointer argument.
Some callers want to just test whether the device has an address assigned
and don't care about the particular address, so this simplifies those
callers slightly.
2008-07-30 15:46:38 -07:00
Ben Pfaff f730dded18 Move Autoconf's macro definitions into config.h.
This makes "make" output slightly more readable.
2008-07-21 15:05:53 -07:00
Ben Pfaff bc286c00ea netdev: add ability to set IPv4 addresses and add a default gateway. 2008-07-18 14:07:03 -07:00
Ben Pfaff 2afec34627 netdev: Add ability to permanently set device flags. 2008-07-18 13:55:12 -07:00
Ben Pfaff 68798b7c18 netdev: Use SOCK_RAW instead of SOCK_PACKET.
A comment previously claimed this wasn't possible, but it
was wrong (and due to misunderstanding kernel code).
2008-07-18 13:43:41 -07:00
Ben Pfaff 24eb1d1546 netdev: Add more functions for manipulating device flags.
These are convenient for use in secchan and elsewhere.
2008-07-18 13:43:41 -07:00
Ben Pfaff 9dc091a35f netdev: New function netdev_drain(). 2008-07-18 13:42:38 -07:00
Ben Pfaff e55d52c988 netdev: Add argument to netdev_open() to specify Ethernet type to capture.
This is needed by the controller, which wants to listen only for
OpenFlow discovery BPDUs on its network devices.

Also, update all existing callers.
2008-07-18 13:42:38 -07:00
Ben Pfaff b563a5247c netdev: Do not modify the caller's buffer in netdev_send().
This makes it possible to use a buffer whose contents are stack-allocated.
2008-07-18 13:42:38 -07:00
Ben Pfaff a92ae5b340 New function netdev_arp_lookup().
The secchan needs to handle ARP requests from the controller itself, so
it has to translate the controller's IP address into a MAC address to
allow it to match those packets on dl_src.  (OpenFlow doesn't allow us
to look into ARP packets and match on the encapsulated IP addresses, so
this is the best we can do.)
2008-07-18 13:23:23 -07:00
Bobby Holley 3b54fddc2c Defined SPEED_2500 in lib/netdev.c if it wasn't defined already (it's not in
the header for 2.4). Not sure if there's a better fix, but this should work
for now.
2008-06-23 20:56:39 -07:00
Bobby Holley 654df2cfab Fix for the breakage on 2.4 due to the use use of kernel style int types in
userspace.
2008-06-23 20:32:02 -07:00
Ben Pfaff 23e054dcb6 New functions for getting and setting network device flags.
This allows us to open network devices without bringing them up
and setting them for promiscuous mode, which will be useful in the
secchan for in-band communication.
2008-05-28 10:46:54 -07:00
Ben Pfaff 6b8436f66b Expose device IP addresses through netdev.
This will be useful for the secure channel later.
2008-05-28 10:46:54 -07:00
Ben Pfaff 735683ac61 Move netdev from switch to lib.
This is in preparation for the secure channel wanting to access
network devices.
2008-05-28 10:46:54 -07:00