Re: Questions about route realms

From: Anton
Date: Tue Jan 26 2010 - 07:54:31 EST


Do You know someone or some mail-list where I should send feature request for adding route realms support in
IPv6 for linux ?

Thank You for patch but I can not to test it right now. I use kernel and all software from arch distribution
on my desktop and openwrt on my test routers at the moment. I have no true test linux machine just now to
compile custom kernel and iproute2 with this patch.


On Tue, 26 Jan 2010 18:42:55 +0600
Atis Elsts <atis@xxxxxxxxxxxx> wrote:

> On Tuesday 26 January 2010 13:14:17 Anton wrote:
> > Hello.
> >
> >
> > Two questions:
> >
> > 1. Does linux kernel support realms only for IPv4 ? I tried to add an IPv6
> > route with realm. It was added but "ip -6 r sh" did not show realm, it
> > showed added route without realm. May be this is only tc bug ? I hope ...
> > We widely use realms for classifying traffic and if we will use IPv6 I
> > don't know how to replace realms by something else.
>
> No, there is no route realm support for IPv6 at the moment AFAIK.
>
> >
> >
> > 2. realm has an unsigned 32 int size. 16-bit src realm and 16-bit dst
> > realm. When I'm trying to add route with realm more then 255 it returns
> > error. For example "ip r add 192.168.0.0/16 dev ppp0 realm 65000" should
> > work but it does not. Is this a bug or am I mistaking ?
> >
> According to e.g. this book, source and destination realms "are 8-bit values":
> http://www.karlstadunix.nu/~ullgren/books/book.chinaunix.net/special/ebook/oreilly/Understanding_Linux_Network_Internals/0596002556/understandlni-
> CHP-35-SECT-12.html
>
> On the other hand, it seems that Linux kernel can handle 16 bit values just
> fine, so this could be an unnecessary limitation in iproute.
>
> (There is one exception in Linux kernel, one place where the upper 8 bits are
> ignored - for statistics in /proc/net/rt_acct. If, on the other hand, realms
> are used for matching in firewall, they should work.)
>
> Can you try this patch?
>
> Atis
>
> ---
> Allow to have realm values up to 65535 when adding IPv4 routes or rules; Linux
> kernel already supports this.
>
> diff --git a/lib/rt_names.c b/lib/rt_names.c
> index 52edfe3..a7fdea6 100644
> --- a/lib/rt_names.c
> +++ b/lib/rt_names.c
> @@ -304,7 +304,7 @@ int rtnl_rtrealm_a2n(__u32 *id, char *arg)
> }
>
> res = strtoul(arg, &end, 0);
> - if (!end || end == arg || *end || res > 255)
> + if (!end || end == arg || *end || res > 0xffff)
> return -1;
> *id = res;
> return 0;


--
Anton [WARM-RIPE]
Stack ltd division head
tel. 8 (3822) 555-797

--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html