[dpdk-dev] [RFC] ethdev: add Forward Error Correction support

Andrew Rybchenko arybchenko at solarflare.com
Sun Aug 30 14:43:26 CEST 2020


On 8/28/20 2:32 PM, Min Hu(Connor) wrote:
> Hi All,
> 
> I would like to add FEC support of ethdev for DPDK.
> I am planning to add this support in v20.11 release.
> 
> This RFC attempts to get feedback from the community.
> 
> In current DPDK version, Forward Error Correction(FEC) is not
> supported.
> 
> Forward error correction (FEC) is a bit error correction mode.
> It adds error correction information to data packets at the
> transmit end, and uses the error correction information to correct
> the bit errors generated during data packet transmission at the
> receive end. This improves signal quality but also brings a delay
> to signals. You can enable or disable this function as required.
> 
> To enable FEC support in DPDK, following items need to work out:
> a) Add three API:
> 	rte_eth_fec_get_capability
> 	rte_eth_fec_get
> 	rte_eth_fec_set
> 
> b) Add new data structure:
> 	enum rte_fec_mode {
> 		ETH_FEC_NOFEC,
> 		ETH_FEC_BASER,
> 		ETH_FEC_RS,
> 		ETH_FEC_AUTO
> 	};
> 
> c) Add items in "struct eth_dev_ops":
> 	struct eth_dev_ops {
> 	+	eth_fec_get_capability_t fec_get_capability;
> 	+	/**< Get Forward Error Correction(FEC) capability; */
> 	+	eth_fec_get_t fec_get;
> 	+	/**< Get Forward Error Correction(FEC) mode; */
> 	+	eth_fec_set_t fec_set;
> 	+	/**< Set Forward Error Correction(FEC) mode; */
>  };
> 
> The details are as follows:

1. New API should be experimental with corresponding markup.

2. FEC capabilities may depend on link speed if I'm not
   mistaken and it should be properly reported in capabilities.

3. Hopefully Ferruh's patches will make the dev_ops structure
   ethdev internal and these additions could be done in 20.11.

4. Format in mode_mask is not defined below.


More information about the dev mailing list