Hi @m_bez,
The Internal team shares the following example of the complete configuration of a filter:
# llcecan link up
ip link set up llcecan14 type can bitrate 500000 dbitrate 5000000 fd on
ip link set up llcecan15 type can bitrate 500000 dbitrate 5000000 fd on
# disable current basic filter
echo disabled > /sys/kernel/debug/llce_can_core/can_filters/set_status/status
echo 512 > /sys/kernel/debug/llce_can_core/can_filters/set_status/addr
echo 1 > /sys/kernel/debug/llce_can_core/can_filters/set_status/execute
echo 513 > /sys/kernel/debug/llce_can_core/can_filters/set_status/addr
echo 1 > /sys/kernel/debug/llce_can_core/can_filters/set_status/execute
# llcecan14 basic filte
echo 0xFF > /sys/kernel/debug/llce_can_core/can_filters/add/can_dest
echo 0x7F0 > /sys/kernel/debug/llce_can_core/can_filters/add/can_mask_id
echo mask > /sys/kernel/debug/llce_can_core/can_filters/add/entry
echo 14 > /sys/kernel/debug/llce_can_core/can_filters/add/hw_ctrl
echo 0xe > /sys/kernel/debug/llce_can_core/can_filters/add/tag
echo 0x10 > /sys/kernel/debug/llce_can_core/can_filters/add/mb_count
echo long > /sys/kernel/debug/llce_can_core/can_filters/add/mb_type
echo 0x540 > /sys/kernel/debug/llce_can_core/can_filters/add/msg_id
echo enabled > /sys/kernel/debug/llce_can_core/can_filters/add/status
echo 1 > /sys/kernel/debug/llce_can_core/can_filters/add/execute
After executing the above command, a filter as shown below will be created.
carlos_o_0-1739988050013.png
# Create a destination to be used for LLCE CAN14→LLCE CAN15 route.
echo 0x0 > /sys/kernel/debug/llce_can_core/can_destinations/add/can_id_remap
echo 15 > /sys/kernel/debug/llce_can_core/can_destinations/add/ch_list
echo 0x1 > /sys/kernel/debug/llce_can_core/can_destinations/add/routing_opts
echo 1 > /sys/kernel/debug/llce_can_core/can_destinations/add/execute
cat /sys/kernel/debug/llce_can_core/can_destinations/add/execute > \
/sys/kernel/debug/llce_can_core/can_filters/add/can_dest
echo 0x7F0 > /sys/kernel/debug/llce_can_core/can_filters/add/can_mask_id
echo mask > /sys/kernel/debug/llce_can_core/can_filters/add/entry
echo 14 > /sys/kernel/debug/llce_can_core/can_filters/add/hw_ctrl
echo 0xe > /sys/kernel/debug/llce_can_core/can_filters/add/tag
echo 0x10 > /sys/kernel/debug/llce_can_core/can_filters/add/mb_count
echo long > /sys/kernel/debug/llce_can_core/can_filters/add/mb_type
echo 0x530 > /sys/kernel/debug/llce_can_core/can_filters/add/msg_id
echo enabled > /sys/kernel/debug/llce_can_core/can_filters/add/status
echo disabled > /sys/kernel/debug/llce_can_core/can_filters/add/opt_auth
echo disabled > /sys/kernel/debug/llce_can_core/can_filters/add/opt_custom
echo disabled > /sys/kernel/debug/llce_can_core/can_filters/add/opt_host
echo disabled > /sys/kernel/debug/llce_can_core/can_filters/add/logging
echo 1 > /sys/kernel/debug/llce_can_core/can_filters/add/execute
After executing the above command, an additional filter will be created as shown in the figure below.
carlos_o_1-1739988082656.png
You need to disable the unused filters in the filter list to prevent interference between filters. After testing, the first filter will receive IDs between 0x540~0x54F to the host, and route IDs between 0x530~0x53F to llcecan15. If you need a CAN frame to be received by the host and routed to another channel at the same time, opt_host enable of the corresponding filter is required.