Hello!
> inet6_fill_ifaddr (and introduce RTM_IFACEFLAGS). This will be specific to
> IPv6. Are you agreeable to this ?
...
> + IFA_IFFLAGS,
What's about ifa_flags? There is some space there, and the things
kept there now: TENTATIVE/DEPRECATED et al. are close relatives
of O/M.
> - I believe we need #3 for the reasons given above.
This does not pass through Occam's razor. Why not to give a filter to plain
RTM_GETROUTE? We did not implement filtering not because we do not want,
but because we (me, is more appropriate) are lazy.
Also, I am not sure that the interface should include things sort of
+ if ((addr_type & (IPV6_ADDR_LINKLOCAL | IPV6_ADDR_LOOPBACK |
+ IPV6_ADDR_MULTICAST)) != 0 ||
+ addr_type == IPV6_ADDR_ANY)
For kernel all they are direct routes, if the application wants to apply
some policy not formulated in terms of filters for RTM_GETROUTE, let it
to filter itself. Moreover, I used to emphasize that user of rtnetlink
should not believe to reliability of kernel filtering. It is just necessary
measure to guarantee that a new application, which is aware of a new
attribute, will behave correctly with older kernels, which are not aware
of this attribute. Not a requirement, of course.
Anyway, if you want to apply such specific policy, you can add a flag
to rtm_flags, which would say: RTM_F_OFFICIALLY_PREFIX and base filtering
on this flag, when it is given.
Alexey
|