From: "Zhang, Tianfei" <tianfei.zhang@intel.com>
To: "Yigit, Ferruh" <ferruh.yigit@intel.com>,
"Xu, Rosen" <rosen.xu@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "Wei, Dan" <dan.wei@intel.com>, "Pei, Andy" <andy.pei@intel.com>,
"Yang, Qiming" <qiming.yang@intel.com>,
"Wang, Haiyue" <haiyue.wang@intel.com>,
"Chen, Santos" <santos.chen@intel.com>,
"Zhang, Zhang" <zhang.zhang@intel.com>
Subject: Re: [dpdk-dev] [PATCH v1 03/11] drivers/raw/ifpga_rawdev: add OPAE share code for IPN3KE
Date: Wed, 6 Mar 2019 23:59:02 +0000 [thread overview]
Message-ID: <BA6F50564D52C24884F9840E07E32DEC4DFE48EF@CDSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <543b6067-9056-635c-5ac3-f96a88fb0c95@intel.com>
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Thursday, March 7, 2019 1:55 AM
> To: Zhang, Tianfei <tianfei.zhang@intel.com>; Xu, Rosen
> <rosen.xu@intel.com>; dev@dpdk.org
> Cc: Wei, Dan <dan.wei@intel.com>; Pei, Andy <andy.pei@intel.com>; Yang,
> Qiming <qiming.yang@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>;
> Chen, Santos <santos.chen@intel.com>; Zhang, Zhang
> <zhang.zhang@intel.com>
> Subject: Re: [PATCH v1 03/11] drivers/raw/ifpga_rawdev: add OPAE share
> code for IPN3KE
>
> On 3/6/2019 1:59 PM, Zhang, Tianfei wrote:
> >
> >> -----Original Message-----
> >> From: Yigit, Ferruh
> >> Sent: Wednesday, March 6, 2019 8:28 PM
> >> To: Xu, Rosen <rosen.xu@intel.com>; dev@dpdk.org
> >> Cc: Zhang, Tianfei <tianfei.zhang@intel.com>; Wei, Dan
> >> <dan.wei@intel.com>; Pei, Andy <andy.pei@intel.com>; Yang, Qiming
> >> <qiming.yang@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>;
> Chen,
> >> Santos <santos.chen@intel.com>; Zhang, Zhang
> <zhang.zhang@intel.com>
> >> Subject: Re: [PATCH v1 03/11] drivers/raw/ifpga_rawdev: add OPAE
> >> share code for IPN3KE
> >>
> >> On 2/28/2019 7:13 AM, Rosen Xu wrote:
> >>> Add OPAE share code for Intel FPGA Acceleration NIC IPN3KE.
> >>
> >> What do you think adding a file to record the version of the shared
> >> code, as it is done in Intel NIC drivers, README file?
> >>
> >> Also can you please add more details on what feautures has been added
> >> with this update?
> >
> > Thanks, good suggestion, I will add a README file in next version.
> >
> >>
> >> And if possible can you please split this patch into logical parts?
> >
> > Ok, is it possible split into multiple small patches for share code?if
> necessary, I will do it in next version.
> >
> >>
> >>>
> >>> Signed-off-by: Tianfei Zhang <tianfei.zhang@intel.com>
> >>> ---
> >>> drivers/raw/ifpga_rawdev/base/Makefile | 7 +
> >>> drivers/raw/ifpga_rawdev/base/ifpga_api.c | 69 ++-
> >>> drivers/raw/ifpga_rawdev/base/ifpga_api.h | 1 +
> >>> drivers/raw/ifpga_rawdev/base/ifpga_defines.h | 86 +++-
> >>> drivers/raw/ifpga_rawdev/base/ifpga_enumerate.c | 342
> >> +++++--------
> >>> drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.c | 170 +++++--
> >>> drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.h | 62 ++-
> >>> drivers/raw/ifpga_rawdev/base/ifpga_fme.c | 373
> >> ++++++++++++++
> >>> drivers/raw/ifpga_rawdev/base/ifpga_fme_pr.c | 2 +-
> >>> drivers/raw/ifpga_rawdev/base/ifpga_hw.h | 21 +-
> >>> drivers/raw/ifpga_rawdev/base/ifpga_port.c | 21 +
> >>> drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.c | 89 ++++
> >>> drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.h | 14 +
> >>> drivers/raw/ifpga_rawdev/base/opae_hw_api.c | 189
> ++++++-
> >>> drivers/raw/ifpga_rawdev/base/opae_hw_api.h | 46 +-
> >>> drivers/raw/ifpga_rawdev/base/opae_i2c.c | 490
> >> +++++++++++++++++++
> >>> drivers/raw/ifpga_rawdev/base/opae_i2c.h | 127 +++++
> >>> drivers/raw/ifpga_rawdev/base/opae_intel_max10.c | 106 ++++
> >>> drivers/raw/ifpga_rawdev/base/opae_intel_max10.h | 36 ++
> >>> drivers/raw/ifpga_rawdev/base/opae_mdio.c | 542
> >> +++++++++++++++++++++
> >>> drivers/raw/ifpga_rawdev/base/opae_mdio.h | 90 ++++
> >>> drivers/raw/ifpga_rawdev/base/opae_osdep.h | 11 +-
> >>> drivers/raw/ifpga_rawdev/base/opae_phy_group.c | 88 ++++
> >>> drivers/raw/ifpga_rawdev/base/opae_phy_group.h | 53 ++
> >>> drivers/raw/ifpga_rawdev/base/opae_spi.c | 260
> >> ++++++++++
> >>> drivers/raw/ifpga_rawdev/base/opae_spi.h | 120 +++++
> >>> .../raw/ifpga_rawdev/base/opae_spi_transaction.c | 438
> >> +++++++++++++++++
> >>> .../ifpga_rawdev/base/osdep_raw/osdep_generic.h | 1 +
> >>> .../ifpga_rawdev/base/osdep_rte/osdep_generic.h | 10 +
> >>> 29 files changed, 3549 insertions(+), 315 deletions(-)
> >>
> >> <...>
> >>
> >>> @@ -165,37 +68,35 @@ static u64 feature_id(void __iomem *start)
> >>>
> >>> static int
> >>> build_info_add_sub_feature(struct build_feature_devs_info *binfo,
> >>> - struct feature_info *finfo, void __iomem *start)
> >>> + void __iomem *start, u64 fid, unsigned int size,
> >>> + unsigned int vec_start,
> >>> + unsigned int vec_cnt)
> >>> {
> >>> struct ifpga_hw *hw = binfo->hw;
> >>> struct feature *feature = NULL;
> >>
> >> struct names are so generic 'struct feature' & 'struct feature_ops'
> >> defined in ifpga_hw.h, they seems not added in this patch, but what
> >> do you think prefix them via "ifpga_" in a separate patch?
> >
> > Yes, I agree, add prefix name is better, maybe we forget that patch, will fix
> in next version.
> >
> >>
> >> <...>
> >>
> >>> + feature->vec_start = vec_start;
> >>> + feature->vec_cnt = vec_cnt;
> >>> +
> >>> + dev_debug(binfo, "%s: id=0x%lx, phys_addr=0x%lx, size=%d\n",
> >>> + __func__, feature->id, feature->phys_addr, size);
> >>
> >> 32bit build complains about %lx usage:
> >>
> >> .../dpdk/drivers/raw/ifpga_rawdev/base/ifpga_enumerate.c:99:51: error:
> >> format ‘%lx’ expects argument of type ‘long unsigned int’, but
> >> argument
> >> 5 has type ‘u64’ {aka ‘long long unsigned int’} [-Werror= format=]
> >
> > In this v1 patch, we forget check the 32 bit compiler, will fix in next version.
> >
> >>
> >> <...>
> >>
> >>> @@ -651,12 +539,19 @@ static int parse_feature(struct
> >> build_feature_devs_info *binfo,
> >>> }
> >>>
> >>> hdr = (struct feature_header *)start;
> >>> + header.csr = readq(hdr);
> >>> +
> >>> + /*debug*/
> >>
> >> I think can drop above comment, not adding extra information.
> >>
> >>> + dev_debug(binfo, "%s: address=0x%llx, val=0x%lx,
> header.id=0x%x,
> >> header.next_offset=0x%x, header.eol=0x%x, header.type=0x%x\n",
> >>> + __func__, (unsigned long long)(hdr), header.csr,
> >>
> >> Why not use "%p" to print the address of the variable but cast it to
> >> 'unsigned long long'?
> > Will fix in next version.
> >>
> >> <...>
> >>
> >>> +static int fme_spi_init(struct feature *feature) {
> >>> + struct feature_fme_spi *spi;
> >>> + struct ifpga_fme_hw *fme = (struct ifpga_fme_hw
> *)feature->parent;
> >>> + struct altera_spi_device *spi_master;
> >>> + struct intel_max10_device *max10;
> >>> + int ret = 0;
> >>> +
> >>> + spi = (struct feature_fme_spi *)feature->addr;
> >>> +
> >>> + dev_info(fme, "FME SPI Master (Max10) Init.\n");
> >>> + dev_debug(fme, "FME SPI base addr %llx.\n",
> >>> + (unsigned long long)spi);
> >>
> >> Same comment here, why not "%p", why casting the variable?
> >>
> >>> + dev_debug(fme, "spi param=0x%lx\n", opae_readq(feature->addr
> +
> >>> +0x8));
> >>
> >> .../dpdk/drivers/raw/ifpga_rawdev/base/ifpga_fme.c:774:69: error:
> >> format ‘%lx’
> >> expects argument of type ‘long unsigned int’, but argument 4 has type
> >> ‘uint64_t’
> >> {aka ‘long long unsigned int’} [-Werror= format=]
> >> dev_debug(fme, "spi param=0x%lx\n", opae_readq(feature->addr +
> >> 0x8));
> >
> > Will fix in next version.
> >>
> >> ^
> >>
> >> <...>
> >>
> >>> +/**
> >>> + * opae_manager_get_retimer_info - get retimer info like PKVL chip
> >>> + * @mgr: opae_manager for retimer
> >>> + * @info: info return to caller
> >>> + *
> >>> + * Return: 0 on success, otherwise error code */ int
> >>> +opae_manager_get_retimer_info(struct opae_manager *mgr,
> >>> + struct opae_retimer_info *info) {
> >>> + if (!mgr || !mgr->network_ops)
> >>> + return -EINVAL;
> >>> +
> >>> + //if (mgr->network_ops->get_retimer_info)
> >>> + // return mgr->network_ops->get_retimer_info(mgr, info);
> >>
> >>
> >> Please remove commented code, and for comments please prefer c89
> >> style comments.
> >
> > Will fix in next version.
> >
> >>
> >> <...>
> >>
> >>> @@ -0,0 +1,490 @@
> >>> +
> >>> +/* SPDX-License-Identifier: BSD-3-Clause
> >>> + * Copyright(c) 2010-2018 Intel Corporation
> >>
> >> Do you prefer to update date to 2019?
> >
> > Ok.
> >>
> >> <...>
> >>
> >>> +static void phy_indirect_write(struct phy_group_device *dev, u8 entry,
> >>> + u16 addr, u32 value)
> >>> +{
> >>> + u64 ctrl;
> >>> +
> >>> + ctrl = CMD_RD << CTRL_COMMAND_SHIFT |
> >>> + (entry & CTRL_PHY_NUM_MASK) << CTRL_PHY_NUM_SHIFT |
> >>> + (addr & CTRL_PHY_ADDR_MASK) << CTRL_PHY_ADDR_SHIFT |
> >>> + (value & CTRL_WRITE_DATA_MASK);
> >>
> >> Is 32bit supported?
> >> If so, CMD_RD is defined as 'unsigned long' which is 4bytes long in
> >> 32bit machine. Since CTRL_COMMAND_SHIFT is 62, the result will be
> >> different than expected. Also there is compiler warning for it:
> >>
> >> .../drivers/raw/ifpga_rawdev/base/opae_phy_group.c: In function
> >> ‘phy_indirect_write’:
> >> .../drivers/raw/ifpga_rawdev/base/opae_phy_group.c:29:16: error: left
> >> shift count >= width of type [-Werror=shift-count-overflow]
> >> ctrl = CMD_RD << CTRL_COMMAND_SHIFT |
> >> ^~
> >>
> >> Same for similar usage is phy_indirect_read()
> >
> > The register is 64bit. We will fix for the 32bit compiler in next version.
> >
> >>
> >> <...>
> >>
> >>> +static unsigned int spi_write_bytes(struct altera_spi_device *dev,
> >>> +int count) {
> >>> + unsigned int val = 0;
> >>> + u16 *p16;
> >>> + u32 *p32;
> >>> +
> >>> + if (dev->txbuf) {
> >>> + switch (dev->data_width) {
> >>> + case 1:
> >>> + val = dev->txbuf[count];
> >>> + break;
> >>> + case 2:
> >>> + p16 = (u16 *)(dev->txbuf + 2*count);
> >>> + val = *p16;
> >>> + if (dev->endian == SPI_BIG_ENDIAN)
> >>> + val = cpu_to_be16(val);
> >>> + break;
> >>> + case 4:
> >>> + p32 = (u32 *)(dev->txbuf + 4*count);
> >>> + val = *p32;
> >>> + if (dev->endian == SPI_BIG_ENDIAN)
> >>> + val = (val);
> >>
> >> What is the intention here? Compiler warning:
> >>
> >> .../drivers/raw/ifpga_rawdev/base/opae_spi.c:122:9: error: explicitly
> >> assigning value of variable of type 'unsigned int' to itself
> >> [-Werror,-Wself-assign]
> >
> > Ok, will fix in next version.
> >>
> >> <...>
> >>
> >>> +
> >>> +#ifdef OPAE_DEBUG
> >>
> >> Is this DEBUG macro defined anywhere?
> >>
> >> <...>
> >>
> >>> + switch (trans_type) {
> >>> + case SPI_TRAN_SEQ_WRITE:
> >>> + case SPI_TRAN_NON_SEQ_WRITE:
> >>> + for (i = 0; i < size; i++)
> >>> + *p++ = *data++;
> >>> +
> >>> + ret = packet_to_byte_conver(dev, size + HEADER_LEN,
> >>> + transaction, RESPONSE_LEN, response,
> >>> + &valid_len);
> >>> + if (ret)
> >>> + return -EBUSY;
> >>> +
> >>> + /* check the result */
> >>> + if (size != ((unsigned int)(response[2] & 0xff) << 8 |
> >>> + (unsigned int)(response[3] & 0xff)))
> >>> + ret = -EBUSY;
> >>> +
> >>> + break;
> >>
> >> Indentation is wrong after 'for' loop. Loops seems copying from
> >> 'data' to 'transaction' buffer, which is used later, so the logic
> >> seems correct but indentation is misleading, it is causing a build warning:
> >>
> >> .../dpdk/drivers/raw/ifpga_rawdev/base/opae_spi_transaction.c: In
> >> function
> >> ‘do_transaction’:
> >> .../dpdk/drivers/raw/ifpga_rawdev/base/opae_spi_transaction.c:362:3:
> >> error: this ‘for’ clause does not guard...
> [-Werror=misleading-indentation]
> >> for (i = 0; i < size; i++)
> >> ^~~
> >> .../dpdk/drivers/raw/ifpga_rawdev/base/opae_spi_transaction.c:365:4:
> >> note:
> >> ...this statement, but the latter is misleadingly indented as if it
> >> were guarded by the ‘for’
> >> ret = packet_to_byte_conver(dev, size + HEADER_LEN,
> >> ^~~
> > Will fix in next version.
> >
> > What GCC compiler are you using?
>
> gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6) clang version 7.0.1 (Fedora
> 7.0.1-2.fc29) icc (ICC) 19.0.2.187 20190117
>
> the build errors I put are from one of the above ones, since there were many
> errors I didn't filter which error is specific to which compiler.
Thanks, we will clean our code for all of compilers in next version.
>
next prev parent reply other threads:[~2019-03-06 23:59 UTC|newest]
Thread overview: 343+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-28 7:13 [dpdk-dev] [PATCH v1 00/11] Add patch set " Rosen Xu
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 01/11] drivers/bus/ifpga: add AFU shared data Rosen Xu
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 02/11] drivers/bus/ifpga: add function for AFU search by name Rosen Xu
2019-03-06 12:44 ` Ferruh Yigit
2019-03-11 13:10 ` Xu, Rosen
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 03/11] drivers/raw/ifpga_rawdev: add OPAE share code for IPN3KE Rosen Xu
2019-03-06 12:27 ` Ferruh Yigit
2019-03-06 13:59 ` Zhang, Tianfei
2019-03-06 17:54 ` Ferruh Yigit
2019-03-06 23:59 ` Zhang, Tianfei [this message]
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 04/11] drivers/raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Rosen Xu
2019-03-06 12:31 ` Ferruh Yigit
2019-03-07 7:16 ` Xu, Rosen
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 05/11] drivers/net/ipn3ke: add IPN3KE PMD driver Rosen Xu
2019-02-28 8:32 ` David Marchand
2019-02-28 8:44 ` Xu, Rosen
2019-03-06 12:44 ` Ferruh Yigit
2019-03-11 13:09 ` Xu, Rosen
2019-03-09 19:34 ` Luca Boccassi
2019-03-11 3:05 ` Xu, Rosen
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 06/11] config: add build enablement for IPN3KE Rosen Xu
2019-03-06 12:45 ` Yigit, Ferruh
2019-03-08 0:58 ` Xu, Rosen
2019-03-09 9:36 ` Xu, Rosen
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 07/11] mk: add link " Rosen Xu
2019-03-06 12:45 ` Yigit, Ferruh
2019-03-08 0:56 ` Xu, Rosen
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 08/11] app/test-pmd: add IPN3KE support for testpmd Rosen Xu
2019-02-28 8:37 ` David Marchand
2019-02-28 8:45 ` Xu, Rosen
2019-02-28 8:47 ` David Marchand
2019-03-01 5:56 ` Xu, Rosen
2019-03-06 12:45 ` Yigit, Ferruh
2019-03-08 0:55 ` Xu, Rosen
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 09/11] usertools: add IPN3KE device bind Rosen Xu
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 10/11] doc: add IPN3KE document Rosen Xu
2019-03-06 12:45 ` Ferruh Yigit
2019-03-08 2:41 ` Xu, Rosen
2019-02-28 7:13 ` [dpdk-dev] [PATCH v1 11/11] MAINTAINERS: add MAINTAINERS for IPN3KE Rosen Xu
2019-03-06 12:46 ` Ferruh Yigit
2019-03-08 0:55 ` Xu, Rosen
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 00/15] Add patch set " Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 01/15] drivers/bus/ifpga: add AFU shared data Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 02/15] drivers/bus/ifpga: add function for AFU search by name Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 03/15] drivers/net/ipn3ke: add IPN3KE ethdev PMD driver Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 04/15] drivers/net/ipn3ke: add IPN3KE representor of " Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 05/15] drivers/net/ipn3ke: add IPN3KE TM " Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 06/15] drivers/net/ipn3ke: add IPN3KE Flow " Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 07/15] raw/ifpga/base: clean up code for ifpga share code Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 08/15] raw/ifpga/base: store private features in FME and Port list Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 09/15] raw/ifpga/base: add SPI and MAX10 device driver Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 10/15] raw/ifpga/base: add I2C and at24 EEPROM driver Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 11/15] raw/ifpga/base: add eth group driver Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 12/15] raw/ifpga/base: add device tree support Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 13/15] raw/ifpga/base: add version description on README Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 14/15] raw/ifpga/base: using prefix name "ifpga_" for feature and feature_ops data struct Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 15:58 ` [dpdk-dev] [PATCH v2 15/15] drivers/raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Rosen Xu
2019-03-29 15:58 ` Rosen Xu
2019-03-29 18:59 ` [dpdk-dev] [PATCH v2 00/15] Add patch set for IPN3KE Ferruh Yigit
2019-03-29 18:59 ` Ferruh Yigit
2019-03-31 14:19 ` Xu, Rosen
2019-03-31 14:19 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 00/14] " Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 01/14] drivers/bus/ifpga: add AFU shared data Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 02/14] drivers/bus/ifpga: add function for AFU search by name Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 03/14] drivers/net/ipn3ke: add IPN3KE ethdev PMD driver Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 04/14] drivers/net/ipn3ke: add IPN3KE representor of " Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 05/14] drivers/net/ipn3ke: add IPN3KE TM " Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 06/14] drivers/net/ipn3ke: add IPN3KE Flow " Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 07/14] raw/ifpga/base: clean up code for ifpga share code Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 08/14] raw/ifpga/base: store private features in FME and Port list Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 09/14] raw/ifpga/base: add SPI and MAX10 device driver Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 10/14] raw/ifpga/base: add I2C and at24 EEPROM driver Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 11/14] raw/ifpga/base: add eth group driver Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 12/14] raw/ifpga/base: add version description on README Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 13/14] raw/ifpga/base: using prefix name "ifpga_" for feature and feature_ops data struct Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-02 13:57 ` [dpdk-dev] [PATCH v3 14/14] drivers/raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Xu, Rosen
2019-04-02 13:57 ` Xu, Rosen
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 00/14] Add patch set for IPN3KE Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 01/14] drivers/bus/ifpga: add AFU shared data Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 02/14] drivers/bus/ifpga: add function for AFU search by name Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 03/14] drivers/net/ipn3ke: add IPN3KE ethdev PMD driver Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 04/14] drivers/net/ipn3ke: add IPN3KE representor of " Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 05/14] drivers/net/ipn3ke: add IPN3KE TM " Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 06/14] drivers/net/ipn3ke: add IPN3KE Flow " Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 07/14] raw/ifpga/base: clean up code for ifpga share code Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 08/14] raw/ifpga/base: store private features in FME and Port list Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 09/14] raw/ifpga/base: add SPI and MAX10 device driver Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 10/14] raw/ifpga/base: add I2C and at24 EEPROM driver Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 11/14] raw/ifpga/base: add eth group driver Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 12/14] raw/ifpga/base: add version description on README Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 13/14] raw/ifpga/base: using prefix name "ifpga_" for feature and feature_ops data struct Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 8:46 ` [dpdk-dev] [PATCH v4 14/14] drivers/raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Rosen Xu
2019-04-03 8:46 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 00/14] Add patch set for IPN3KE Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 01/14] drivers/bus/ifpga: add AFU shared data Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 02/14] drivers/bus/ifpga: add function for AFU search by name Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 03/14] drivers/net/ipn3ke: add IPN3KE ethdev PMD driver Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-04 19:38 ` Ferruh Yigit
2019-04-04 19:38 ` Ferruh Yigit
2019-04-08 7:29 ` Xu, Rosen
2019-04-08 7:29 ` Xu, Rosen
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 04/14] drivers/net/ipn3ke: add IPN3KE representor of " Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-04 19:02 ` Ferruh Yigit
2019-04-04 19:02 ` Ferruh Yigit
2019-04-08 7:40 ` Xu, Rosen
2019-04-08 7:40 ` Xu, Rosen
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 05/14] drivers/net/ipn3ke: add IPN3KE TM " Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 06/14] drivers/net/ipn3ke: add IPN3KE Flow " Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 07/14] raw/ifpga/base: clean up code for ifpga share code Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 08/14] raw/ifpga/base: store private features in FME and Port list Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 09/14] raw/ifpga/base: add SPI and MAX10 device driver Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 10/14] raw/ifpga/base: add I2C and at24 EEPROM driver Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 11/14] raw/ifpga/base: add eth group driver Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 12/14] raw/ifpga/base: add version description on README Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 13/14] raw/ifpga/base: using prefix name "ifpga_" for feature and feature_ops data struct Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-03 11:47 ` [dpdk-dev] [PATCH v5 14/14] drivers/raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Rosen Xu
2019-04-03 11:47 ` Rosen Xu
2019-04-04 18:37 ` [dpdk-dev] [PATCH v5 00/14] Add patch set for IPN3KE Ferruh Yigit
2019-04-04 18:37 ` Ferruh Yigit
2019-04-08 7:19 ` Xu, Rosen
2019-04-08 7:19 ` Xu, Rosen
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 " Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 01/14] bus/ifpga: add AFU shared data Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 02/14] bus/ifpga: add function for AFU search by name Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 03/14] net/ipn3ke: add IPN3KE ethdev PMD driver Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 15:18 ` Stephen Hemminger
2019-04-09 15:18 ` Stephen Hemminger
2019-04-10 6:03 ` Xu, Rosen
2019-04-10 6:03 ` Xu, Rosen
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 04/14] net/ipn3ke: add IPN3KE representor of " Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 05/14] net/ipn3ke: add IPN3KE TM " Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 06/14] net/ipn3ke: add IPN3KE Flow " Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 07/14] raw/ifpga_rawdev: clean up code for ifpga share code Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 08/14] raw/ifpga_rawdev: store private features in FME and Port Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 09/14] raw/ifpga_rawdev: add SPI and MAX10 device driver Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 10/14] raw/ifpga_rawdev: add I2C and at24 EEPROM driver Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 11/14] raw/ifpga_rawdev: add eth group driver Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 12/14] raw/ifpga_rawdev: add version description on README Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 13/14] raw/ifpga_rawdev: using prefix name for feature and its ops Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-09 12:41 ` [dpdk-dev] [PATCH v6 14/14] raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Rosen Xu
2019-04-09 12:41 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 00/14] Add patch set for IPN3KE Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 01/14] bus/ifpga: add AFU shared data Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 02/14] bus/ifpga: add function for AFU search by name Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 03/14] net/ipn3ke: add IPN3KE ethdev PMD driver Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 04/14] net/ipn3ke: add IPN3KE representor of " Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 05/14] net/ipn3ke: add IPN3KE TM " Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 06/14] net/ipn3ke: add IPN3KE Flow " Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 07/14] raw/ifpga_rawdev: clean up code for ifpga share code Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 08/14] raw/ifpga_rawdev: store private features in FME and Port Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 09/14] raw/ifpga_rawdev: add SPI and MAX10 device driver Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 10/14] raw/ifpga_rawdev: add I2C and at24 EEPROM driver Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 11/14] raw/ifpga_rawdev: add eth group driver Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 12/14] raw/ifpga_rawdev: add version description on README Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 13/14] raw/ifpga_rawdev: using prefix name for feature and its ops Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-10 6:27 ` [dpdk-dev] [PATCH v7 14/14] raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Rosen Xu
2019-04-10 6:27 ` Rosen Xu
2019-04-12 16:52 ` [dpdk-dev] [PATCH v7 00/14] Add patch set for IPN3KE Ferruh Yigit
2019-04-12 16:52 ` Ferruh Yigit
2019-04-15 5:07 ` Xu, Rosen
2019-04-15 5:07 ` Xu, Rosen
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 " Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 01/14] bus/ifpga: add AFU shared data Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 02/14] bus/ifpga: add function for AFU search by name Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 12:28 ` Ferruh Yigit
2019-04-15 12:28 ` Ferruh Yigit
2019-04-15 12:37 ` Xu, Rosen
2019-04-15 12:37 ` Xu, Rosen
2019-04-16 2:50 ` Xu, Rosen
2019-04-16 2:50 ` Xu, Rosen
2019-04-16 8:09 ` Thomas Monjalon
2019-04-16 8:09 ` Thomas Monjalon
2019-04-16 8:15 ` Xu, Rosen
2019-04-16 8:15 ` Xu, Rosen
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 03/14] net/ipn3ke: add IPN3KE ethdev PMD driver Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 12:28 ` Ferruh Yigit
2019-04-15 12:28 ` Ferruh Yigit
2019-04-15 12:43 ` Xu, Rosen
2019-04-15 12:43 ` Xu, Rosen
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 04/14] net/ipn3ke: add IPN3KE representor of " Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 05/14] net/ipn3ke: add IPN3KE TM " Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 06/14] net/ipn3ke: add IPN3KE Flow " Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 07/14] raw/ifpga_rawdev: clean up code for ifpga share code Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 08/14] raw/ifpga_rawdev: store private features in FME and Port Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 09/14] raw/ifpga_rawdev: add SPI and MAX10 device driver Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 5:06 ` [dpdk-dev] [PATCH v8 10/14] raw/ifpga_rawdev: add I2C and at24 EEPROM driver Rosen Xu
2019-04-15 5:06 ` Rosen Xu
2019-04-15 5:07 ` [dpdk-dev] [PATCH v8 11/14] raw/ifpga_rawdev: add eth group driver Rosen Xu
2019-04-15 5:07 ` Rosen Xu
2019-04-15 5:07 ` [dpdk-dev] [PATCH v8 12/14] raw/ifpga_rawdev: add version description on README Rosen Xu
2019-04-15 5:07 ` Rosen Xu
2019-04-15 5:07 ` [dpdk-dev] [PATCH v8 13/14] raw/ifpga_rawdev: using prefix name for feature and its ops Rosen Xu
2019-04-15 5:07 ` Rosen Xu
2019-04-15 5:07 ` [dpdk-dev] [PATCH v8 14/14] raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Rosen Xu
2019-04-15 5:07 ` Rosen Xu
2019-04-15 12:28 ` Ferruh Yigit
2019-04-15 12:28 ` Ferruh Yigit
2019-04-15 12:55 ` Xu, Rosen
2019-04-15 12:55 ` Xu, Rosen
2019-04-15 12:28 ` [dpdk-dev] [PATCH v8 00/14] Add patch set for IPN3KE Ferruh Yigit
2019-04-15 12:28 ` Ferruh Yigit
2019-04-15 12:34 ` Xu, Rosen
2019-04-15 12:34 ` Xu, Rosen
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 " Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 01/14] bus/ifpga: add AFU shared data Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 02/14] bus/ifpga: add function for AFU search by name Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 8:48 ` Ferruh Yigit
2019-04-16 8:48 ` Ferruh Yigit
2019-04-16 11:18 ` Xu, Rosen
2019-04-16 11:18 ` Xu, Rosen
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 03/14] net/ipn3ke: add IPN3KE ethdev PMD driver Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2023-03-21 20:19 ` Ferruh Yigit
2023-03-22 1:37 ` Xu, Rosen
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 04/14] net/ipn3ke: add IPN3KE representor of " Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 05/14] net/ipn3ke: add IPN3KE TM " Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 06/14] net/ipn3ke: add IPN3KE Flow " Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 07/14] raw/ifpga_rawdev: clean up code for ifpga share code Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 08/14] raw/ifpga_rawdev: store private features in FME and Port Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 09/14] raw/ifpga_rawdev: add SPI and MAX10 device driver Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 10/14] raw/ifpga_rawdev: add I2C and at24 EEPROM driver Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 11/14] raw/ifpga_rawdev: add eth group driver Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 12/14] raw/ifpga_rawdev: add version description on README Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 13/14] raw/ifpga_rawdev: using prefix name for feature and its ops Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 3:17 ` [dpdk-dev] [PATCH v9 14/14] raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Rosen Xu
2019-04-16 3:17 ` Rosen Xu
2019-04-16 9:00 ` [dpdk-dev] [PATCH v9 00/14] Add patch set for IPN3KE Ferruh Yigit
2019-04-16 9:00 ` Ferruh Yigit
2019-04-16 9:05 ` Ferruh Yigit
2019-04-16 9:05 ` Ferruh Yigit
2019-04-16 9:06 ` Xu, Rosen
2019-04-16 9:06 ` Xu, Rosen
2019-04-16 9:06 ` Xu, Rosen
2019-04-16 9:06 ` Xu, Rosen
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=BA6F50564D52C24884F9840E07E32DEC4DFE48EF@CDSMSX104.ccr.corp.intel.com \
--to=tianfei.zhang@intel.com \
--cc=andy.pei@intel.com \
--cc=dan.wei@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=haiyue.wang@intel.com \
--cc=qiming.yang@intel.com \
--cc=rosen.xu@intel.com \
--cc=santos.chen@intel.com \
--cc=zhang.zhang@intel.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).