summaryrefslogtreecommitdiff
path: root/app/test-pmd
diff options
context:
space:
mode:
authorIntel <intel.com>2013-11-08 03:00:00 +0100
committerThomas Monjalon <thomas.monjalon@6wind.com>2013-11-24 21:31:36 +0100
commit588ae1affb42845306c66c0fb0b3a1fb541f7f85 (patch)
tree2d5ba000121d5e8933b5be28680d167dbfc56d1b /app/test-pmd
parent7b7e5ba79e085d27533abe69135d3b9ac5091cf8 (diff)
downloaddpdk-588ae1affb42845306c66c0fb0b3a1fb541f7f85.zip
dpdk-588ae1affb42845306c66c0fb0b3a1fb541f7f85.tar.gz
dpdk-588ae1affb42845306c66c0fb0b3a1fb541f7f85.tar.xz
app/testpmd: add MAC control forward
Signed-off-by: Intel
Diffstat (limited to 'app/test-pmd')
-rw-r--r--app/test-pmd/cmdline.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 4cd0127..435d6e4 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -312,7 +312,8 @@ static void cmd_help_long_parsed(void *parsed_result,
" Set the allmulti mode on port_id, or all.\n\n"
"set flow_ctrl rx (on|off) tx (on|off) (high_water)"
- " (low_water) (pause_time) (send_xon) (port_id)\n"
+ " (low_water) (pause_time) (send_xon) mac_ctrl_frame_fwd"
+ " (on|off) (port_id)\n"
" Set the link flow control parameter on a port.\n\n"
"set pfc_ctrl rx (on|off) tx (on|off) (high_water)"
@@ -3361,6 +3362,8 @@ struct cmd_link_flow_ctrl_set_result {
cmdline_fixed_string_t rx_lfc_mode;
cmdline_fixed_string_t tx;
cmdline_fixed_string_t tx_lfc_mode;
+ cmdline_fixed_string_t mac_ctrl_frame_fwd;
+ cmdline_fixed_string_t mac_ctrl_frame_fwd_mode;
uint32_t high_water;
uint32_t low_water;
uint16_t pause_time;
@@ -3375,7 +3378,7 @@ cmd_link_flow_ctrl_set_parsed(void *parsed_result,
{
struct cmd_link_flow_ctrl_set_result *res = parsed_result;
struct rte_eth_fc_conf fc_conf;
- int rx_fc_enable, tx_fc_enable;
+ int rx_fc_enable, tx_fc_enable, mac_ctrl_frame_fwd;
int ret;
/*
@@ -3390,12 +3393,14 @@ cmd_link_flow_ctrl_set_parsed(void *parsed_result,
rx_fc_enable = (!strcmp(res->rx_lfc_mode, "on")) ? 1 : 0;
tx_fc_enable = (!strcmp(res->tx_lfc_mode, "on")) ? 1 : 0;
+ mac_ctrl_frame_fwd = (!strcmp(res->mac_ctrl_frame_fwd_mode, "on")) ? 1 : 0;
fc_conf.mode = rx_tx_onoff_2_lfc_mode[rx_fc_enable][tx_fc_enable];
fc_conf.high_water = res->high_water;
fc_conf.low_water = res->low_water;
fc_conf.pause_time = res->pause_time;
fc_conf.send_xon = res->send_xon;
+ fc_conf.mac_ctrl_frame_fwd = (uint8_t)mac_ctrl_frame_fwd;
ret = rte_eth_dev_flow_ctrl_set(res->port_id, &fc_conf);
if (ret != 0)
@@ -3432,6 +3437,12 @@ cmdline_parse_token_num_t cmd_lfc_set_pause_time =
cmdline_parse_token_num_t cmd_lfc_set_send_xon =
TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
send_xon, UINT16);
+cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd_mode =
+ TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
+ mac_ctrl_frame_fwd, "mac_ctrl_frame_fwd");
+cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd =
+ TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
+ mac_ctrl_frame_fwd_mode, "on#off");
cmdline_parse_token_num_t cmd_lfc_set_portid =
TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
port_id, UINT8);
@@ -3439,7 +3450,9 @@ cmdline_parse_token_num_t cmd_lfc_set_portid =
cmdline_parse_inst_t cmd_link_flow_control_set = {
.f = cmd_link_flow_ctrl_set_parsed,
.data = NULL,
- .help_str = "Configure the Ethernet link flow control...",
+ .help_str = "Configure the Ethernet flow control: set flow_ctrl rx on|off \
+tx on|off high_water low_water pause_time send_xon mac_ctrl_frame_fwd on|off \
+port_id",
.tokens = {
(void *)&cmd_lfc_set_set,
(void *)&cmd_lfc_set_flow_ctrl,
@@ -3451,6 +3464,8 @@ cmdline_parse_inst_t cmd_link_flow_control_set = {
(void *)&cmd_lfc_set_low_water,
(void *)&cmd_lfc_set_pause_time,
(void *)&cmd_lfc_set_send_xon,
+ (void *)&cmd_lfc_set_mac_ctrl_frame_fwd_mode,
+ (void *)&cmd_lfc_set_mac_ctrl_frame_fwd,
(void *)&cmd_lfc_set_portid,
NULL,
},