@@ -652,6 +652,9 @@ static int cmd_can_filter_add(const struct shell *sh, size_t argc, char **argv)
652
652
filter .flags |= CAN_FILTER_IDE ;
653
653
max_id = CAN_MAX_EXT_ID ;
654
654
argidx ++ ;
655
+ } else if (strcmp (argv [argidx ], "-f" ) == 0 ) {
656
+ filter .flags |= CAN_FILTER_FDF ;
657
+ argidx ++ ;
655
658
} else if (strcmp (argv [argidx ], "-r" ) == 0 ) {
656
659
filter .flags |= CAN_FILTER_RTR ;
657
660
argidx ++ ;
@@ -715,13 +718,14 @@ static int cmd_can_filter_add(const struct shell *sh, size_t argc, char **argv)
715
718
}
716
719
717
720
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 " ,
719
722
(filter .flags & CAN_FILTER_IDE ) != 0 ? "extended" : "standard" ,
720
723
(filter .flags & CAN_FILTER_IDE ) != 0 ? 29 : 11 ,
721
724
(filter .flags & CAN_FILTER_IDE ) != 0 ? 8 : 3 , filter .id ,
722
725
(filter .flags & CAN_FILTER_IDE ) != 0 ? 8 : 3 , filter .mask ,
723
726
(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 );
725
729
726
730
err = can_add_rx_filter_msgq (dev , & can_shell_rx_msgq , & filter );
727
731
if (err < 0 ) {
@@ -839,11 +843,12 @@ SHELL_DYNAMIC_CMD_CREATE(dsub_can_device_name_mode, cmd_can_device_name_mode);
839
843
SHELL_STATIC_SUBCMD_SET_CREATE (sub_can_filter_cmds ,
840
844
SHELL_CMD_ARG (add , & dsub_can_device_name ,
841
845
"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"
843
847
"-e use extended (29-bit) CAN ID/CAN ID mask\n"
848
+ "-f match CAN-FD format frames\n"
844
849
"-r also match Remote Transmission Request (RTR) frames\n"
845
850
"-R only match Remote Transmission Request (RTR) frames" ,
846
- cmd_can_filter_add , 3 , 4 ),
851
+ cmd_can_filter_add , 3 , 5 ),
847
852
SHELL_CMD_ARG (remove , & dsub_can_device_name ,
848
853
"Remove rx filter\n"
849
854
"Usage: can filter remove <device> <filter_id>" ,
0 commit comments