This is the mail archive of the ecos-patches@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1001656] FreeBSD: add AF_PACKET socket familiy


Please do not reply to this email, use the link below.

http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001656

--- Comment #7 from Juergen Lambrecht <J.Lambrecht@televic.com> ---
(In reply to comment #6)
> (In reply to comment #5)
> Hi JÃrgen,
> 
> > Because I am porting the busybox dhcp server to eCos, I am using your raw
> > packet patch.
> > When I do 'man 7 packet' on my linux, I get a slightly different definition
> > of 'struct sockaddr_ll' (as also used by busybox): I have 'int sll_ifindex;'
> > instead of 'u_short sll_index;' and 'unsigned char sll_addr[8];' instead of
> > 'u_char sll_addr[22];'.
> > I guess the naming difference is because your code is based on the freeBSD,
> > and the busybox is based on Linux.
> > But why 22 bytes for the address ('ssl_addr'), you only use 6B of it
> > (EHTER_ADDR_LEN)?
> 
> good questions...
> 
> 1. actually the name should be sll_ifindex. I somehow missed that typo.
> 
> 2. the data type that is used by the bsd stack to index the interfaces
>    is u_short, therefore I thought it would be better to use that instead.
>    Same for the SIOCGIFINDEX ioctl, which uses only u_short.
> 
> 3. in linux sizeof (struct sockaddr_ll) = 20 which is larger than
>    sizeof(struct sockaddr) = 16.
>    But on eCos the sockaddr is 32 bytes. Therefore the sockaddr_ll
>    must be at least 32 bytes. Therefore I enlarged the sll_addr to 22.
> 
> Note: All socket addressses should be exactly 32 bytes in eCos,
> because of this code in ./io/fileio/current/src/socket.cxx:
> 
> __externC int   bind (int s, const struct sockaddr *sa, unsigned int len)
> {
> ...
>     struct sockaddr sa2 = *sa;
> 
> 
> 
> regading 1, I will change the name.
OK, I did the same
> 
> regarding 2, I could change the type to int, and cast it
> to u_short later, but only if that improves protability.
> 
> Is it your impression that this change would improve the
> portability of the busybox dhcp server?
No, it's OK. The code compiled without warnings so far.
> 
> regarding 3, the sizeof sll_addr should be irrelevant to
> the application as only 6 bytes are really used.
> 
> Does the existion code use the size of the sll_addr array
> for anything? Does it break unless this array is exactly 8 bytes?
No. Busybox code also only uses 6B instead of the 8 they have.
So it is OK.

Thanks for your reply,
JÃrgen
> 
> 
> Regards
> Bernd.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]