On 7/19/17 10:30 AM, Ido Schimmel wrote: >> rif == 0 means the dst device is not related to a port owned by this >> driver? > > Yes. > >> >> >> A lot to process so I am sure I missed the answer to these: >> >> 1. How do you handle host routes for local addresses? IPv6 inserts the >> host and anycast routes with the device set to 'lo' (or VRF device) >> instead of the device with the address. I have a patch to change this, >> but needs more testing > > In mlxsw_sp_fib6_entry_type_set() we check for RTF_LOCAL and set the > FIB entry type to MLXSW_SP_FIB_ENTRY_TYPE_TRAP. Packets hitting these > routes will be trapped with IP2ME trap ID towards the CPU.
got it. thanks. > >> 2. How are routes with devices unrelated to ports owned by this driver >> handled? > > They are handled just like any other route, but they don't have a valid > RIF (for directly connected routes) or an adjacency group (for > gatewayed routes), so the check in mlxsw_sp_fib_entry_should_offload() > will return false and they will be programmed to the device with trap > action, but using a trap ID (RTR_INGRESS0) with a lower traffic class > than IP2ME, so packets that actually need to be locally received by the > CPU have a better QoS. so mlxsw keeps a copy of the complete FIB for IPv4 and IPv6, even routes unrelated to its ports?