I'm an oldie network / systems engineer with some basic knowledge of gdb but not such an expert when it comes to C programming & co (I can read code but that's not my field).
On a Linux router / GW running in Azure, on kernel 5.4.0-1025, I have 2 x tunnel interfaces:
- tun-14382495-0
- tun-23B4EC00-0
An IP range 10.10.10.0/24 is reachable via both (ECMP).
For traffic SRC: X, DST: 10.10.10.0/24 I am interesting in figuring out where it gets hashed.
I installed the kernel debugging symbols.
I noticed there is a function:
- __get_hash_from_flowi6(const struct flowi6 *, struct flow_keys *)
and also one:
- static struct hlist_head *fib_info_hash_alloc(int);
Can anyone help a rookie level guy like me figure out:
- how to call the first function from GDB with the properly populated structure (for an example flow)
- howto call fib_info_hash_alloc to find out the range of hashes per IP address Nexthop
Please?
Thank you very much and sorry for not being more knowledgeable in this regard.