Skip to content

Commit 0f2b17b

Browse files
henrikbrixandersenmbolivar-nordic
authored andcommitted
drivers: can: shell: add support for CAN-FD frame format filters
Add shell support for adding filters for CAN-FD format frames. Signed-off-by: Henrik Brix Andersen <[email protected]>
1 parent aced3bb commit 0f2b17b

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

drivers/can/can_shell.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,9 @@ static int cmd_can_filter_add(const struct shell *sh, size_t argc, char **argv)
652652
filter.flags |= CAN_FILTER_IDE;
653653
max_id = CAN_MAX_EXT_ID;
654654
argidx++;
655+
} else if (strcmp(argv[argidx], "-f") == 0) {
656+
filter.flags |= CAN_FILTER_FDF;
657+
argidx++;
655658
} else if (strcmp(argv[argidx], "-r") == 0) {
656659
filter.flags |= CAN_FILTER_RTR;
657660
argidx++;
@@ -715,13 +718,14 @@ static int cmd_can_filter_add(const struct shell *sh, size_t argc, char **argv)
715718
}
716719

717720
shell_print(sh, "adding filter with %s (%d-bit) CAN ID 0x%0*x, "
718-
"CAN ID mask 0x%0*x, data frames %d, RTR frames %d",
721+
"CAN ID mask 0x%0*x, data frames %d, RTR frames %d, CAN-FD frames %d",
719722
(filter.flags & CAN_FILTER_IDE) != 0 ? "extended" : "standard",
720723
(filter.flags & CAN_FILTER_IDE) != 0 ? 29 : 11,
721724
(filter.flags & CAN_FILTER_IDE) != 0 ? 8 : 3, filter.id,
722725
(filter.flags & CAN_FILTER_IDE) != 0 ? 8 : 3, filter.mask,
723726
(filter.flags & CAN_FILTER_DATA) != 0 ? 1 : 0,
724-
(filter.flags & CAN_FILTER_RTR) != 0 ? 1 : 0);
727+
(filter.flags & CAN_FILTER_RTR) != 0 ? 1 : 0,
728+
(filter.flags & CAN_FILTER_FDF) != 0 ? 1 : 0);
725729

726730
err = can_add_rx_filter_msgq(dev, &can_shell_rx_msgq, &filter);
727731
if (err < 0) {
@@ -839,11 +843,12 @@ SHELL_DYNAMIC_CMD_CREATE(dsub_can_device_name_mode, cmd_can_device_name_mode);
839843
SHELL_STATIC_SUBCMD_SET_CREATE(sub_can_filter_cmds,
840844
SHELL_CMD_ARG(add, &dsub_can_device_name,
841845
"Add rx filter\n"
842-
"Usage: can filter add <device> [-e] [-r] [-R] <CAN ID> [CAN ID mask]\n"
846+
"Usage: can filter add <device> [-e] [-f] [-r] [-R] <CAN ID> [CAN ID mask]\n"
843847
"-e use extended (29-bit) CAN ID/CAN ID mask\n"
848+
"-f match CAN-FD format frames\n"
844849
"-r also match Remote Transmission Request (RTR) frames\n"
845850
"-R only match Remote Transmission Request (RTR) frames",
846-
cmd_can_filter_add, 3, 4),
851+
cmd_can_filter_add, 3, 5),
847852
SHELL_CMD_ARG(remove, &dsub_can_device_name,
848853
"Remove rx filter\n"
849854
"Usage: can filter remove <device> <filter_id>",

0 commit comments

Comments
 (0)