Refactor the OpenFlow implementation.
authorBen Pfaff <blp@nicira.com>
Mon, 2 Mar 2009 21:42:44 +0000 (13:42 -0800)
committerBen Pfaff <blp@nicira.com>
Mon, 2 Mar 2009 21:42:44 +0000 (13:42 -0800)
commitbc45868c8d8f59392999b2f0aec6f9f54d5cfadc
tree5930067e2b62a83d4e694e6cf4cc11834d1874ec
parent36adf7631ee8dff82b2e0f55af131f141e1611fe
Refactor the OpenFlow implementation.

This new implementation has an architecture that is much more suited to
eventually getting pushed upstream into the Linux kernel, because it does
not do any OpenFlow processing in the kernel.  Rather, we define a new
"datapath protocol" that secchan uses, via ioctl calls, to set up the
flow table in the kernel.

This implementation also should have much better performance with flows
that contain wildcards, since it uses a flow classifier that should be
much better than linear search in the cases that we suspect are important.

This release does contain some feature regressions; see the new file
MISSING at the root of the tree for more information.  We will be fixing
these regressions over the next weeks and months.

This has not been tested much.  It needs plenty of testing and QA before it
will be suitable for any kind of production environment.  The vswitchd
changes, in particular, have not been tested at all and thus vswitchd is
likely to be broken.
116 files changed:
MISSING [new file with mode: 0644]
Makefile.am
datapath/Modules.mk
datapath/actions.c [new file with mode: 0644]
datapath/actions.h [new file with mode: 0644]
datapath/brcompat.c
datapath/chain.c [deleted file]
datapath/chain.h [deleted file]
datapath/crc32.c [deleted file]
datapath/crc32.h [deleted file]
datapath/datapath.c
datapath/datapath.h
datapath/dp_act.c [deleted file]
datapath/dp_act.h [deleted file]
datapath/dp_dev.c
datapath/dp_notify.c
datapath/flow.c
datapath/flow.h
datapath/forward.c [deleted file]
datapath/forward.h [deleted file]
datapath/hwtable_dummy/hwtable_dummy.c
datapath/nx_act.c [deleted file]
datapath/nx_act.h [deleted file]
datapath/nx_act_snat.c [deleted file]
datapath/nx_act_snat.h [deleted file]
datapath/nx_msg.c [deleted file]
datapath/nx_msg.h [deleted file]
datapath/snat.c [new file with mode: 0644]
datapath/snat.h [new file with mode: 0644]
datapath/table-hash.c [deleted file]
datapath/table-linear.c [deleted file]
datapath/table.c [new file with mode: 0644]
datapath/table.h [deleted file]
include/openflow/datapath-protocol.h [new file with mode: 0644]
include/openflow/nicira-ext.h
include/openflow/openflow-netlink.h
lib/automake.mk
lib/classifier.c
lib/classifier.h
lib/dhcp-client.c
lib/dpif.c
lib/dpif.h
lib/flow.c
lib/flow.h
lib/learning-switch.c
lib/mac-learning.c
lib/mac-learning.h
lib/ofp-print.c
lib/vconn-netlink.c [deleted file]
lib/vconn-provider.h
lib/vconn.c
lib/vconn.h
lib/vlog-modules.def
m4/libopenflow.m4
secchan/automake.mk
secchan/discovery.c
secchan/discovery.h
secchan/executer.c
secchan/executer.h
secchan/fail-open.c
secchan/fail-open.h
secchan/flow-end.c [deleted file]
secchan/flow-end.h [deleted file]
secchan/in-band.c
secchan/in-band.h
secchan/netflow.c [new file with mode: 0644]
secchan/netflow.h
secchan/ofproto.c [new file with mode: 0644]
secchan/ofproto.h [new file with mode: 0644]
secchan/pinsched.c [new file with mode: 0644]
secchan/pinsched.h [new file with mode: 0644]
secchan/pktbuf.c [new file with mode: 0644]
secchan/pktbuf.h [new file with mode: 0644]
secchan/port-watcher.c [deleted file]
secchan/port-watcher.h [deleted file]
secchan/ratelimit.c [deleted file]
secchan/ratelimit.h [deleted file]
secchan/secchan.8.in
secchan/secchan.c
secchan/secchan.h
secchan/snat.c [deleted file]
secchan/snat.h [deleted file]
secchan/status.c
secchan/status.h
secchan/stp-secchan.c [deleted file]
secchan/stp-secchan.h [deleted file]
tests/test-classifier.c
tests/test-flows.c
udatapath/.gitignore [deleted file]
udatapath/automake.mk [deleted file]
udatapath/chain.c [deleted file]
udatapath/chain.h [deleted file]
udatapath/crc32.c [deleted file]
udatapath/crc32.h [deleted file]
udatapath/datapath.c [deleted file]
udatapath/datapath.h [deleted file]
udatapath/dp_act.c [deleted file]
udatapath/dp_act.h [deleted file]
udatapath/nx_act.c [deleted file]
udatapath/nx_act.h [deleted file]
udatapath/nx_msg.c [deleted file]
udatapath/nx_msg.h [deleted file]
udatapath/switch-flow.c [deleted file]
udatapath/switch-flow.h [deleted file]
udatapath/table-hash.c [deleted file]
udatapath/table-linear.c [deleted file]
udatapath/table.h [deleted file]
udatapath/udatapath.8.in [deleted file]
udatapath/udatapath.c [deleted file]
utilities/automake.mk
utilities/dpctl.c
utilities/nlmon.c [new file with mode: 0644]
vswitchd/brcompat.c
vswitchd/bridge.c
vswitchd/flowtrack.c
vswitchd/flowtrack.h