X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=PORTING;h=1ac1c636cb0e71141cceabaf132f86370ba545f4;hb=5bee6e2638989aff14429c5a85fa7cef196f2106;hp=3a6faa4685c6ce661073a23999b59ec0b58866b6;hpb=a4ae54e15697a7e5437c7fd86637daf644d4bdd2;p=ovs.git diff --git a/PORTING b/PORTING index 3a6faa468..1ac1c636c 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,9 +160,9 @@ 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 -provider for new hardware or software. That structure contains many -function pointers, each of which has a comment that is meant to +ofproto/ofproto-provider.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, please report this as a bug. @@ -197,7 +201,7 @@ into the Open vSwitch architecture: userspace | +--------+ | dpif | | | | netdev | +--------+ | | |provider| | dpif | | - | +---||---+ +--------+ | + | +---||---+ +--------+ | | || | dpif | | implementation of | || |provider| | ofproto provider |_ || +---||---+ | @@ -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