[ovs-git] Open vSwitch: ofproto: Break apart into generic and hardware-specific parts. (next)

dev at openvswitch.org dev at openvswitch.org
Tue Apr 26 00:13:16 UTC 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, next has been created
        at  4e69744de8f2326a43fa4b8d753d848bb370084a (commit)

- Log -----------------------------------------------------------------
commit 4e69744de8f2326a43fa4b8d753d848bb370084a
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Apr 25 13:34:07 2011 -0700

    ofproto: Break apart into generic and hardware-specific parts.
    
    In addition to the changes to ofproto, this commit changes all of the
    instances of "struct flow" in the tree so that the "in_port" member is an
    OpenFlow port number.  Previously, this member was an OpenFlow port number
    in some cases and an ODP port number in other cases.

commit 80100e329a341931fcf85515f5bd5a16030a953b
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Apr 11 16:09:42 2011 -0700

    ofproto: Complete abstraction by adding enumeration and deletion functions.
    
    This eliminates the final reference from bridge.c directly into the dpif
    layer, which will make it easier to change the implementation of ofproto
    to support other lower layers.

commit 6ff629c7d17c0ed5df85b6ab44008e162f8af3a4
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Apr 11 16:10:56 2011 -0700

    ofproto: Improve abstraction by using OpenFlow port numbers in interface.
    
    Until now, ofproto has used a mix of datapath and OpenFlow port numbers in
    its client interface.  This commit changes it to use OpenFlow port numbers
    exclusively, to raise the level of abstraction.
    
    Most of this commit boils down to simple search-and-replace with a few
    call to ofp_port_to_odp_port() sprinkled in.  The addition of ofproto_port
    is one exception.  An ofproto_port is almost the same as a dpif_port; the
    difference is just that its port number is an OpenFlow port number instead
    of a datapath port number.

commit 52e37838808f14b3b5bc61cdcabab3850142804a
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Apr 11 15:08:19 2011 -0700

    ofproto: Improve abstraction by adding function ofproto_parse_name().
    
    This means that ovs-ofctl and ovs-openflowd don't have to use the dpif
    layer at all, making it easier to change the ofproto implementation.

commit 2879d03365cce7ad92e0f857d6f7f39af661718a
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Apr 11 15:07:07 2011 -0700

    dpif: Make dp_parse_name() normalize its returned type.
    
    This means that callers don't have to be concerned with a NULL return value
    or unnormalized type.

commit 0c05793df6f02ead0b4f1fb97e60702a86ef3c1e
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Apr 11 14:23:23 2011 -0700

    dpif: Improve abstraction by making 'run' and 'wait' functions per-dpif.
    
    Until now, the dp_run() and dp_wait() functions ad to be called at the top
    level of the program because they applied to every open dpif.  By replacing
    them by functions that take a specific dpif as an argument, we can call
    them only from ofproto, which is currently the correct layer to deal with
    dpifs.

commit 6109cb2367119fc1725da2ab61ecffedf6562cf8
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Apr 20 15:26:18 2011 -0700

    bridge: Move packet processing functionality into ofproto.
    
    Until now, packet processing in ovs-vswitchd has been split between two
    components: ofproto, for basic OpenFlow functionality, and bridge, for
    OFPP_NORMAL processing.  This architecture will not work as Open vSwitch
    starts to support a wider variety of underlying hardware, because it
    imposes a model in which the bridge needs to be able to look at every
    exact-match flow within a OpenFlow flow, which most hardware doesn't
    support.
    
    Therefore, this commit moves all of the packet processing code in
    bridge into ofproto, as preparation for generalizing further.

commit 268f2c0e841dedfcad0eee9fe3cb17009ea77f86
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Apr 20 15:22:26 2011 -0700

    ofproto: Update ports immediately upon ofproto_port_add() too.
    
    I don't see a reason to defer this.

commit 967c9b180b50656bf08d563cddc86a41a0ece679
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Apr 20 15:16:18 2011 -0700

    ofproto: Add a pointer to the owning ofproto to struct ofport.
    
    This streamlines a few function calling interfaces.

commit 2cdac695921d6ad57b4d6118c7e3ab86006e094c
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Apr 20 15:13:46 2011 -0700

    ofproto: Initialize ports immediately upon ofproto creation.
    
    I don't see why we should delay initializing the ports to the first call
    of ofproto_run1().  We originally did initialize the ports in
    ofproto_create(), but back in January 2010 Jesse moved the call into
    ofproto_run1() in commit 149f577a "netdev: Fully handle netdev lifecycle
    through refcounting."  The commit message doesn't explain why this
    particular change was made, so I can only assume that it was important at
    the time.  Now, however, everything seems to work fine with initialization
    done in the most logical place.

commit 5bc505d60ed6ebcb852e65e93c5e4850df71b4c2
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Apr 7 14:43:14 2011 -0700

    dpif: Better log unusual errors in dpif_port_query_by_name().
    
    Logging these unusual errors at a low level means that we can remove a
    bit of higher-level code from ofproto.
    
    The ofproto change also changes behavior for these error cases, from doing
    nothing to removing the port, but I think that's OK.  I've never noticed
    this log message.

commit 1c82b4cafa97b7d7ca03f3053c2ff021b6253cf6
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Apr 7 17:10:48 2011 -0700

    hmapx: New data structure.

commit 0979a5afa3d8aa1d969ac781c68df83854ae6865
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Apr 7 14:31:26 2011 -0700

    bond: New function bond_slave_set_netdev().
    
    To be used by an upcoming change.

commit d8d3946ee5eab8823300e9d3fa342ff47bac05f8
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Apr 8 12:35:38 2011 -0700

    ofproto: Add 'name' field to struct ofproto and use hmap instead of shash.
    
    It's slightly inconvenient to call into dpif_name() just to get the name
    of an ofproto.  Furthermore, we're already keeping a copy of the ofproto's
    name around, in the 'name' field of its shash_node.  It seems easier all
    around if we just keep the name right in the struct ofproto and use an
    hmap instead of a shash.

commit 7343b3f1cabc2327054667e526a5790ae020effe
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Apr 5 16:34:09 2011 -0700

    ofproto: Rename ofproto_iface_*() functions to ofproto_port_*().
    
    This makes ofproto use the term "port" consistently for a single
    purpose (which is unfortunately different from the term "interface"
    used in the OVS database, but at least it is now internally
    consistent).

commit f43b190f24673773c0bf936a6a87cf67f3b19fd4
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Apr 14 13:16:47 2011 -0700

    ofproto: Move private definitions to separate header.

commit 6521bcfabb6a9a0efd3d08a63059011cf01dd57e
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Apr 8 13:50:21 2011 -0700

    bridge: Reorder configuration.
    
    This loses the bridge_run_one() before iface_configure_cfm(), which means
    that CFM configuration can now take two reconfigurations in a row.  That's
    a regression that we had earlier, which had been fixed previously by commit
    392730c42bb "bridge: Run once before configuring CFM".  It will, however,
    be fixed again in a later commit.

commit c0e324cb2ccbe37389004d6f2b24f12eadefccce
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Apr 5 12:52:58 2011 -0700

    dpif: New function dpif_normalize_type().
    
    This allows dpif types to be compared.

commit 37da9374b509ae39c94f48b62be240ae2332b0a1
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Apr 4 17:07:05 2011 -0700

    bridge: Factor code out of bridge_reconfigure().
    
    This is almost entirely code motion.  I only made minor style changes as
    I moved code around.

commit 4d8225899ccff69d860d6c7e0effda16033b3390
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Apr 21 13:49:29 2011 -0700

    bridge: Get rid of bridge_get_all_ifaces(), bridge_fetch_dp_ifaces().
    
    The bridge_get_all_ifaces() function is rather odd.  It creates an shash
    index over the "struct iface"s within a bridge, but there's already an
    index over them (the 'iface_by_name' hmap in struct bridge) that the
    iface_lookup() function searches.  The only value it adds is to put the
    names of bond fake ifaces into the index, but that's hardly worth it.  We
    can just search the existing hash table as needed, instead.
    
    The bridge_fetch_dp_ifaces() function is also odd.  It fetches the entire
    mapping from port number to name from the dpif again, although this has
    already been done twice already.  We can just merge this in with the second
    iteration.
    
    This commit makes both of those changes.

commit a04c5b49bed92f7c0ad5111000919cdf50673633
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Apr 4 14:11:16 2011 -0700

    bridge: Change all_bridges from list to hmap (indexed by name).
    
    This is more convenient for looking up a bridge by name.  That makes
    reconfiguration a little bit simpler, because there is no longer a need to
    build a temporary index of existing bridges.  I don't see any downsides.

commit e0de40ced93bf65da4bdecd1d2c9c997e2500e34
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Apr 14 11:45:36 2011 -0700

    bridge: Eliminate direct dependencies on dpif.
    
    The 'ofp_portp' argument of the new function ofproto_port_add() is always
    set to NULL in this commit, but a future commit will use nonnull values.

commit afa1290b11e08ed25c1e8e2f37938cf9f3cf0c24
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Apr 1 11:42:25 2011 -0700

    bridge: Change 'iface_by_name' from shash to hmap.
    
    This avoids having duplicate copies of interface names (inside the shash)
    and it isn't any harder to work with.

commit 006325a154254c4f11f6c2302519b054d3d1f375
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Mar 29 14:42:20 2011 -0700

    Convert remaining network-byte-order "uint<N>_t"s into "ovs_be<N>"s.
    
    I looked at almost every uint<N>_t in the tree to determine whether it was
    really in network byte order, and converted the ones that were.
    
    The only remaining ones, modulo my mistakes, are in openflow.h.  I'm not
    sure whether we should convert those, because there might be some value
    in remaining close to upstream for this header.

commit 3350f414cb0703426a22256bf91b8c1c5ae6089b
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Mar 29 14:11:39 2011 -0700

    ofproto: Maintain ofp_phy_port for each ofport in network byte order.
    
    It's rather confusing to have an instance of a whole structure in an
    unexpected byte order.  This commit gets rid of that oddity.

commit 2a93b6d44b480e3b74ab57602099294888661d7d
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Mar 29 13:10:34 2011 -0700

    ofproto: Group struct cfm forward declaration with the rest of them.

commit c5fadfbdd3ddb8650deb9da4e11daee78d597136
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Apr 14 13:17:09 2011 -0700

    ofproto: Make ofproto_send_packet() static.
    
    It's not used outside of ofproto.c any longer.

commit c6793c1ab18d4b1947641cba8afff1ce2acd1aae
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Mar 29 12:23:06 2011 -0700

    bridge: Use bridge name, instead of dpif name, in log messages.
    
    This reduces the number of direct references to the dpif, which
    future commits will eliminate from the bridge code.

commit fb93b1ee8acb5c4e4d7322190807303610e5f758
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Mar 29 11:32:25 2011 -0700

    bridge: Inline iterate_and_prune_ifaces() and remove it.
    
    The main reason that iterate_and_prune_ifaces() existed was because it was
    somewhat inconvenient to iterate across all of the interfaces, especially
    if anything needed to be deleted.  Now that we've switched from arrays to
    lists and hmaps, it's a bit easier, and certainly it's easier to read code
    when there aren't any callbacks involved, so inline what this was doing.
    
    This was the only remaining caller of iterate_and_prune_ifaces() so this
    removes that function as well as the callback.

commit 07b749b064b489426838d0f1a9d39a0462363110
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Mar 29 11:17:33 2011 -0700

    bridge: Avoid extra iteration through all "struct iface"s.
    
    There's no reason to do these separately as far as I can see.

commit 8e2e7a5d54779ac8ee880fdef612c6eaa9ce5667
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Apr 8 13:19:56 2011 -0700

    mac-learning: Avoid unnecessary call to free().

commit 2a4ae6357eb447e185599ec1ca7c95b1e4183c19
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Apr 6 15:31:22 2011 -0700

    mac-learning: Change mac_learning_set_flood_vlans() to not take ownership.
    
    These new semantics are less efficient in the case where the flood_vlans
    actually changed, but that should be very rare.
    
    There are no advantages to this change on its own, but upcoming commits
    will add multiple layers between the code supplying the flood_vlans and
    actually calling mac_learning_set_flood_vlans().  Consistency in this
    multilayered interface seems valuable, and the rest of it does not transfer
    ownership from the caller to the callee.

commit 0fb7b9156ac7d319a51890630857698ad1877335
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Apr 8 13:19:33 2011 -0700

    vlan-bitmap: New data structure.

commit 08fd19f01b22226e25a5112b13eb951190ea8d00
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Apr 8 13:44:38 2011 -0700

    bridge: Move logic for flushing flows and standalone mode into connmgr.
    
    This improves the abstraction behind ofproto and connmgr.
    
    Some of this could even go into fail_open, but I'm not sure that it would
    make anything easier to understand.

commit 02013bc03c5d5d9497af2ccb6982feb97dd5ee94
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Apr 25 17:08:09 2011 -0700

    ovs-controller: Honor --wildcard option.
    
    This option was documented but ignored.

-----------------------------------------------------------------------


hooks/post-receive
-- 
Open vSwitch



More information about the git mailing list