[ovs-git] Open vSwitch: ofproto-dpif: Batch interacting with the dpif on flow miss operations. (branch-1.3)

dev at openvswitch.org dev at openvswitch.org
Fri Oct 14 22:16:42 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, branch-1.3 has been created
        at  501f8d1fd75b316ee7fa7c039cb37110750bf5a1 (commit)

- Log -----------------------------------------------------------------
commit 501f8d1fd75b316ee7fa7c039cb37110750bf5a1
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Oct 14 13:55:32 2011 -0700

    ofproto-dpif: Batch interacting with the dpif on flow miss operations.
    
    This improves "ovs-benchmark rate" performance in my testing by about 24%.
    
    A quick experiment shows that there may still be some headroom for batching
    flow deletions on facet expiration, up to perhaps 10% additional
    improvement.

commit f38278973e94d19a6de2a3b8a24b03c7befbbb57
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 15:58:53 2011 -0700

    ofproto-dpif: Separate facet creation and action translation.
    
    This will allow for some optimization in an upcoming commit.

commit 3d9e05f8c2b888c2254d229b23cf14f8eb5c6ed5
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 15:34:39 2011 -0700

    ofproto-dpif: Factor controller optimization out of execute_odp_actions().
    
    An upcoming commit will use this code separately from
    execute_odp_actions(), so this prepares for that.

commit 62cd70721ac27719a1d41225563e2496f49f0312
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 15:22:22 2011 -0700

    ofproto-dpif: Break send_packet_in() into two separate functions.
    
    It's been more or less convenient to pass a dpif_upcall to send_packet_in()
    in the past, because most callers had one handy.  But an upcoming commit
    won't have such easy access, so this commit breaks send_packet_in() into
    two functions for the different types of packets to send to the controller,
    each of which takes appropriate parameters instead of dpif_upcall.

commit 6bc6002490ae127a6d0c1dc6f6b8843cac8e0c22
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 15:08:50 2011 -0700

    dpif: New function dpif_operate() and dpif-linux implementation.
    
    This will be used in an upcoming commit.

commit cc75061af782bb7e99d40e3e00a8eb90b2cbbc51
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Oct 14 13:55:00 2011 -0700

    netlink-socket: New function nl_sock_transact_multiple().
    
    This will be used in an upcoming commit.

commit c1c19657f457a908d207a5f8313ea0ea33a4f3f5
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Oct 14 13:30:29 2011 -0700

    socket-util: New function get_socket_rcvbuf().
    
    This will be used in an upcoming commit.

commit 30b44744a1d806acf79f9feb8b848e851afda3e2
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 16:07:23 2011 -0700

    dpif-linux: Only ask datapath to echo back results when they will be used.
    
    A fair number of datapath flow operations optionally report back results
    to the requester based on whether NLM_F_ECHO is set in the request.  When
    userspace isn't going to use those results anyway, it wastes memory to
    store them and a system call to retrieve them.
    
    This commit omits the NLM_F_ECHO bit in cases where the caller isn't going
    to use the results.
    
    (NLM_F_ECHO has no effect on operations whose entire purpose is to retrieve
    data, e.g. "get" and "dump" operations, so we need not bother to set it
    for those.)
    
    This improves "ovs-benchmark rate" results in my testing by about 4%.

commit b6848f1333e3905268366e7a9b6d454a41b7b694
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 15:19:30 2011 -0700

    ofproto-dpif: Move DHCP in-band control special case into xlate_actions().
    
    This eliminates an extra round trip to the kernel for this special case
    and keeps all the flow translation logic in one place.

commit 3a706b33aab1d5b79394ee74bd3a34d2bf00093c
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 26 12:59:23 2011 -0700

    netlink: New macros for the sizes of Netlink attributes.
    
    I was feeling tempted in some code to just guess "hey, 32 bytes ought to
    be big enough" and so on, but really it seems better to just have a
    convenient way to measure.

commit 46d34fefc1bd8e0f5329d4c22d59a286e3bbb260
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 26 12:57:41 2011 -0700

    netlink: New functions for putting attributes at the beginning of a buffer.
    
    These are really just copies of the corresponding "put" functions.  An
    upcoming commit will introduce a user of nl_msg_push_u32().  I thought I
    might as well create all of these while I was at it.

commit 0e4b37710443ba0856daf5eefffcd582ff29f326
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 15:32:18 2011 -0700

    ofproto-dpif: Revalidate tagged packets, too, in facet_lookup_valid().
    
    I don't see a reason that we should only revalidate facets if we're
    revalidating every facet.

commit eea109bb5e164e3d01c1d41000cdf93166509e77
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 16:24:15 2011 -0700

    ofproto-dpif: Properly re-translate uninstallable facets in rule_execute().
    
    If the facet is not installable then every packet requires separate
    translation, but the existing code didn't do that.

commit 320232ec7f37218a6fce0704f9b0ba7696e5ad21
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Oct 14 09:39:48 2011 -0700

    dpif-linux: Fix build with certain 64-bit kernel/userspace combinations.
    
    Unix 64-bit ABIs have two 64-bit types: "long" and "long long".  Either of
    these is a reasonable choice for uint64_t (the userspace type) and for
    __u64 (the kernel type).  Unfortunately, kernel and userspace don't
    necessarily agree on the choice, and in fact the choice varies across
    kernel versions and architectures.
    
    Now that OVS is actually using kernel types in its kernel header, this
    can make a difference: when __u64 and uint64_t differ, passing a pointer
    to __u64 to OVS function get_unaligned_u64() yields a compiler warning
    or error.
    
    This commit fixes up the problems of this type found in OVS, by making
    get_unaligned_u64() accept all 64-bit unsigned integer types, not just
    whichever one happens to be uint64_t.  I didn't do the same thing for
    put_unaligned_u64() because it is less likely to be a problem in
    practice: usually, when userspace writes to kernel data structures it
    does so with copies that it knows to be aligned, so that it's not
    necessary to use put_unaligned_u64().
    
    This problem won't occur for uint8_t, uint16_t, or uint32_t, since there is
    only one reasonable choice of type for each.  It won't occur for ovs_be<N>
    because OVS always defines those as aliases for the kernel's __be<N> types
    when those are available.
    
    This compiled cleanly for me in Scientific Linux 6.0 x86-64.
    
    Reported-by: Pravin Shelar <pshelar at nicira.com>

commit 4ca66bfaeb49e6fe85ccd8d8f4f11dbb96213636
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Oct 13 14:38:13 2011 -0700

    Fix broken build in XenServer DDK 5.6.100-39265p.
    
    Avoids errors like the following:
    
    In file included from ./include/openvswitch/types.h:21,
                     from ./lib/vconn.h:21,
                     from tests/test-vconn.c:18:
    /usr/include/sys/types.h:52: error: conflicting types for 'ino_t'
    /usr/include/linux/types.h:14: error: previous declaration of 'ino_t' was here
    /usr/include/sys/types.h:62: error: conflicting types for 'dev_t'
    /usr/include/linux/types.h:13: error: previous declaration of 'dev_t' was here
    /usr/include/sys/types.h:67: error: conflicting types for 'gid_t'
    /usr/include/linux/types.h:27: error: previous declaration of 'gid_t' was here
    /usr/include/sys/types.h:72: error: conflicting types for 'mode_t'
    /usr/include/linux/types.h:15: error: previous declaration of 'mode_t' was here
    /usr/include/sys/types.h:77: error: conflicting types for 'nlink_t'
    /usr/include/linux/types.h:16: error: previous declaration of 'nlink_t' was here
    /usr/include/sys/types.h:82: error: conflicting types for 'uid_t'
    /usr/include/linux/types.h:26: error: previous declaration of 'uid_t' was here
    /usr/include/sys/types.h:90: error: conflicting types for 'off_t'
    /usr/include/linux/types.h:17: error: previous declaration of 'off_t' was here

commit b6bff4e9abaf2d9a53136854a733b7c4c5d4384e
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Oct 13 10:16:59 2011 -0700

    ofproto-dpif: Avoid bad pointer dereference in execute_odp_actions().
    
    execute_odp_actions() can be passed a zero-length set of actions, in which
    case it may not dereference its 'odp_actions' parameter at all, but in fact
    it did do so.  In at least one corner case, odp_actions can be NULL, so
    that this caused a segfault.
    
    Introduced in commit 98403001ec "datapath: Move Netlink PID for userspace
    actions from flows to actions."
    
    Reported-by: Pravin Shelar <pshelar at nicira.com>

commit 077257b83c68a36ea86f2d21c8395f60df710c21
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 5 10:50:58 2011 -0700

    datapath-protocol: Rename to <linux/openvswitch.h>.
    
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>
    Bug #7559.

commit 9ea0bccc83a84458d934966eae15c78f3ee2bac8
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 5 10:42:34 2011 -0700

    datapath-protocol: Use Linux kernel types directly.
    
    We want datapath-protocol.h to be acceptable as a Linux kernel header, so
    it must use Linux kernel types and must not have references to Open vSwitch
    symbols or header files.  This commit primarily makes that change to
    datapath-protocol.h.
    
    At the same time, at least for now we also want datapath-protocol.h to be
    usable on non-Linux platforms, so we need some kind of compatiblity.  Thus,
    this commit also introduces a <linux/types.h> header file that defines the
    necessary Linux kernel types on non-Linux platforms.
    
    In turn, this requires openvswitch/types.h to use the Linux types directly
    for ovs_be<N>; otherwise, sparse complains because now __be<N> and
    ovs_be<N> are incompatible from its perspective, so this commit makes that
    change too.
    
    I don't have a non-Linux kernel platform readily available, so I only
    tested the non-Linux part of the linux/types.h substitute by forcing that
    case to be triggered with #if 0.  It worked, except for errors in actual
    Linux kernel headers included explicitly from OVS source files, so I think
    it's likely to work in practice.
    
    Bug #7559.
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 09ded0ad489630236210a02f2d315816e558d701
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 5 09:59:51 2011 -0700

    datapath-protocol: Rename enums for consistency.
    
    Most of the enum tags in this file are lowercased versions of the uppercase
    enum prefixes (or slightly less abbreviated versions, e.g. "dp" becomes
    "datapath").  This commit fixes up the others for consistency.
    
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 13c0dbe79a50c412721a5df697c6a6303b22d2da
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 5 08:34:17 2011 -0700

    datapath-protocol: Remove socket header #include.
    
    It's not needed.
    
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>
    Bug #7559.

commit 5fa270099ab418ed0063144777ec76716dd3a207
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Oct 4 15:30:40 2011 -0700

    datapath-protocol: Remove #include <linux/netlink.h>.
    
    Bug #7559.
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit ea36840fa4d6e9ce1e29fa8ce148edd3caef0072
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 12 11:04:10 2011 -0700

    datapath: Require explicit upcall_pid for new datapaths and vports.
    
    This increases consistency with the OVS_ACTION_ATTR_USERSPACE action, which
    also requires an explicit pid.
    
    Suggested-by: Jesse Gross <jesse at nicira.com>
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 98403001ece61cbf783297c467a06032b200b8d0
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 12 16:24:54 2011 -0700

    datapath: Move Netlink PID for userspace actions from flows to actions.
    
    Commit b063d9f06 "datapath: Use unicast Netlink sockets for upcalls" that
    switched from multicast to unicast Netlink for sending upcalls added a
    Netlink PID to each kernel flow, used by OVS_ACTION_ATTR_USERSPACE actions
    within the flow as target.
    
    This commit drops this per-flow PID in favor of a per-action PID, because
    that is more flexible.  It does not yet make use of this additional
    flexibility, so behavior should not change.
    
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>
    Bug #7559.

commit 69ebca1e35a39d75032f3d8092da563f60673110
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Oct 11 12:24:41 2011 -0700

    dpif-linux: Avoid unaligned accesses to vport stats sent by the datapath.
    
    Reported-by: Jesse Gross <jesse at nicira.com>

commit 0e70cdcb8ddeb20417e682fd63769f9d16601b07
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Oct 4 15:25:14 2011 -0700

    dpif-linux: Use get_32aligned_u64() in an appropriate place.

commit 89a1c6d0a5aaa879769a022a71c7cee522013be2
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 12 13:20:31 2011 -0700

    vswitch.xml: Correct CAPWAP minimum Linux kernel version.

commit c0de82d9fc7b8b80b806577650c1bb09f051c605
Author: Justin Pettit <jpettit at nicira.com>
Date:   Wed Oct 12 11:09:47 2011 -0700

    ovs-vsctl: Update man page description of controller support.
    
    ovs-vswitchd supports passive OpenFlow connections, but that was not
    indicated in the documentation.  Add that information as well as a
    description of Primary (active) and Service (passive) control
    connections.

commit 070723f9fe70adf623acb519e249babfa7f40804
Author: Justin Pettit <jpettit at nicira.com>
Date:   Wed Oct 12 00:03:10 2011 -0700

    ovs-vsctl: Print warning for invalid controller and manager targets.

commit dae57238bc0ae2527b7d6f95482c5f17cba2e16e
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 12 10:20:37 2011 -0700

    ovs.db.types: Consistently use commas in formatting large numbers.
    
    Suggested-by: Justin Pettit <jpettit at nicira.com>

commit f9e5e5b383e523f2f92c91abf23f4fcd7f3b12a5
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Oct 4 10:31:59 2011 -0700

    vswitchd: Document constraints on keys.
    
    Suggested-by: Justin Pettit <jpettit at nicira.com>

commit 2f98b0b7e77b44e9ff9a57581d7d523ca1c113ab
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Oct 11 06:58:49 2011 -0700

    meta-flow: Fix mf_get_value() retrieval of register values.

commit 86dc65011b820698dab5f1e4cb5083d20f14aad4
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Oct 6 22:43:05 2011 -0700

    cfm: New 'cfm_opstate' setting.
    
    In some cases, a controller may want to take an interface down for
    forwarding purposes, but avoid completely deconfiguring CFM and
    thus lose all connectivity monitoring.  The new 'cfm_opstate'
    setting is a way to achieve this behavior.

commit 95b0fad8d144bb80b46f675e7541943b9e70d229
Author: Ethan Jackson <ethan at nicira.com>
Date:   Sun Oct 9 15:03:53 2011 -0700

    cfm: Show extended mode in cfm/show appctl command.

commit 167e393b39f3bd3d2ae5f5e0f267565c05a6b4c3
Author: Ethan Jackson <ethan at nicira.com>
Date:   Sun Oct 9 14:35:47 2011 -0700

    vswitch.xml: Annotate 'false' keyword in CFM documentation.

commit 26c6b6cd2b2ead7ea8be58481bd6a4d10dc96897
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Oct 11 11:07:14 2011 -0700

    dpif-netdev: Implement OVS_ACTION_ATTR_SAMPLE action.
    
    OVS_ACTION_ATTR_SAMPLE has never been implemented in dpif-netdev.  This
    commit implements it and adds a cast to enum ovs_action_type in the switch
    statement that checks the action type, so that GCC complains if we forget
    to add a case for a new action type.
    
    I had to assign the return value of nl_attr_type() to a temporary variable,
    because "switch ((enum ovs_action_type) nl_attr_type(a))" provoked a GCC
    warning that I've never seen before:
    
    ../lib/dpif-netdev.c:1260: warning: cast from function call of type 'int'
         to non-matching type 'enum ovs_action_type'

commit 109ee2810ddf3c26d4c32e64208ca2033965d6db
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 5 09:04:50 2011 -0700

    dpif-netdev: Simplify code by removing dpif_netdev_validate_actions().
    
    dpif_netdev_validate_actions() existed for three reasons.  First, it checked
    that the actions were well-formed and valid.  This isn't really necessary,
    because the actions are built internally by ofproto-dpif and will always be
    well-formed.  (If not, that's a bug in ofproto-dpif.)  Second, it checks
    whether the actions will modify (mutate) the data in the packet and reports
    that to the caller, which can use it to optimize what it does.  However,
    the only caller that used this was dpif_netdev_execute(), which is not a
    fast-path (if dpif-netdev can be said to have a fast path at all).
    
    Third, dpif_netdev_validate_actions() rejects certain actions that
    dpif-netdev does not implement: OVS_ACTION_ATTR_SET_TUNNEL,
    OVS_ACTION_ATTR_SET_PRIORITY, and OVS_ACTION_ATTR_POP_PRIORITY.  However,
    this doesn't really seem necessary to me.  First, dpif-netdev can't support
    tunnels in any case, so OVS_ACTION_ATTR_SET_TUNNEL shouldn't come up.
    Second, the priority actions just aren't important enough to worry about;
    they only affect QoS, which isn't really important with dpif-netdev since
    it's going to be slow anyway.
    
    So this commit just drops dpif_netdev_validate_actions() entirely.

commit 6d23c6f42206809f985d3fc7d95fca0589522836
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 5 09:36:11 2011 -0700

    netlink: New macros NL_NESTED_FOR_EACH, NL_NESTED_FOR_EACH_UNSAFE.
    
    Upcoming commits will introduce more users.

commit 3ee8a9f0027bbcbc92358048bb6e858eb32fe504
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 5 11:06:12 2011 -0700

    openflow: Delete icmp_type and icmp_code macros.
    
    These macros caused trouble if datapath-protocol.h was included before
    openflow.h.  Later references to the icmp_type and icmp_code members of
    struct ovs_key_icmp caused compiler errors, because the macros caused them
    to try to refer to nonexistent tp_src and tp_dst members in those
    structures.

commit 2cd2c2ef3d901c4ef1339e3e8459c64508bee167
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Oct 10 10:29:49 2011 -0700

    ovs-bugtool: Add -s to "ovs-dpctl show" command, to show vport statistics.
    
    It would be nice to include this in xen-bugtool output too but that would
    require Citrix to patch xen-bugtool directly.
    
    Bug #7628.
    Reported-by: Ethan Jackson <ethan at nicira.com>

commit ce27cbee00fa713c419d5fd5f7dece469f41c0a7
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Oct 7 15:43:43 2011 -0700

    cfm: Send properly formatted CCMs.
    
    Wireshark complained that Open vSwitch-generated CFM messages were
    malformed.  Upon looking at the standard, I spotted that Open vSwitch
    failed to include the final, required "End TLV" byte with value 0.
    
    This commit adds the End TLV byte to generated CCMs but still accepts
    the truncated messages for backward compatibility.

commit a24a65747a4aaf4929e8aa51f678d3ee7d57a1e3
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Oct 7 16:41:36 2011 -0700

    dpif-linux: Don't reset kernel upcall_pids unintentionally.
    
    Commit b063d9f0 "datapath: Use unicast Netlink sockets for upcalls" that
    introduced an 'upcall_pid' member into struct dpif_linux_vport, struct
    dpif_linux_dp, and struct dpif_linux_flow neglected to do so only if the
    member was nonzero.  This caused every datapath, vport, and flow operation
    to supply an upcall_pid.  In particular, the netdev_set_config() called at
    startup when a vport already existed caused the upcall_pid for that vport
    to be reset to 0, which in turn caused all packets received on the vport to
    be dropped instead of forwarded to ovs-vswitchd.
    
    Reported-by: Shih-Hao Li <shli at nicira.com>
    Bug #7714.

commit 44ff0707f09dc09b892a9b1b0a6aad6313f5248e
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Oct 6 11:36:05 2011 -0700

    vswitch.ovsschema: Mark more CFM columns ephemeral.
    
    I spotted these being logged to the database.  That doesn't match up with
    our usual model, so mark them ephemeral.

commit e9141eec249f97e547c6e47205b61ee98d9b52e9
Author: Pravin B Shelar <pshelar at nicira.com>
Date:   Thu Oct 6 21:52:39 2011 -0700

    datapath: Remove RT kernel support.
    
    Following patch removes RT kernel support. This allows us to cleanup
    the loop detection.
    Along with this BH is now disabled while running execute_actions()
    for packet from user-space.
    As a result we can simplify the stats code as entire send and receive
    path runs in BH context on all supported platforms.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>
    Bug #7621

commit 8a5d84f621f23ea2594248410641c037e9bc919d
Author: Pravin B Shelar <pshelar at nicira.com>
Date:   Thu Oct 6 19:45:09 2011 -0700

    datapath: Fix recv path for CONFIG_PREEMPT_RCU.
    
            In case CONFIG_PREEMPT_RCU, rcu grace period waits only for RCU
    read-side critical sections that are delimited by rcu_read_lock() and
    rcu_read_unlock(). internal_dev_xmit() is called in
    rcu_read_lock_bh context. Therefore we need to explicitly take rcu
    lock to prevent race with call_rcu() in PREEMPT_RCU case.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit ad6247f508ddd80f216023b024e66537df852036
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Oct 6 14:54:30 2011 -0700

    ovs-monitor-ipsec: Fix use_ssl_cert option implementation.
    
    I skipped writing a unit test for this feature on the first go-around, and
    of course that meant it didn't work.
    
    Bug #7693.
    Reported-by: Michael Hu <mhu at nicira.com>

commit 33b14e70e2c1c6dd6bf52ae4ec3099bc4456270e
Author: Pravin B Shelar <pshelar at nicira.com>
Date:   Wed Oct 5 19:06:29 2011 -0700

    datapath: Strip down vport interface - ifIndex.
    
            Following patch removes ifIndex attribute of vport which is not
    used in userspace.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>
    
    Bug #7114

commit c4f8424e0e18bf2c0be4d0800cc343b9d91ea897
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Oct 5 18:07:04 2011 -0700

    debian: ovs-monitor-ipsec requires root_prefix option.
    
    Before this patch, if the root_prefix option is left unset
    ovs-monitor-ipsec will crash.

commit 0c13f5d505ba8817d2a883bdc056a6f45d68db18
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Oct 5 14:33:49 2011 -0700

    debian: Make ovs-monitor-ipsec executable.
    
    Commit b153e667 "python: Upgrade daemon module to argparse."
    removed the execute bit.  This was incorrect.

commit a251af0a5337e265005eae19b08b5099f063c9c1
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Oct 4 15:47:07 2011 -0700

    debian: Fully convert ovs-monitor-ipsec to vlog.
    
    Commit 201bf205 "ovs-monitor-ipsec: Convert to vlog." only
    partially updated ovs-monitor-ipsec to the new vlog module.  This
    commit completes the process.

commit 65b23a2adefaefe301f38ad237d3dcf7db8d726f
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Oct 4 14:52:00 2011 -0700

    debian: ovs-monitor-ipsec has a stale init script.
    
    The ovs-monitor-ipsec init script used the old "pidfile-name"
    instead of the new "pidfile" option.  This should cause it to fail
    when starting.
    
    This patch also causes ovs-monitor-ipsec to create a log file.

commit d652410464e0a8e1a35389e7f0c0cd2c2430827a
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Oct 4 14:41:42 2011 -0700

    xenserver: ovs-xapi-sync should create a log file.

commit 12a7df90927ff34bb87a0ba2dc08496d367480e6
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 5 14:55:02 2011 -0700

    debian: Package the installed Python files, not those from the source tree.
    
    The only difference between the Python files that are installed and the
    Python files found in the source tree is in the ovs.dirs module, but this
    is a very important difference: we want the directories used to be the ones
    configured in (e.g. /usr/share/openvswitch), not the only used by default
    by the source tree's dirs.py (e.g. /usr/local/share/openvswitch).
    
    I verified with "dpkg-deb -x" and "diff -ur" that in fact this is the only
    change that this commit makes.
    
    This bug has been in place since at least commit 1d273d6d8 "debian: Rename
    openvswitch-python to python-openvswitch" from over a year ago, but until
    now the packaged Python files didn't actually use any directories that
    differed between the two versions of dirs.py, so only now has the problem
    manifested.
    
    This problem prevented ovs-monitor-ipsec from finding the OVSDB schema
    file.
    
    Reported-by: Ethan Jackson <ethan at nicira.com>

commit a8d9304d121f56af0e6f02677342933579be3277
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Oct 5 11:18:13 2011 -0700

    dpif: Avoid use of  "struct ovs_dp_stats" in platform-independent modules.
    
    Over time we wish to reduce the number of datapath-protocol.h definitions
    used directly outside of Linux-specific code.  This commit removes use of
    "struct ovs_dp_stats" from platform-independent code.
    
    Bug #7559.

commit 5621afff91b24a9b79b9eab0965dcd888ef810e8
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Oct 4 12:58:25 2011 -0700

    odp-util: Use nl_parse_nested() to simplify format_odp_sample_action().

commit 0dfd1cb487effa3111b5b8d8c05a9bf8c629b5ff
Author: Justin Pettit <jpettit at nicira.com>
Date:   Tue Oct 4 18:20:34 2011 -0700

    bridge: Fix comment describing iface_refresh_cfm_stats().

commit bd85a68f94b890c2d9b62788d68150770dc48a42
Author: Pravin B Shelar <pshelar at nicira.com>
Date:   Tue Oct 4 17:48:33 2011 -0700

    datapath: Fix tunnel hashing.
    
    struct port_lookup_key is getting extra 4 bytes due to alignment on x86_64.
    That is messing with hash calculation which uses sizeof operator to
    calculate key length. Following patch fixes tunnel hashing by using correct
    key length.
    
    This bug was introduced by commit f686a33af8cb41ee228e6a35410c9a488fba3eb1
    "datapath: Streamline tunnel port lookup"
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>
    Bug #7622

commit dc56021df437b866c372085c195b8bdd12bd87b2
Author: Justin Pettit <jpettit at nicira.com>
Date:   Tue Oct 4 11:49:22 2011 -0700

    nicira-ext: Fix build problems on 64-bit systems.
    
    Commit d2c0fe (nicira-ext: Bump number of registers to five from four.)
    broke the build on 64-bit systems.  This commit fixes the problems it
    introduced.

commit 3fd8d44544df9c4cdb6108a72154f7ebc5077dd0
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 21 10:07:11 2011 -0700

    vswitchd: Document map members as separate columns
    
    The OVS configuration database now has numerous columns that contain fixed
    key-value pairs.  Currently there's no way to see these at a glance,
    because they are not presented in the summary tables just before the
    detailed descriptions.
    
    This commit extends the XML format so that keys within a column can be
    described individually, and rearranges and rewrites vswitch.xml to take
    advantage of this feature.

commit d2c0fed978ee1626f072786b002786e686a0d6bf
Author: Justin Pettit <jpettit at nicira.com>
Date:   Wed Sep 28 13:53:59 2011 -0700

    nicira-ext: Bump number of registers to five from four.
    
    Feature #7527

commit f937ccc2321d9bcb946fca249ec718531553a9bc
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Oct 4 09:26:14 2011 -0700

    check-structs: Add check that OFP_ASSERT is checking the right structures.
    
    This avoids a fairly common issue in which a developer cuts and pastes a
    structure definition and forgets to update the structure name inside the
    OFP_ASSERT, so that the new structure's size doesn't really get checked at
    all.

commit 3021ea6074bcc5a5bc7f1434ade97d84759e8d14
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Oct 3 21:52:39 2011 -0700

    vconn: Remove unnecessary forward declarations and #includes from header.
    
    This required fix-ups in a few other files that accidentally depended upon
    vconn.h including those other headers.

commit b47e2a824c1f5fc0f9354e82d2f6ff4e4183fd80
Author: Justin Pettit <jpettit at nicira.com>
Date:   Mon Oct 3 16:38:07 2011 -0700

    ofproto-dpif: Fix small typo in comment.

commit 4a86aece2c907dcc7f0777899d16ef0e71ee08c6
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Oct 3 12:51:33 2011 -0700

    ofproto-dpif: LACP registration should cause revalidation.
    
    Whenever a slave is registered to participate in LACP, it needs to
    be revalidated so that it can receive LACP PDUs.  This bug can only
    surface in an edge case where a pre-existing interface is added to
    a pre-existing bond.  It would be unusual for a controller to do
    this.

commit f11c28c43f7a0260a7a9dcb26f369c53792b15ca
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Oct 3 12:51:02 2011 -0700

    ofproto-dpif: Revalidate on port additions and deletions.
    
    The addition of a new port to an ofproto-dpif may require
    revalidations in some cases.  Notably if this new port is
    configured to participate in CFM, but a drop flow has already been
    installed in the datapath for CFM messages with the same in_port.
    
    Bug #7598.

commit 029b26f3924eb7c28614a1c3df284e817904daf1
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 13:02:30 2011 -0700

    meta-flow: Fix icmp_code field's wildcard bit.
    
    This bug caused any NXM flow that matched both ICMP code and ICMP type to
    be rejected with NXBRC_NXM_DUP_TYPE.

commit ea7fa1dbe5efccb1718686bc5920baff266e143c
Author: Ben Pfaff <blp at nicira.com>
Date:   Sun Oct 2 14:48:09 2011 -0700

    ofp-parse: Remove write-only variable in parse_ofp_flow_mod_str().

commit e3d98cb0ab55e46fd508955c4266ab018c8ed00d
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Sep 30 15:22:47 2011 -0700

    test-classifier: Remove write-only variable.

commit bc3aa0bf5a21d1d91ec8c844175e0b1a92c59e79
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Oct 3 09:19:29 2011 -0700

    debian: Make python-openvswitch packaging work with squeeze dh_python2.
    
    The dh_python2 helper in Debian squeeze has a limitation that is not
    mentioned anywhere, as far as I can tell: Python files must be in
    /usr/lib/python#.#/site-packages to be installed.  The version in Debian
    wheezy does not have the same limitation.
    
    This meant that building the Debian packages on squeeze silently produced
    a broken python-openvswitch package, whereas building the same thing on
    wheezy built a working package.
    
    This fixes the problem by putting the .py files where squeeze expects them.
    It works on wheezy too.
    
    Bug #7510.
    Reported-by: Michael Hu <mhu at nicira.com>
    Tested-by: Simon Horman <horms at verge.net.au>

commit f686a33af8cb41ee228e6a35410c9a488fba3eb1
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Fri Sep 30 14:32:31 2011 -0700

    datapath: Streamline tunnel port lookup
    
    This change is meant to cleanup the tunnel lookup code. We are now using
    kernel hash table so we can simplify `struct port_lookup_key`.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit be07be4dcba9faa181b195cdda0d8ab3761e738d
Author: Jesse Gross <jesse at nicira.com>
Date:   Thu Sep 29 15:18:14 2011 -0700

    datapath: Remove unused vlan constants.
    
    We define some constants for dealing with vlan PCP bits since at
    the time they didn't exist upstream.  They've since been merged
    upstream with different names and we don't use them anyways, so
    just drop them.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit 572b70687b27ef6fdd1ed90d1ac932d6de35701f
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 29 15:36:14 2011 -0700

    flow: Move flow_extract_stats() to dpif.c, as dpif_flow_stats_extract().
    
    The "flow" module is concerned only with OpenFlow flows these days.  It
    shouldn't have anything to do with ODP or dpifs.  However, it included
    dpif.h just to implement flow_extract_stats().  This function is a better
    fit for dpif.c, so this commit moves it there and removes the dpif.h
    #include from flow.h and flow.c
    
    This commit also removes a few more dpif.h #includes that weren't needed.

commit a946b636edd932994a8972cf23168e4c08b21e8e
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 29 15:18:58 2011 -0700

    Remove a pair of unnecessary dependencies on datapath-protocol.h.
    
    These headers don't really need datapath-protocol.h.  connmgr.h indirectly
    used "struct nlattr" from that header, so add a forward declaration.  (The
    next commit will remove use of struct nlattr entirely from that header,
    since it is not really appropriate.)

commit 7593daa2473c464cd179420b9c7f68989044fdee
Author: Justin Pettit <jpettit at nicira.com>
Date:   Thu Sep 29 18:36:09 2011 -0700

    cfm: Cleanup output of ovs-appctl "cfm/show" command.
    
    When no remote MPIDs were found, the output would print an extra newline.
    If multiple remote MPIDs were found, the lines would run together.  This
    commit cleans things up a bit by just printing each item on its own line
    without any blank lines.

commit a6e198ea4895ce0768afe3bc75239769132c56d2
Author: Justin Pettit <jpettit at nicira.com>
Date:   Thu Sep 29 18:27:28 2011 -0700

    ovs-vsctl: Remove "cfm_remote_mpid" from man page.
    
    The "cfm_remote_mpid" column is no longer used by the CFM module, so
    remove the reference from the ovs-vsctl man page.

commit 299915eadc559f12d145945436289931a74621b8
Author: Justin Pettit <jpettit at nicira.com>
Date:   Wed Sep 28 18:37:18 2011 -0700

    xenserver: Update README to be current.

commit 2e9067c99c864626b6815bd5e6bd6f58c19b3a7b
Author: Justin Pettit <jpettit at nicira.com>
Date:   Wed Sep 28 18:03:06 2011 -0700

    xenserver: Correct location of xen-bugtool plugins.
    
    xen-bugtool plugins were stored in "/etc/xensource/bugtool/bugtool-plugins/*",
    but xen-bugtool will not traverse deeper than "/etc/xensource/bugtool/*".
    This commit corrects the location and makes our plugins run.
    
    signed-off-by: Justin Pettit <jpettit at nicira.com>
    acked-by: Ben Pfaff <blp at nicira.com>

commit 5ea61afe521af5ed81cff32726e4cd8d49bf7d50
Author: Justin Pettit <jpettit at nicira.com>
Date:   Mon Sep 26 16:49:32 2011 -0700

    bugtool: Collect "lacp/show" and "cfm/show" information.
    
    Feature #7496

commit b674c3f9ed45277d57bd2f05ad81ad31858cd672
Author: Justin Pettit <jpettit at nicira.com>
Date:   Mon Sep 26 15:56:20 2011 -0700

    ovs-vswitchd: Document "coverage/log" in man page.

commit 5dab8eced8eeb7faf193e2a96d75b9ee30b4c3eb
Author: Justin Pettit <jpettit at nicira.com>
Date:   Mon Sep 26 15:44:46 2011 -0700

    lacp: Make argument to ovs-appctl "lacp/show" command optional.
    
    If an argument isn't passed to "lacp/show", it will print information
    about all interfaces with LACP enabled.

commit ae75dae3459202bb7ff6031e4a5f0f696f48432f
Author: Justin Pettit <jpettit at nicira.com>
Date:   Mon Sep 26 15:40:53 2011 -0700

    cfm: Make argument to ovs-appctl "cfm/show" command optional.
    
    If an argument isn't passed to "cfm/show", it will print information
    about all interfaces with CFM enabled.

commit 7ff2009a9599a4cebeea038764a2d3f13c60f601
Author: Justin Pettit <jpettit at nicira.com>
Date:   Mon Sep 26 14:59:35 2011 -0700

    ovs-appctl: Print command arguments for "help".

commit 36ce148c6d2105dc2e485ec169bcc9998ffebf9d
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Thu Sep 29 16:33:06 2011 -0700

    datapath: Avoid skb-clone in upcall
    
    There is not need to clone skb while sending packet to user-space.
    Since data is only read from packet skb.
    
    Signed-off-by: Pravin Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 6ecf431e1df3dc011e8a67e4864d324c65f4be17
Author: Jesse Gross <jesse at nicira.com>
Date:   Thu Sep 29 14:02:42 2011 -0700

    in-band: Classifier rules should use OpenFlow ports.
    
    The in-band rules want to allow traffic to and from the local port
    but the rule to be inserted in the classifier table for DHCP traffic
    used the datapath constant for local traffic instead of the OpenFlow
    one.

commit 6c24d40243cffe9096431a3ad53a7acfd236d001
Author: Jesse Gross <jesse at nicira.com>
Date:   Thu Sep 29 13:30:07 2011 -0700

    ofp-util: make_packet_out() shouldn't receive OVSP_NONE.
    
    make_packet_out() operates solely at the OpenFlow layer, so it
    should never receive OVSP_LOCAL as an in_port.  This function is
    used only by the learning switch, which will never generate
    a packet with OVSP_LOCAL so this fixes not a bug but a violation
    of semantics.

commit aeea3504e98e0a1abb553da69a33bfc7563e10f4
Author: Jesse Gross <jesse at nicira.com>
Date:   Thu Sep 29 13:22:46 2011 -0700

    flow: Drop datapath-protocol.h from flow.c.
    
    datapath-protocol.h is increasingly a Linux-specific header so its
    usage should be restricted from generic code.  Nothing in flow.c
    uses it, so drop it to avoid layer violations.

commit c49aae240851ef562b7ade082226e41f85f54b88
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 27 12:22:57 2011 -0700

    vlog: Accept any case for ANY and PATTERN when setting levels.

commit 954fde3f2e68ba41f2f32faf5dbd900ce1b699a5
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 29 09:49:37 2011 -0700

    datapath: Avoid use-after-free error in dp_device_event().
    
    Commit f14d80834 "datapath: genl_notify() on port disappearances" frees the
    vport before passing it to ovs_vport_cmd_build_info(), which reads the
    freed data.
    
    Without this commit, the following commands consistently trigger a kernel
    BUG report on my test VM (which has slab debugging enabled) on 3 attempts:
    
        tunctl
        ovs-vsctl add-port br0 tap0
        tunctl -d tap0
    
    With this commit, I consistently don't see the BUG, on a few hundred tries
    in a tight loop.
    
    The interesting log information is:
    
        device tap0 entered promiscuous mode
        device tap0 left promiscuous mode
        BUG: unable to handle kernel paging request at 6b6b6ba7
        IP: [<c88269ed>] get_vport_protected+0x8/0x52 [openvswitch_mod]
        *pde = 00000000
        Oops: 0000 [#1] SMP
        last sysfs file: /sys/devices/pci0000:00/0000:00:04.0/net/eth1/carrier
        Modules linked in: brcompat_mod openvswitch_mod
    
        Pid: 653, comm: tunctl Not tainted 2.6.37+ #25 /Bochs
        EIP: 0060:[<c88269ed>] EFLAGS: 00010246 CPU: 0
        EIP is at get_vport_protected+0x8/0x52 [openvswitch_mod]
        EAX: 6b6b6ba7 EBX: 00000000 ECX: 00000000 EDX: 00000000
        ESI: c6d98400 EDI: c5c32074 EBP: c6ff1de8 ESP: c6ff1de4
         DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
        Process tunctl (pid: 653, ti=c6ff0000 task=c5c3a820 task.ti=c6ff0000)
        Stack:
         00000000 c6ff1df8 c8826b1d 6b6b6b6b c6d77ab0 c6ff1e14 c8826dc6 c7489160
         00000f40 c6d98400 c6d77ab0 00000000 c6ff1e3c c88286fa 00000000 00000000
         00000002 02ff1e34 00000000 c6d77ab0 c6df98a0 00000006 c6ff1e54 c8828aa2
        Call Trace:
         [<c8826b1d>] ? get_dpifindex+0x1b/0x31 [openvswitch_mod]
         [<c8826dc6>] ? ovs_vport_cmd_fill_info+0x40/0x183 [openvswitch_mod]
         [<c88286fa>] ? ovs_vport_cmd_build_info+0x3f/0x62 [openvswitch_mod]
         [<c8828aa2>] ? dp_device_event+0x56/0xb0 [openvswitch_mod]
         [<c1046c0d>] ? notifier_call_chain+0x6d/0x96
         [<c1046c52>] ? raw_notifier_call_chain+0xc/0xe
         [<c1254c10>] ? call_netdevice_notifiers+0x3c/0x43
         [<c1255029>] ? rollback_registered_many+0xd4/0x18b
         [<c1255146>] ? rollback_registered+0x23/0x28
         [<c1255199>] ? unregister_netdevice_queue+0x4e/0x6b
         [<c1227d2e>] ? tun_chr_close+0x3f/0x76
    
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 3fc5a86ab3e7168993a51ed3e71e25eda40f71fe
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 28 09:36:13 2011 -0700

    bridge: Clear out all Interface fields when an interface cannot be created.
    
    When an Interface record is invalid (for example, when the interface that
    it specifies does not exist and cannot be created), ovs-vswitchd would
    leave any pre-existing data in its columns, except that it would set the
    ofport column to -1 to indicate the error.  This was sometimes confusing
    because, for example, the lacp_current field could still be set to "true"
    if LACP has previously been active and up-to-date.
    
    This commit changes ovs-vswitchd to reset all such data to its default
    values when an interface is invalid.
    
    Bug #7450.
    Reported-by: Duffie Cooley <dcooley at nicira.com>
    Bug #7491.
    Reported-by: Ethan Jackson <ethan at nicira.com>
    Release Notes #7500.
    Reported-by: Keith Amidon <keith at nicira.com>

commit e084518ad4e7ce349d23ddda7c74ea8a57ca0f56
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 28 13:27:59 2011 -0700

    xenserver: Fix typo in comment in XAPI plugin.
    
    Signed-off-by: Ben Pfaff <blp at nicira.com>

commit e44a6fe503ad639787ec2f8d1ee0710e63dacd81
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 28 23:09:33 2011 -0700

    ovs.daemon: Fix bug introduced by "pychecker" warning fixes.
    
    Commit 591c20651f1 "daemon.py: Don't shadow built-in 'file' variable"
    changed most instances of "file" to "file_handle" but missed this one.
    
    I'm not certain that this solves a real problem, but it still seems wrong.
    
    Bug #7533.

commit 723a8d23f5d9ba07d67bf4d312b00f001db5bdb4
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 28 23:07:11 2011 -0700

    ovs.daemon: Fix semantics of --pidfile option.
    
    The --pidfile option is supposed to work like this:
    
       * Without --pidfile, you don't get a pidfile.
       * With --pidfile, you get the default pidfile.
       * With --pidfile=FILE, you get FILE as your pidfile.
    
    However, it actually worked like this:
    
       * Without --pidfile, you got the default pidfile.
       * With --pidfile, you got no pidfile at all.
       * With --pidfile=FILE, you got FILE as your pidfile.
    
    This is because of the semantics of "default" in argparse.  It is
    documented as:
    
        The default keyword argument of add_argument(), whose value defaults to
        None, specifies what value should be used if the command-line argument
        is not present.  For optional arguments, the default value is used when
        the option string was not present at the command line.
    
    We actually want "const", which is documented under the description of
    nargs="?" as:
    
        If no command-line argument is present, the value from default will be
        produced.  Note that for optional arguments, there is an additional
        case - the option string is present but not followed by a command-line
        argument.  In this case the value from const will be produced.
    
    Bug #7533.

commit 2c11e6d91216a1f40e9a499ee37868c81fc34f35
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Sep 28 12:12:56 2011 -0700

    ovs-xapi-sync: Crashes if root-prefix is unspecified.

commit 2f0dc471d0a6eb61c525e8bff927cf19e835b87f
Author: Jesse Gross <jesse at nicira.com>
Date:   Wed Sep 28 09:52:07 2011 -0700

    route-table: Clear route_notifier after free.
    
    If the routing table is destroyed and re-created then it will
    trigger another assertion because route_notifier is not NULL,
    even though it has already been freed.

commit 6ff686f2bc2afcfb0a9ad9793d834979dc9870d6
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Wed Sep 28 10:43:07 2011 -0700

    sFlow: Genericize/simplify kernel sFlow implementation
    
    Following patch adds sampling action which takes probability and set
    of actions as arguments. When probability is hit, actions are executed for
    given packet.
    USERSPACE action's userdata (u64) is used to store struct
    user_action_cookie as cookie. CONTROLLER action is fixed accordingly.
    
    Now we can remove sFlow code from kernel and implement sFlow generically
    as SAMPLE action. sFlow is defined as SAMPLE Action with probability (sFlow
    sampling rate) and USERSPACE action as argument. USERSPACE action's data
    is used as cookie. sFlow uses this cookie to store output-port, number of
    output ports and vlan-id. sample-pool is calculated by using vport
    stats.
    
    Signed-off-by: Pravin Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit 89ac6b1f19fa75c056420821b49035346c65024f
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Sep 27 16:56:23 2011 -0700

    xenserver: Don't specify python code by hand.
    
    Before this patch, a list of each python file in the xenserver rpm
    was listed by hand.  This was error prone so now the spec file uses
    a glob.
    
    Signed-off-by: Ethan Jackson <ethan at nicira.com>

commit 55a159f935d5fea9ffcd595da749ce9defbb07e3
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Sep 27 16:49:17 2011 -0700

    xenserver: Add vlog.py to spec file.

commit f4dc8c5895ed6a95c7331910c4c54107d783cba5
Author: Jesse Gross <jesse at nicira.com>
Date:   Tue Sep 27 15:27:43 2011 -0700

    route-table: Close netlink notifier before closing nln.
    
    Commit 2ee6545f2bff7eb27e8c84965e3ff38dfa909bf6 "notifiers: Create
    and destroy nln_notifiers." requires callers to explicitly create
    and destroy netlink notifiers but route-table only did the creation
    part.  This causes an assertion failure any time the netdev for a
    vport is destroyed (for example ovs-dpctl show when there is a
    tunnel port).
    
    Bug #7464

commit 42c2ebcdadeb3aaf3ba128465b5fc58f027868ea
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Sep 27 15:31:18 2011 -0700

    tests: Use compat argparse when required.
    
    Some build environments don't have argparse installed.  In these
    cases the test framework will use the compat version.

commit 201bf205eae26b056bed25244dc78cf434e63342
Author: Ethan Jackson <ethan at nicira.com>
Date:   Sun Sep 25 15:40:10 2011 -0700

    ovs-xapi-sync: Convert to vlog.

commit 27ae98ba1a10d40ebecfc3393bb6fb11f9aeb607
Author: Ethan Jackson <ethan at nicira.com>
Date:   Sun Sep 25 15:18:44 2011 -0700

    ovs-monitor-ipsec: Convert to vlog.

commit 3a656eafb96ab8a474e943baabdb2679d0a6b0ef
Author: Ethan Jackson <ethan at nicira.com>
Date:   Sat Sep 24 17:53:30 2011 -0700

    python: Upgrade to vlog.
    
    This patch upgrades the library code in the python/ovs directory to
    the new vlog module.

commit b153e667907ed68164a15207ad5f91ad4c39927c
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Sep 26 16:02:26 2011 -0700

    python: Upgrade daemon module to argparse.
    
    This patch also updates it's callers.

commit ec394dad53eefc410de4058a2abe7181c1bd58c3
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Sep 26 16:02:14 2011 -0700

    stream.py: Make usage() function return a string.
    
    This will marginally simplify a future patch.

commit 8ed182d80ed37c94c88ca5a4df11267ee6432fe8
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Sep 21 15:43:27 2011 -0700

    python: Create new vlog module.
    
    Currently, each python daemon has to come up with it's own logging
    solution.  These logging strategies are not consistent across the
    python code or with the C vlog module.  This patch adds a new
    logging module which hopes to solve the problem.  This new module
    generates log messages in a manner consistent with the C code.
    Furthermore, it can easily be extended to support things like rate
    limiters in the future.
    
    This patch does not update any python code to use the new module.

commit 6c88547dd0f75a29e6d1c0cd3c76d9678fa4752f
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Sep 22 12:05:18 2011 -0700

    python: Backport argparse to older platforms.
    
    Argparse has some convenient advantages over optparse including the
    ability to handle optional arguments to flags.  It also supports
    parsing arguments as well as options.
    
    This patch copies argparse.py from Python 2.7 into a newly created
    compat directory.  It made some very minor syntactic updates in the
    process.  Platforms which have a Python version too old to include
    argparse by default will have this compat version installed as a
    workaround.

commit 484185ec4e1329bbc42cf0c0d70f24c732b748f8
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Sep 26 16:12:33 2011 -0700

    test-jsonrpc: Help option doesn't work.
    
    The test-jsonrpc.py script didn't understand the "-h" option and
    threw an exception when "--help" was supplied.

commit ecac4ebf93feed5e95a517b48915e40d92052386
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Sep 23 17:03:03 2011 -0700

    Implement "native VLAN" feature.
    
    Significant updates by Ben Pfaff, including:
    
    * Comment, coding style, indentation updates.
    * Documentation improved.
    * Added tests.
    * Dropped PORT_VLAN_EMPTY.

commit 77d895d6867461b2433616d10ddf2c5fa0b6f4d3
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Aug 26 12:58:36 2011 -0700

    bitmap: New function to allocate a bitmap initialized to all-1-bits.

commit 04c956fc029bb97de17b62cb6d243b50f0bc9f58
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 25 17:00:45 2011 -0700

    ofproto-dpif: Add tests for VLAN handling.
    
    These tests would have caught the bug fixed in the previous commit
    "ofproto-dpif: Fix behavior when a subset of VLANs is trunked."

commit dc155bff1bf6045c4eccbb5443b24d19448a4f7d
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 26 13:15:54 2011 -0700

    ofproto-dpif: Get rid of OFP_VLAN_NONE pollution.
    
    OFP_VLAN_NONE used to be convenient as a value for struct dst's 'vlan'
    member, because it ended up being used in actions anyway, but now it's
    much better to just use 0.

commit 823518f1f26c2320c35e762c9d1bd29e68f9c5b8
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Sep 23 17:11:49 2011 -0700

    ofproto-dpif: Fix VLAN and other field handling in OFPP_NORMAL.
    
    compose_actions(), which is part of the OFPP_NORMAL implementation, had
    multiple flaws that this commit corrects.
    
    First, it did not commit changes made to the flow by actions preceding
    the output to OFPP_NORMAL.  This means that, for example, if an OpenFlow
    action to modify an L2 or L3 header preceded the output to OFPP_NORMAL,
    then OFPP_NORMAL would output its packets without those changes.
    
    Second, it did not update the action_xlate_ctx's notion of the VLAN that
    was currently set, in the cases where it modified the current VLAN.  This
    means that actions following the output to OFPP_NORMAL could output to
    unexpected VLANs.
    
    Third, when it switched to VLAN 0, it unconditionally also stripped the
    whole 802.1Q header, so that if the packet originally was priority tagged,
    the output packet was not priority tagged.  This is reasonable behavior,
    but it is a change in behavior from what previous releases of OVS did, so
    this commit reverts it.
    
    Based on a patch from and a conversation with Pravin Shelar
    <pshelar at nicira.com>.

commit 1b0fdca5faa8674a5e67f7435a43b361fca003cf
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 26 13:07:29 2011 -0700

    ovs-xapi-sync: Add unit test.

commit b54bdbe993b89829aa33b7a207c61274b953faa5
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Sep 23 14:21:19 2011 -0700

    ovs-monitor-ipsec: Add unit test.

commit 98c50f96801d3159aad2de02407305463c68f51a
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Mon Sep 26 12:30:50 2011 -0700

    datapath: Fix OVS build failure on older kernel
    
       genlmsg_unicast() API changed for network namespace in 2.6.32.
    Following patch handles compatibility for same.
    
    Signed-off-by: Pravin Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit cd1b3f63f360286a80392e20ce454362ce335056
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 26 11:43:25 2011 -0700

    json.py: Typo in parsing code.

commit 26bb0f31299d3f8eb06551d6a219846929c27149
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 23 23:43:12 2011 -0700

    python: Style cleanup.
    
    This patch does minor style cleanups to the code in the python and
    tests directory.  There's other code floating around that could use
    similar treatment, but updating it is not convenient at the moment.

commit b17a80ee405da3843710f428b4f83015dc35c342
Author: Ethan Jackson <ethan at nicira.com>
Date:   Sat Sep 24 16:19:27 2011 -0700

    test-reconnect: Fix use of undefined symbol.

commit bfa29793ece6fc683e97b5bf9a66e46ecef7df35
Author: Ethan Jackson <ethan at nicira.com>
Date:   Sat Sep 24 16:04:19 2011 -0700

    test-ovsdb.py: Remove unused import.

commit 4ad07e6063e68eeb1768fc751ddd4833bdb8f3c1
Author: Ethan Jackson <ethan at nicira.com>
Date:   Sat Sep 24 00:09:48 2011 -0700

    ovsuuid.py: Fix use of undefined symbol.
    
    Found by pychecker.

commit e75a14703b902feacf665e6893b0565e409ca175
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 23 17:18:08 2011 -0700

    ovs-xapi-sync:  Style cleanup.
    
    Pleases pep8.

commit 7f76372156020c305de539ef6b1ab13f8cb19de0
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 23 17:18:53 2011 -0700

    ovs-xapi-sync: Remove dead code.
    
    Found by pychecker.

commit 0d28538d500600e346ee02fbb86962da90ce06cd
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Sep 23 15:49:26 2011 -0700

    bond: Remove spurious blank line.

commit 0f4d9dce8150fced85070149e0820707d55ee252
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 23 15:35:04 2011 -0700

    ovs-monitor-ipsec: Style cleanup.
    
    Pleases pep8.

commit 6acddcaab117983dbc35998e2bf690e9cc5b775a
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 23 15:36:59 2011 -0700

    ovs-monitor-ipsec: Remove unused root-prefix option.

commit cdc5f488517d7f012df6ff01e70a58af3db332a6
Author: Justin Pettit <jpettit at nicira.com>
Date:   Fri Sep 23 15:30:55 2011 -0700

    ovs-bugtool: Use RUNDIR macro for ovs-appctl target.
    
    Correct the target path used by ovs-appctl.  The previous value was
    hard-coded to "/var/run", but the common path is actually
    "/var/run/openvswitch".  However, it's better to use RUNDIR, since the
    default location is build-time configurable.

commit 17411ecf2b4d02cfced5f69e567c17673d7d4462
Author: Jesse Gross <jesse at nicira.com>
Date:   Fri Sep 16 15:23:37 2011 -0700

    dpif-linux: Prevent a single port from monopolizing upcalls.
    
    Currently it is possible for a client on a single port to generate
    a huge number of packets that miss in the kernel flow table and
    monopolize the userspace/kernel communication path.  This
    effectively DoS's the machine because no new flow setups can take
    place.  This adds some additional fairness by separating each upcall
    type for each object in the datapath onto a separate socket, each
    with its own queue.  Userspace then reads round-robin from each
    socket so other flow setups can still succeed.
    
    Since the number of objects can potentially be large, we don't always
    have a unique socket for each.  Instead, we create 16 sockets and
    spread the load around them in a round robin fashion.  It's theoretically
    possible to do better than this with some kind of active load balancing
    scheme but this seems like a good place to start.
    
    Feature #6485

commit 0b6c119bb7e62c70770a18504ae4204702020435
Author: Jesse Gross <jesse at nicira.com>
Date:   Fri Sep 23 11:53:12 2011 -0700

    netlink: Expose version of nl_attr_find for key and len.
    
    Many of our functions pass around a pointer to Netlink attributes
    and a length.  This exposes the version of nl_attr_find that takes
    that format so it can be used by callers outside the Netlink library.

commit 1e276d1a10539a8cd97d2ad63c073a9a43f0f1ef
Author: Jesse Gross <jesse at nicira.com>
Date:   Sun Jul 31 14:47:32 2011 -0700

    poll-loop: Enable checking whether a FD caused a wakeup.
    
    Each time we run through the poll loop, we check all file descriptors
    that we were waiting on to see if there is data available.  However,
    this requires a system call and poll already provides information on
    which FDs caused the wakeup so it is inefficient as the number of
    active FDs grows.  This provides a way to check whether a given FD
    has data.

commit be8194bb5935141f12339085032da5d63f856f16
Author: Jesse Gross <jesse at nicira.com>
Date:   Fri Sep 16 09:50:35 2011 -0700

    ofproto-dpif: Flush flows before dpif_recv_set_mask().
    
    Now that upcalls from the kernel use unicast sockets, we need to
    tell the kernel where to send them explicitly.  This means that
    when the switch is restarted it's necessary to take control of any
    existing objects, which is done when the dpif listen mask becomes
    non-zero.  Since we're going to blow away the flows anyways, we
    might as well do it before going through the trouble of updating
    all of them.

commit b063d9f06e6bb005193a219bcb9f0a74dfdf7882
Author: Jesse Gross <jesse at nicira.com>
Date:   Wed Sep 14 13:05:09 2011 -0700

    datapath: Use unicast Netlink sockets for upcalls.
    
    Currently we publish several multicast groups for upcalls and let
    userspace sockets subscribe to them.  The benefit of this is mostly
    that userspace is the one doing the subscription - the actual
    multicast capability is not currently used and probably wouldn't be
    even if we moved to a multiprocess model.  Despite the convenience,
    multicast sockets have a number of disadvantages, primarily that
    we only have a limited number of them so there could be collisions.
    In addition, unicast sockets give additional flexibility to userspace
    by allowing every object to potentially have a different socket
    chosen by userspace for upcalls.  Finally, any future optimizations
    for upcalls to reduce copying will likely not be compatible with
    multicast anyways so disallowing it potentially simplifies things.
    
    We also never unregistered the multicast groups registered for upcalls
    and leaked them on module unload.  As a side effect, this solves that
    problem.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit 50802adb0e00bbf381c31b9e32a7a6a3e920e7ac
Author: Jesse Gross <jesse at nicira.com>
Date:   Fri Sep 16 09:37:16 2011 -0700

    netlink: Expose method to get Netlink pid of a socket.
    
    In the future, the kernel will use unicast messages instead of
    multicast to send upcalls.  As a result, we need to be able to
    tell it where to direct the traffic.  This adds a function to expose
    the Netlink pid of a socket so it can be included in messages to the
    kernel.

commit e60a5e26371a7079a9ffcc57d2f96b8ee9de7da9
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 23 15:24:10 2011 -0700

    tests: test-jsonrpc.py whitespace cleanup.
    
    Pleases pep8.

commit d2dc8f5806bb5a55fa82b0c92b8cabb92bb368ef
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 16 22:37:26 2011 -0700

    tests: test-jsonrpc references nonexistent variable.

commit ddb378111158c603ef6f253095c496d9045b1905
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 21 10:09:00 2011 -0700

    tag: Fix typo in comment.

commit 8cdf0349740c3e1a73af9aa6209bb22be952cd37
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 21 10:43:03 2011 -0700

    python: Implement write support in Python IDL for OVSDB.
    
    Until now, the Python bindings for OVSDB have not supported writing to the
    database.  Instead, writes had to be done with "ovs-vsctl" subprocesses.
    This commit adds write support and brings the Python bindings in line with
    the C bindings.
    
    This commit deletes the Python-specific IDL tests in favor of using the
    same tests as the C version of the IDL, which now pass with both
    implementations.
    
    This commit updates the two users of the Python IDL to use the new write
    support.  I tested this updates only by writing unit tests for them,
    which appear in upcoming commits.

commit 7cba02e442012a7ae6cfdfe67f858a18057e5470
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 20 11:24:44 2011 -0700

    ovs.db.types: Add table reference to ovs.db.types.BaseType.
    
    Until now ovs.db.types.BaseType has kept track of the name of the
    referenced table but not a reference to it.  This commit renames the
    ref_table attribute to ref_table_name and adds a new ref_table attribute
    whose value is a reference to the named table.
    
    This will be useful in an upcoming commit where table references are
    actually followed.

commit 5c3a4660c0ab317f904446bef8cf1bcce439d754
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 17:17:36 2011 -0700

    python: Accept multiple forms of strings and lists when parsing JSON.
    
    The JSON parser in OVS always yields unicode strings and lists, never
    non-unicode strings or tuples, but it's easy to create them when building
    JSON elsewhere, so accept both forms.

commit 843fb01b61944b37337690bc323d5b469b0239f6
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 15:31:12 2011 -0700

    python: Change 'clone' function names to 'copy'.
    
    It seems that 'copy' is the proper name for this kind of function in
    Python, based on the existence of dict.copy().

commit 49c541dc1193528ff1a5f68ed7a69d3ddd4a00be
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 21 10:59:36 2011 -0700

    ovs.ovsuuid: Get rid of ovs.ovsuuid.UUID class.
    
    This class only caused unnecessary confusion.  This commit changes all of
    its methods into top-level functions.

commit 6484e7cd7af3954a56ae4ff8a9971cc4f0733beb
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 13:02:29 2011 -0700

    tests: Fix typos in C versions of test-ovsdb error messages.

commit b2edc4e7d84dd315330a9466adb755af4148dd40
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 13:01:39 2011 -0700

    ovs.jsonrpc: Include result in Message.__str__() output.
    
    This was overlooked in the initial implementation.  Including the result
    member makes logging output more useful.

commit 9e4f0157eca83b64b4c21380c5788274d48bff78
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 12:59:31 2011 -0700

    ovs.db.data: Make Datum.check_constraints() work.
    
    This code never got tested and so didn't work.
    
    This does not fix an actual bug because Datum.check_constraints() does not
    have any existing users.

commit cf5404f67d2659368292548012399206aee8be07
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 12:57:48 2011 -0700

    ovs.db.data: Fix Atom.new()'s handling of Boolean values.
    
    Boolean values have Boolean type, not real type.
    
    This does not fix an actual bug because Atom.new() does not have existing
    users.

commit d95d15107eb4c15548293be7b85face54dcd73a4
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 12:53:12 2011 -0700

    ovsdb-idl: Code style improvements.
    
    I noticed these opportunities for improvement while working on the Python
    IDL.

commit 9cf0ccf00c37b903b6e5cc08eb749bf5696c3222
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 13:09:25 2011 -0700

    tests: Actually run all the Python IDL tests under Python.
    
    The lack of _PY in the macro invocations caused these tests to actually
    test the C IDL.
    
    Fortunately they would have passed anyway, modulo some minor differences
    in output formatting that this commit fixes up.

commit 169390eed03f9854441ca76dc74fd906f614b761
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 13 14:27:23 2011 -0700

    ovs.json: Remove commented-out debug code.
    
    This must have slipped into an old commit by accident.

commit cba641035b62a9459c5a111cb6f9467aa0252db0
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 20 11:07:46 2011 -0700

    ovs.json: Actually implement the "pretty" option for serialization.

commit 9b46cccc33bedc8b4d538b159804b5b45b8b0ea7
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:12:53 2011 -0700

    python: Avoid shadowing standard or global names.
    
    Found by pychecker.

commit 28c781df8a451f862cec7bd54a38e992d98af058
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 20 11:05:13 2011 -0700

    python: Avoid "unused parameter" warnings from pychecker.
    
    pychecker ignores parameters named "_" or prefixed with "unused_".

commit 14cd095f2666d68cf0c4900d7cb9fb0841380bae
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:10:45 2011 -0700

    ovs.db.types: Always initialize ref_type attribute.
    
    The ref_type attribute was initialized on some paths but not others.
    
    Found by pychecker.

commit 215d7280e4068ba3f2ce1efd5a8f5dede4055423
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 22 16:08:46 2011 -0700

    ovs-monitor-ipsec: Fix typo in comment.

commit f137ed099e3feaa4a9d8c5dc5f5234945451795e
Author: Simon Horman <horms at verge.net.au>
Date:   Fri Sep 23 20:11:20 2011 +0900

    Include sys/socket.h for SOCK_STREAM
    
    This appears to be required when building using the Android NDK r6b
    (Android API level 13).

commit 5b44dc995c4fac16d63a980158245ebcf3db7b62
Author: Simon Horman <horms at verge.net.au>
Date:   Fri Sep 23 20:11:19 2011 +0900

    Include sys/wait.h for WIFEXITED
    
    This appears to be required when building using the Android NDK r6b
    (Android API level 13).

commit 9d02e3da31710ba3b7e680f3e9ef45ba7b495556
Author: Justin Pettit <jpettit at nicira.com>
Date:   Thu Sep 22 18:14:02 2011 -0700

    ovsdb-tool: Correct markup for 'db' argument in show-log description.

commit 05b8f1c2b47a64d1eee5d3fa4ab325b0784c5003
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 22 14:35:05 2011 -0700

    ofp-print: Avoid double space before "actions" for catch-all flows.
    
    Bug #7434.
    Reported-by: Michael Mao <mmao at nicira.com>

commit bb7d0e2287b7f1a593903d06c46a4d08b83b7b80
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 22 11:54:22 2011 -0700

    netdev-linux: Fix broken build on RHEL 6.
    
    Commit 00fa9d37c2b "Do not include net/ethernet.h and linux/if_tunnel.h"
    introduced a compile error on RHEL 6:
    
    lib/netdev-linux.c: In function 'netdev_linux_listen':
    lib/netdev-linux.c:734: error: 'ETH_P_ALL' undeclared (first use in this
    function)
    
    This fixes the problem.
    
    I verified that the Android NDK r6b mentioned in the previous commit
    contains a file named android-ndk-r6b/platforms/android-3/arch-x86/use/
    linux/if_ether.h that defines ETH_P_ALL.  I didn't try building on that
    platform.

commit a838c4fe1d5c4e39e52915e6c934c8dca36d17e6
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 22 11:36:39 2011 -0700

    netlink-socket: Async notifications are incompatible with other operations.
    
    A Netlink socket that receives asynchronous notifications (e.g. from a
    multicast group) cannot be used for transactions or dumps, because those
    operations would discard asynchronous messages that arrive while waiting
    for replies.
    
    This commit documents this issue in a comment on nl_sock_join_mcgroup().
    It also removes an internal attempt to avoid mixing multicast reception
    with other operations.  The attempt was incomplete, because it only
    handled dumps even though ordinary transactions are also problematic.  It
    seems better to remove it than to fix it because, first, all of the
    existing users in OVS already separate multicast reception from other
    operations and, second, an upcoming commit will start using unicast
    Netlink for asynchronous notifications, which has the same issues but
    doesn't use nl_sock_join_mcgroup().

commit 77b8ebcfd4f645f6de6dc438cb1d9f1ee4e88e0b
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 21 14:56:55 2011 -0700

    ovs-xapi-sync: Make pychecker-able.
    
    pychecker imports the code that it checks, which means that code at top
    level runs, so "ovs-xapi-sync" failed to import unless the user had write
    access to /var/log/openvswitch.

commit e8c02fd7e390d8ee43a6a810d8e16affc36057e0
Author: Daniel Roman <droman at nicira.com>
Date:   Wed Sep 21 14:44:15 2011 -0700

    ovs-bugtool: Fix --unlimited option.
    
    Bug #5443.

commit ee9bed06cd2794ced29190b6c6539993159d76f5
Author: Simon Horman <horms at verge.net.au>
Date:   Thu Sep 22 21:24:14 2011 +0900

    Remove netdev_find_dev_by_in4
    
    netdev_find_dev_by_in4() appears to no longer be used and thus
    can be removed. This also allows netdev_enumerate(), the
    enumerate member of struct netdev_class and netdev_linux_enumerate()
    to be removed.
    
    I noticed this as netdev_linux_enumerate() makes use of if_nameindex()
    and if_freenameindex() which are not available when compiling using
    the Android NDK r6b (Android API level 13).

commit 00fa9d37c2b2166358d9967a5fa03dc1ae45b2ca
Author: Simon Horman <horms at verge.net.au>
Date:   Thu Sep 22 21:24:13 2011 +0900

    Do not include net/ethernet.h and linux/if_tunnel.h
    
    net/ethernet.h and linux/if_tunnel.h do not appear to be needed
    on lib/netdev-linux.c.
    
    I noticed this while trying to build on the Android NDK r6b (Android API
    level 13) as these headers are not present there.

commit 0c2c90570b53b715bf5f51d12b1987fd87db3bbf
Author: Simon Horman <horms at verge.net.au>
Date:   Thu Sep 22 21:24:12 2011 +0900

    Add fallback definition of SIG_ATOMIC_MAX
    
    Android appears to lack SIG_ATOMIC_MAX which is only
    used in fatal-signal.c.
    
    Observed when compiling using the Android NDK r6b (Android API level 13).
    
    Patch based on a suggestion by Ben Pfaff

commit 72af4a857c677902cdb5007ea4eb63c608215913
Author: Simon Horman <horms at verge.net.au>
Date:   Thu Sep 22 21:24:11 2011 +0900

    Include <sys/time.h> in socket-util.h
    
    sys/time.h appears to be required for a definition of timespec on Android.
    
    Observed when compiling using the Android NDK r6b (Android API level 13).

commit 8e47be7756c593bfd13dcd513df1cf7a90378eeb
Author: Simon Horman <horms at verge.net.au>
Date:   Thu Sep 22 21:24:10 2011 +0900

    Include <sys/socket.h> in socket-util.h
    
    This appears to be necessary to get a definition of socket_t
    when compiling using the Android NDK r6b (Android API level 13).

commit 0428ae5f7b6b3a83d501e8b8491923650b79f854
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 21 20:49:32 2011 -0700

    netlink-socket: Fix typo in comment.

commit 2fb2cb980c4a0026cc64e693a92c349d4b4f4efe
Author: Jesse Gross <jesse at nicira.com>
Date:   Wed Sep 21 12:41:52 2011 -0700

    datapath: IFF_BRIDGE_PORT is backported by Centos 5.6.
    
    Some versions of Centos 5.6 backport the flag IFF_BRIDGE_PORT
    without the associated rx_handler changes, so this changes to
    use a version check since we really don't care about the actual
    symbol.
    
    Reported-by: Srinivasan Ramasubramanian <vrsrini at gmail.com>
    Signed-off-by: Jesse Gross <jesse at nicira.com>

commit f15c86394230974d0535c0f5913cc959f3d920f3
Author: Jesse Gross <jesse at nicira.com>
Date:   Tue Sep 20 16:44:46 2011 -0700

    datapath: Cleanup actions.c:do_output().
    
    The code for outputting a packet can be simplified a little and
    also modernized.  There is no functional change.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit 646b8753e467399966d1ed7bb56c81a84589029f
Author: Jesse Gross <jesse at nicira.com>
Date:   Tue Sep 20 16:29:38 2011 -0700

    datapath: Send to userspace errors shouldn't halt processing.
    
    If we encounter an error when sending a packet to userspace due to
    an explicit action we stop processing further actions.  This makes
    sense for things like push vlan, where to continue means outputting
    an incorrect packet.  However, sending to userspace is more akin
    to outputting to a port, which does not halt further processing.
    For consistency, ignore errors in this case as well.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit d48c88ecdbab481a210a1d02a616a30ee261cabf
Author: Jesse Gross <jesse at nicira.com>
Date:   Tue Sep 20 10:31:29 2011 -0700

    datapath: Correctly validate vport attributes on old kernels.
    
    The vport policy for OVS_VPORT_ATTR_PORT_NO and OVS_VPORT_ATTR_TYPE
    are present only in the section for newer kernels.  This means that
    on older kernels the length of these attributes are never checked
    anywhere but we go ahead and read from them anyways.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit 96871912a16c25bdc18bb22db79485b0fa80a87d
Author: Jesse Gross <jesse at nicira.com>
Date:   Tue Sep 20 14:08:57 2011 -0700

    datapath: Remove check for shared skbs.
    
    We never allow shared skbs to be present inside of the OVS datapath
    but the presence of a check in the core makes this less clear.  Since
    the check is very old and no longer relevant, drop it.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit dd1dcc23c7b7f6371e4e67078238f071c25d10ad
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 19 13:29:05 2011 -0700

    ovs-vsctl: Fix typo in documentation.
    
    I don't know what was really supposed to go here.
    
    Documentation #7371.
    Reported-by: Reid Price <reid at nicira.com>

commit e6687b0ea6b3e2b10a4f6f25ec2ba232f74954d9
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 20 09:38:33 2011 -0700

    debian: Correct path to ovs-controller in init script.
    
    Reported-by: George Shuklin <amarao at desunote.ru>
    Bug-report: http://bugs.debian.org/642206

commit 99769a40d9d5769c94ae3520112d86c56cbb7322
Author: Jesse Gross <jesse at nicira.com>
Date:   Thu Sep 15 16:41:36 2011 -0700

    datapath: Fully initialize datapath before local port.
    
    It's possible to start receiving packets on a datapath as soon as
    the internal device is created.  It's therefore important that the
    datapath be fully initialized before this, which it currently isn't.
    In particular, the fact that dp->stats_percpu is not yet set is
    potentially fatal.  In addition, if allocation of the Netlink response
    failed it would leak the percpu memory.  This fixes both problems.
    
    Found by code inspection, in practice the datapath is probably always
    done initializing before someone can send a packet on it.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit 5721c788f25dda3be1b281331db262f6806ab35e
Author: Jesse Gross <jesse at nicira.com>
Date:   Mon Sep 19 16:23:25 2011 -0700

    datapath: Correctly set error code in queue_userspace_packets().
    
    In a few places in queue_userspace_packets() when we encounter an
    error, we don't actually set the 'err' variable.  Although we
    free the packets we don't correctly account for these packets as
    being lost.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit cca208bb634b0825f8d56fde4ec10a240a45e9c1
Author: Jesse Gross <jesse at nicira.com>
Date:   Mon Sep 19 16:11:27 2011 -0700

    datapath-protocol: vport_stats types are unsigned.
    
    The 'u' in uint64_t apparently got clipped off of the tx_dropped
    member of struct vport_stats in between review and push, incorrectly
    making this a signed type.
    
    CC: Pravin Shelar <pshelar at nicira.com>
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Pravin Shelar <pshelar at nicira.com>

commit 975a704c827a8a5d5c2264441f3a4ebcf097720c
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Mon Sep 19 14:55:31 2011 -0700

    sflow: Use ODP-port number to lookup ifindex.
    
       dpif_sflow_odp_port_to_ifindex() expects odp_port number as sFlow
    maintains ODP-port to ifindex mapping.

commit 03a8a29eb87ef21d0e56c200ebe43878ef773d63
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 19 13:22:16 2011 -0700

    ovs-ofctl: Clarify in_port in manpage.
    
    Suggestion #7370.
    Suggested-by: Reid Price <reid at nicira.com>

commit e51df1a05ac15da1d485d32b586743265aaeb8ee
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 19 13:04:34 2011 -0700

    nicira-ext: Clarify comment.
    
    I noticed a couple of typos and inaccuracies here while reviewing Jean's
    changes to it for OXM at https://www.opennetworking.org/bugs/browse/EXT-1

commit 2a8859b0a4fe11c6418fe07dbb9b1c403a3986b4
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 16 16:46:18 2011 -0700

    daemon.py: Silence return warning.
    
    Pychecker complains about __read_pidfile() having too may returns.
    I personally think the function is fine, but it's easy enough to
    reduce them.
    
    python/ovs/daemon.py:395: Function (__read_pidfile) has too many
    returns (12)

commit 591c20651f18b158294d0f0456c2cb92b4051031
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 16 16:38:39 2011 -0700

    daemon.py: Don't shadow built-in 'file' variable.
    
    Pychecker considers it bad style.

commit cadc9871c2b0962e7d8497d643f49b4e1176c5c0
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 16 16:03:31 2011 -0700

    daemon.py: Whitespace cleanup.
    
    The python style guide requires two newlines between top level
    definitions.  This patch also removes some trailing whitespace.

commit 50e97486ca7966922d1c2c29e84e08cbe5ac2140
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 16 15:48:33 2011 -0700

    tests: Cleanup test-daemon.py style.
    
    By convention, unused arguments should be named "_" and top level
    definitions should be separated by two spaces.

commit a5faa982dca4666c705717db165a2e8a13592e01
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Sep 16 11:31:55 2011 -0700

    cfm: Update cfm_remote_mpids documentation.

commit 213a13ed774742939de4c162e572cfbea9ce77df
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Sep 12 18:57:50 2011 -0700

    dpif-linux: Handle nl_lookup_genl_mcgroup() failures.
    
    The nl_lookup_genl_mcgroup() function can fail on older kernels
    which do not support the required netlink interface.  Before this
    patch, dpif-linux would refuse to create a datapath when this
    happened.  With this patch, it attempts to use a workaround.  If
    the workaround fails it simply disables the affected features
    without completely disabling the dpif.

commit 8f4a4df5e354721ef8ae47f1e8aa8af55d10aa38
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Sep 14 11:26:21 2011 -0700

    dpif-linux: Open dpif despite notifier failures.
    
    Before this patch, if dpif-linux failed to register a notifier it
    would give up opening the datapath entirely.  This seems draconian
    as a dpif can still perform the majority of its intended
    functionality without vport notifications.

commit 7fad428207c1d2ef50878da0740ee94dd57eb8bf
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Sep 12 14:09:34 2011 -0700

    datapath: Hardcode vport multicast group ID on older kernels.
    
    Older kernels do not advertise the multicast groups of families
    when requested by userspace.  As a workaround, this patch hardcodes
    the multicast group ID of the ovs_vport family on these kernels.
    Userspace will be able to fall back to this hardcoded value if the
    standard mechanism is unavailable.
    
    Signed-off-by: Ethan Jackson <ethan at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 2ee6545f2bff7eb27e8c84965e3ff38dfa909bf6
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Sep 15 11:21:23 2011 -0700

    notifiers: Create and destroy nln_notifiers.
    
    This patch changes the interface of netlink-notifier and
    rtnetlink-link.  Now nln_notifiers are allocated and destroyed by
    the module instead of passed in by callers.  This allows the
    definition of nln_notifier to be hidden, and generally cleans up
    the code.

commit 18a237816419e6f88ab0383b43d8060914d26a9a
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Sep 15 11:23:08 2011 -0700

    notifiers: Rename run and wait functions.
    
    It makes more sense to call nln_notifier_run() and
    nln_notifier_wait() simply nln_run() and nln_wait() since they
    don't operate on notifiers but the entire nln object.  This patch
    changes the nln and the rtnetlink-link modules to the new
    convention.

commit c3b07057fd7f02b4e6bb006bcecff8683237778e
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 15:27:14 2011 -0700

    ofproto-dpif: Fix behavior when a subset of VLANs is trunked.
    
    Reported-by: Philippe Jung <phil.jung at free.fr>

commit f613a0d72c521ca3a4eeb2c29ac523f6fdf72667
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Thu Sep 15 19:36:17 2011 -0700

    datapath:  Always use generic stats for devices (vports)
    
        Currently ovs is using device stats for Linux devices and count them
    itself in other situations. This leads to overlap with hardware stats,
    inconsistencies, etc. It's much better to just always count the packets
    flowing through the switch and let userspace do any merging that it wants.
    
    Following patch removes vport->get_stats() interface. vport-stat is changed
    to use new `struct ovs_vport_stat` rather than rtnl_link_stats64.
    Definitions of rtnl_link_stats64 is removed from OVS.  dipf_port->stat is also
    removed as aggregate stats are only available at netdev layer.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 9197df76b46ff6fbe1f7a522961730ffc55a860d
Author: Justin Pettit <jpettit at nicira.com>
Date:   Mon Sep 12 22:13:30 2011 -0700

    Set MTU in userspace rather than kernel.
    
    Currently the kernel automatically sets the MTU of any internal
    interfaces to the minimum of all attached interfaces because the Linux
    bridge does this.  Userspace can do this with more knowledge and
    flexibility.
    
    Feature #7323
    
    Signed-off-by: Justin Pettit <jpettit at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit a89721b529d83aac3a09d5027a01756771c78187
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 15:58:59 2011 -0700

    AUTHORS: Add Tyler Coumbes <coumbes at gmail.com>.

commit 9ed3ba29b36ab99b75d6519660f58d6f5f9bd190
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 15:55:45 2011 -0700

    ovs-brcompatd: Delete ports when netdevs on fake bridges disappear.
    
    Until now, when a network device disappeared, netdev_changed_cb() passed
    the name of the bridge that contained the network device to ovs-vsctl as
    part of the "del-port" command.  However, when the network device was
    actually a "fake bridge", it would pass the name of the real bridge, which
    ovs-vsctl rejected as wrong (expecting the name of the fake bridge) and
    not remove the port.
    
    This fixes the problem by dropping the bridge name, which is simpler than
    trying to get the name of the fake bridge in this case.
    
    Reported-by: Tyler Coumbes <coumbes at gmail.com>
    Tested-by: Tyler Coumbes <coumbes at gmail.com>

commit a193dde952a9ec7bb388e08b86bd2929edd3a353
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 15:40:39 2011 -0700

    cfm: Delete spurious blank line.

commit a892775d031cbc6dbba90baccba6dbd294a432c8
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 13:30:18 2011 -0700

    ovs-vsctl: Improve usage message.
    
    Bug #7332.
    Reported-by: Gordon Good <ggood at nicira.com>

commit 8c977421e48b18398137bcbbf447e372ac61b6a6
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Sep 15 15:27:22 2011 -0700

    ofproto-dpif: Revalidate on cfm and lacp addition.
    
    The introduction of cfm or lacp objects to ofproto, requires the
    removal of all flows which originate from the newly "special"
    in_port.

commit 8007bb2d9e26d08d0cb8c5318d3a33db55b38bcf
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 25 10:20:28 2011 -0700

    bugtool: Remove "ovs-bugtool" upon "make clean", to fix "make distcheck".

commit c0896bdd20b2b4ac7f1183835e2d8c99d6bb29fe
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 25 10:20:01 2011 -0700

    bugtool: Uninstall plugins on "make uninstall".
    
    This works toward making "make distcheck" succeed.

commit 44852fdf6335927b44ac7ebb348efa782a7f08de
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 25 10:19:23 2011 -0700

    Mark "uninstall-local" targets phony.

commit d56bfe387167efbf99600cb2c054dd36f7ae6033
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 25 10:18:47 2011 -0700

    rhel: Fix "make distcheck" failure due to regenerating spec files.
    
    We want to regenerate the RPM spec files whenever the version number
    changes, hence the dependency on config.status.  But that means that we
    try to modify the spec files even when the version number doesn't change,
    which cause "make distcheck" to fail because it write-protects the source
    directory.  So this commit instead just "touch"es the spec files when
    they don't really change, which still works OK with a write-protected
    source directory.

commit 109b8459218973f7fba72fc606bcdbbb306592de
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 8 11:21:45 2011 -0700

    ofproto: Remove dummy 'in_port' variable.
    
    Seems like a very small cleanup.

commit eb6e978cc1119c651efe48aeffc22e1827e4458a
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Sep 7 10:12:13 2011 -0700

    ofp-util: Remove obsolete build assertion.
    
    Commit d1e9b9bf3 "nicira-ext: Renumber NXT_FLOW_MOD_TABLE_ID" eliminated
    the need for the NXT_SET_FLOW_FORMAT and NXT_FLOW_MOD_TABLE_ID commands to
    have different sizes, so asserting that they are different isn't useful
    anymore (although it is still correct and always will be).

commit 6d324ae5dbe13066aa60d71c4e5d2beaaab6af21
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 6 16:48:39 2011 -0700

    odp-util: Drop pointless "if" statement.

commit 14622f22abd93ca464c9be1b6b58d6f0fb2bb186
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 15 10:41:15 2011 -0700

    netdev: Allow get_mtu and set_mtu provider functions to be null.
    
    Most netdev provider functions are allowed to be null if the implementation
    does not support this feature.  This commit adds this feature for get_mtu
    and set_mtu, and changes netdev-vport to take advantage of it.
    
    Also, changes netdev_get_mtu() to report an MTU of 0 on error, instead of
    leaving the MTU indeterminate.

commit 98fbd5b28b4e67d3cabe2ef1c7d1dfec9a1067ce
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Wed Sep 14 17:39:43 2011 -0700

    datapath: Fix tunnel lookup
    
            Attached patch fixes tunnel lookup to do correct port comparison.
    This bug is introduced by commit 3544358aa5960b148bc31435a0062e9392530ec2
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit cc4015df5f24df80ad8ebf0ed965782b44964b4e
Author: Jesse Gross <jesse at nicira.com>
Date:   Mon Aug 1 00:35:20 2011 -0700

    datapath: Set vport in skb when executed from userspace.
    
    Currently, the OVS_CB(skb)->vport member is never initialized for
    packets coming from userspace.  This means that they can never be
    sampled by sFlow and generally violates our principle that userspace
    packets should be made to look the same as others.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Pravin Shelar <pshelar at nicira.com>

commit 0993b66bf85d8816b1937675364c8ff268ccecd8
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Sep 13 13:30:30 2011 -0700

    man: pic failed to run during manpage-check
    
    This patch fixes the following warnings on my system:
    
    vswitchd/ovs-vswitchd.conf.db.5:62: warning: macro `PS' not defined
    vswitchd/ovs-vswitchd.conf.db.5:138: warning: macro `PE' not defined

commit 5ce1c3c64db8e2468fbab8d9ba94ee7a805b6d0a
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Sep 13 13:27:38 2011 -0700

    lib: TYPE_IS_SIGNED macro generates compiler warnings.
    
    The TYPE_IS_SIGNED macro does a less than zero comparision with an
    unsigned type which can cause compiler warnings like the following:
    
    lib/tag.c:100:9: error: comparison of unsigned expression < 0 is
    always false [-Werror=type-limits]

commit 995337c4fc5f249965c52be52e852e5195ed2542
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Sep 13 13:28:49 2011 -0700

    socket-util:  inet_parse_passive() had incorrect argument type.
    
    This patch fixes the following compiler warning:
    
    lib/socket-util.c:621:5: error: comparison is always false due to
    limited range of data type [-Werror=type-limits]

commit a6d214f0055dc773750295a5db7cc5ca14bc5ce7
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Sep 13 13:15:48 2011 -0700

    lib: Suppress comparison warnings in ovsdb libraries.
    
    This patch fixes compiler warnings like the following:
    
    ./lib/ovsdb-types.h:171:5: error: comparison of unsigned expression
    >= 0 is always true [-Werror=type-limits]

commit 54a9cbc9637e3deba7e436aac398aaa9ba110892
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 12 16:48:07 2011 -0700

    ofproto-dpif: Optimize flow revalidation for MAC learning.
    
    Without this commit, every NXAST_LEARN action that adds a flow causes every
    facet to be revalidated.  With this commit, as long as the "Usage Advice"
    in the large comment on struct nx_action_learn in nicira-ext.h is followed,
    this no longer happens.

commit 9cdaaebe218dbd9d2126818725b0111a70a3df54
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 12 16:40:03 2011 -0700

    ofproto-dpif: Introduce an enum for the number of tables.
    
    It seems reasonable that someone might want to reduce this number, so
    make it an enum to simplify that.
    
    If someone does reduce the number then rule_dpif_lookup() needs to validate
    the table_id, so add code to do that too.

commit ecf1e7ac2bc61b1d614395354554e672535135f8
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 12 16:38:52 2011 -0700

    flow: New function flow_wildcards_is_catchall().
    
    This will be used in an upcoming commit.

commit 993410fbc742a6beec0841a2be542c4105684e12
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Aug 19 09:39:16 2011 -0700

    classifier: Move zero_wildcards() to flow.c as public flow_zero_wildcards().
    
    This function will soon be used elsewhere.  As it doesn't inherently have
    anything to with the classifier, move it to flow.c.

commit 75a75043564dc9b002fffa6c6ad71e0d4d5c892e
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 12 16:19:57 2011 -0700

    Implement new "learn" action.
    
    There are a few loose ends here.  First, learning actions cause too much
    flow revalidation.  Upcoming commits will fix that problem.  The following
    additional issues have not yet been addressed:
    
        * Resource limits: nothing yet limits the maximum number of flows that
          can be learned.  It is possible to exhaust all system memory.
    
        * Age reporting: there is no way to find out how soon a learned table
          entry is due to be evicted.
    
    To try this action out, here's a recipe for a very simple-minded MAC
    learning switch.  It uses a 10-second MAC expiration time to make it easier
    to see what's going on:
    
    ovs-vsctl del-controller br0
    ovs-ofctl del-flows br0
    ovs-ofctl add-flow br0 "table=0 actions=learn(table=1, hard_timeout=10, \
    	NXM_OF_VLAN_TCI[0..11], NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], \
    	output:NXM_OF_IN_PORT[]), resubmit(,1)"
    ovs-ofctl add-flow br0 "table=1 priority=0 actions=flood"
    
    You can then dump the MAC learning table with:
    
    ovs-ofctl dump-flows br0 table=1

commit 308881afb61e292c629b36a357cfc37153884000
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Aug 19 10:33:09 2011 -0700

    ofproto: Reinterpret meaning of OpenFlow hard timeouts with OFPFC_MODIFY.
    
    I finally found a good use for hard timeouts in OpenFlow, but they require
    a slight reinterpretation of the meaning of hard timeouts.  Until now, a
    hard timeout meant that a flow would be removed the specified number of
    seconds after a flow was created.  Intervening modifications with
    OFPFC_MODIFY(_STRICT) had no effect on the hard timeout; the flow would
    still be deleted the specified number of seconds after its original
    creation.
    
    This commit changes the effect of OFPFC_MODIFY(_STRICT).  Now, modifying
    a flow resets its hard timeout counter.  A flow will time out the specified
    number of seconds after creation or after the last time it is modified,
    whichever comes later.

commit a75531e53e03d9fe9915f8041759601c07e47914
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 18 11:20:12 2011 -0700

    test-openflowd: Allow specifying port type on --ports option.
    
    This allows a command like "test-openflowd --enable-dummy dummy at br0
    --ports=dummy at eth0,dummy at eth1,dummy at eth2" to create a dummy datapath with
    a number of dummy ports.  This is more useful for testing than a dummy
    datapath with just an internal port, since output to "flood" and "normal"
    has less pathological results.

commit 26ce31583b1654a3acaaf6de8e9567e327fbc104
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 18 11:17:29 2011 -0700

    dpif-netdev: Also allow "dummy" netdevs in a dpif-netdev.
    
    I've always intended this to work, but either I never tested it or the
    support rotted.
    
    This will soon be used in some tests that I will add.

commit 8b3b8dd1a5a1a8ba3b7e62798ff70cb8f9fc7659
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 8 14:32:13 2011 -0700

    ofproto-dpif: Add -generate option to ofproto/trace command.

commit 6a885fd0589fdfa3b5d05ca3ff4af52b085a1816
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 12 12:11:50 2011 -0700

    meta-flow: New library for working with fields by id.
    
    OVS already has a fairly good set of functions for working with fields that
    are known at compile time, but support for working with fields that are
    known only at runtime is fairly limited (and fairly unneeded).  However,
    with NXM identifiers becoming more and more widely used throughout Nicira
    extensions, it's becoming corresponding more and more common to need to
    refer to fields at runtime.  This new library represents a first attempt
    at a systematic approach for doing so.

commit 1b9d6420b95f4d0ed78e337a43d1be88b571d5fb
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 17 15:48:50 2011 -0700

    ofproto: Mark some parameters 'const'.

commit 7024dffed8cf0b19228704d99acb222b400a3354
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 10 16:16:16 2011 -0700

    ofproto: Add 'ofproto' parameter to most flow_mod functions.

commit dd5616b3d2722dba0eb4597d4b04af9386f5bfbb
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 10 14:48:33 2011 -0700

    ofproto: Avoid using list_size() to compute length of 'pending' list.
    
    Currently this only gets checked for incoming OpenFlow OFPT_FLOW_MOD
    messages, so it's hard to imagine it being any kind of bottleneck, but the
    NXAST_LEARN action that is soon to be added will be able to create flows
    more quickly than we normally expect from a controller.  (On the other
    hand, ofproto-dpif, outside of a special testing mode, always completes
    operations immediately, so 'pending' will always have length 0.  But this
    change still feels right to me for some reason.)

commit 0ff2282245a87f253843bf357988d7230139888f
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 17 13:39:02 2011 -0700

    ofp-util: New function for parsing key-value pairs.
    
    This will soon have a new user, but it's a worthwhile cleanup on its own.

commit 93996add1ca50e85e4b3938133fcac15b56fbf01
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 16 16:30:57 2011 -0700

    ofp-util: Add type-safe functions for serializing actions.

commit 333eba210b39a09a17c036335ed312ae123ba339
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 16 16:08:24 2011 -0700

    ofp-parse: Refactor action parsing to improve compiler warnings.
    
    When a new action is added, compiler warnings show most of the places that
    need new code to handle that action.  The action parsing code in
    ofp-parse.c was the one remaining missing case.  This commit fixes that.

commit e23ae585275dfa76de50b698754b2066cc944e01
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 17 11:01:17 2011 -0700

    ofp-util: Further abstract definitions of action properties.
    
    This commit primarily moves the OFPAT_ACTION and NXAST_ACTION invocations
    into a new file ofp-util.def.  This allows multiple places in the source to
    use them.
    
    This commit also adds a new function ofputil_action_code_from_name().
    The following commit will add the first user.

commit 39dc90822efc67cee8485e3e410f239a2a9e6e00
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 16 15:26:18 2011 -0700

    ofp-util: New functions for parsing and formatting OpenFlow port numbers.
    
    These functions were previously used only in ofp-parse.c and ofp-print.c,
    but they are more generally useful and future commits will add more users.

commit aad29cd1a1fb76aa68a9c404a47b66ac516149b5
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 17 10:55:15 2011 -0700

    packets: Add more utility functions for IPv4 and IPv6 addresses.
    
    We had these functions scattered around the source tree anyway.  packets.h
    is a good place to centralize them.
    
    I do plan to introduce some additional callers.

commit e7ed3a3a5f87d20f0cc632ae23adba6f30a4e19d
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 12 10:57:28 2011 -0700

    classifier: Change cls_rule_set_nd_target() to take a pointer.
    
    The other cls_rule_*() functions that take IPv6 addresses take a pointer
    to an in6_addr, so cls_rule_set_nd_target() should as well for consistency.
    Possibly this is more efficient also, although I guess it doesn't really
    make much of a difference either way.

commit 21d486606d67881c9dccb59a6f0ba6cbd1af5dfa
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Sep 12 22:39:01 2011 -0700

    bridge: Don't update CFM on synthetic interfaces.
    
    Synthetic interfaces don't have database records so it doesn't make
    sense to update them.  In some situations this could cause a
    segmentation fault.
    
    Reported-by: Paul Ingram <paul at nicira.com>
    
    Bug #7278.

commit 8e9ce036dd93307b50b9189438b3929234391d61
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Sep 12 17:19:13 2011 -0700

    tests: Test ofproto-dpif set_tunnel translation.
    
    This patch adds a unit test which would have caught the issue fixed
    in Commit 2446268e "ofproto-dpif: set_tunnel when required to."

commit bf1e03710e905cd33765bf72b734020bf98d46ac
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Sep 12 16:56:21 2011 -0700

    ofproto-dpif: Emit set_tunnel when required to.
    
    ofproto-dpif assumed that the datapath initialized the tun_id of a
    flow on egress, to its tun_id on ingress.  For this reason, if
    OpenFlow actions set the tun_id to a flow's ingress tun_id,
    ofproto-dpif would fail to emit a set_tunnel action.
    
    Reported-by: Igor Ganichev <iganichev at nicira.com>
    Reported-by: Pankaj Thakkar <thakkar at nicira.com>

commit 9b02078077b62e4277e84c7f39382ce09986cf6b
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Mon Sep 12 17:12:52 2011 -0700

    datapath: Strip down vport interface : OVS_VPORT_ATTR_MTU
    
    There is no need to have vport attribute MTU (OVS_VPORT_ATTR_MTU) as
    linux net-dev-ioctl can be used to get/set MTU for linux device.
    Following patch removes OVS_VPORT_ATTR_MTU from datapath protocol.
    
    This patch also adds netdev_set_mtu interface. So that MTU adjustments
    can be done from OVS userspace. get_mtu() interface is also changed, now
    get_mtu() returns EOPNOTSUPP rather than returning 0 and setting *pmtu
    to INT_MAX in case there is no MTU attribute for given device.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 2f2df2f4dafada02f022c2900f7a17628af7a0d1
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Sep 12 10:49:55 2011 -0700

    ofproto-dpif: Fix check for 802.1Q header in commit_odp_actions().
    
    The 'vlan_tci' member of struct flow has value 0, not OFP_VLAN_NONE, when
    there is no 802.1Q header.
    
    Fixes a problem introduced in commit d9065a90b6b "datapath: VLAN actions
    should use push/pop semantics."
    
    Found by sparse.
    
    CC: Pravin Shelar <pshelar at nicira.com>

commit c87112ca1a90fe77cbba6c340ef7e30815b537f7
Author: Jesse Gross <jesse at nicira.com>
Date:   Mon Sep 12 10:43:46 2011 -0700

    NEWS: Mention support for keys in CAPWAP.

commit 64624b3cf405d0ca089fe978898896087337cb90
Author: Simon Horman <horms at verge.net.au>
Date:   Sat Sep 10 15:09:31 2011 +0900

    Debian: fail gracefully if modules can't be loaded on install
    
    By registering an error-handler for the init script used
    in openvswitch-switch.postinst and detecting if module insertion fails,
    it is possible to avoid failure to install in the case where the
    openvswitch_mod module is not available.
    
    This is done without altering the behaviour that the start target
    of the openvswitch-switch init script will fail if module insertion fails.
    
    This patch also adds a friendly hint as as to why starting
    openvswitch-switch has failed if it is due to failure to insert
    the openvswtich_mod. This message is displayed as necessary both
    on package install and other calls to the start target of the
    init script.
    
    [Ben Pfaff fixed up == to = in postinst]

commit 40a751774f4255d7b6af699547d72e823c0be1e1
Author: Valient Gough <vgough at pobox.com>
Date:   Wed Aug 24 15:12:06 2011 +0900

    datapath: add key support to CAPWAP tunnel
    
    Add tunnel key support to CAPWAP vport.  Uses the optional WSI field in a
    CAPWAP header to store a 64bit key.  It can also be used without keys, in which
    case it is backward compatible with the old code.  Documentation about the
    WSI field format is in CAPWAP.txt.
    
    Signed-off-by: Valient Gough <vgough at pobox.com>
    [horms at verge.net.au: Various minor fixes (v4.1)]
    Signed-off-by: Simon Horman <horms at verge.net.au>
    [jesse: Additional parsing fixes]
    Signed-off-by: Jesse Gross <jesse at nicira.com>

commit 3544358aa5960b148bc31435a0062e9392530ec2
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Fri Sep 9 19:09:47 2011 -0700

    datapath: Improve kernel hash table
    
     Currently OVS uses its own hashing implmentation for hash tables
    which has some problems, e.g. error case on deletion code.
    Following patch replaces that with hlist based hash table which is
    consistent with other kernel hash tables. As Jesse suggested, flex-array
    is used for allocating hash buckets, So that we can have large
    hash-table without large contiguous kernel memory.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit d9065a90b6b955aa38586c952e8804ca7a22547e
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Fri Sep 9 18:13:26 2011 -0700

    datapath: VLAN actions should use push/pop semantics
    
    Currently the kernel vlan actions mirror those used by OpenFlow 1.0.
    i.e. MODIFY and STRIP. More flexible approach is to have an action to
    push a tag and pop a tag off, so that it can handle multiple levels of vlan
    tags. Plus it aligns with newer version of OpenFlow.
            As this patch replaces MODIFY with PUSH semantic, action
    mapping done in userpace is fixed accordingly.
            GSO handling for multiple levels of vlan tags is also added as
    Jesse suggested before.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit f37c91c76785e335e9d89aa31a7f0ab290223193
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Fri Sep 9 17:07:35 2011 -0700

    datapath: Fix br_nlmsg_size
    
    I missed this in last vport iflink patch.
        As IFLA_LINK is not be passed in netlink msg there is no need to
    allocate space for it.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 2a477244f7479055bca01450eb61ae553a5108a4
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Sep 9 10:21:49 2011 -0700

    netlink-socket: Avoid use-after-free in nl_lookup_genl_mcgroup().
    
    Commit e408762f "netlink-socket: New function nl_lookup_genl_mcgroup()"
    modified do_lookup_genl_family() to return the Netlink attributes to the
    caller, but it still freed the Netlink message itself, which meant that
    the attributes pointed into freed memory.  This commit fixes the problem.
    
    This commit is not a minimal fix.  It refactors do_lookup_genl_family(),
    changing the return value from "negative errno value or positive genl
    family id" to the more common "zero or positive errno value".
    
    Found by valgrind.

commit 0d1fe4a36287a2e107f96e50a6ab3556da3726a3
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Sep 9 10:12:32 2011 -0700

    bridge: Avoid reading uninitialized data in bridge_pick_local_hw_addr().
    
    Commit 3a48ace3 "bridge: Make bridge_pick_local_hw_addr() easier to reason"
    didn't initialize 'ea' before trying to compare against it.  We need to
    check that an address has been found.
    
    Found by valgrind.

commit 1de11730e612b09e28892880c2845185497a3741
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Aug 26 14:54:34 2011 -0700

    cfm: Write remote MPIDs to the database.
    
    A controller may want to know which MPIDs are reachable from an
    interface configured with CFM.  This patch regularly writes this
    information to the database.
    
    Bug #7014.

commit 348f01e3e36b67f86ac2f9f90c7574d9e1b85d73
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Sep 1 13:28:25 2011 -0700

    cfm: Eight byte MPIDs in extended mode.
    
    802.1ag only allows for MPIDs in the range [1, 8191].  This is
    restrictive enough to make assignment of MPIDs to instances of OVS
    awkward.  This patch allows eight byte MPIDs when running in
    extended mode.
    
    Bug #7014.

commit de72402954abc382e63532e6d179583c5eea6227
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 30 17:37:15 2011 -0700

    cfm: Allow accurate transmission intervals in extended mode.
    
    The standard CFM protocol only allows a handful of transmission
    rates.  This is particularly problematic if you want to support a
    transmission rate slower than 100 ms and faster than 1000 ms.
    
    This patch allows arbitrary transmission rates (between 1 ms and
    65535 ms).  It does this by commandeering parts of a reserved
    "zero" field in the ccm message.  This breaks wire compatibility
    with standard 802.1ag implementations, and thus is only supported
    in extended mode.
    
    Bug #7014.

commit ef9819b5f131ae3c727309a7f3758fa079679c85
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 30 17:37:06 2011 -0700

    cfm: New cfm extended mode.
    
    The new extended mode introduced in this patch will be used for
    features which break wire compatibility with 802.1ag compliant
    implementations.
    
    Bug #7014.

commit 144216a3358fc3ddc8a8253dd85978f112cb7bbc
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Aug 19 13:58:56 2011 -0700

    cfm: Remove cfm_remote_mpid configuration.
    
    According to the 802.1ag specification, users should be able to
    configure the CFM module with a list of remote endpoints with which
    the local endpoint should have connectivity.  Commit 93b8df3853
    "cfm: Remove Maintenance_Point and Monitor tables." changed the
    behavior so that only one remote endpoint could be specified.  This
    commit takes it further, by disallowing specification of any
    remote endpoints.
    
    Due to this change, the semantics of the fault flag are slightly
    different.  Before, a fault was triggered if any of the configured
    remote endpoints were unreachable (or with RDI), or if any
    unconfigured remote endpoints were reachable.  Now a fault is
    triggered if no remote endpoints are reachable at all, or if
    reachable endpoints have set their RDI.
    
    Bug #7014.

commit e14749faf150dc909119b5431a2cd9e779623a71
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Aug 29 18:56:28 2011 -0700

    cfm: Trigger fault on unexpected CCM reception.

commit 0f0d2ae5dada602d17a700dfb6e261bafa62dd0b
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Sep 6 17:13:24 2011 -0700

    bridge: Clear fault when CFM is not configured.

commit 8f3fe844061b451aa2e0f478b7cb409a3eadc386
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Sep 8 16:15:36 2011 -0700

    bridge: Write CFM changes more aggressively.
    
    This patch no longer rate limits database updates due to CFM
    changes.  Due to recent changes, the fault status of CFM only
    changes once per 3.5 tx_interval seconds.  There doesn't seem to be
    a good reason to add an additional rate limit on top of this.

commit b4117094e5c17f463a0d8798a6195aa68b805c70
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Sep 8 16:19:10 2011 -0700

    bridge: ovsdb_idl_omit_alert() on additional columns.
    
    The bridge owns the lacp_current and cfm_fault columns and should
    not be alerted when they change.

commit a6a62132df2741914c1e2564cffe33ef2f5ec421
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Sep 9 12:45:15 2011 -0700

    ofproto: Document that ->rule_construct() should uninitialize victim rules.
    
    The comments didn't say how this should work, so this clarifies it.

commit dc12d1c3de75773b4c6cef6aa85d12c7dbb5570a
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 8 16:22:38 2011 -0700

    ofproto: Fix documentation for calls to ->rule_destruct().
    
    This documented what I intended to implement and what I thought I had
    implemented, but not what the code actually did.  It is a little easier to
    fix the documentation to match the implementation than vice versa, so this
    commit does so.
    
    Reported-by: Hao Zheng <hzheng at nicira.com>

commit b6e001b699d9affb558278ec90950f9960fe1826
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 30 18:19:48 2011 -0700

    ofproto-dpif: Drop special packets more judiciously.
    
    Before this patch, ofproto-dpif would not forward any LACP or CFM
    packets regardless of whether or not the relevant modules were
    configured on the in_port.
    
    Feature #6316.

commit 5f87736966c0a2ef4d5d4a3c5c541d771d45bcb3
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 30 18:17:27 2011 -0700

    lacp: Clean up LACP module interface.
    
    There's no particular reason to force users of the LACP module to
    be aware of the lacp_pdu structure.  This patch hides that
    information in the LACP module implementation.  This results in
    slightly cleaner code which is more consistent with the CFM
    module.

commit 7588b571759fe4aff24e76096640eb073fc90a05
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 30 18:46:50 2011 -0700

    vswitch.xml: Whitespace cleanup.

commit 18886b60bc7face9e08bc7ef06da365ee5c39e0a
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Sep 8 16:30:20 2011 -0700

    datapath: Allow a packet with no input port to omit OVS_KEY_ATTR_IN_PORT.
    
    When ovs-vswitchd executes actions on a synthesized packet, that is, on a
    packet that is not being forwarded from any particular port but is being
    generated by ovs-vswitchd itself or by an OpenFlow controller (using a
    OFPT_PACKET_OUT message with an in_port of OFPP_NONE), there is no good
    choice for the in_port to pass to the kernel in the flow in the
    OVS_PACKET_CMD_EXECUTE message.  This commit allows ovs-vswitchd to omit
    the in_port entirely in this case.
    
    This fixes a bug in OFPT_PACKET_OUT: using an in_port of OFPP_NONE would
    cause the packet to be dropped by the kernel, since that's an invalid
    input port.
    
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>
    Reported-by: Aaron Rosen <arosen at clemson.edu>

commit 0fe255dfbf37fa7ddc23c2593c512c092b0f61d7
Author: Jesse Gross <jesse at nicira.com>
Date:   Thu Sep 8 15:32:24 2011 -0700

    datapath: Calculate flow hash after extracting metadata.
    
    When we execute a packet from userspace we first extract the header
    fields from the packet and then add supplied metadata.  However, we
    compute the hash of the packet in between these two steps despite
    the fact that the metadata can affect the hash.  This can lead to
    two separate hashes for packets of the same flow.
    
    Found by code inspection, not an actual real-world problem.
    
    Signed-off-by: Jesse Gross <jesse at nicira.com>
    Acked-by: Ben Pfaff <blp at nicira.com>

commit ff8d7a5e81625bbb13d33ca73888fc848b02db83
Author: Pravin Shelar <pshelar at nicira.com>
Date:   Thu Sep 8 15:18:42 2011 -0700

    Strip down vport interface : iflink
    
    	Remove iflink from vport interface. iflink is not used anywhere in
    OVS. So there is not need to have iflink as vport attribute.
    
    Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit da3db88f3a7993a8e2a118542704e0babbe93fac
Author: Simon Horman <horms at verge.net.au>
Date:   Wed Sep 7 10:10:30 2011 +0900

    ovs-ctl: Add load-kmod command
    
    On Debian there is a need for the init scripts to die gracefully
    if module insertion fails. In such a case it is desirable to print
    some sort of informative message.
    
    By adding the load-kmod sub-command to ovs-ctl init scripts
    may try to load modules and take appropriate action on failure
    or then try to start the daemons.

commit 6c9b8ee4d0cae3acde728945f3a222b62a643304
Author: Alexey I. Froloff <raorn at altlinux.org>
Date:   Wed Sep 7 13:02:58 2011 +0400

    rhel: add ability to build kmod packages for arbitrary kernel version/variant(s)
    
    Usage:
    
    rpmbuild --rebuild \
      -D 'kversion KERNEL_VERSION' \
      -D 'kflavors FLAVORS TO BUILD' \
      openvswitch-kmod-VERSION-RELEASE.src.rpm
    
    Signed-off-by: Alexey I. Froloff <raorn at altlinux.org>
    Signed-off-by: Ben Pfaff <blp at nicira.com>

commit 1821f032e0b621dad19750da2fc8f346c6007a7e
Author: Alexey I. Froloff <raorn at altlinux.org>
Date:   Thu Sep 1 18:56:29 2011 +0400

    rhel: rename RHEL6 kmod source package
    
    Rename RHEL6 source package to openvswitch-kmod, so it doesn't intersect
    with main package.
    
    Signed-off-by: Alexey I. Froloff <raorn at altlinux.org>
    Signed-off-by: Ben Pfaff <blp at nicira.com>

commit 0a397a2fcafd3915433d4d476d41da53b07282d2
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Sep 6 09:33:26 2011 -0700

    netlink-protocol: Move CTRL_ATTR_MCAST definitions for consistency.
    
    One of the current goals of netlink-protocol.h, for better or for worse, is
    to ensure that the same definitions are available whether a Linux kernel is
    in use or not.  One of the ways it accomplishes this is by putting the
    conditional definitions that test for features missing in old kernels at
    the very end, after the dummy definitions used on non-Linux platforms.
    However, commit b0025c8389f "netlink-protocol: Define missing symbols"
    added new conditional definitions only in the Linux platform case, which
    means that those definitions won't be available on non-Linux platforms.
    This commit moves them to the end, instead.
    
    The symbols that are moved are only used from netlink-socket.c, which is
    only built on Linux platforms, so this does not change an actual bug.  It
    only makes the location of the definitions consistent with prior practice.

commit b0025c8389f6b8d0087df3468c14072a9935eb61
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Sep 1 18:48:29 2011 -0700

    netlink-protocol: Define missing symbols.
    
    OVS fails to build with xenddk-56100build3926 because it has an
    outdated genetlink header.

commit c7178a0b3e1c399bd8ac4bbdff48906ab6995f77
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 24 16:21:10 2011 -0700

    dpif-linux: Stop listening for RTNL notifications.
    
    Currently dpif-linux listens for vport change events using
    rtnetlink notifications.  This patch switches to the ovs genl
    notification system.
    
    Feature #6809.

commit f14d80834e73e5e91892e4763e01ccfd3a2d3be2
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 23 17:20:00 2011 -0700

    datapath: genl_notify() on port disappearances.
    
    Before this patch, if a vport detached itself from the datapath
    without interaction from userspace, rtnetlink notifications would
    be sent, but genl notifications would not.
    
    Feature #6809.
    
    Signed-off-by: Ethan Jackson <ethan at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit e408762f5d16370d9308c22f8f9853d911e92a95
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 23 13:13:34 2011 -0700

    netlink-socket: New function nl_lookup_genl_mcgroup().

commit 0a811051ffd7f836f66ef770d7a3dcc92ec7d51a
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 24 15:17:32 2011 -0700

    netlink-notifier: Rename rtnetlink code.
    
    This patch renames the rtnetlink module's code to "nln" for
    "netlink notifier".  Callers are now required to pass in the
    netlink protocol to he newly renamed nln_create() function.

commit 45c8d3a189843f0f45398caa420b952d5acd1f19
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Aug 25 14:06:54 2011 -0700

    lib: Rename rtnetlink.[ch] files.
    
    The only rtnetlink specific functionality contained in the
    rtnetlink module is the use of the NETLINK_ROUTE protocol.  This
    can easily be passed in by callers.
    
    In preparation for generalization, this patch renames
    rtnetlink.[ch] to netlink-notifier.[ch].  Future patches will
    complete the transition.

commit dc533f4ecb7681018848a35c9f6c7d66a477996a
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 31 15:18:17 2011 -0700

    lacp: Clarify documentation.
    
    Requested-by: Dan Wendlandt <dan at nicira.com>

commit 438540b315fd4399316fa6e8448898a8ed9ecefb
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 31 17:56:07 2011 -0700

    rhel: Poke iptables hole for gre in init scripts.

commit def046d5867c3b0853c03bfc18ea103eb2c3fe14
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 31 12:33:21 2011 -0700

    rhel: Add ovs-pki to rpm.

commit a281173e19918379832ec535b18aa2af58832efb
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 31 11:23:21 2011 -0700

    rhel: Don't delete bridges on boot.
    
    Before this patch, the RHEL init scripts would remove all bridges
    configured on the system at boot.

commit 24b019f808211a95078efd916064af0975ca5733
Author: Justin Pettit <jpettit at nicira.com>
Date:   Fri Aug 26 23:34:40 2011 -0700

    datapath: Disable LRO from userspace instead of the kernel.
    
    Whenever a port is added to the datapath, LRO is automatically disabled.
    In the future, we may want to enable LRO in some circumstances, so have
    userspace disable LRO through the ethtool ioctls.
    
    As part of this change, the MTU and LRO checks are moved to
    netdev-vport's send(), which is where they're actually needed.
    
    Feature #6810
    
    Signed-off-by: Justin Pettit <jpettit at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit e47bd51a7b2ae66b00c19cc86f7dcb1eeb4ad105
Author: Justin Pettit <jpettit at nicira.com>
Date:   Wed Aug 17 14:38:08 2011 -0700

    netdev-linux: Introduce netdev_linux_ethtool_set_flag().
    
    There will be a caller added soon.

commit 56717eb17c2e2027ea0a2e2957f978dfcd1433b5
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Aug 26 17:12:21 2011 -0700

    cfm: Zero out empty field as required.
    
    Found with valgrind.

commit 6d8ffe18982370d2c46665d7924c340030d53565
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Aug 26 16:55:07 2011 -0700

    socket-util: Suppress valgrind uninitialized use warning.

commit 3eda9831a4df9b3aa1d84c013a3e1d8c7f39f861
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Aug 26 16:46:16 2011 -0700

    ovs-monitor-ipsec: Don't abort if syslog is not available.
    
    If /dev/log doesn't exist or cannot be contacted, ovs-monitor-ipsec would
    abort with an exception.  This allows it to start up and run.
    
    It's pretty common for a chroot used for testing not to have a syslogd
    instance set up and running, so this limitation caused testing problems.
    
    Reported-by: Simon Horman <horms at verge.net.au>
    Tested-by: Simon Horman <horms at verge.net.au>

commit 3a48ace3e4799ce25099a8584372abe7a4d6d771
Author: Justin Pettit <jpettit at nicira.com>
Date:   Fri Aug 26 15:05:53 2011 -0700

    bridge: Make bridge_pick_local_hw_addr() easier to reason.
    
    The use of eth_addr_is_multicast() to see if a reasonable address was
    found always caused me momentary confusion.  This commit uses a flag
    instead, and also saves a bit of unnecessary array reading and writing.

commit 00488a5eefd26ff583b403666a012d96ce26bcfd
Author: Simon Horman <horms at verge.net.au>
Date:   Fri Aug 26 18:03:42 2011 +0900

    debian: Transition to dh_python2
    
    dh_pysupport that the packaging used until now is deprecated, with
    dh_python2 as its successor.
    
    This commit removes the PYTHONPATH setting from
    debian/openvswitch-ipsec.init because it is not needed, as the Python
    packaging is public.  In fact, the Python packaging was public,
    unintentionally, before, so the PYTHONPATH could have been removed earlier.

commit a7844aaf5ebccf1a8762f68bcbb62e463fc3809b
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Aug 25 16:03:25 2011 -0700

    gitignore: Add manpage-check.

commit 54658e616906204ea15d2572766b85dac99b6b21
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:09:27 2011 -0700

    ovs.db.types: Remove write-only variable from constraintsToEnglish().
    
    Found by pychecker.

commit 973d7411d62e848a2b9b0175ba7bb6234efdbff3
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:08:50 2011 -0700

    python: Remove unused imports.
    
    Found by pychecker.

commit 1f00acd0bccc883f5b2017dc52f8f1d52a089b1f
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:08:24 2011 -0700

    ovs.stream: Remove unused parameter from usage().
    
    This function has no callers.  We could delete it entirely, instead.

commit fecf78c23793567f39f11e3c203fbded0b86c3a2
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:07:32 2011 -0700

    ovs.ovsuuid: Fix UUID.cInitUUID invocation of re.match with too few params.
    
    Found by pychecker.

commit 4071e24db4a72275e87400e5b7366a0757ec3ae7
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:06:37 2011 -0700

    ovs.jsonrpc: Fix static method Session.open() reference to 'self'.
    
    Found by pychecker.

commit b2a5856fef8239b1c33c63804cefc5b140836b9a
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:06:11 2011 -0700

    ovs.jsonrpc: Fix static method Message.__validate_arg reference to 'self'.
    
    This method needs to be an instance method because it refers to 'self'.
    
    Found by pychecker.

commit 6732237bee6d3e9721bfa5cdf7ba131f559f767f
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:04:20 2011 -0700

    ovs.json: Use Exception, which exists, instead of Error, which doesn't.
    
    Found by pychecker.

commit 7550c333d3e2dfbe5361ceff0881d82b5cf3dc04
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:03:42 2011 -0700

    ovs.db.idl: Fix error message format arguments.
    
    There's no variable table_name.
    
    Found by pychecker.

commit c6b24dd7cd8c5ecf989db95fa60435c2818931d6
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:01:14 2011 -0700

    ovs.daemon: Add missing format string argument.
    
    Found by pychecker.

commit 0003748f584e6ba4747437ac7ebf4fe254f1be91
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:00:46 2011 -0700

    ovs.daemon: Fix name of EALREADY error.
    
    Found by pychecker.

commit dbad9de12613e835048cb53d6b39300fa05943d4
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 17:00:15 2011 -0700

    ovs.daemon: Add missing 'global' when setting _pidfile_dev, _pidfile_ino.
    
    Found by pychecker.

commit af1eba26c3a22b85bfe22ef14337652d92008d89
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 25 11:06:53 2011 -0700

    ovs.db.idl: Fix call to ovs.db.parser.Parser constructor.
    
    This bug was introduced by commit 4c0f62718f "ovs.db.idl: Improve error
    reporting for bad <row-update>s."
    
    Found by pychecker.
    Bug #7006.

commit 49c57a8fef46461da911802e8bf82329924ea329
Author: Chuck Short <zulcss at ubuntu.com>
Date:   Tue Aug 23 15:37:11 2011 -0700

    debian: Apply Ubuntu patch to add DKMS support.
    
    I tested that installing openvswitch-datapath-dkms worked OK on my own
    Debian machine.
    
    The bulk of this patch is taken from downstream Ubuntu DKMS support written
    by Chuck Short <zulcss at ubuntu.com>, version 1.2.0-1ubuntu1.  I made the
    following changes:
    
      * Update debian/.gitignore.
    
      * Update debian/automake.mk.
    
      * Correct description in debian/control (it was a cut-and-paste from
        the openvswitch-datapath-source description without editing).
    
      * Fix up for --with-l26 to --with-linux and datapath/linux-2.6 to
        datapath/linux transitions.
    
    CC: Chuck Short <zulcss at ubuntu.com>
    CC: Dave Walker <DaveWalker at ubuntu.com>
    Acked-by: Simon Horman <horms at verge.net.au>

commit 0027492deeae5ed1c51458ae1970064be2089df9
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 10:45:32 2011 -0700

    docs: Add Makefile rule to check syntax of manpages.
    
    This should catch future nroff syntax errors immediately, instead of much
    later.

commit 5d943800c1681d572411f9883e45dfb9a9e33909
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 10:43:41 2011 -0700

    docs: Fix some manpage syntax errors found with "groff".

commit 367da738332b88425ca3e8599aa349f567f69b91
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 14:43:54 2011 -0700

    python: Use enumerate() builtin function to simplify counted iteration.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 8ba31bf16d03c449fbf40ec00d9a816b4ec05018
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 11:16:57 2011 -0700

    ovs.stream: Simplify logic in Stream.wait().
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 63b1a5213331cd962be05df57f1375db902216c5
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 11:16:27 2011 -0700

    ovs.stream: Drop Stream.get_name() since clients can use 'name' directly.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 1f9dd59cf178b0765727f6908e135f48c766e213
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:47:53 2011 -0700

    ovs.stream: Use %d in place of %ld since the two are equivalent in Python.
    
    Reported-by: Reid Price <reid at nicira.com>

commit 90d9dcfc12cbfa7ac103ea6d0e38797c10598d57
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 11:33:08 2011 -0700

    ovs.reconnect: Fix typo in documentation.
    
    Reported-by: Reid Price <reid at nicira.com>

commit 0a61b042a59ce62a91db68645c9f6023cb04bccf
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:45:43 2011 -0700

    ovs.reconnect: Make Reconnect.Reconnect inherit from object.
    
    Reported-by: Reid Price <reid at nicira.com>

commit 2ad4ef89208cf683859b1a269f3c5328a998c47d
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:43:26 2011 -0700

    ovs.jsonrpc: Use "not X" in place of "len(X) == 0" for testing strings.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 22bb61e9ee9576e77495c0c5c71fa2d243a98fb6
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:40:24 2011 -0700

    ovs.jsonrpc: Remove Connection.get_name()--clients can use 'name' directly.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 17af14360014d8dd05cdc7814cb755a1b6b5d4ef
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:37:39 2011 -0700

    ovs.jsonrpc: Remove dead class variable Message.__next_id.
    
    Reported-by: Reid Price <reid at nicira.com>

commit e0b2332760c97b8dbe6fdd89e18634a7e8f8050e
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 12:05:13 2011 -0700

    ovs.json: Optimize __dump_string().
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 32fcdd44c5e43e41c285220da5db49fd9870d225
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:31:22 2011 -0700

    ovs.fatal_signal: Remove unnecessary "global" statement.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 1304578aeb3c57b43fc6634635f880f005a4dec0
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:29:40 2011 -0700

    ovs.fatal_signal: Reorder definitions to be more easily readable.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 71607f575e8eac278b61774faa81fc47b7f8c00b
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:06:04 2011 -0700

    ovs.db.types: Introduce DEFAULT_MIN, DEFAULT_MAX as Type class members.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit ca2c5d3d32270210986c76158c0b321aa75e735a
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:04:14 2011 -0700

    ovs.db.types: Use toAtomicType() instead of open-coding it.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit f09aa106ee66e387d68c339cdcd7426a01c4bf8d
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 09:58:49 2011 -0700

    ovs.db.types: Simplify code to avoid try/except case.
    
    Also fixes a typo that caused one version of the error message to have a
    hyphen and the other to have a space.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 1a98f75260289f72d430abef026c6da2b1d5a255
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 14:00:54 2011 -0700

    ovs.db.types: Use .append instead of += for adding to lists.
    
    Python does not do a good job of appending lists to lists.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 693e5dc7484b15c159cb9f644d28dc759db01b7c
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 09:55:14 2011 -0700

    ovs.db.schema: Factor common checks for identifiers into new function.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit c29e06be0e224f1c2392e892016bd6b80749611d
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 09:36:56 2011 -0700

    ovs.db.parser: Simplify code.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit bf6ec045b7dacb243347a5b84d4c3cff466d6528
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 09:36:39 2011 -0700

    ovs.db.idl: Use top-level class to represent IDL rows.
    
    According to Reid, there may be some disadvantages to having this class be
    anonymous, for example, cannot do instance/typechecking, might be
    allocating a new class for every row as well, which isn't the most memory
    efficient.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 7d48f8f8bd90922bebbbd46106d8343b2eb1571e
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 09:26:29 2011 -0700

    ovs.db.idl: Actually use Idl.__modify_row()'s return value.
    
    Idl.__parse_row_update() assumed that every change that the database server
    sent down actually modified the database.  This is generally true, but
    since Idl.__modify_row() already returns whether there was a change, we
    might as well use it.
    
    Reported-by: Reid Price <reid at nicira.com>

commit 4c0f62718ff9f83613c7f87805ee40495f642583
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 22 17:12:59 2011 -0700

    ovs.db.idl: Improve error reporting for bad <row-update>s.
    
    Strangely malformed <row-update>s could hypothetically get confusing error
    message.  Using the Parser class should avoid that.
    
    Reported-by: Reid Price <reid at nicira.com>

commit 6a6f8d167357a1f1751cdd54b9491c531a371ae1
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 22 14:52:21 2011 -0700

    ovsdb-data: Simplify converting an OVSDB datum to JSON by reordering logic.
    
    Putting the "map" case first avoids duplicate tests.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 0233401f12fe5ef8f9d63d660d2bd3f739766025
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 22 14:40:09 2011 -0700

    daemon: Stylistic improvement for __read_pidfile in Python implementation.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit a7675d4e56d5108c554de25e7772c2eb60470abc
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 22 14:26:58 2011 -0700

    daemon: Correct comment in Python implementation.
    
    Reported-by: Reid Price <reid at nicira.com>

commit 91c637960c57f4b415213ea46c22fefcb2534825
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 10:50:47 2011 -0700

    python: Avoid using 'tuple' as a variable name.
    
    'tuple' is a Python built-in function, so it's best to avoid using it as a
    variable name.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 8758e8a373338e409d7f2863ee91e01060f35628
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 09:50:46 2011 -0700

    python: Avoid using 'type' as a variable name.
    
    'type' is a Python built-in function, so it's best to avoid using it as
    a variable name.
    
    Reported-by: Reid Price <reid at nicira.com>

commit d272c10ecdba8a5dc7adba30c98d8d4273dfd1ae
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 22 16:49:53 2011 -0700

    python: Take advantage of Python "x < y < z" syntax.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit f2d8ad13e1819a6553b30ba33a28abf7603f5b9b
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 22 16:54:28 2011 -0700

    python: Avoid lots of \" in quoted strings by using '' as outermost quotes.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit b33a04c63adc29096fe50c08c7b8781398f885c7
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 14:02:03 2011 -0700

    python: Join a list of strings instead of concatenating a long string.
    
    Python does not do a good job of appending strings: it takes O(n**2) time
    to append n strings.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 523a3bc7733b13cbfb4b702739cd26d0c29b05f7
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 22 14:31:18 2011 -0700

    python: Use getattr() and setattr() instead of __dict__.
    
    This leaves one use of __dict__ used for iterating through attributes.
    I could use dir() instead, but I was put off by this note in its
    documentation in the Python Library Reference:
    
        Because dir() is supplied primarily as a convenience for use at an
        interactive prompt, it tries to supply an interesting set of names more
        than it tries to supply a rigorously or consistently defined set of names,
        and its detailed behavior may change across releases.  For example,
        metaclass attributes are not in the result list when the argument is a
        class.
    
    Suggested-by: Reid Price <reid at nicira.com>

commit 57d6a4c71bd0b4ed477ec273d4d4f84c5e4ed465
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 11:57:14 2011 -0700

    ovs.db.data: Fix bugs in Atom.is_default() and Datum.is_default().
    
    Reported-by: Reid Price <reid at nicira.com>

commit 9601fa824d2c3968fda75204488e347d66d62d1f
Author: Ben Pfaff <blp at nicira.com>
Date:   Tue Aug 23 11:09:46 2011 -0700

    ovs.stream: Fix logic bug in Stream.connect().
    
    The loop here is supposed to run at least once, and to continue looping as
    long as the loop body changes the current state, but this bug caused it to
    continue looping until the connection completed in success or failure.  It
    probably didn't cause many problems in practice because only Unix domain
    socket connections are currently supported, and those connections normally
    complete immediately.
    
    Reported-by: Reid Price <reid at nicira.com>

commit 92f8ebf943aab10ad5923516a3d2803a555eed44
Author: Simon Horman <horms at verge.net.au>
Date:   Wed Aug 24 10:40:55 2011 +0900

    Debian: set -e in brcompat postinst
    
    As reported by lintian:
    
    	The maintainer script doesn't seem to set the -e flag which ensures
    	that the script's execution is aborted when any executed command
    	fails.
    
    	Refer to Debian Policy Manual section 10.4 (Scripts) for details.

commit 2638c6dc5c7bb7552111530bbed95022113fac57
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 24 09:45:18 2011 -0700

    doc: Add spaces between commas to avoid overflowing line during formatting.
    
    This resolves a warning reported as
    "71: warning [p 11, 5.0i]: cannot adjust line"
    
    Reported-by: Simon Horman <horms at verge.net.au>
    Found by lintian.

commit 8e34689298c2642301fbb7e5aafa6c1bbfd41cdf
Author: Simon Horman <horms at verge.net.au>
Date:   Wed Aug 24 10:40:53 2011 +0900

    docs: Add missing escape
    
    This adds what appears to be a missing character to an escape sequence.
    
    This resolves a problem reported as
    "a newline character is not allowed in an escape name".
    
    Reported by lintian

commit 3e5776486bd1ebb765395ee7d97391cdfaedfa06
Author: Simon Horman <horms at verge.net.au>
Date:   Wed Aug 24 10:40:52 2011 +0900

    docs: Suppress "warning: macro `DD' not defined" warning
    
    Suppress "warning: macro `DD' not defined" warning for ovs-brcompatd.8.
    
    As per the description by Ben Pfaff for the same problem effecting
    other files:
    
    	deamon.man allows the file that is including it to include extra
    	text in the description of --detach by defining a macro named DD.
    	Only some of the manpages that included it did this (only those
    	manpages that needed extra text there).  But it's better to be
    	quiet in "man --warnings", so this defines DD to an empty value in
    	the other manpages that include daemon.man.
    
    Reported by lintian

commit 4b944e5bfbd746a8ecf0f164d8fe74a3a1024d1c
Author: Simon Horman <horms at verge.net.au>
Date:   Wed Aug 24 10:40:51 2011 +0900

    Debian: Add dependency on ${misc:Depends}
    
    Add dependency on ${misc:Depends} to openvswitch-brcompat and ovsdbmonitor.
    As reported by Lintian:
    
    	The source package uses debhelper, but it does not include
    	${misc:Depends} in the given binary package's debian/control entry.
    	Any debhelper command may add dependencies to ${misc:Depends} that
    	are required for the work that it does, so recommended best
    	practice is always add ${misc:Depends} to the dependencies of each
    	binary package if debhelper is in use.
    
    	Refer to the debhelper(7) manual page for details.

commit d8abf60c72e9a2ec4be5c8a4bf481da9dcde043a
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Aug 19 17:50:32 2011 -0700

    dpif-linux: Call rtnetlink_notifier_run() as required.
    
    I don't think this actually fixes a bug, as netdev-linux calls this
    function. However, it seems stylistically more correct.

commit 4e77828b64c604d74dda44be76d57fb1b7c46302
Author: Ethan Jackson <ethan at nicira.com>
Date:   Mon Aug 22 12:47:43 2011 -0700

    rtnetlink: Notifiers should only run once per poll loop.
    
    rtnetlink_notifier_run() does quite a bit of work, and is likely
    only to have interesting effects once per poll loop.

commit 4f356133b56d7e907393118f41c17beac4260dd0
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 22 10:41:21 2011 -0700

    Drop spurious 'H' cases from daemon option parsing switch statements.
    
    Help is 'h'.  I don't see how 'H' can ever happen.

commit b867ca7598a796069928aa9d78b9bff06d71ac9e
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Aug 19 15:43:06 2011 -0700

    datapath: Remove unneeded { } around single statement.
    
    I noticed this looking around at other code.
    
    Signed-off-by: Ben Pfaff <blp at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit df2c07f4338faac04f4969f243fe4e8083b309ac
Author: Justin Pettit <jpettit at nicira.com>
Date:   Thu Aug 18 10:35:40 2011 -0700

    datapath: Use "OVS_*" as opposed to "ODP_*" for user<->kernel interactions.
    
    The prefix "ODP_*" is not overly descriptive in the context of the
    larger Linux tree.  This commit changes the prefix to "OVS_*" for the
    userpace to kernel interactions.  The userspace libraries still use
    "ODP_" in many of their interfaces since it is more descriptive in the
    OVS oeuvre.
    
    Feature #6904
    
    Signed-off-by: Justin Pettit <jpettit at nicira.com>
    Acked-by: Jesse Gross <jesse at nicira.com>

commit 1c313b88e1ba908b4f30ce2b3702d57e8f4d9a38
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Aug 19 14:29:27 2011 -0700

    ofproto-dpif: Delete MAC learning entries when they expire.
    
    Commit fa066f015f716c7 "bridge: Move packet processing functionality into
    ofproto" deleted the call to mac_learning_run() that deletes MAC learning
    table entries when they expire.  This fixes the problem.

commit 2d334ac8836a014e88c84dca63145e300d662872
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 18 13:02:22 2011 -0700

    classifier: Fix typo in comment.

commit 67145b4d9983012db926a7fb6be0f35a54ae31fb
Author: Justin Pettit <jpettit at nicira.com>
Date:   Thu Aug 18 10:31:15 2011 -0700

    datapath-protocol: Correct a description in odp_flow_attr structure.
    
    The description referenced "ODPAT_*", but it should be "ODP_ACTION_ATTR_".
    
    Signed-off-by: Justin Pettit <jpettit at nicira.com>

commit 91dbd46c6942854ab24f6f0e54dd76d676158760
Author: Justin Pettit <jpettit at nicira.com>
Date:   Thu Aug 18 09:57:23 2011 -0700

    datapath: Correct comment for vport_add().
    
    The comment describing vport_add() incorrectly stated that the function
    added the vport to the datapath.  It is the responsibility of the caller
    to do that.
    
    Signed-off-by: Justin Pettit <jpettit at nicira.com>

commit fac2e5163cb349ec33d8d2bdda2e73f35e50d4d5
Author: Ben Pfaff <blp at nicira.com>
Date:   Thu Aug 18 10:33:32 2011 -0700

    odp-util: Fix parsing of Ethertypes 0x8000 and above.
    
    An existing comment in the function being updated explains the problem:
    
        * Many of the sscanf calls in this function use oversized destination
        * fields because some sscanf() implementations truncate the range of %i
        * directives, so that e.g. "%"SCNi16 interprets input of "0xfedc" as a
        * value of 0x7fff.  The other alternatives are to allow only a single
        * radix (e.g. decimal or hexadecimal) or to write more sophisticated
        * parsers.

commit 338fb44ad67e59f09664f502f2c4325cff1e5080
Author: Philippe Jung <phil.jung at free.fr>
Date:   Wed Aug 17 11:34:09 2011 -0700

    INSTALL.Linux: Fix up reference to old option name --with-l26.

commit 907a4c5e6e767ba79466b028f30cc8381f1b3c5b
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 16 14:14:33 2011 -0700

    ofproto: Update 'struct facet''s comments.
    
    Some of the comments in the definition of 'struct facet' had become
    out of date.

commit 55af77bbb3a579447591163338f1a24165d6bfa1
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 16 14:21:12 2011 -0700

    ofproto: Remove extra_bytes parameter of facet_account().
    
    It no longer has interesting users.

commit 9adea03b888b0087cdd5877f61ed6a50170ea8f7
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 16 14:16:58 2011 -0700

    ofproto: Fix over accounting of byte counters.
    
    The update_stats() function in ofproto was attributing more bytes
    to facets than they had actually accrued.  This could potentially
    throw off bond load balancing.
    
    Found by inspection.

commit bbb5d219de99cc99f0b88d25313a03ecaef13f9c
Author: Ethan Jackson <ethan at nicira.com>
Date:   Tue Aug 16 13:50:00 2011 -0700

    ofproto: Clear packet and byte counters on flow additions.
    
    When a flow is added to the flow table, its packet and byte
    counters should be reset.  This patch efficiently approximates this
    behavior.  It also does some minor code refactoring.
    
    Bug #3183.

commit 0fa0fcdc5a3ab75b5e3846229ccb4aef96866ce7
Author: Justin Pettit <jpettit at nicira.com>
Date:   Mon Aug 15 13:51:09 2011 -0700

    vswitch.xml: Remove unused "hwaddr" other-config key.

commit 0c58c0c4da31b554e88be581cca39d314ded9b6b
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 15 15:18:12 2011 -0700

    ofp-print: Add missing "break".
    
    This is not a bug yet, but it could be the next time someone carelessly
    adds a new case.

commit 5a6861aa8667062e0970191ba5e1b25abff049d3
Author: Ben Pfaff <blp at nicira.com>
Date:   Mon Aug 15 13:17:58 2011 -0700

    ovs-ofctl: Fix a few formatting typos in manpage.

commit 747b434cd8adc3f4ef26f456ffd45873dd748c0d
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 10 12:46:36 2011 -0700

    connmgr: Remove unused function ofconn_n_pending_opgroups().

commit 934264ec17192617f4acb1a4bb8a8e41d6b17b68
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 10 12:49:35 2011 -0700

    poll-loop: Remove static variable n_waiters.
    
    It's always a little risky to track the length of a list by hand, because
    it is easy to miss a spot where the length can change.  So it seems like
    a small cleanup to just measure the length of the 'waiters' list at the
    point where we need to know it.  list_size() is O(n) in the length of the
    list, but the function that calls it is already O(n) in that length so it
    seems like a fair trade-off.

commit 4ad2802695284467b559ca6790cd890359ffa159
Author: Ben Pfaff <blp at nicira.com>
Date:   Wed Aug 10 12:40:10 2011 -0700

    dpif-netdev: Avoid pointlessly maintaining a port count.
    
    'n_ports' was only used for testing for nonzero, and we can rewrite the
    code that does that to more straightforwardly use LIST_FOR_EACH_SAFE.

commit eb9e1c2613587b9b08ca849b6af5ccae2b2d9227
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Aug 12 14:10:15 2011 -0700

    ofproto-dpif: Print register values in trace.
    
    I found this patch useful in tracking down a bug recently.

commit f694937d4ec5342b218b760cabbf7a48d19110e8
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 10 13:05:17 2011 -0700

    nicra-ext: New action NXAST_OUTPUT_REG.
    
    The NXAST_OUTPUT_REG action outputs to the OpenFlow port contained
    in a supplied NXM field.

commit e7ba48c87d5b6441e2a3f07f3bc1a1f3633616c7
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 10 13:32:51 2011 -0700

    nx-match: New function nxm_read_field_bits().
    
    nxm_read_field_bits() simplifies reading of NXM fields with an
    ofs_nbits parameter.  This patch updates nxm_execute_reg_move() to
    use the new function.  A user outside of the nx-match module will
    be added in future patches.

commit ce523f65fc0f283269f6a697b152c089fb0a22ee
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 10 13:09:18 2011 -0700

    nx-match: Update register check functions.
    
    This patch simplifies the API of nxm_dst_check() and adds a new
    function nxm_src_check() for checking source fields.

commit 58a89177ab00d6a1c1b13479f8fd8e3a7b0aca6c
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Aug 11 19:07:35 2011 -0700

    tests: test "load" and "move" actions.

commit 01ba0d769dc78a05ed61a6267ca99a4a84361962
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Aug 12 11:15:53 2011 -0700

    nx-match: Fix bug in "move" action.
    
    This patch fixes a bug introduced in Commit 43edca57 "nx-match: New
    helpers.", which caused the "move" action to improperly handle bit
    ranges.

commit a877206f2f0ca10c625e311614d68a81bdc913ee
Author: Ethan Jackson <ethan at nicira.com>
Date:   Fri Jul 29 13:15:09 2011 -0700

    flow: New FLOW_WC_SEQ build assertion.
    
    Changing "struct flow" or its wildcards requires minor adjustments
    in many places in the code.  This patch adds a new FLOW_WC_SEQ
    sequence number which when incremented will cause build assertion
    failures aiding the developer in finding code which needs to
    change.

commit 027be501207df3f6c8e480fc013799dae63f748b
Author: Ethan Jackson <ethan at nicira.com>
Date:   Wed Aug 10 14:48:48 2011 -0700

    tests: Update gitignore.

commit b53055f4da4f8de17c591ae07ddd782829d21cd8
Author: Ethan Jackson <ethan at nicira.com>
Date:   Thu Aug 4 16:50:25 2011 -0700

    lib: Whitespace cleanup.

commit 72f7976600581cc9c57915dad150f7984c33e18b
Author: Ben Pfaff <blp at nicira.com>
Date:   Fri Aug 12 14:59:11 2011 -0700

    ofp-parse: Fix parsing of register values 2**31 and greater.
    
    Reported-by: Ethan Jackson <ethan at nicira.com>

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


hooks/post-receive
-- 
Open vSwitch



More information about the git mailing list