Skip to content

Commit ed7822c

Browse files
committed
candump: print CAN XL specific flags as extra message infos
The extra message infos BRS and ESI have been printed when enabled with the '-x' option. Since CAN XL has similar flags (SEC and RRS) those flags have been wrongly printed as CAN FD flags. This patch introduces separate flags for the CAN XL frames and prints them when a CAN XL frame is processed. Signed-off-by: Oliver Hartkopp <[email protected]>
1 parent e9ea9d1 commit ed7822c

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

candump.c

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ static const int canfx_on = 1;
113113

114114
#define MAXANI 4
115115
static const char anichar[MAXANI] = { '|', '/', '-', '\\' };
116-
static const char extra_m_info[4][4] = { "- -", "B -", "- E", "B E" };
116+
static const char extra_fd_info[4][4] = { "- -", "B -", "- E", "B E" };
117+
static const char extra_xl_info[4][4] = { "- -", "S -", "- R", "S R" };
117118

118119
extern int optind, opterr, optopt;
119120

@@ -143,7 +144,7 @@ static void print_usage(void)
143144
fprintf(stderr, " -d (monitor dropped CAN frames)\n");
144145
fprintf(stderr, " -e (dump CAN error frames in human-readable format)\n");
145146
fprintf(stderr, " -8 (display raw DLC values in {} for Classical CAN)\n");
146-
fprintf(stderr, " -x (print extra message infos, rx/tx brs esi)\n");
147+
fprintf(stderr, " -x (print extra message infos, rx/tx [brs esi|sec rrs])\n");
147148
fprintf(stderr, " -T <msecs> (terminate after <msecs> if no frames were received)\n");
148149
fprintf(stderr, "\n");
149150
fprintf(stderr, "Up to %d CAN interfaces with optional filter sets can be specified\n", MAXSOCK);
@@ -892,11 +893,16 @@ int main(int argc, char **argv)
892893

893894
if (extra_msg_info) {
894895
if (msg.msg_flags & MSG_DONTROUTE)
895-
alen += sprintf(afrbuf + alen, " TX %s",
896-
extra_m_info[cu.fd.flags & 3]);
896+
alen += sprintf(afrbuf + alen, " TX");
897897
else
898-
alen += sprintf(afrbuf + alen, " RX %s",
899-
extra_m_info[cu.fd.flags & 3]);
898+
alen += sprintf(afrbuf + alen, " RX");
899+
900+
if (cu.xl.flags & CANXL_XLF)
901+
alen += sprintf(afrbuf + alen, " %s",
902+
extra_xl_info[cu.xl.flags & 3]);
903+
else
904+
alen += sprintf(afrbuf + alen, " %s",
905+
extra_fd_info[cu.fd.flags & 3]);
900906
}
901907

902908
alen += sprintf(afrbuf + alen, "%s ", (color == 1) ? col_off : "");

0 commit comments

Comments
 (0)