haitomatic commented on PR #17172: URL: https://github.com/apache/nuttx/pull/17172#issuecomment-3405180224
I have a test program called canfd_test which basically send different types of payload size and randomized STD/EXT CAN ID. It support both CANFD and classic CAN test. For this change, we focus on the filter test with only the mask filter supported. On the other side, I use https://www.icpdas.com/en/product/I-7565M-FD to echo back what it receives ``` canfd_test --classic-only --filter-test can0 >>>>> SOCKETCAN TEST <<<<< SocketCAN opened => Classical CAN test ==> Current bitrate 100000 bps ===> Current EXT CAN ID 0x0206dcbd ====> transmit CAN frame with payload size 4, payload 0x49 0x63 0xfe 0x11 ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 4, payload 0x51 0xf2 0xe0 0xac ====> transmit CAN frame with payload size 8, payload 0xd5 0xba 0x51 0xf9 0xef 0xa6 0xa2 0x87 ====> transmit CAN frame with payload size 8, payload 0xd5 0xba 0x51 0xf9 0xef 0xa6 0xa2 0x87 ====> transmit CAN frame with payload size 3, payload 0x5a 0x81 0xc2 ====> transmit CAN frame with payload size 7, payload 0xde 0x49 0x33 0x93 0xc3 0x9f 0x26 ===> Current STD CAN ID 0x0000041a ====> transmit CAN frame with payload size 7, payload 0xde 0x49 0x33 0x93 0xc3 0x9f 0x26 ====> transmit CAN frame with payload size 3, payload 0x62 0x10 0xa4 ====> transmit CAN frame with payload size 7, payload 0xe6 0xd8 0x14 0x2e 0x97 0x98 0xa9 ====> transmit CAN frame with payload size 7, payload 0xe6 0xd8 0x14 0x2e 0x97 0x98 0xa9 ====> transmit CAN frame with payload size 2, payload 0x6a 0xa0 ====> transmit CAN frame with payload size 6, payload 0xee 0x67 0xf6 0xc8 0x6b 0x91 ====> transmit CAN frame with payload size 6, payload 0xee 0x67 0xf6 0xc8 0x6b 0x91 ====> transmit CAN frame with payload size 2, payload 0x72 0x2f ===> Current STD CAN ID 0x00000221 ====> transmit CAN frame with payload size 6, payload 0xf6 0xf7 0xd8 0x62 0x40 0x89 ====> transmit CAN frame with payload size 6, payload 0xf6 0xf7 0xd8 0x62 0x40 0x89 ====> transmit CAN frame with payload size 1, payload 0x7a ====> transmit CAN frame with payload size 5, payload 0xfe 0x86 0xba 0xfd 0x14 ====> transmit CAN frame with payload size 5, payload 0xfe 0x86 0xba 0xfd 0x14 ====> transmit CAN frame with payload size 1, payload 0x82 ====> transmit CAN frame with payload size 5, payload 0x06 0x15 0x9c 0x97 0xe8 ====> transmit CAN frame with payload size 5, payload 0x06 0x15 0x9c 0x97 0xe8 ===> Current STD CAN ID 0x00000232 ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 4, payload 0x0f 0xa4 0x7d 0x31 ====> transmit CAN frame with payload size 4, payload 0x0f 0xa4 0x7d 0x31 ====> transmit CAN frame with payload size 8, payload 0x93 0x6c 0xee 0x7f 0xa7 0xf0 0xfb 0xc4 ====> transmit CAN frame with payload size 8, payload 0x93 0x6c 0xee 0x7f 0xa7 0xf0 0xfb 0xc4 ====> transmit CAN frame with payload size 4, payload 0x17 0x34 0x5f 0xcc ====> transmit CAN frame with payload size 8, payload 0x9b 0xfb 0xd0 0x19 0x7b 0xe8 0x7e 0x43 ====> transmit CAN frame with payload size 8, payload 0x9b 0xfb 0xd0 0x19 0x7b 0xe8 0x7e 0x43 ==> Current bitrate 250000 bps ===> Current EXT CAN ID 0x0206dcbd ====> transmit CAN frame with payload size 7, payload 0xa3 0x8a 0xb2 0xb3 0x4f 0xe1 0x02 ====> transmit CAN frame with payload size 3, payload 0x27 0x52 0x23 ====> transmit CAN frame with payload size 3, payload 0x27 0x52 0x23 ====> transmit CAN frame with payload size 7, payload 0xab 0x1a 0x94 0x4e 0x23 0xda 0x85 ====> transmit CAN frame with payload size 2, payload 0x2f 0xe1 ====> transmit CAN frame with payload size 2, payload 0x2f 0xe1 ====> transmit CAN frame with payload size 6, payload 0xb3 0xa9 0x76 0xe8 0xf8 0xd3 ====> transmit CAN frame with payload size 2, payload 0x37 0x71 ===> Current STD CAN ID 0x0000041a ====> transmit CAN frame with payload size 2, payload 0x37 0x71 ====> transmit CAN frame with payload size 6, payload 0xbb 0x38 0x57 0x82 0xcc 0xcb ====> transmit CAN frame with payload size 1, payload 0x3f ====> transmit CAN frame with payload size 1, payload 0x3f ====> transmit CAN frame with payload size 5, payload 0xc4 0xc7 0x39 0x1d 0xa0 ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 5, payload 0xcc 0x57 0x1b 0xb7 0x74 ===> Current STD CAN ID 0x00000221 ====> transmit CAN frame with payload size 5, payload 0xcc 0x57 0x1b 0xb7 0x74 ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 4, payload 0xd4 0xe6 0xfd 0x51 ====> transmit CAN frame with payload size 4, payload 0xd4 0xe6 0xfd 0x51 ====> transmit CAN frame with payload size 8, payload 0x58 0xae 0x6e 0x9e 0x33 0x32 0xd7 0x80 ====> transmit CAN frame with payload size 4, payload 0xdc 0x75 0xdf 0xec ====> transmit CAN frame with payload size 4, payload 0xdc 0x75 0xdf 0xec ====> transmit CAN frame with payload size 8, payload 0x60 0x3d 0x4f 0x39 0x07 0x2a 0x5b 0x00 ===> Current STD CAN ID 0x00000232 ====> transmit CAN frame with payload size 3, payload 0xe4 0x04 0xc0 ====> transmit CAN frame with payload size 3, payload 0xe4 0x04 0xc0 ====> transmit CAN frame with payload size 7, payload 0x68 0xcc 0x31 0xd3 0xdb 0x23 0xde ====> transmit CAN frame with payload size 3, payload 0xec 0x94 0xa2 ====> transmit CAN frame with payload size 3, payload 0xec 0x94 0xa2 ====> transmit CAN frame with payload size 7, payload 0x70 0x5b 0x13 0x6d 0xaf 0x1c 0x61 ====> transmit CAN frame with payload size 2, payload 0xf4 0x23 ====> transmit CAN frame with payload size 2, payload 0xf4 0x23 ==> Current bitrate 500000 bps ===> Current EXT CAN ID 0x0206dcbd ====> transmit CAN frame with payload size 2, payload 0xfd 0xb2 ====> transmit CAN frame with payload size 2, payload 0xfd 0xb2 ====> transmit CAN frame with payload size 6, payload 0x81 0x7a 0xd7 0xa2 0x58 0x0d ====> transmit CAN frame with payload size 1, payload 0x05 ====> transmit CAN frame with payload size 1, payload 0x05 ====> transmit CAN frame with payload size 5, payload 0x89 0x09 0xb8 0x3c 0x2c ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 0, payload ===> Current STD CAN ID 0x0000041a ====> transmit CAN frame with payload size 5, payload 0x91 0x98 0x9a 0xd7 0x00 ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 4, payload 0x99 0x28 0x7c 0x71 ====> transmit CAN frame with payload size 8, payload 0x1d 0xef 0xed 0xbe 0xbf 0x74 0xb3 0x3d ====> transmit CAN frame with payload size 8, payload 0x1d 0xef 0xed 0xbe 0xbf 0x74 0xb3 0x3d ====> transmit CAN frame with payload size 4, payload 0xa1 0xb7 0x5e 0x0b ====> transmit CAN frame with payload size 8, payload 0x25 0x7e 0xcf 0x59 0x93 0x6d 0x37 0xbd ===> Current STD CAN ID 0x00000221 ====> transmit CAN frame with payload size 3, payload 0xa9 0x46 0x40 ====> transmit CAN frame with payload size 3, payload 0xa9 0x46 0x40 ====> transmit CAN frame with payload size 7, payload 0x2d 0x0e 0xb1 0xf3 0x67 0x65 0xba ====> transmit CAN frame with payload size 3, payload 0xb2 0xd5 0x21 ====> transmit CAN frame with payload size 7, payload 0x36 0x9d 0x92 0x8d 0x3c 0x5e 0x3d ====> transmit CAN frame with payload size 7, payload 0x36 0x9d 0x92 0x8d 0x3c 0x5e 0x3d ====> transmit CAN frame with payload size 2, payload 0xba 0x65 ====> transmit CAN frame with payload size 6, payload 0x3e 0x2c 0x74 0x28 0x10 0x57 ===> Current STD CAN ID 0x00000232 ====> transmit CAN frame with payload size 6, payload 0x3e 0x2c 0x74 0x28 0x10 0x57 ====> transmit CAN frame with payload size 1, payload 0xc2 ====> transmit CAN frame with payload size 1, payload 0xc2 ====> transmit CAN frame with payload size 6, payload 0x46 0xbb 0x56 0xc2 0xe4 0x4f ====> transmit CAN frame with payload size 1, payload 0xca ====> transmit CAN frame with payload size 5, payload 0x4e 0x4b 0x38 0x5c 0xb8 ====> transmit CAN frame with payload size 5, payload 0x4e 0x4b 0x38 0x5c 0xb8 ====> transmit CAN frame with payload size 0, payload ==> Current bitrate 1000000 bps ===> Current EXT CAN ID 0x0206dcbd ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 8, payload 0xe2 0x31 0x6c 0xde 0x4b 0xb6 0x90 0xf9 ====> transmit CAN frame with payload size 4, payload 0x66 0xf8 0xdd 0x2b ====> transmit CAN frame with payload size 4, payload 0x66 0xf8 0xdd 0x2b ====> transmit CAN frame with payload size 8, payload 0xeb 0xc0 0x4e 0x78 0x1f 0xaf 0x13 0x79 ====> transmit CAN frame with payload size 3, payload 0x6f 0x88 0xbf ====> transmit CAN frame with payload size 3, payload 0x6f 0x88 0xbf ===> Current STD CAN ID 0x0000041a ====> transmit CAN frame with payload size 7, payload 0xf3 0x4f 0x30 0x13 0xf4 0xa7 0x96 ====> transmit CAN frame with payload size 2, payload 0x77 0x17 ====> transmit CAN frame with payload size 2, payload 0x77 0x17 ====> transmit CAN frame with payload size 7, payload 0xfb 0xdf 0x12 0xad 0xc8 0xa0 0x1a ====> transmit CAN frame with payload size 2, payload 0x7f 0xa6 ====> transmit CAN frame with payload size 2, payload 0x7f 0xa6 ====> transmit CAN frame with payload size 6, payload 0x03 0x6e 0xf3 0x48 0x9c 0x99 ====> transmit CAN frame with payload size 1, payload 0x87 ===> Current STD CAN ID 0x00000221 ====> transmit CAN frame with payload size 1, payload 0x87 ====> transmit CAN frame with payload size 6, payload 0x0b 0xfd 0xd5 0xe2 0x70 0x91 ====> transmit CAN frame with payload size 6, payload 0x0b 0xfd 0xd5 0xe2 0x70 0x91 ====> transmit CAN frame with payload size 1, payload 0x8f ====> transmit CAN frame with payload size 5, payload 0x13 0x8c 0xb7 0x7c 0x45 ====> transmit CAN frame with payload size 5, payload 0x13 0x8c 0xb7 0x7c 0x45 ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 0, payload ===> Current STD CAN ID 0x00000232 ====> transmit CAN frame with payload size 5, payload 0x1b 0x1c 0x99 0x17 0x19 ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 0, payload ====> transmit CAN frame with payload size 4, payload 0x24 0xab 0x7b 0xb1 ====> transmit CAN frame with payload size 4, payload 0x24 0xab 0x7b 0xb1 ====> transmit CAN frame with payload size 8, payload 0xa8 0x73 0xec 0xfe 0xd7 0xf8 0x6c 0xb6 ====> transmit CAN frame with payload size 3, payload 0x2c 0x3a 0x5c ====> transmit CAN frame with payload size 3, payload 0x2c 0x3a 0x5c ______________________________________________________ => CAN ID filtering test (Classical CAN). 2nd ID is accepted by mask filter. 2nd and 3rd are accepted by range filter. 1st and 4th ID are not accepted by either filters ==> Current bitrate 500000 bps socketcanConfigureFilter error -1. Range filter not supported Mask filter with ID 0x0000041a and mask 0x000007ff configured ===> Current EXT CAN ID 0x1d2cc3b6 ====> transmit CAN frame with payload size 3, payload 0x34 0xc9 0x3e Nothing received due to filtering. OK ====> transmit CAN frame with payload size 1, payload 0x54 Nothing received due to filtering. OK ====> transmit CAN frame with payload size 8, payload 0x75 0x43 0x4d 0xb8 0x38 0x33 0xcb 0xf2 Nothing received due to filtering. OK ====> transmit CAN frame with payload size 6, payload 0x96 0x80 0xd4 0x22 0x89 0x15 Nothing received due to filtering. OK ===> Current STD CAN ID 0x0000041a ====> transmit CAN frame with payload size 3, payload 0xb6 0xbd 0x5b ====> transmit CAN frame with payload size 8, payload 0x3a 0x85 0xcc 0xd8 0xc4 0x75 0xa8 0xaf ====> transmit CAN frame with payload size 8, payload 0x3a 0x85 0xcc 0xd8 0xc4 0x75 0xa8 0xaf ====> transmit CAN frame with payload size 3, payload 0xbe 0x4d 0x3d ===> Current STD CAN ID 0x00000221 ====> transmit CAN frame with payload size 3, payload 0xbe 0x4d 0x3d Nothing received due to filtering. OK ====> transmit CAN frame with payload size 1, payload 0xdf Nothing received due to filtering. OK ====> transmit CAN frame with payload size 3, payload 0x84 0x8e 0xbc Nothing received due to filtering. OK ====> transmit CAN frame with payload size 1, payload 0xa4 Nothing received due to filtering. OK ===> Current STD CAN ID 0x00000232 ====> transmit CAN frame with payload size 7, payload 0xc5 0x08 0xcb 0x18 0xdc 0xf9 0x60 Nothing received due to filtering. OK ====> transmit CAN frame with payload size 5, payload 0xe5 0x45 0x52 0x81 0x2d Nothing received due to filtering. OK ====> transmit CAN frame with payload size 3, payload 0x06 0x82 0xd9 Nothing received due to filtering. OK ====> transmit CAN frame with payload size 1, payload 0x27 Nothing received due to filtering. OK ==> Current bitrate 1000000 bps socketcanConfigureFilter error -1. Range filter not supported Mask filter with ID 0x0000041a and mask 0x000007ff configured ===> Current EXT CAN ID 0x1d2cc3b6 ====> transmit CAN frame with payload size 3, payload 0xcb 0xc4 0x58 Nothing received due to filtering. OK ====> transmit CAN frame with payload size 1, payload 0xec Nothing received due to filtering. OK ====> transmit CAN frame with payload size 8, payload 0x0d 0x3e 0x67 0xdd 0xac 0xc6 0x71 0xde Nothing received due to filtering. OK ====> transmit CAN frame with payload size 6, payload 0x2d 0x7b 0xee 0x47 0xfd 0xa9 Nothing received due to filtering. OK ===> Current STD CAN ID 0x0000041a ====> transmit CAN frame with payload size 4, payload 0x4e 0xb8 0x75 0xb0 ====> transmit CAN frame with payload size 8, payload 0xd2 0x80 0xe6 0xfd 0x38 0x08 0x4d 0x9a ====> transmit CAN frame with payload size 8, payload 0xd2 0x80 0xe6 0xfd 0x38 0x08 0x4d 0x9a ====> transmit CAN frame with payload size 3, payload 0x56 0x47 0x57 ===> Current STD CAN ID 0x00000221 ====> transmit CAN frame with payload size 7, payload 0xda 0x0f 0xc8 0x97 0x0d 0x01 0xd1 Nothing received due to filtering. OK ====> transmit CAN frame with payload size 5, payload 0xfb 0x4c 0x4f 0x01 0x5e Nothing received due to filtering. OK ====> transmit CAN frame with payload size 3, payload 0x1b 0x89 0xd6 Nothing received due to filtering. OK ====> transmit CAN frame with payload size 1, payload 0x3c Nothing received due to filtering. OK ===> Current STD CAN ID 0x00000232 ====> transmit CAN frame with payload size 8, payload 0x5c 0x03 0xe5 0x3d 0x51 0x8c 0x06 0x13 Nothing received due to filtering. OK ====> transmit CAN frame with payload size 6, payload 0x7d 0x40 0x6c 0xa6 0xa2 0x6f Nothing received due to filtering. OK ====> transmit CAN frame with payload size 3, payload 0x9d 0x7d 0xf3 Nothing received due to filtering. OK ====> transmit CAN frame with payload size 1, payload 0xbe Nothing received due to filtering. OK Filters cleared ______________________________________________________ TEST RESULT: 160 passed, 0 failed ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
