Thank you very much for your reply. I have some more doubts.
unsigned char tb_data;
last line of struct fib_table in ip_fib.h
struct fn_zone *fz;
struct fn_hash *t = (struct fn_hash*)tb->tb_data;
for (fz = t->fn_zone_list; fz; fz = fz->fz_next).............
in fn_hash_lookup in fib_hash.c
tb->tb_data is assigned value in only one place
memset(tb->tb_data, 0, sizeof(struct fn_hash));
in fib_hash_init at the end of fib_hash.c
i am not able to understand how does t->fn_zone_list contain any valid
(2) in route.c, there is a structure and also a inline function by name
(3) there are 2 functions fib_lookup, one in fib_rules.c and another in