From b69fe6b1031990bd9c86993864f43ecd89f62717 Mon Sep 17 00:00:00 2001 From: Justin Pettit Date: Fri, 1 Jul 2011 14:07:16 -0700 Subject: [PATCH] PORTING: Add some minor clarifications. --- PORTING | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/PORTING b/PORTING index 34c71f45..3dd0bfc5 100644 --- a/PORTING +++ b/PORTING @@ -53,7 +53,7 @@ these components should not need to be modified as part of a port: - "ofproto" is the Open vSwitch library, in ofproto/, that implements an OpenFlow switch. It talks to OpenFlow controllers - over the network and to switch hardware or software to an + over the network and to switch hardware or software through an "ofproto provider", explained further below. - "netdev" is the Open vSwitch library, in lib/netdev.c, that @@ -146,7 +146,11 @@ depends on a few different factors: other features. An ofproto provider has to provide its own implementations, if the hardware can support them at all. - * A dpif provider is usually easier to implement. + * A dpif provider is usually easier to implement, but most + appropriate for software switching. It "explodes" wildcard + rules into exact-match entries. This allows fast hash lookups + in software, but makes inefficient use of TCAMs in hardware + that support wildcarding. The following sections describe how to implement each kind of port. @@ -156,7 +160,7 @@ ofproto Providers An "ofproto provider" is what ofproto uses to directly monitor and control an OpenFlow-capable switch. struct ofproto_class, in -ofproto/private.h, defines the interfaces to implement a ofproto +ofproto/private.h, defines the interfaces to implement an ofproto provider for new hardware or software. That structure contains many function pointers, each of which has a comment that is meant to describe its behavior in detail. If the requirements are unclear, @@ -243,7 +247,7 @@ name makes the intended use obvious. ovs-vswitchd is the most sophisticated of ofproto's clients, but ofproto can have other clients as well. test-openflowd, in the -tests directory, is much simpler than ovs-vswitchd. It may be +"tests" directory, is much simpler than ovs-vswitchd. It may be easier to initially bring up test-openflowd as part of a port. lib/entropy.c assumes that it can obtain high-quality random number -- 2.30.2