Subject: Re: routing socket alignment issue
To: Ross Harvey <ross@teraflop.com>
From: None <itojun@iijlab.net>
List: tech-net
Date: 09/02/1999 16:41:57
>Umm, wait a minute, sys/net/rtsock.c does NOT use ALIGN(). It uses
>local macros to align to sizeof long.
I wasn't clear enough (or confused), on alpha sizeof(long) = 8
so effectively ALIGN() rounds up to the same boundary as ROUNDUP()
on alpha. Thanks for clarification.
>I would suggest:
> * edit route.4 to simply document the alignment to sizeof long
> * modify clients to adapt, possibly by exporting a new alignment
> convenience macro in /usr/include
>I agree with you, BTW, that a sort-of clean solution would be to generate
>packed structures from rtsock.c. It's annoying that the kernel does this
>sometimes (e.g., the widely used SIOCGIFCONF) but not others, but I'm afraid
>it's too late to change it. (And anyway, those packed structures are a big
>source of other bugs ... it's amazing how much cascaded lossage flows from
>the variable length sockaddr feature.)
I agree with the above stragegy.
It looks that long alignment is used for a very long time.
http://www.jp.netbsd.org/cgi-bin/cvsweb.cgi/syssrc/sys/net/rtsock.c?rev=1.1&content-type=text/x-cvsweb-markup
Is RTALIGN() makes sense as the name of exported macro?
I wonder how many existing routing daemons are aware of this alignment.
Do NetBSD/alpha (or other sizeof(long) == 8 arch) users able to run
third-party routing daemons without modification?
itojun