DPDK patches and discussions
 help / color / mirror / Atom feed
From: oulijun <oulijun@huawei.com>
To: Steve Yang <stevex.yang@intel.com>, <dev@dpdk.org>
Cc: <wenzhuo.lu@intel.com>, <beilei.xing@intel.com>,
	<bernard.iremonger@intel.com>, <asomalap@amd.com>,
	<rahul.lakkireddy@chelsio.com>, <hemant.agrawal@nxp.com>,
	<sachin.saxena@oss.nxp.com>, <jia.guo@intel.com>,
	<haiyue.wang@intel.com>, <g.singh@nxp.com>,
	<xuanziyang2@huawei.com>, <cloud.wangxiaoyun@huawei.com>,
	<zhouguoyang@huawei.com>, <xavier.huwei@huawei.com>,
	<humin29@huawei.com>, <yisen.zhuang@huawei.com>,
	<jingjing.wu@intel.com>, <qiming.yang@intel.com>,
	<qi.z.zhang@intel.com>, <rosen.xu@intel.com>,
	<sthotton@marvell.com>, <srinivasan@marvell.com>,
	<heinrich.kuhn@netronome.com>, <hkalra@marvell.com>,
	<jerinj@marvell.com>, <ndabilpuram@marvell.com>,
	<kirankumark@marvell.com>, <rmody@marvell.com>,
	<shshaikh@marvell.com>, <andrew.rybchenko@oktetlabs.ru>,
	<mczekaj@marvell.com>, <thomas@monjalon.net>,
	<ferruh.yigit@intel.com>, <ivan.boule@6wind.com>,
	<konstantin.ananyev@intel.com>, <samuel.gauthier@6wind.com>,
	<david.marchand@6wind.com>, <shahafs@mellanox.com>,
	<stephen@networkplumber.org>, <maxime.coquelin@redhat.com>,
	<olivier.matz@6wind.com>, <lihuisong@huawei.com>,
	<shreyansh.jain@nxp.com>, <wei.dai@intel.com>,
	<fengchunsong@huawei.com>, <chenhao164@huawei.com>,
	<tangchengchang@hisilicon.com>, <helin.zhang@intel.com>,
	<yanglong.wu@intel.com>, <xiaolong.ye@intel.com>,
	<ting.xu@intel.com>, <xiaoyun.li@intel.com>, <dan.wei@intel.com>,
	<andy.pei@intel.com>, <vattunuru@marvell.com>,
	<skori@marvell.com>, <sony.chacko@qlogic.com>,
	<bruce.richardson@intel.com>, <ivan.malov@oktetlabs.ru>,
	<rad@semihalf.com>, <slawomir.rosek@semihalf.com>,
	<kamil.rytarowski@caviumnetworks.com>, <wei.zhao1@intel.com>,
	<junyux.jiang@intel.com>, <kumaras@chelsio.com>,
	<girish.nandibasappa@amd.com>, <rolf.neugebauer@netronome.com>,
	<alejandro.lucero@netronome.com>
Subject: Re: [dpdk-dev] [PATCH v2 01/22] ethdev: fix MTU size exceeds max rx packet length
Date: Wed, 30 Dec 2020 18:19:52 +0800	[thread overview]
Message-ID: <6a6dc10b-aa1d-76f6-2c4e-a8368253bdd9@huawei.com> (raw)
In-Reply-To: <20201217092312.27033-2-stevex.yang@intel.com>



在 2020/12/17 17:22, Steve Yang 写道:
> If max rx packet length is smaller then MTU + Ether overhead, that will
> drop all MTU size packets.
> 
> Update the MTU size according to the max rx packet and Ether overhead.
> 
> Fixes: 59d0ecdbf0e1 ("ethdev: MTU accessors")
> 
> Signed-off-by: Steve Yang <stevex.yang@intel.com>
> ---
>   lib/librte_ethdev/rte_ethdev.c | 21 ++++++++++++++++++---
>   1 file changed, 18 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
> index 17ddacc78d..ff6a1e675f 100644
> --- a/lib/librte_ethdev/rte_ethdev.c
> +++ b/lib/librte_ethdev/rte_ethdev.c
> @@ -1292,6 +1292,7 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
>   	struct rte_eth_dev *dev;
>   	struct rte_eth_dev_info dev_info;
>   	struct rte_eth_conf orig_conf;
> +	uint16_t overhead_len;
>   	int diag;
>   	int ret;
>   
> @@ -1323,6 +1324,15 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
>   	if (ret != 0)
>   		goto rollback;
>   
> +	/* Get the real Ethernet overhead length */
> +	if (dev_info.max_mtu &&
> +	    dev_info.max_mtu != UINT16_MAX &&
> +	    dev_info.max_rx_pktlen &&
> +	    dev_info.max_rx_pktlen > dev_info.max_mtu)
> +		overhead_len = dev_info.max_rx_pktlen - dev_info.max_mtu;
> +	else
> +		overhead_len = RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
> +
>   	/* If number of queues specified by application for both Rx and Tx is
>   	 * zero, use driver preferred values. This cannot be done individually
>   	 * as it is valid for either Tx or Rx (but not both) to be zero.
> @@ -1410,13 +1420,18 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
>   			goto rollback;
>   		}
>   	} else {
> -		if (dev_conf->rxmode.max_rx_pkt_len < RTE_ETHER_MIN_LEN ||
> -			dev_conf->rxmode.max_rx_pkt_len > RTE_ETHER_MAX_LEN)
> +		uint16_t pktlen = dev_conf->rxmode.max_rx_pkt_len;
> +		if (pktlen < RTE_ETHER_MIN_MTU + overhead_len ||
> +			pktlen > RTE_ETHER_MTU + overhead_len)
>   			/* Use default value */
>   			dev->data->dev_conf.rxmode.max_rx_pkt_len =
> -							RTE_ETHER_MAX_LEN;
> +						RTE_ETHER_MTU + overhead_len;
>   	}
>   
> +	/* Scale the MTU size to adapt max_rx_pkt_len */
> +	dev->data->mtu = dev->data->dev_conf.rxmode.max_rx_pkt_len -
> +				overhead_len;
> +
Hi
   I think the dev->data->mtu should be updated after configured 
success. So the update in this position seems unreasonable. 
'max_rx_pkt_len' is only used when jumbo_frame enabled, as follows:
struct rte_eth_rxmode {
	.....
	uint32_t max_rx_pkt_len;  /**< Only used if JUMBO_FRAME enabled. */
	/** Maximum allowed size of LRO aggregated packet. */
	....};

So If DEV_RX_OFFLOAD_JUMBO_FRAME is set to rxmode.offload, driver should 
configure mtu to hardware according to 'max_rx_pkt_len' and update 
dev->data->mtu. This seems more reasonable. And some PMD drivers are 
already doing this.

In addition, validity check for 'max_rx_pkt_len' in 
rte_eth_dev_configure API may be error. It should be greater than 
'RTE_ETHER_MTU + overhead_len'.
Because driver must enable DEV_RX_OFFLOAD_JUMBO_FRAME when user set mtu 
with greater than 1500 by 'rte_eth_dev_set_mtu' API.

What do you think?

Thanks
Lijun Ou

>   	/*
>   	 * If LRO is enabled, check that the maximum aggregated packet
>   	 * size is supported by the configured device.
> 

  parent reply	other threads:[~2020-12-30 10:20 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-09  3:16 [dpdk-dev] [PATCH v1 00/12] fix rx packets dropped issue Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 01/12] net/dpaa2: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 02/12] net/e1000: " Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 03/12] net/hns3: " Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 04/12] net/i40e: fix the jumbo frame flag condition Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 05/12] net/iavf: " Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 06/12] net/ice: " Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 07/12] net/ipn3ke: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 08/12] net/octeontx: " Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 09/12] net/octeontx2: fix the jumbo frame flag condition for mtu Steve Yang
2020-12-21  7:16   ` [dpdk-dev] [EXT] " Sunil Kumar Kori
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 10/12] net/qede: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 11/12] net/sfc: " Steve Yang
2020-12-09  3:16 ` [dpdk-dev] [PATCH v1 12/12] net/thunderx: " Steve Yang
2020-12-11  4:31 ` [dpdk-dev] [PATCH v1 00/12] fix rx packets dropped issue Guo, Jia
2020-12-14 17:44 ` Ferruh Yigit
2020-12-17  9:22 ` [dpdk-dev] [PATCH v2 00/22] " Steve Yang
2020-12-17  9:22   ` [dpdk-dev] [PATCH v2 01/22] ethdev: fix MTU size exceeds max rx packet length Steve Yang
2020-12-28 14:51     ` Andrew Rybchenko
2021-01-13 10:32       ` Ferruh Yigit
2020-12-30 10:19     ` oulijun [this message]
     [not found]       ` <DM6PR11MB43627F10DDAFC9801816FF5BF9D00@DM6PR11MB4362.namprd11.prod.outlook.com>
2021-01-13 10:25         ` Ferruh Yigit
2021-01-13 11:04         ` Ferruh Yigit
2020-12-17  9:22   ` [dpdk-dev] [PATCH v2 02/22] app/testpmd: fix max rx packet length for VLAN packets Steve Yang
2021-01-13 11:26     ` Ferruh Yigit
2020-12-17  9:22   ` [dpdk-dev] [PATCH v2 03/22] net/dpaa: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-17  9:22   ` [dpdk-dev] [PATCH v2 04/22] net/dpaa2: " Steve Yang
2020-12-17  9:22   ` [dpdk-dev] [PATCH v2 05/22] net/e1000: " Steve Yang
2020-12-18  2:42     ` Guo, Jia
2020-12-17  9:22   ` [dpdk-dev] [PATCH v2 06/22] net/hns3: " Steve Yang
2020-12-17  9:22   ` [dpdk-dev] [PATCH v2 07/22] net/i40e: fix the jumbo frame flag condition Steve Yang
2020-12-18  2:44     ` Guo, Jia
2020-12-17  9:22   ` [dpdk-dev] [PATCH v2 08/22] net/iavf: " Steve Yang
2020-12-17  9:22   ` [dpdk-dev] [PATCH v2 09/22] net/ice: " Steve Yang
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 10/22] net/ipn3ke: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-19  0:54     ` Xu, Rosen
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 11/22] net/octeontx: " Steve Yang
2020-12-21 15:04     ` [dpdk-dev] [EXT] " Harman Kalra
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 12/22] net/octeontx2: fix the jumbo frame flag condition for mtu Steve Yang
2020-12-18 10:15     ` Nithin Dabilpuram
2020-12-21  7:19     ` [dpdk-dev] [EXT] " Sunil Kumar Kori
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 13/22] net/qede: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 14/22] net/sfc: " Steve Yang
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 15/22] net/thunderx: " Steve Yang
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 16/22] net/ixgbe: fix the jumbo frame flag condition Steve Yang
2020-12-18  2:43     ` Guo, Jia
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 17/22] net/cxgbe: " Steve Yang
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 18/22] net/axgbe: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 19/22] net/enetc: " Steve Yang
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 20/22] net/hinic: " Steve Yang
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 21/22] net/nfp: " Steve Yang
2020-12-17  9:23   ` [dpdk-dev] [PATCH v2 22/22] net/liquidio: " Steve Yang
2021-01-13 11:32   ` [dpdk-dev] [PATCH v2 00/22] fix rx packets dropped issue Ferruh Yigit
2021-01-14  9:45   ` [dpdk-dev] [PATCH v3 " Steve Yang
2021-01-14  9:45   ` [dpdk-dev] [PATCH v3 01/22] ethdev: fix MTU size exceeds max rx packet length Steve Yang
2021-01-14 16:36     ` Ferruh Yigit
2021-01-14 17:13       ` Ferruh Yigit
2021-01-14 17:29         ` Andrew Boyer
2021-01-14 20:44           ` Ferruh Yigit
2021-01-15 10:44     ` oulijun
2021-01-18 10:42       ` Ferruh Yigit
2021-01-19  8:46         ` oulijun
2021-01-23  9:05           ` oulijun
2021-01-25 12:22           ` Ferruh Yigit
2021-01-18  7:04     ` [dpdk-dev] [PATCH v4 00/22] fix rx packets dropped issue Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 01/22] ethdev: fix MTU size exceeds max rx packet length Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 02/22] app/testpmd: fix max rx packet length for VLAN packets Steve Yang
2021-01-21 15:27         ` Lance Richardson
2021-01-22 14:26           ` Lance Richardson
2021-01-25 12:14           ` Ferruh Yigit
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 03/22] net/dpaa: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 04/22] net/dpaa2: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 05/22] net/e1000: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 06/22] net/hns3: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 07/22] net/i40e: fix the jumbo frame flag condition Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 08/22] net/iavf: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 09/22] net/ice: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 10/22] net/ipn3ke: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 11/22] net/octeontx: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 12/22] net/octeontx2: fix the jumbo frame flag condition for mtu Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 13/22] net/qede: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 14/22] net/sfc: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 15/22] net/thunderx: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 16/22] net/ixgbe: fix the jumbo frame flag condition Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 17/22] net/cxgbe: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 18/22] net/axgbe: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 19/22] net/enetc: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 20/22] net/hinic: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 21/22] net/nfp: " Steve Yang
2021-01-18  7:04       ` [dpdk-dev] [PATCH v4 22/22] net/liquidio: " Steve Yang
2021-01-18 11:54       ` [dpdk-dev] [PATCH v4 00/22] fix rx packets dropped issue Ferruh Yigit
2021-01-14  9:45   ` [dpdk-dev] [PATCH v3 02/22] app/testpmd: fix max rx packet length for VLAN packets Steve Yang
2021-01-14  9:45   ` [dpdk-dev] [PATCH v3 03/22] net/dpaa: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-14 10:26     ` Hemant Agrawal
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 04/22] net/dpaa2: " Steve Yang
2021-01-14 10:27     ` Hemant Agrawal
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 05/22] net/e1000: " Steve Yang
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 06/22] net/hns3: " Steve Yang
2021-01-18  1:30     ` oulijun
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 07/22] net/i40e: fix the jumbo frame flag condition Steve Yang
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 08/22] net/iavf: " Steve Yang
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 09/22] net/ice: " Steve Yang
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 10/22] net/ipn3ke: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 11/22] net/octeontx: " Steve Yang
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 12/22] net/octeontx2: fix the jumbo frame flag condition for mtu Steve Yang
2021-01-14  9:46   ` [dpdk-dev] [PATCH v3 13/22] net/qede: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-14  9:47   ` [dpdk-dev] [PATCH v3 14/22] net/sfc: " Steve Yang
2021-01-14  9:47   ` [dpdk-dev] [PATCH v3 15/22] net/thunderx: " Steve Yang
2021-01-14  9:47   ` [dpdk-dev] [PATCH v3 16/22] net/ixgbe: fix the jumbo frame flag condition Steve Yang
2021-01-14  9:47   ` [dpdk-dev] [PATCH v3 17/22] net/cxgbe: " Steve Yang
2021-01-14  9:47   ` [dpdk-dev] [PATCH v3 18/22] net/axgbe: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-14  9:47   ` [dpdk-dev] [PATCH v3 19/22] net/enetc: " Steve Yang
2021-01-14  9:47   ` [dpdk-dev] [PATCH v3 20/22] net/hinic: " Steve Yang
2021-01-14  9:47   ` [dpdk-dev] [PATCH v3 21/22] net/nfp: " Steve Yang
2021-01-14  9:47   ` [dpdk-dev] [PATCH v3 22/22] net/liquidio: " Steve Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6a6dc10b-aa1d-76f6-2c4e-a8368253bdd9@huawei.com \
    --to=oulijun@huawei.com \
    --cc=alejandro.lucero@netronome.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=andy.pei@intel.com \
    --cc=asomalap@amd.com \
    --cc=beilei.xing@intel.com \
    --cc=bernard.iremonger@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=chenhao164@huawei.com \
    --cc=cloud.wangxiaoyun@huawei.com \
    --cc=dan.wei@intel.com \
    --cc=david.marchand@6wind.com \
    --cc=dev@dpdk.org \
    --cc=fengchunsong@huawei.com \
    --cc=ferruh.yigit@intel.com \
    --cc=g.singh@nxp.com \
    --cc=girish.nandibasappa@amd.com \
    --cc=haiyue.wang@intel.com \
    --cc=heinrich.kuhn@netronome.com \
    --cc=helin.zhang@intel.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=hkalra@marvell.com \
    --cc=humin29@huawei.com \
    --cc=ivan.boule@6wind.com \
    --cc=ivan.malov@oktetlabs.ru \
    --cc=jerinj@marvell.com \
    --cc=jia.guo@intel.com \
    --cc=jingjing.wu@intel.com \
    --cc=junyux.jiang@intel.com \
    --cc=kamil.rytarowski@caviumnetworks.com \
    --cc=kirankumark@marvell.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=kumaras@chelsio.com \
    --cc=lihuisong@huawei.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=mczekaj@marvell.com \
    --cc=ndabilpuram@marvell.com \
    --cc=olivier.matz@6wind.com \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=rad@semihalf.com \
    --cc=rahul.lakkireddy@chelsio.com \
    --cc=rmody@marvell.com \
    --cc=rolf.neugebauer@netronome.com \
    --cc=rosen.xu@intel.com \
    --cc=sachin.saxena@oss.nxp.com \
    --cc=samuel.gauthier@6wind.com \
    --cc=shahafs@mellanox.com \
    --cc=shreyansh.jain@nxp.com \
    --cc=shshaikh@marvell.com \
    --cc=skori@marvell.com \
    --cc=slawomir.rosek@semihalf.com \
    --cc=sony.chacko@qlogic.com \
    --cc=srinivasan@marvell.com \
    --cc=stephen@networkplumber.org \
    --cc=stevex.yang@intel.com \
    --cc=sthotton@marvell.com \
    --cc=tangchengchang@hisilicon.com \
    --cc=thomas@monjalon.net \
    --cc=ting.xu@intel.com \
    --cc=vattunuru@marvell.com \
    --cc=wei.dai@intel.com \
    --cc=wei.zhao1@intel.com \
    --cc=wenzhuo.lu@intel.com \
    --cc=xavier.huwei@huawei.com \
    --cc=xiaolong.ye@intel.com \
    --cc=xiaoyun.li@intel.com \
    --cc=xuanziyang2@huawei.com \
    --cc=yanglong.wu@intel.com \
    --cc=yisen.zhuang@huawei.com \
    --cc=zhouguoyang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).