Skip to content

Commit

Permalink
tc: Improve logging of mismatched actions.
Browse files Browse the repository at this point in the history
Currently we log the 980-ish byte long tc_action structure as a
single long hex string.  That is very hard to read and hard to
spot the difference between two.  And most of the fields are zero.

Use the sparse hex dump instead as we do for keys already.

Ex.:

  Action 1 mismatch:
   - Expected Action:
  00000000  f0 3c 00 00 01 00 00 00-00 00 00 00 00 00 00 00
  000003d0  00 00 00 00 ff ff ff ff-
   - Received Action:
  00000000  f0 3c 00 00 01 01 00 00-00 00 00 00 00 00 00 00
  000003d0  00 00 00 00 ff ff ff ff-

Without the change, each action would be a 1900+ characters
long string of mostly zeroes.

Acked-by: Simon Horman <[email protected]>
Acked-by: Eelco Chaudron <[email protected]>
Signed-off-by: Ilya Maximets <[email protected]>
  • Loading branch information
igsilya committed Oct 20, 2023
1 parent 650c21d commit a19940b
Showing 1 changed file with 12 additions and 13 deletions.
25 changes: 12 additions & 13 deletions lib/tc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3731,15 +3731,13 @@ log_tc_flower_match(const char *msg,

ds_put_cstr(&s, "\nExpected Actions:\n");
for (i = 0, action = a->actions; i < a->action_count; i++, action++) {
ds_put_cstr(&s, " - ");
ds_put_hex(&s, action, sizeof *action);
ds_put_cstr(&s, "\n");
ds_put_format(&s, " - %d -\n", i);
ds_put_sparse_hex_dump(&s, action, sizeof *action, 0, false);
}
ds_put_cstr(&s, "Received Actions:\n");
ds_put_cstr(&s, "\nReceived Actions:\n");
for (i = 0, action = b->actions; i < b->action_count; i++, action++) {
ds_put_cstr(&s, " - ");
ds_put_hex(&s, action, sizeof *action);
ds_put_cstr(&s, "\n");
ds_put_format(&s, " - %d -\n", i);
ds_put_sparse_hex_dump(&s, action, sizeof *action, 0, false);
}
} else {
/* Only dump the delta in actions. */
Expand All @@ -3748,12 +3746,13 @@ log_tc_flower_match(const char *msg,

for (int i = 0; i < a->action_count; i++, action_a++, action_b++) {
if (memcmp(action_a, action_b, sizeof *action_a)) {
ds_put_format(&s,
"\nAction %d mismatch:\n - Expected Action: ",
i);
ds_put_hex(&s, action_a, sizeof *action_a);
ds_put_cstr(&s, "\n - Received Action: ");
ds_put_hex(&s, action_b, sizeof *action_b);
ds_put_format(&s, "\nAction %d mismatch:\n"
" - Expected Action:\n", i);
ds_put_sparse_hex_dump(&s, action_a, sizeof *action_a,
0, false);
ds_put_cstr(&s, " - Received Action:\n");
ds_put_sparse_hex_dump(&s, action_b, sizeof *action_b,
0, false);
}
}
}
Expand Down

0 comments on commit a19940b

Please sign in to comment.