Subject: Question on Netlink IPv6 routing table lookup

From: Fernando Gont <[email-masked]>
Date: Mon, 23 Sep 2013 16:41:07 -0300

Folks,

I'm performing IPv6 routing table lookups with a netlink socket, and it
seems that specifying the Source Address with the RTA_SRC element does
not have any effect on the result of the look-up.

In my network setup, I have two interfaces, as follows:

 NET1 (fc00:1::/64) <------> MY_NODE <------> NET2 (fc00:2::/64)

For simplicity sake, let's say that my nodes' address on NET1 is
fc00:1::1, and my node's address on NET2 is fc00:2::1. And my node has
two default routes (one in NET1, and another in NET2).

I'd expect that if I set RTA_SRC to fc00:1::1, the default route on NET1
is selected, but if I set RTA_SRC to fc00:2::1, it is the default route
on NET2 that is selected.

However, the result of the routing tale look-up is always the same,
regardless of RTA_SRC.

I looked at /proc/net/ipv6_route, and it seems that, for all routes, the
"source network" is always set to :: (all zeroes), thus probably
explaining the above behavior.

Is there any way to influence the routing-table look-up based on the
IPv6 source address?

If that's not (currently) possible, should I expect RTA_SRC to work as
described above at some point in the future?
-- 
Fernando Gont
e-mail: [email-masked] || [email-masked]
PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076 FFF1