app/testpmd: request link status interrupt
For drivers supporting the LSC event, enable it. This allows to test LSC event support. Add the --no-lsc-interrupt parameter to explicitly disable the link status change interrupt. Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
This commit is contained in:
parent
76ad4a2d82
commit
8ea656f8c3
@ -200,6 +200,7 @@ usage(char* progname)
|
||||
" or total packet length.\n");
|
||||
printf(" --disable-link-check: disable check on link status when "
|
||||
"starting/stopping ports.\n");
|
||||
printf(" --no-lsc-interrupt: disable link status change interrupt.\n");
|
||||
}
|
||||
|
||||
#ifdef RTE_LIBRTE_CMDLINE
|
||||
@ -568,6 +569,7 @@ launch_args_parse(int argc, char** argv)
|
||||
{ "no-flush-rx", 0, 0, 0 },
|
||||
{ "txpkts", 1, 0, 0 },
|
||||
{ "disable-link-check", 0, 0, 0 },
|
||||
{ "no-lsc-interrupt", 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
};
|
||||
|
||||
@ -998,6 +1000,8 @@ launch_args_parse(int argc, char** argv)
|
||||
no_flush_rx = 1;
|
||||
if (!strcmp(lgopts[opt_idx].name, "disable-link-check"))
|
||||
no_link_check = 1;
|
||||
if (!strcmp(lgopts[opt_idx].name, "no-lsc-interrupt"))
|
||||
lsc_interrupt = 0;
|
||||
|
||||
break;
|
||||
case 'h':
|
||||
|
@ -270,6 +270,11 @@ uint8_t no_flush_rx = 0; /* flush by default */
|
||||
*/
|
||||
uint8_t no_link_check = 0; /* check by default */
|
||||
|
||||
/*
|
||||
* Enable link status change notification
|
||||
*/
|
||||
uint8_t lsc_interrupt = 1; /* enabled by default */
|
||||
|
||||
/*
|
||||
* NIC bypass mode configuration options.
|
||||
*/
|
||||
@ -1746,6 +1751,9 @@ check_all_ports_link_status(uint32_t port_mask)
|
||||
if (all_ports_up == 1 || count == (MAX_CHECK_TIME - 1)) {
|
||||
print_flag = 1;
|
||||
}
|
||||
|
||||
if (lsc_interrupt)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1929,6 +1937,11 @@ init_port_config(void)
|
||||
#ifdef RTE_NIC_BYPASS
|
||||
rte_eth_dev_bypass_init(pid);
|
||||
#endif
|
||||
|
||||
if (lsc_interrupt &&
|
||||
(rte_eth_devices[pid].data->dev_flags &
|
||||
RTE_ETH_DEV_INTR_LSC))
|
||||
port->dev_conf.intr_conf.lsc = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -305,6 +305,7 @@ extern uint8_t no_flush_rx; /**<set by "--no-flush-rx" parameter */
|
||||
extern uint8_t mp_anon; /**< set by "--mp-anon" parameter */
|
||||
extern uint8_t no_link_check; /**<set by "--disable-link-check" parameter */
|
||||
extern volatile int test_done; /* stop packet forwarding when set to 1. */
|
||||
extern uint8_t lsc_interrupt; /**< disabled by "--no-lsc-interrupt" parameter */
|
||||
|
||||
#ifdef RTE_NIC_BYPASS
|
||||
extern uint32_t bypass_timeout; /**< Store the NIC bypass watchdog timeout */
|
||||
|
Loading…
Reference in New Issue
Block a user