[dpdk-dev] [PATCH] ethdev: moved bypass functions to ixgbe pmd

Ferruh Yigit ferruh.yigit at intel.com
Mon May 29 12:38:43 CEST 2017


On 5/26/2017 3:30 PM, Radu Nicolau wrote:
> Moved all bypass functions to ixgbe pmd and removed function
> pointers from the eth_dev_ops struct.

Hi Radu,

Thanks for taking care of this, this was waiting for a while.

> 
> Also cleared some checkpatch errors.
> 
> Signed-off-by: Radu Nicolau <radu.nicolau at intel.com>

<...>

> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index 0afac68..66f9e63 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -523,7 +523,7 @@ static void cmd_help_long_parsed(void *parsed_result,
>  			"   Flush (default) or don't flush RX streams before"
>  			" forwarding. Mainly used with PCAP drivers.\n\n"
>  
> -			#ifdef RTE_NIC_BYPASS
> +#if defined(RTE_NIC_BYPASS) && defined(RTE_LIBRTE_IXGBE_PMD)

What we did for other PMD specific API is:
Enable commands always, do not disable them with compile time options,
this is mostly to prevent different test paths.

And move PMD specific #ifdefs into function, if the PMDs that support
his feature are not enabled return not supported error.

And if function called for port_id that doesn't support the function,
again return not supported.

>  			"set bypass mode (normal|bypass|isolate) (port_id)\n"
>  			"   Set the bypass mode for the lowest port on bypass enabled"
>  			" NIC.\n\n"
> @@ -3904,7 +3904,7 @@ cmdline_parse_inst_t cmd_set_link_check = {
>  	},
>  };
>  

<...>

> diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> index e8fc9a6..2b44a33 100644
> --- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
> +++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> @@ -908,3 +908,110 @@ rte_pmd_ixgbe_set_tc_bw_alloc(uint8_t port,
>  
>  	return 0;
>  }
> +
> +#ifdef RTE_NIC_BYPASS
> +int
> +rte_pmd_ixgbe_bypass_init(uint8_t port_id)
> +{
> +	struct rte_eth_dev *dev;

Should we add a check to all APIs if the port_id is ixgbe port_id? In
case user provided a port_id of different NIC?

> +
> +	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
> +
> +	dev = &rte_eth_devices[port_id];
> +	ixgbe_bypass_init(dev);
> +	return 0;
> +}

<...>



More information about the dev mailing list