mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
CMD: Fix parse_lag_hash()
This commit is contained in:
+5
-7
@@ -400,18 +400,15 @@ err:
|
|||||||
|
|
||||||
void parse_lag_hash(void)
|
void parse_lag_hash(void)
|
||||||
{
|
{
|
||||||
__xdata uint8_t hash = 0;
|
// Parse group, expect only one number 0-9.
|
||||||
|
if (cmd_words_len < 3 || atoi_byte(cmd_words_b[1]) != 1)
|
||||||
if (cmd_words_len < 2)
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
if (cmd_parse_port_separator(cmd_buffer[cmd_words_b[1]]) == 0)
|
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
uint8_t group = atoi_results_u8 - 1;
|
uint8_t group = atoi_results_u8 - 1;
|
||||||
if (group > 3)
|
if (group > 3)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
uint8_t hash = 0;
|
||||||
uint8_t w = 2;
|
uint8_t w = 2;
|
||||||
while (w < cmd_words_len) {
|
while (w < cmd_words_len) {
|
||||||
if (cmd_compare(w, "spa"))
|
if (cmd_compare(w, "spa"))
|
||||||
@@ -432,13 +429,14 @@ void parse_lag_hash(void)
|
|||||||
print_string("Error: invalid hash type:");
|
print_string("Error: invalid hash type:");
|
||||||
print_string_x(&cmd_buffer[cmd_words_b[w]]);
|
print_string_x(&cmd_buffer[cmd_words_b[w]]);
|
||||||
write_char('\n');
|
write_char('\n');
|
||||||
|
goto err;
|
||||||
}
|
}
|
||||||
w++;
|
w++;
|
||||||
}
|
}
|
||||||
port_lag_hash_set(group, hash);
|
port_lag_hash_set(group, hash);
|
||||||
return;
|
return;
|
||||||
err:
|
err:
|
||||||
print_string("Error: lag hash <1-4> [type]...\n");
|
print_string("Error: laghash <1-4> [smac|dmac|sip|dip|sport|dport]\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user