From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: Tetsuya Mukawa <mukawa@igel.co.jp>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v8 12/14] eal/pci: Add rte_eal_dev_attach/detach() functions
Date: Tue, 17 Feb 2015 02:48:24 +0100 [thread overview]
Message-ID: <83798909.brLNWNC9tj@xps13> (raw)
In-Reply-To: <1424060073-23484-13-git-send-email-mukawa@igel.co.jp>
2015-02-16 13:14, Tetsuya Mukawa:
> These functions are used for attaching or detaching a port.
> When rte_eal_dev_attach() is called, the function tries to realize the
> device name as pci address. If this is done successfully,
> rte_eal_dev_attach() will attach physical device port. If not, attaches
> virtual devive port.
> When rte_eal_dev_detach() is called, the function gets the device type
> of this port to know whether the port is come from physical or virtual.
> And then specific detaching function will be called.
>
> v8:
> - Add missing symbol in version map.
> (Thanks to Qiu, Michael and Iremonger, Bernard)
> v7:
> - Fix typo of warning messages.
> (Thanks to Qiu, Michael)
> v5:
> - Change function names like below.
> rte_eal_dev_find_and_invoke() to rte_eal_vdev_find_and_invoke().
> rte_eal_dev_invoke() to rte_eal_vdev_invoke().
> - Add code to handle a return value of rte_eal_devargs_remove().
> - Fix pci address format in rte_eal_dev_detach().
> v4:
> - Fix comment.
> - Add error checking.
> - Fix indent of 'if' statement.
> - Change function name.
>
> Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
> ---
> lib/librte_eal/common/eal_common_dev.c | 276 ++++++++++++++++++++++++
> lib/librte_eal/common/eal_private.h | 11 +
> lib/librte_eal/common/include/rte_dev.h | 33 +++
> lib/librte_eal/linuxapp/eal/Makefile | 1 +
> lib/librte_eal/linuxapp/eal/eal_pci.c | 6 +-
> lib/librte_eal/linuxapp/eal/rte_eal_version.map | 2 +
> 6 files changed, 326 insertions(+), 3 deletions(-)
>
> diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
> index eae5656..3d169a4 100644
> --- a/lib/librte_eal/common/eal_common_dev.c
> +++ b/lib/librte_eal/common/eal_common_dev.c
> @@ -32,10 +32,13 @@
> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> */
>
> +#include <stdio.h>
> +#include <limits.h>
> #include <string.h>
> #include <inttypes.h>
> #include <sys/queue.h>
>
> +#include <rte_ethdev.h>
> #include <rte_dev.h>
> #include <rte_devargs.h>
> #include <rte_debug.h>
> @@ -107,3 +110,276 @@ rte_eal_dev_init(void)
> }
> return 0;
> }
> +
> +/* So far, DPDK hotplug function only supports linux */
This comment should be in the configuration.
> +#ifdef ENABLE_HOTPLUG
> +static void
> +rte_eal_vdev_invoke(struct rte_driver *driver,
> + struct rte_devargs *devargs, enum rte_eal_invoke_type type)
> +{
> + if ((driver == NULL) || (devargs == NULL))
> + return;
> +
> + switch (type) {
> + case RTE_EAL_INVOKE_TYPE_PROBE:
> + driver->init(devargs->virtual.drv_name, devargs->args);
> + break;
> + case RTE_EAL_INVOKE_TYPE_CLOSE:
> + driver->uninit(devargs->virtual.drv_name, devargs->args);
> + break;
> + default:
> + break;
> + }
> +}
It would be clearer to directly call init and uninit instead of using this
"invoke" method.
> +
> +static int
> +rte_eal_vdev_find_and_invoke(const char *name, int type)
> +{
> + struct rte_devargs *devargs;
> + struct rte_driver *driver;
> +
> + if (name == NULL)
> + return -EINVAL;
> +
> + /* call the init function for each virtual device */
This comment is wrong.
> + TAILQ_FOREACH(devargs, &devargs_list, next) {
> +
> + if (devargs->type != RTE_DEVTYPE_VIRTUAL)
> + continue;
> +
> + if (strncmp(name, devargs->virtual.drv_name, strlen(name)))
> + continue;
> +
> + TAILQ_FOREACH(driver, &dev_driver_list, next) {
> + if (driver->type != PMD_VDEV)
> + continue;
> +
> + /* search a driver prefix in virtual device name */
> + if (!strncmp(driver->name, devargs->virtual.drv_name,
> + strlen(driver->name))) {
Why not use strcmp?
> + rte_eal_vdev_invoke(driver, devargs, type);
> + break;
> + }
> + }
> +
> + if (driver == NULL) {
> + RTE_LOG(WARNING, EAL, "no driver found for %s\n",
> + devargs->virtual.drv_name);
> + }
> + return 0;
> + }
> + return 1;
> +}
> +
> +/* attach the new physical device, then store port_id of the device */
> +static int
> +rte_eal_dev_attach_pdev(struct rte_pci_addr *addr, uint8_t *port_id)
> +{
> + uint8_t new_port_id;
> + struct rte_eth_dev devs[RTE_MAX_ETHPORTS];
> +
> + if ((addr == NULL) || (port_id == NULL))
> + goto err;
> +
> + /* save current port status */
> + if (rte_eth_dev_save(devs, sizeof(devs)))
> + goto err;
> + /* re-construct pci_device_list */
> + if (rte_eal_pci_scan())
> + goto err;
> + /* invoke probe func of the driver can handle the new device */
> + if (rte_eal_pci_probe_one(addr))
> + goto err;
You should get the port_id from the previous function instead of searching it.
> + /* get port_id enabled by above procedures */
> + if (rte_eth_dev_get_changed_port(devs, &new_port_id))
> + goto err;
> +
> + *port_id = new_port_id;
> + return 0;
> +err:
> + RTE_LOG(ERR, EAL, "Driver, cannot attach the device\n");
> + return -1;
> +}
[...]
> +/* attach the new virtual device, then store port_id of the device */
> +static int
> +rte_eal_dev_attach_vdev(const char *vdevargs, uint8_t *port_id)
> +{
> + char *args;
> + uint8_t new_port_id;
> + struct rte_eth_dev devs[RTE_MAX_ETHPORTS];
> +
> + if ((vdevargs == NULL) || (port_id == NULL))
> + goto err0;
> +
> + args = strdup(vdevargs);
> + if (args == NULL)
> + goto err0;
> +
> + /* save current port status */
> + if (rte_eth_dev_save(devs, sizeof(devs)))
> + goto err1;
> + /* add the vdevargs to devargs_list */
> + if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, args))
> + goto err1;
> + /* parse vdevargs, then retrieve device name */
> + get_vdev_name(args);
> + /* walk around dev_driver_list to find the driver of the device,
> + * then invoke probe function o the driver */
> + if (rte_eal_vdev_find_and_invoke(args, RTE_EAL_INVOKE_TYPE_PROBE))
> + goto err2;
Again, you should get port_id from the attach procedure.
> + /* get port_id enabled by above procedures */
> + if (rte_eth_dev_get_changed_port(devs, &new_port_id))
> + goto err2;
[...]
> /**
> + * Uninitilization function called for each device driver once.
> + */
> +typedef int (rte_dev_uninit_t)(const char *name, const char *args);
Why do you need args for uninit?
next prev parent reply other threads:[~2015-02-17 1:48 UTC|newest]
Thread overview: 362+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1418106629-22227-2-git-send-email-mukawa@igel.co.j>
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 00/11] Port Hotplug Framework Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 01/11] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
[not found] ` <8CEF83825BEC744B83065625E567D7C2049D7C19@IRSMSX108.ger.corp.intel.com>
2015-01-19 14:24 ` [dpdk-dev] FW: " Qiu, Michael
2015-01-20 2:02 ` Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 02/11] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 03/11] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 04/11] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 05/11] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-01-21 2:40 ` Qiu, Michael
2015-01-21 9:02 ` Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 06/11] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-01-20 9:23 ` Qiu, Michael
2015-01-21 0:17 ` Tetsuya Mukawa
2015-01-21 10:01 ` Tetsuya Mukawa
2015-01-22 8:12 ` Qiu, Michael
2015-01-22 10:15 ` Tetsuya Mukawa
2015-01-23 2:54 ` Qiu, Michael
2015-01-23 3:20 ` Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 07/11] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-01-21 2:55 ` Qiu, Michael
2015-01-21 6:33 ` Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 08/11] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 00/13] Port Hotplug Framework Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 01/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 02/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 03/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 04/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 05/13] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 06/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 07/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 08/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 09/13] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 10/13] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 11/13] ethdev: Add one dev_type paramerter to rte_eth_dev_allocate Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5 13/13] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-01-30 5:42 ` [dpdk-dev] [PATCH v5] testpmd: " Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 00/13] Port Hotplug Framework Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 01/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 02/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 03/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 00/14] Port Hotplug Framework Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 01/14] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 00/14] Port Hotplug Framework Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 01/14] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-16 16:14 ` Iremonger, Bernard
2015-02-17 0:12 ` Thomas Monjalon
2015-02-17 3:09 ` Qiu, Michael
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 00/14] Port Hotplug Framework Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 01/14] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 02/14] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 03/14] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 04/14] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 05/14] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 00/13] Port Hotplug Framework Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 08/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-23 11:01 ` Iremonger, Bernard
2015-02-23 11:32 ` Tetsuya Mukawa
2015-02-23 11:39 ` Iremonger, Bernard
2015-02-23 11:40 ` Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 09/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 10/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 11/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-23 13:29 ` Maxime Leroy
2015-02-24 4:48 ` Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-23 5:09 ` [dpdk-dev] [PATCH v11] testpmd: " Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 06/14] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 07/14] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 08/14] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 09/14] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 10/14] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 11/14] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 12/14] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 13/14] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-20 10:14 ` Maxime Leroy
2015-02-20 10:32 ` Tetsuya Mukawa
2015-02-20 15:20 ` Maxime Leroy
2015-02-21 3:49 ` Tetsuya Mukawa
2015-02-21 12:49 ` Maxime Leroy
2015-02-22 3:04 ` Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10 14/14] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-20 6:39 ` [dpdk-dev] [PATCH v10] testpmd: " Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 00/13] Port Hotplug Framework Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 08/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 09/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-23 12:45 ` [dpdk-dev] [PATCH v12 10/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-23 12:46 ` [dpdk-dev] [PATCH v12 11/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-23 12:46 ` [dpdk-dev] [PATCH v12 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-23 12:46 ` [dpdk-dev] [PATCH v12 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-23 12:46 ` [dpdk-dev] [PATCH v12] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-23 12:46 ` [dpdk-dev] [PATCH v12] testpmd: " Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 00/13] Port Hotplug Framework Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 08/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 09/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 10/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 11/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-24 13:25 ` Maxime Leroy
2015-02-24 14:29 ` Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-24 4:49 ` [dpdk-dev] [PATCH v13] testpmd: " Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 00/13] Port Hotplug Framework Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 08/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 09/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 10/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 11/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-25 11:21 ` Thomas Monjalon
2015-02-25 12:32 ` Tetsuya Mukawa
2015-02-25 14:00 ` Thomas Monjalon
2015-02-25 14:56 ` Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 00/13] Port Hotplug Framework Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 08/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 09/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 10/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 11/13] eal/pci: Add vdev driver initialization and uninitialization functions Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 12/13] ethdev: Add rte_eth_dev_attach/detach() functions Tetsuya Mukawa
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-03-02 19:03 ` Butler, Siobhan A
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-25 23:27 ` Thomas Monjalon
2015-02-25 19:32 ` [dpdk-dev] [PATCH v15] testpmd: " Tetsuya Mukawa
2015-02-25 23:27 ` Thomas Monjalon
2015-02-26 18:49 ` De Lara Guarch, Pablo
2015-02-27 6:14 ` Tetsuya Mukawa
2015-02-27 23:32 ` Thomas Monjalon
2015-03-03 15:54 ` De Lara Guarch, Pablo
2015-03-05 6:23 ` Tetsuya Mukawa
2015-02-25 23:26 ` [dpdk-dev] [PATCH v15 00/13] Port Hotplug Framework Thomas Monjalon
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-25 4:04 ` [dpdk-dev] [PATCH v14] testpmd: " Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 02/14] eal_pci: pci memory map work with driver type Tetsuya Mukawa
2015-02-16 16:15 ` Iremonger, Bernard
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 03/14] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-16 16:17 ` Iremonger, Bernard
2015-02-17 0:36 ` Thomas Monjalon
2015-02-17 6:14 ` Tetsuya Mukawa
2015-02-18 0:31 ` Thomas Monjalon
2015-02-18 1:54 ` Tetsuya Mukawa
2015-02-18 6:10 ` Tetsuya Mukawa
2015-02-18 9:27 ` Iremonger, Bernard
2015-02-18 9:57 ` Thomas Monjalon
2015-02-18 10:03 ` Bruce Richardson
2015-02-18 10:58 ` Tetsuya Mukawa
2015-02-18 12:23 ` Bruce Richardson
2015-02-18 12:38 ` Tetsuya Mukawa
2015-02-18 12:33 ` Iremonger, Bernard
2015-02-18 12:41 ` Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 04/14] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-16 16:19 ` Iremonger, Bernard
2015-02-17 0:44 ` Thomas Monjalon
2015-02-17 6:14 ` Tetsuya Mukawa
2015-02-18 1:02 ` Thomas Monjalon
2015-02-18 1:55 ` Tetsuya Mukawa
2015-02-18 10:26 ` Iremonger, Bernard
2015-02-18 10:32 ` Thomas Monjalon
2015-02-18 11:39 ` Iremonger, Bernard
2015-02-18 12:20 ` Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 05/14] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
2015-02-16 16:20 ` Iremonger, Bernard
2015-02-17 0:46 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 06/14] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-16 16:22 ` Iremonger, Bernard
2015-02-17 0:56 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 07/14] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-16 12:41 ` Neil Horman
2015-02-17 5:54 ` Tetsuya Mukawa
2015-02-16 16:23 ` Iremonger, Bernard
2015-02-17 1:04 ` Thomas Monjalon
2015-02-17 8:50 ` Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 08/14] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-16 12:45 ` Neil Horman
2015-02-17 5:53 ` Tetsuya Mukawa
2015-02-16 16:25 ` Iremonger, Bernard
2015-02-17 1:11 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-18 1:09 ` Thomas Monjalon
2015-02-18 9:37 ` Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 09/14] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-02-16 16:26 ` Iremonger, Bernard
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 10/14] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
2015-02-16 16:27 ` Iremonger, Bernard
2015-02-17 1:18 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 11/14] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-16 16:28 ` Iremonger, Bernard
2015-02-17 1:24 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 00/14] Port Hotplug Framework Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 01/14] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 02/14] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-19 11:17 ` Thomas Monjalon
2015-02-19 13:29 ` Tetsuya Mukawa
2015-02-20 5:18 ` Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 03/14] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 04/14] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 05/14] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 06/14] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 07/14] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-19 14:31 ` Iremonger, Bernard
2015-02-20 1:17 ` Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 08/14] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-19 11:24 ` Thomas Monjalon
2015-02-19 13:29 ` Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 09/14] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 10/14] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 11/14] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 12/14] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-19 14:51 ` Iremonger, Bernard
2015-02-20 1:18 ` Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 13/14] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-19 12:10 ` Thomas Monjalon
2015-02-19 13:30 ` Tetsuya Mukawa
2015-02-19 13:37 ` Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9 14/14] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-19 2:49 ` [dpdk-dev] [PATCH v9] testpmd: " Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 12/14] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-16 16:30 ` Iremonger, Bernard
2015-02-17 1:48 ` Thomas Monjalon [this message]
2015-02-17 8:51 ` Tetsuya Mukawa
2015-02-17 9:23 ` Thomas Monjalon
2015-02-17 10:26 ` Tetsuya Mukawa
2015-02-18 1:17 ` Thomas Monjalon
2015-02-18 1:55 ` Tetsuya Mukawa
2015-02-17 16:15 ` Maxime Leroy
2015-02-18 1:54 ` Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 13/14] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
2015-02-16 16:30 ` Iremonger, Bernard
2015-02-17 1:25 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-16 4:14 ` [dpdk-dev] [PATCH v8 14/14] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-16 16:32 ` Iremonger, Bernard
2015-02-16 5:13 ` [dpdk-dev] [PATCH v8 00/14] Port Hotplug Framework Qiu, Michael
2015-02-16 4:15 ` [dpdk-dev] [PATCH v8] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-16 16:36 ` Iremonger, Bernard
2015-02-16 4:15 ` [dpdk-dev] [PATCH v8] testpmd: " Tetsuya Mukawa
2015-02-16 16:35 ` Iremonger, Bernard
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 02/14] eal_pci: pci memory map work with driver type Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 03/14] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-09 8:52 ` Qiu, Michael
2015-02-09 15:16 ` Iremonger, Bernard
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 04/14] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-09 13:10 ` Qiu, Michael
2015-02-10 15:08 ` Iremonger, Bernard
2015-02-11 2:51 ` Tetsuya Mukawa
2015-02-11 3:27 ` Qiu, Michael
2015-02-11 4:53 ` Tetsuya Mukawa
2015-02-11 4:57 ` Tetsuya Mukawa
2015-02-11 6:29 ` Qiu, Michael
2015-02-11 8:14 ` Tetsuya Mukawa
2015-02-11 12:13 ` Qiu, Michael
2015-02-12 1:44 ` Tetsuya Mukawa
2015-02-12 13:55 ` Iremonger, Bernard
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 05/14] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 06/14] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 07/14] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-09 15:34 ` Iremonger, Bernard
2015-02-10 1:30 ` Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 08/14] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-09 13:44 ` Iremonger, Bernard
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 09/14] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 10/14] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 11/14] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-09 15:03 ` Iremonger, Bernard
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 12/14] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 13/14] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7 14/14] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-09 8:30 ` [dpdk-dev] [PATCH v7] testpmd: " Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 04/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 05/13] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 06/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 07/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-03 2:37 ` Qiu, Michael
2015-02-03 4:07 ` Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 08/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 09/13] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 10/13] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
2015-02-03 2:35 ` Qiu, Michael
2015-02-03 4:07 ` Tetsuya Mukawa
2015-02-03 5:05 ` Qiu, Michael
2015-02-03 8:00 ` Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 11/13] ethdev: Add one dev_type paramerter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-01 4:01 ` [dpdk-dev] [PATCH v6 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-02 5:42 ` Qiu, Michael
2015-02-02 6:22 ` Qiu, Michael
2015-02-03 1:28 ` Tetsuya Mukawa
2015-02-01 4:02 ` [dpdk-dev] [PATCH v6 13/13] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
2015-02-01 4:02 ` [dpdk-dev] [PATCH v6] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-01 4:02 ` [dpdk-dev] [PATCH v6] testpmd: " Tetsuya Mukawa
[not found] ` <8CEF83825BEC744B83065625E567D7C2049DCAD2@IRSMSX108.ger.corp.intel.com>
2015-02-03 1:32 ` Tetsuya Mukawa
2015-02-03 10:03 ` Iremonger, Bernard
2015-02-03 10:31 ` Tetsuya Mukawa
[not found] ` <1688512.MY7Nexz1BF@xps13>
2015-02-03 1:34 ` Tetsuya Mukawa
2015-02-03 6:15 ` Qiu, Michael
2015-02-03 9:14 ` Qiu, Michael
2015-02-03 10:29 ` Tetsuya Mukawa
2015-02-04 1:44 ` Qiu, Michael
2015-02-05 1:37 ` Tetsuya Mukawa
2015-02-03 6:59 ` Qiu, Michael
2015-02-03 10:26 ` Tetsuya Mukawa
2015-02-03 13:03 ` [dpdk-dev] [PATCH v6 00/13] Port Hotplug Framework Iremonger, Bernard
2015-02-05 1:32 ` Tetsuya Mukawa
2015-02-03 18:35 ` Iremonger, Bernard
2015-02-05 1:34 ` Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 09/11] ethdev: Add one dev_type paramerter to rte_eth_dev_allocate Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 10/11] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-01-21 3:49 ` Qiu, Michael
2015-01-21 6:34 ` Tetsuya Mukawa
2015-01-19 10:40 ` [dpdk-dev] [PATCH v4 11/11] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
2015-01-19 13:15 ` [dpdk-dev] [PATCH v4 00/11] Port Hotplug Framework Qiu, Michael
2015-01-27 3:00 ` Qiu, Michael
2015-01-27 5:01 ` Tetsuya Mukawa
2015-01-27 5:50 ` Qiu, Michael
2015-01-27 7:24 ` Tetsuya Mukawa
2015-01-19 10:41 ` [dpdk-dev] [PATCH v4] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-01-19 10:42 ` [dpdk-dev] [PATCH v4] testpmd: " Tetsuya Mukawa
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=83798909.brLNWNC9tj@xps13 \
--to=thomas.monjalon@6wind.com \
--cc=dev@dpdk.org \
--cc=mukawa@igel.co.jp \
/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).