ipv4: Use accessors for fib_info nexthop data
Use helpers to access fib_nh and fib_nhs fields of a fib_info. Drop the fib_dev macro which is an alias for the first nexthop. Replacements: fi->fib_dev --> fib_info_nh(fi, 0)->fib_nh_dev fi->fib_nh --> fib_info_nh(fi, 0) fi->fib_nh[i] --> fib_info_nh(fi, i) fi->fib_nhs --> fib_info_num_path(fi) where fib_info_nh(fi, i) returns fi->fib_nh[nhsel] and fib_info_num_path returns fi->fib_nhs. Move the existing fib_info_nhc to nexthop.h and define the new ones there. A later patch adds a check if a fib_info uses a nexthop object, and defining the helpers in nexthop.h avoid circular header dependencies. After this all remaining open coded references to fi->fib_nhs and fi->fib_nh are in: - fib_create_info and helpers used to lookup an existing fib_info entry, and - the netdev event functions fib_sync_down_dev and fib_sync_up. The latter two will not be reused for nexthops, and the fib_create_info will be updated to handle a nexthop in a fib_info. Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
7dd73168e2
commit
5481d73f81
@ -153,7 +153,6 @@ struct fib_info {
|
||||
bool nh_updated;
|
||||
struct rcu_head rcu;
|
||||
struct fib_nh fib_nh[0];
|
||||
#define fib_dev fib_nh[0].fib_nh_dev
|
||||
};
|
||||
|
||||
|
||||
@ -190,11 +189,6 @@ struct fib_result_nl {
|
||||
int err;
|
||||
};
|
||||
|
||||
static inline struct fib_nh_common *fib_info_nhc(struct fib_info *fi, int nhsel)
|
||||
{
|
||||
return &fi->fib_nh[nhsel].nh_common;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_IP_MULTIPLE_TABLES
|
||||
#define FIB_TABLE_HASHSZ 256
|
||||
#else
|
||||
|
Reference in New Issue
Block a user