Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions cangen.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ static void print_usage(char *prg)
fprintf(stderr, " -X (generate CAN XL CAN frames)\n");
fprintf(stderr, " -R (generate RTR frames)\n");
fprintf(stderr, " -8 (allow DLC values greater then 8 for Classic CAN frames)\n");
fprintf(stderr, " -m (mix -e -f -b -E -R -X frames)\n");
fprintf(stderr, " -m (mix -e -R frames and -f -b -E if FD capable and -X if XL capable)\n");
fprintf(stderr, " -I <mode> (CAN ID generation mode - see below)\n");
fprintf(stderr, " -L <mode> (CAN data length code (dlc) generation mode - see below)\n");
fprintf(stderr, " -D <mode> (CAN data (payload) generation mode - see below)\n");
Expand Down Expand Up @@ -574,7 +574,6 @@ int main(int argc, char **argv)

case 'm':
mix = 1;
canfd = 1; /* to switch the socket into CAN FD mode */
view |= CANLIB_VIEW_INDENT_SFF;
break;

Expand Down Expand Up @@ -777,7 +776,7 @@ int main(int argc, char **argv)
&loopback, sizeof(loopback));
}

if (canfd || canxl) {
if (mix || canfd || canxl) {

/* check if the frame fits into the CAN netdevice */
if (ioctl(s, SIOCGIFMTU, &ifr) < 0) {
Expand Down Expand Up @@ -1084,10 +1083,13 @@ int main(int argc, char **argv)
if (mix) {
i = random();
extended = i & 1;
canfd = i & 2;
if (canfd) {
brs = i & 4;
esi = i & 8;
/* generate CAN FD traffic if the interface is capable */
if (ifr.ifr_mtu >= (int)CANFD_MTU) {
canfd = i & 2;
if (canfd) {
brs = i & 4;
esi = i & 8;
}
}
/* generate CAN XL traffic if the interface is capable */
if (ifr.ifr_mtu >= (int)CANXL_MIN_MTU)
Expand Down