[ovs-dev] [tunnel 09/11] lib: Switch to flow based tunneling.

Ben Pfaff blp at nicira.com
Mon Jan 28 20:58:05 UTC 2013

On Sun, Jan 27, 2013 at 04:58:10PM -0800, Ethan Jackson wrote:
> With this patch, ovs-vswitchd uses flow based tunneling
> exclusively.  I.E. each kind of tunnel shares a single tunnel
> backer in the datapath.  Tunnel headers are set by userspace using
> the ipv4_tunnel datapath action.  And, the configuration of
> individual tunnels is now a userspace responsibility, so
> netdev-vport no longer marshals and unmarshals Netlink attributes
> for tunnel configuration, instead only storing the configuration
> internally.  There are still some significant pieces of work to do,
> but the basic building blocks are there to begin testing.
> Signed-off-by: Jesse Gross <jesse at nicira.com>
> Signed-off-by: Ethan Jackson <ethan at nicira.com>

Normally the author and the first sign-off should be the same.  Is
this adapted with significant changes from a patch of Jesse's?  It's
reasonable to change the authorship in that case if the changes seem
significant enough but then one would ordinarily change the first
sign-off to a textual credit.  Or sometimes I've done it as:

    Signed-off-by: Ethan Jackson <ethan at nicira.com>
    Co-authored-by: Jesse Gross <jesse at nicira.com>
    Signed-off-by: Jesse Gross <jesse at nicira.com>

Anyway, that's enough procedural nonsense.

@@ -138,11 +139,11 @@ struct ofmirror {
     struct hmapx srcs;          /* Contains "struct ofbundle *"s. */
     struct hmapx dsts;          /* Contains "struct ofbundle *"s. */
     unsigned long *vlans;       /* Bitmap of chosen VLANs, NULL selects all. */
     /* Output (exactly one of out == NULL and out_vlan == -1 is true). */
-    struct ofbundle *out;       /* Output port or NULL. */
+    struct ofbundle *out;       /* Output port or null. */

This is an odd change because, just below, there is a new comment that
reads NULL instead of null:
+    struct tnl_port *tnl_port;  /* Tunnel handle, or NULL. */

Here, I understand why we skip 'tnl_backers'.  Why do we skip 'ports'?
+        HMAP_FOR_EACH (ofproto, all_ofproto_dpifs_node,
+                       &all_ofproto_dpifs) {
+            if (sset_contains(&ofproto->ports, devname)
+                || sset_contains(&ofproto->backer->tnl_backers, devname)) {
+                goto next;
+            }
+        }

ofproto-dpif is getting to be such a mess.  We need to schedule time
for cleanup.

More information about the dev mailing list