[dpdk-dev] app/testpmd: fix build without ixgbe

Message ID 20170615095446.2187-1-thomas@monjalon.net (mailing list archive)
State Accepted, archived
Headers

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation fail Compilation issues

Commit Message

Thomas Monjalon June 15, 2017, 9:54 a.m. UTC
  When ixgbe bypass is not explictly disabled while ixgbe is disabled:
app/test-pmd/testpmd.c:304:27: error:
	‘RTE_PMD_IXGBE_BYPASS_TMT_OFF’ undeclared here

The ixgbe bypass feature is meaningful only if ixgbe is enabled.
So we need to check both.

A best fix will be to enable bypass always and remove this option.

Fixes: e261265e42a1 ("ethdev: move bypass functions to ixgbe PMD")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 app/test-pmd/cmdline.c | 8 ++++----
 app/test-pmd/testpmd.c | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)
  

Comments

Radu Nicolau June 15, 2017, 11:37 a.m. UTC | #1
Looks ok to me, but why would one enable IXGBE_BYPASS without enabling 
IXGBE?


On 6/15/2017 10:54 AM, Thomas Monjalon wrote:
> When ixgbe bypass is not explictly disabled while ixgbe is disabled:
> app/test-pmd/testpmd.c:304:27: error:
> 	‘RTE_PMD_IXGBE_BYPASS_TMT_OFF’ undeclared here
>
> The ixgbe bypass feature is meaningful only if ixgbe is enabled.
> So we need to check both.
>
> A best fix will be to enable bypass always and remove this option.
>
> Fixes: e261265e42a1 ("ethdev: move bypass functions to ixgbe PMD")
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>   app/test-pmd/cmdline.c | 8 ++++----
>   app/test-pmd/testpmd.c | 4 ++--
>   2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index b84c1ab40..7f5373a7e 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -3928,7 +3928,7 @@ cmd_set_bypass_mode_parsed(void *parsed_result,
>   	portid_t port_id = res->port_id;
>   	int32_t rc = -EINVAL;
>   
> -#ifdef RTE_LIBRTE_IXGBE_BYPASS
> +#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
>   	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
>   
>   	if (!strcmp(res->value, "bypass"))
> @@ -3996,7 +3996,7 @@ cmd_set_bypass_event_parsed(void *parsed_result,
>   	struct cmd_set_bypass_event_result *res = parsed_result;
>   	portid_t port_id = res->port_id;
>   
> -#ifdef RTE_LIBRTE_IXGBE_BYPASS
> +#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
>   	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
>   	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
>   
> @@ -4101,7 +4101,7 @@ cmd_set_bypass_timeout_parsed(void *parsed_result,
>   {
>   	__rte_unused struct cmd_set_bypass_timeout_result *res = parsed_result;
>   
> -#ifdef RTE_LIBRTE_IXGBE_BYPASS
> +#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
>   	if (!strcmp(res->value, "1.5"))
>   		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
>   	else if (!strcmp(res->value, "2"))
> @@ -4164,7 +4164,7 @@ cmd_show_bypass_config_parsed(void *parsed_result,
>   	struct cmd_show_bypass_config_result *res = parsed_result;
>   	portid_t port_id = res->port_id;
>   	int rc = -EINVAL;
> -#ifdef RTE_LIBRTE_IXGBE_BYPASS
> +#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
>   	uint32_t event_mode;
>   	uint32_t bypass_mode;
>   	uint32_t timeout = bypass_timeout;
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index d32cbb96d..b29328a69 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -299,7 +299,7 @@ uint32_t event_print_mask = (UINT32_C(1) << RTE_ETH_EVENT_UNKNOWN) |
>    * NIC bypass mode configuration options.
>    */
>   
> -#ifdef RTE_LIBRTE_IXGBE_BYPASS
> +#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
>   /* The NIC bypass watchdog timeout. */
>   uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
>   #endif
> @@ -2015,7 +2015,7 @@ init_port_config(void)
>   		rte_eth_macaddr_get(pid, &port->eth_addr);
>   
>   		map_port_queue_stats_mapping_registers(pid, port);
> -#ifdef RTE_LIBRTE_IXGBE_BYPASS
> +#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
>   		rte_pmd_ixgbe_bypass_init(pid);
>   #endif
>
  
Thomas Monjalon June 15, 2017, 12:48 p.m. UTC | #2
15/06/2017 13:37, Radu Nicolau:
> Looks ok to me, but why would one enable IXGBE_BYPASS without enabling 
> IXGBE?
[...]
> > -#ifdef RTE_LIBRTE_IXGBE_BYPASS
> > +#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS

RTE_LIBRTE_IXGBE_BYPASS should not be enabled if RTE_LIBRTE_IXGBE_PMD is disabled.
But it can happen in some scripted configuration like test-build.sh does.

Anyway we should drop the RTE_LIBRTE_IXGBE_BYPASS configuration option
and enables it always.
  
Wenzhuo Lu June 16, 2017, 1:29 a.m. UTC | #3
Hi Radu,

> -----Original Message-----

> From: Nicolau, Radu

> Sent: Thursday, June 15, 2017 7:37 PM

> To: Thomas Monjalon

> Cc: Lu, Wenzhuo; dev@dpdk.org

> Subject: Re: [PATCH] app/testpmd: fix build without ixgbe

> 

> Looks ok to me, but why would one enable IXGBE_BYPASS without enabling

> IXGBE?

Although the scenario doesn't make sense, I think it's better to add more check to avoid the users making any mistake.

> 

> 

> On 6/15/2017 10:54 AM, Thomas Monjalon wrote:

> > When ixgbe bypass is not explictly disabled while ixgbe is disabled:

> > app/test-pmd/testpmd.c:304:27: error:

> > 	‘RTE_PMD_IXGBE_BYPASS_TMT_OFF’ undeclared here

> >

> > The ixgbe bypass feature is meaningful only if ixgbe is enabled.

> > So we need to check both.

> >

> > A best fix will be to enable bypass always and remove this option.

> >

> > Fixes: e261265e42a1 ("ethdev: move bypass functions to ixgbe PMD")

> >

> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>

> > ---

> >   app/test-pmd/cmdline.c | 8 ++++----

> >   app/test-pmd/testpmd.c | 4 ++--

> >   2 files changed, 6 insertions(+), 6 deletions(-)

> >

> > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c

> > index b84c1ab40..7f5373a7e 100644

> > --- a/app/test-pmd/cmdline.c

> > +++ b/app/test-pmd/cmdline.c

> > @@ -3928,7 +3928,7 @@ cmd_set_bypass_mode_parsed(void

> *parsed_result,

> >   	portid_t port_id = res->port_id;

> >   	int32_t rc = -EINVAL;

> >

> > -#ifdef RTE_LIBRTE_IXGBE_BYPASS

> > +#if defined RTE_LIBRTE_IXGBE_PMD && defined

> RTE_LIBRTE_IXGBE_BYPASS

> >   	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;

> >

> >   	if (!strcmp(res->value, "bypass"))

> > @@ -3996,7 +3996,7 @@ cmd_set_bypass_event_parsed(void

> *parsed_result,

> >   	struct cmd_set_bypass_event_result *res = parsed_result;

> >   	portid_t port_id = res->port_id;

> >

> > -#ifdef RTE_LIBRTE_IXGBE_BYPASS

> > +#if defined RTE_LIBRTE_IXGBE_PMD && defined

> RTE_LIBRTE_IXGBE_BYPASS

> >   	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;

> >   	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;

> >

> > @@ -4101,7 +4101,7 @@ cmd_set_bypass_timeout_parsed(void

> *parsed_result,

> >   {

> >   	__rte_unused struct cmd_set_bypass_timeout_result *res =

> parsed_result;

> >

> > -#ifdef RTE_LIBRTE_IXGBE_BYPASS

> > +#if defined RTE_LIBRTE_IXGBE_PMD && defined

> RTE_LIBRTE_IXGBE_BYPASS

> >   	if (!strcmp(res->value, "1.5"))

> >   		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;

> >   	else if (!strcmp(res->value, "2"))

> > @@ -4164,7 +4164,7 @@ cmd_show_bypass_config_parsed(void

> *parsed_result,

> >   	struct cmd_show_bypass_config_result *res = parsed_result;

> >   	portid_t port_id = res->port_id;

> >   	int rc = -EINVAL;

> > -#ifdef RTE_LIBRTE_IXGBE_BYPASS

> > +#if defined RTE_LIBRTE_IXGBE_PMD && defined

> RTE_LIBRTE_IXGBE_BYPASS

> >   	uint32_t event_mode;

> >   	uint32_t bypass_mode;

> >   	uint32_t timeout = bypass_timeout;

> > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c

> > index d32cbb96d..b29328a69 100644

> > --- a/app/test-pmd/testpmd.c

> > +++ b/app/test-pmd/testpmd.c

> > @@ -299,7 +299,7 @@ uint32_t event_print_mask = (UINT32_C(1) <<

> RTE_ETH_EVENT_UNKNOWN) |

> >    * NIC bypass mode configuration options.

> >    */

> >

> > -#ifdef RTE_LIBRTE_IXGBE_BYPASS

> > +#if defined RTE_LIBRTE_IXGBE_PMD && defined

> RTE_LIBRTE_IXGBE_BYPASS

> >   /* The NIC bypass watchdog timeout. */

> >   uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;

> >   #endif

> > @@ -2015,7 +2015,7 @@ init_port_config(void)

> >   		rte_eth_macaddr_get(pid, &port->eth_addr);

> >

> >   		map_port_queue_stats_mapping_registers(pid, port);

> > -#ifdef RTE_LIBRTE_IXGBE_BYPASS

> > +#if defined RTE_LIBRTE_IXGBE_PMD && defined

> RTE_LIBRTE_IXGBE_BYPASS

> >   		rte_pmd_ixgbe_bypass_init(pid);

> >   #endif

> >
  
Thomas Monjalon June 16, 2017, 2:09 p.m. UTC | #4
16/06/2017 03:29, Lu, Wenzhuo:
> From: Nicolau, Radu
> > 
> > Looks ok to me, but why would one enable IXGBE_BYPASS without enabling
> > IXGBE?
> 
> Although the scenario doesn't make sense, I think it's better to add more check to avoid the users making any mistake.

Applied
  

Patch

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index b84c1ab40..7f5373a7e 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -3928,7 +3928,7 @@  cmd_set_bypass_mode_parsed(void *parsed_result,
 	portid_t port_id = res->port_id;
 	int32_t rc = -EINVAL;
 
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
+#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
 	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
 
 	if (!strcmp(res->value, "bypass"))
@@ -3996,7 +3996,7 @@  cmd_set_bypass_event_parsed(void *parsed_result,
 	struct cmd_set_bypass_event_result *res = parsed_result;
 	portid_t port_id = res->port_id;
 
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
+#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
 	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
 	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
 
@@ -4101,7 +4101,7 @@  cmd_set_bypass_timeout_parsed(void *parsed_result,
 {
 	__rte_unused struct cmd_set_bypass_timeout_result *res = parsed_result;
 
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
+#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
 	if (!strcmp(res->value, "1.5"))
 		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
 	else if (!strcmp(res->value, "2"))
@@ -4164,7 +4164,7 @@  cmd_show_bypass_config_parsed(void *parsed_result,
 	struct cmd_show_bypass_config_result *res = parsed_result;
 	portid_t port_id = res->port_id;
 	int rc = -EINVAL;
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
+#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
 	uint32_t event_mode;
 	uint32_t bypass_mode;
 	uint32_t timeout = bypass_timeout;
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index d32cbb96d..b29328a69 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -299,7 +299,7 @@  uint32_t event_print_mask = (UINT32_C(1) << RTE_ETH_EVENT_UNKNOWN) |
  * NIC bypass mode configuration options.
  */
 
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
+#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
 /* The NIC bypass watchdog timeout. */
 uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
 #endif
@@ -2015,7 +2015,7 @@  init_port_config(void)
 		rte_eth_macaddr_get(pid, &port->eth_addr);
 
 		map_port_queue_stats_mapping_registers(pid, port);
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
+#if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
 		rte_pmd_ixgbe_bypass_init(pid);
 #endif