From 588ae1affb42845306c66c0fb0b3a1fb541f7f85 Mon Sep 17 00:00:00 2001 From: Intel Date: Fri, 8 Nov 2013 03:00:00 +0100 Subject: [PATCH] app/testpmd: add MAC control forward Signed-off-by: Intel --- app/test-pmd/cmdline.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 4cd01275a1..435d6e4b50 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, }, -- 2.20.1