RZA1 CAN filter not working as expected

Im using the GR-PEACH and having a few issues, with the following code

can1.filter(100, 0x7FF, CANStandard, 0); // set filter #0 to accept only
** can1.filter(101, 0x7FF, CANStandard, 1); // set filter #1 to accept only**
** can1.filter(11, 0x7FF, CANStandard, 2); // set filter #2 to accept only**

only the last ID (11) appears and registers on can. I was expecting 100, 101 and 11

Looking further into it I noticed that the parts below were missing in the can_api.c from latest MBED-OS 6.17.

Under the can_filter function
*int can_filter(can_t obj, uint32_t id, uint32_t mask, CANFormat format, int32_t handle)

handle isn’t implemented/used.
//set the page number of receive rule table(page number = 0) **
** RSCAN0GAFLECTR |= (obj->ch * 4);

looks like it only implements 1 filter for each can channel.

From the RZA1 hardware manual says it should be able to support 15 filters per channel. Am I wrong or missed something?

I also checked out the can_api.c from the RZA2 which looks like it has the missing bits.
static void get_rxrule_index(uint32_t ch, int32_t handle, uint8_t page, uint8_t j)
{
** page = (handle + (ch * CAN0_RX_RULE_NUM)) / RXRULE_J_MAX;

** j = (handle + (ch * CAN0_RX_RULE_NUM)) % RXRULE_J_MAX;

}

Can anyone help me here?

Thanks
Jason