On 4/2/19 11:10 AM, Martin Lau wrote:
>> @@ -182,11 +183,10 @@ struct fib_result_nl {
>>      int             err;
>>  };
>>  
>> -#ifdef CONFIG_IP_ROUTE_MULTIPATH
>> -#define FIB_RES_NH(res)             ((res).fi->fib_nh[(res).nh_sel])
> If nh_sel is still needed, I am likely missing something to understand why

It is part of the uapi, so I can not delete it.

> a new '*nhc' pointer is needed.  Is nhc always pointing to the "nh_sel"-ed nh,
> like the current FIB_RES_NH() does?

Right now, yes. In the future, no.

> 
> Can you explain more on the commit message:
> "Later, fib_nh can point to data with a nexthop struct."

Today:

fib_info  --> fib_nh
              fib_nh
              ...
              fib_nh

With nexthops as a separate object

fib_info --> nexthop --> fib_nh


or with a nexthop group:

fib_info --> nexthop --> nexthop --> fib_nh
                         nexthop --> fib_nh
                         ...
                         nexthop --> fib_nh

I outlined this here:
    https://www.mail-archive.com/netdev@vger.kernel.org/msg290606.html

Now, the UAPI that uses nhsel still works in the sense that it tells
which fib_nh is used for a lookup even though internally it is part of a
different struct.

Reply via email to