Hi, I'm the one who suggested coding the “filtering on kernel proto” on another mailing-list (after getting the idea from here) and Jérémie offered to code it. Le lundi 19 mars 2012 à 13:26 +0100, Ondrej Zajicek a écrit :
On Wed, Mar 14, 2012 at 08:50:24PM +0100, Jérémie Dimino wrote:
The patch adds two attributes: krt_source and krt_proto. krt_source is an enum which export the u.krt.src field of routes and krt_proto is an integer which export the u.krt.proto field. The patch also adds constants from /etc/iproute2/rt_protos.
Thanks, i will merge but there are some minor issues with this.
First, i will remove krt_source, that seems useless - you will never get KRT_SRC_BIRD and KRT_SRC_REDIRECT, so you get only KRT_SRC_ALIEN or KRT_SRC_KERNEL, which is the same as whether krt_proto is ipp_kernel.
We debated offline whether we should include both or not, but I didn't realize that KRT_SRC_BIRD and KRT_SRC_REDIRECT where filtered out before reaching bird tables. Anyway, we tried to find a good compromise between having only one source of authority (thus unifying both attributes) but still being able to use this attribute for system not aware of krt_proto (i.e. non-Linux). I didn't find a satisfying answer to that. Now that we reduced the possibilities, could the possibility to filter on krt_proto = ipp_kernel (or !=) be left for BSD users? E.g. by setting krt_proto to the same netlink value as Linux when krt_src == KRT_SRC_KERNEL? Anyway, having the possibility to filter on krt_proto on Linux is great, thanks Jérémie. Regards, Benjamin