Welcome to Host Identity Protocol for Linux (HIPL) Doxygen page.
make doc/HOWTO.html to generate it.. Periodically prebuilt manual is also available (from the trunk branch). __attribute__ ((packed)) after a structure definition really mean. Since the socket interface issues keep on popping up, we have gathered links related to sockaddr, sockaddr_in, sockaddr_in6 and sockaddr_storage data structures here.
sockaddr_in is defined in /usr/include/linux/in.h. See ip(7) - Linux man page.
struct sockaddr_in {
sa_family_t sin_family;
__be16 sin_port;
struct in_addr sin_addr;
unsigned char __pad[__SOCK_SIZE__ - sizeof(short int) -
sizeof(unsigned short int) - sizeof(struct in_addr)];
}; sockaddr_in6 is defined in /usr/include/linux/in6.h. See ipv6(7) - Linux man page.
struct sockaddr_in6 {
unsigned short int sin6_family;
__be16 sin6_port;
__be32 sin6_flowinfo;
struct in6_addr sin6_addr;
__u32 sin6_scope_id;
}; sockaddr is defined in /usr/include/linux/socket.h. See socket(7) - Linux man page.
struct sockaddr {
sa_family_t sa_family;
char sa_data[14];
}; sockaddr_storage is defined in /usr/include/linux/socket.h. See socket(7) - Linux man page.
struct sockaddr_storage {
unsigned short ss_family;
char __data[_K_SS_MAXSIZE - sizeof(unsigned short)];
} __attribute__ ((aligned(_K_SS_ALIGNSIZE)));
1.6.1