[ovs-git] [openvswitch/ovs] 7ed734: bridge.c: prevent controller connects while flow-r...

GitHub noreply at github.com
Fri Nov 2 17:18:17 UTC 2018


  Branch: refs/heads/dpdk-latest
  Home:   https://github.com/openvswitch/ovs
  Commit: 7ed73428a675a174d629d694e483f81358dc907e
      https://github.com/openvswitch/ovs/commit/7ed73428a675a174d629d694e483f81358dc907e
  Author: Zak Whittington <zwhitt.vmware at gmail.com>
  Date:   2018-10-25 (Thu, 25 Oct 2018)

  Changed paths:
    M vswitchd/bridge.c

  Log Message:
  -----------
  bridge.c: prevent controller connects while flow-restore-wait

When force-reload-kmod is used, it shows an error when reinstalling
tlvs during "Restoring saved flows" step:
OFPT_ERROR (xid=0x4): NXTTMFC_ALREADY_MAPPED

This is caused by a race condition between the restore script,
which calls ofctl, and the connected controllers both adding back
the same TLVs.

The restore script already sets flow-restore-wait to true while
doing flow restoration, and sets it back to false after it is
done, and this patch utilizes that fact to prevent the TLV race.
It does this by preventing vswitchd from connecting to
controllers in the controller table while it is in a
flow-restore-wait state.

With this patch, when bridge_configure_remotes() calls
bridge_get_controllers(), it first checks if flow-restore-wait
has been set, and if so, it ignores any controllers in the
controller database and sets n_controllers to 0.

This solution does preserve the management service controller
which is added via bridge_ofproto_controller_for_mgmt() after
checking whether we should call bridge_get_controllers()
(and thus n_controllers is properly set to 1, etc)

VMware-BZ: 2195377
Signed-off-by: Zak Whittington <zwhitt.vmware at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: ead2252b2b717f52728a6b8c78a2e9346863ccb8
      https://github.com/openvswitch/ovs/commit/ead2252b2b717f52728a6b8c78a2e9346863ccb8
  Author: Yifeng Sun <pkusunyifeng at gmail.com>
  Date:   2018-10-26 (Fri, 26 Oct 2018)

  Changed paths:
    M tests/oss-fuzz/ofctl_parse_target.c

  Log Message:
  -----------
  ofctl_parse_target: Only parse complete ofputil_flow_mod data.

When parse_ofp_flow_mod_str returns error, `fm` is incomplete and pointers
in it may be null, e.g. fm.match.flow. In this case, passing it to
ofctl_parse_flows__ may cause pointer errors because ofctl_parse_flows__
expects a valid input of type struct ofputil_flow_mod.

Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11110
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 4e9c96f00614d829347dce7f183c3bedc2b35829
      https://github.com/openvswitch/ovs/commit/4e9c96f00614d829347dce7f183c3bedc2b35829
  Author: Yifeng Sun <pkusunyifeng at gmail.com>
  Date:   2018-10-26 (Fri, 26 Oct 2018)

  Changed paths:
    M lib/odp-util.c

  Log Message:
  -----------
  odp-util: Properly handle the return values of scan_XXX functions

Functions like scan_u8, return 0 when they failed to scan the expected
values. Function scan_geneve failed to check this situation. This leads
to using of uninitialized value of opt_len_mask. This patch fixes it
and further inspects and fixes all the problematic places where
the return values of scan_XXX functions are not properly handled.

Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10800
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: e612dd2f290a47c53bfcd7a5c0aead66a6fd0119
      https://github.com/openvswitch/ovs/commit/e612dd2f290a47c53bfcd7a5c0aead66a6fd0119
  Author: Yifeng Sun <pkusunyifeng at gmail.com>
  Date:   2018-10-26 (Fri, 26 Oct 2018)

  Changed paths:
    M datapath/linux/compat/include/net/nsh.h
    M include/openvswitch/nsh.h

  Log Message:
  -----------
  NSH: Fix NSH-related length macros that cause stack overflow

In the filed of ver_flags_ttl_len of struct nshhdr, there are only 6
bits that are used to indicate header's total length in 4-byte words.
Therefore, the max value for total is 252 (63x4), instead of 256 used
in present code base. This patch fixes it.

Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10855
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 23b9ac1e5b4f8f047cf1fefa6d7ebcbcf7d678f8
      https://github.com/openvswitch/ovs/commit/23b9ac1e5b4f8f047cf1fefa6d7ebcbcf7d678f8
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-26 (Fri, 26 Oct 2018)

  Changed paths:
    M utilities/ovs-ofctl.8.in

  Log Message:
  -----------
  ovs-ofctl: Update documentation for MPLS actions.

Reported-by: lidejun <lidejun1 at huawei.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: 98a9272ba2c4ba973f015fdd0de06d497bf8bb05
      https://github.com/openvswitch/ovs/commit/98a9272ba2c4ba973f015fdd0de06d497bf8bb05
  Author: Zak Whittington <zwhitt.vmware at gmail.com>
  Date:   2018-10-26 (Fri, 26 Oct 2018)

  Changed paths:
    M include/openvswitch/ofp-monitor.h
    M include/openvswitch/ofp-msgs.h
    M lib/ofp-monitor.c
    M ofproto/connmgr.c
    M tests/ofp-print.at
    M tests/ofproto.at

  Log Message:
  -----------
  ofp-msgs: Added ONF_ and NXT_REQUESTFORWARD for OF1.0-1.3

Backported OFPT14_REQUESTFORWARD to OF1.0-1.3.
OF 1.0-1.2 use an NXT Nicira extension while OF 1.3
uses an ONF extension (ONF version is specified in a
previously published ONF spec sheet).

Includes ofp-print tests for multiple inner message
types, and multiple OF versions including the NXT and ONF.
Also includes more end-to-end ofproto tests for both
NXT OF1.0 and also ONF OF1.3.

VMware-BZ: 2136594
Signed-off-by: Zak Whittington <zwhitt.vmware at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: df50117721bcefb72f95089819d7fbefb22c351c
      https://github.com/openvswitch/ovs/commit/df50117721bcefb72f95089819d7fbefb22c351c
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-26 (Fri, 26 Oct 2018)

  Changed paths:
    M lib/vconn.c

  Log Message:
  -----------
  vconn: Avoid null dereference on error path.

Sometimes the 'errors' list is passed as null, and in that case it should
not be used.

Found by inspection.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: 9d36d7d7289a58d6a14f92896d870695f997d989
      https://github.com/openvswitch/ovs/commit/9d36d7d7289a58d6a14f92896d870695f997d989
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-26 (Fri, 26 Oct 2018)

  Changed paths:
    M include/openvswitch/ofp-table.h
    M lib/ofp-print.c
    M lib/ofp-table.c
    M tests/ofproto-dpif.at
    M tests/ofproto.at
    M utilities/ovs-ofctl.c

  Log Message:
  -----------
  ofp-table: Better summarize table features and statistics.

Before this patch, most dump-table-stats outputs would contain about
250 lines of the form:

  table #: ditto

With this patch, they have one line like this:

  tables 2...254: ditto

which is much easier to read.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: dccab9b15e656c6c1db1b8e94da1e1f234811506
      https://github.com/openvswitch/ovs/commit/dccab9b15e656c6c1db1b8e94da1e1f234811506
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-26 (Fri, 26 Oct 2018)

  Changed paths:
    M lib/ofp-table.c
    M tests/ofproto.at

  Log Message:
  -----------
  ofp-table: Ignore bits that have to change according to OpenFlow.

OpenFlow table feature replies contain a per-table bitmap that indicates
which tables a flow can point to in goto_table actions.  OpenFlow requires
that a table only be able to go to higher-numbered tables.  This means that
a switch that is general as possible will always have different features
for every table, since each one will have a different bitmap.  This makes
the output of "ovs-ofctl dump-table-features" pretty long and ugly because
it has about 250 entries like this:

  table %d:
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    max_entries=%d
    instructions (table miss and others):
      next tables: %d-253
      (same instructions)
      (same actions)
    (same matching)

This commit changes the logic that prints table features messages so that
it considers two sequentially numbered tables to be the same if only the
bit that necessarily must be tunred off changes.  This reduces the hundreds
of entries above to just:

   tables 1...253: ditto

which is so much more readable.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: b47e7e2bac7f21f8c81aaeb1068598a6064c348b
      https://github.com/openvswitch/ovs/commit/b47e7e2bac7f21f8c81aaeb1068598a6064c348b
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-26 (Fri, 26 Oct 2018)

  Changed paths:
    M include/openvswitch/ofp-table.h
    M lib/ofp-print.c
    M lib/ofp-table.c
    M utilities/ovs-ofctl.c

  Log Message:
  -----------
  ofp-table: Always format the table number in table features.

Table features should indicate the table number as well as the table
name.  Before this, the first line for each table looked like this:
   table myname ("myname"):
but it's more useful if it's:
   table 123 ("myname"):

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: 9bccc3ff031e140dfc2a3a6975ef50fdad01301f
      https://github.com/openvswitch/ovs/commit/9bccc3ff031e140dfc2a3a6975ef50fdad01301f
  Author: Ilya Maximets <i.maximets at samsung.com>
  Date:   2018-10-30 (Tue, 30 Oct 2018)

  Changed paths:
    M lib/colors.man
    M lib/common.man
    M lib/ofp-version.man
    M lib/ssl.man
    M lib/vlog-unixctl.man
    M lib/vlog.man
    M manpages.mk
    M ovn/utilities/ovn-detrace.1.in
    M ovn/utilities/ovn-sbctl.8.in
    M ovsdb/ovsdb-client.1.in
    M ovsdb/ovsdb-server.1.in
    M ovsdb/ovsdb-tool.1.in
    M utilities/bugtool/ovs-bugtool.8.in
    M utilities/ovs-appctl.8.in
    M utilities/ovs-dpctl-top.8.in
    M utilities/ovs-dpctl.8.in
    M utilities/ovs-l3ping.8.in
    M utilities/ovs-ofctl.8.in
    M utilities/ovs-pcap.1.in
    M utilities/ovs-pki.8.in
    M utilities/ovs-tcpdump.8.in
    M utilities/ovs-tcpundump.1.in
    M utilities/ovs-testcontroller.8.in
    M utilities/ovs-vlan-bug-workaround.8.in
    M utilities/ovs-vsctl.8.in
    M vtep/vtep-ctl.8.in

  Log Message:
  -----------
  manpages: Include ovs.tmac in most man roots.

This allows to not redefine common macroses in every single
file and allowes using things like .EX without warying about
compatibility.
manpages.mk updated automatically.

Files that are already complete pages (i.e. has no *.in sources)
wasn't touched, because this will require additional file
manipulations and changes in makefiles/specs without serious
profit.

Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 193f74f6de5f9481d95359885efec151c81ef34a
      https://github.com/openvswitch/ovs/commit/193f74f6de5f9481d95359885efec151c81ef34a
  Author: Ilya Maximets <i.maximets at samsung.com>
  Date:   2018-10-30 (Tue, 30 Oct 2018)

  Changed paths:
    M lib/ofp-table.c

  Log Message:
  -----------
  ofp-table: Fix table print format string.

This fixes travis build on OSX:

https://travis-ci.org/openvswitch/ovs/jobs/446920531

lib/ofp-table.c:1454:42: error: \
format specifies type 'unsigned char' but the argument has type 'int'
    ds_put_format(s, "\n  table %"PRIu8, table);
                          ~~       ^~~~~

CC: Ben Pfaff <blp at ovn.org>
Fixes: b47e7e2bac7f ("ofp-table: Always format the table number in table features.")
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: a38dccb3ee80a1d0b8973191c9e94f045441f8cc
      https://github.com/openvswitch/ovs/commit/a38dccb3ee80a1d0b8973191c9e94f045441f8cc
  Author: Jianbo Liu <jianbol at mellanox.com>
  Date:   2018-10-30 (Tue, 30 Oct 2018)

  Changed paths:
    M lib/dpif-netlink.c

  Log Message:
  -----------
  dpif-netlink: Don't destroy and recreate port if it exists

In commit 7521e0cf9e ('ofproto-dpif: Let the dpif report when a port is
a duplicate'), the checking of port existence before adding was removed,
and it's up to the dpif to check if port exists and add only if needed.

But the port can't be added to datapath if already exists. Then it will
be destroyed and created again. This causes problem because configuration
may miss. For example, if creating two vxlan on the same port, its ingress
qdisc will be lost after recreated.

Fixes: 7521e0cf9e88 ("ofproto-dpif: Let the dpif report when a port is a duplicate.")
Signed-off-by: Jianbo Liu <jianbol at mellanox.com>
Reviewed-by: Roi Dayan <roid at mellanox.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 875894dad4aa3fc0c410ea6755878875195571c1
      https://github.com/openvswitch/ovs/commit/875894dad4aa3fc0c410ea6755878875195571c1
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-30 (Tue, 30 Oct 2018)

  Changed paths:
    M AUTHORS.rst

  Log Message:
  -----------
  AUTHORS: Add Jianbo Liu.

Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: e120ff1f8e4dbb0b889b26e0be082376a32090bc
      https://github.com/openvswitch/ovs/commit/e120ff1f8e4dbb0b889b26e0be082376a32090bc
  Author: Eric Lapointe <elapointe at corsa.com>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M python/ovs/_json.c

  Log Message:
  -----------
  python-c-ext: Fix memory leak in Parser_finish

The memory returned by json_parser_finish needs to be freed by the caller.

Signed-off-by: Eric Lapointe <elapointe at corsa.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 923a45665e6cfc0500837c28c761e7a1f6f5f038
      https://github.com/openvswitch/ovs/commit/923a45665e6cfc0500837c28c761e7a1f6f5f038
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M AUTHORS.rst

  Log Message:
  -----------
  AUTHORS: Add Eric Lapointe.

Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 21bc775f522e13798a0d1d9c07bb9b06ad3ac842
      https://github.com/openvswitch/ovs/commit/21bc775f522e13798a0d1d9c07bb9b06ad3ac842
  Author: Yi-Hung Wei <yihung.wei at gmail.com>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M utilities/ovs-lib.in

  Log Message:
  -----------
  ovs-lib.in: Remove unnecessary conntrack flush

We introduced flush-conntrack in force-reload-kmod script by commit
8bea39b186ca ("datapath: Prevent panic") to prevent kernel panic.
It turns out that the kernel panic is actually triggered by the
IPv4 secret timer, and it is fixed by commit
121905984724 ("compat: Initialize IPv4 reassembly secret timer").

This commit removes the unnecessary conntrack flush in the script.

Signed-off-by: Yi-Hung Wei <yihung.wei at gmail.com>
CC: Greg Rose <gvrose8192 at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Reviewed-by: Greg Rose <gvrose8192 at gmail.com>


  Commit: 729d2aaf833791d22f2a3dd3b999615111d41972
      https://github.com/openvswitch/ovs/commit/729d2aaf833791d22f2a3dd3b999615111d41972
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M ovn/northd/ovn-northd.c

  Log Message:
  -----------
  ovn-northd: Improve hashing for chassis queues.

The key for a "struct ovn_chassis_qdisc_queues" is a Chassis UUID and a
queue_id, but only the UUID was being hashed, so if there was more than one
per chassis then they'd all end up in the same hash bucket, which is
needlessly inefficient.  (And if there's only one per chassis then why do
we bother allocating them at all?)

Found by inspection.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Numan Siddique <nusiddiq at redhat.com>


  Commit: 307912849e2f907fab400502160e7d26f29ccdd3
      https://github.com/openvswitch/ovs/commit/307912849e2f907fab400502160e7d26f29ccdd3
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M ovn/northd/ovn-northd.c

  Log Message:
  -----------
  ovn-northd: Use structure assignment instead of memcpy().

Makes the code easier to read.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Numan Siddique <nusiddiq at redhat.com>


  Commit: 2af1e18c742dff71f716a46f2f7a7a1f35e2c259
      https://github.com/openvswitch/ovs/commit/2af1e18c742dff71f716a46f2f7a7a1f35e2c259
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M ovn/northd/ovn-northd.c

  Log Message:
  -----------
  ovn-northd: Fix memory leak in free_chassis_queueid().

Found by inspection.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Numan Siddique <nusiddiq at redhat.com>


  Commit: f992b0977b0638485eb41733bc77873cb9448114
      https://github.com/openvswitch/ovs/commit/f992b0977b0638485eb41733bc77873cb9448114
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M Documentation/internals/contributing/submitting-patches.rst

  Log Message:
  -----------
  submitting-patches: Advise not to wrap tags across multiple lines.

It makes parsing them more difficult.

Acked-by: Flavio Leitner <fbl at sysclose.org>
Reviewed-by: Greg Rose <gvrose8192 at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: fd5261d11ab9a4b1ffeedff017857823c610a417
      https://github.com/openvswitch/ovs/commit/fd5261d11ab9a4b1ffeedff017857823c610a417
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M Documentation/internals/contributing/submitting-patches.rst

  Log Message:
  -----------
  contributing: Signed-off-by tags should come last.

Acked-by: Flavio Leitner <fbl at sysclose.org>
Reviewed-by: Greg Rose <gvrose8192 at gmail.com>
Suggested-by: Gregory Rose <gvrose8192 at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: e6530a8d5d03d9413fa49653f111fd7457f97865
      https://github.com/openvswitch/ovs/commit/e6530a8d5d03d9413fa49653f111fd7457f97865
  Author: Sriharsha Basavapatna <sriharsha.basavapatna at broadcom.com>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M lib/dpif.c
    M lib/dpif.h
    M ofproto/ofproto-dpif-upcall.c

  Log Message:
  -----------
  dpif: Restore a few lines with form feed characters

A few lines with form feed characters (ASCII: ^L) were accidentally
deleted by a recent commit to support rebalancing of offloaded flows.
This patch reverts those lines.

Fixes: 57924fc91c ("revalidator: Rebalance offloaded flows")
Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna at broadcom.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: da0158d193c1fc0144173e17fc6f112f4397525d
      https://github.com/openvswitch/ovs/commit/da0158d193c1fc0144173e17fc6f112f4397525d
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M ofproto/connmgr.c

  Log Message:
  -----------
  connmgr: Modernize coding style.

This moves declarations closer to first use and merges them with
initialization when possible, moves "for" loop variable declarations into
the "for" statements where possible, and otherwise makes this code look
like it was written a little more recently than it was.

Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 8645f9cd196aaedf1300f44e804c54a8ba7420c8
      https://github.com/openvswitch/ovs/commit/8645f9cd196aaedf1300f44e804c54a8ba7420c8
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M include/openvswitch/rconn.h
    M lib/rconn.c

  Log Message:
  -----------
  rconn: New function rconn_is_reliable().

This will have its first user in an upcoming commit.

Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: af26093ab197c309dc0cfa83c5a2db34706f6021
      https://github.com/openvswitch/ovs/commit/af26093ab197c309dc0cfa83c5a2db34706f6021
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-10-31 (Wed, 31 Oct 2018)

  Changed paths:
    M ofproto/connmgr.c
    M ofproto/connmgr.h
    M ofproto/ofproto.c
    M ofproto/ofproto.h
    M vswitchd/bridge.c

  Log Message:
  -----------
  connmgr: Improve interface for setting controllers.

Using an shash instead of an array simplifies the code for both the caller
and the callee.  Putting the set of allowed OpenFlow versions into the
ofproto_controller data structure also simplifies the overall function
interface slightly.

Tested-by: Yifeng Sun <pkusunyifeng at gmail.com>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


Compare: https://github.com/openvswitch/ovs/compare/555fe6c93c15...af26093ab197
      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the git mailing list