ConnectX-5 RoCEv2 Reliable connection Ack vlan issue

Trying to support RoCEv2 in our product. We have a particular network configuration where we segregate traffic using internal vlans. Incoming traffic comes on a particular internal vlan (let’s say vlan-10), and we expect outgoing traffic to go over an external vlan (vlan-id different from that of internal vlan. let’s say vlan-500).
gid table has the correct mapping…, and IP’s in the packet is also right. i.e.,
CLIENT-FACING-CLUSTER-IP → vlan-500
INTERNAL-IP → vlan-10

For Reliable connection Ack’s, looks like firmware is not using gid table to set vlan-id in the Ack. Looks to be a bug. Can anyone confirm? Any workaround?

For reference, gid table is set in kernel (mlx5_core_roce_gid_set) using this structure.
struct mlx5_ifc_roce_addr_layout_bits {
u8 source_l3_address[16][0x8];

  u8         reserved_at_80[0x3];
  u8         vlan_valid[0x1];
  u8         vlan_id[0xc];
  u8         source_mac_47_32[0x10];

  u8         source_mac_31_0[0x20];

  u8         reserved_at_c0[0x14];
  u8         roce_l3_type[0x4];
  u8         roce_version[0x8];

  u8         reserved_at_e0[0x20];

};

For eg., for above vlan-id’s, incoming packet has
src-ip: CLIENT-IP
dest-ip: CLIENT-FACING-CLUSTER-IP
vlan-id: 10

My expectation is that RC Ack be built as:
src-ip: CLIENT-FACING-CLUSTER-IP
dest-ip: CLIENT-IP
vlan-id: 500