while performing research for another thread on SLES-10 & LKSCTP
(
sles10.1 - compiling & using SCTP application ? ),
it looks like 2.6.16-based kernels require lksctp-tools-1.0.6.
However, when sles10.2 is downloaded from the novell web site,
it appears that this 2.6.16-based kernel is matched with an older
lksctp: lksctp-tools-1.0.4.
Some 2.6.16 kernel source headers, such as …/net/sctp/user.h, are expecting matching data structures in the lksctp-tools headers, such as /usr/include/netinet/sctp.h.
This is not happening in SLES 10.2, since the lksctp-tools-devel which matches kernel-2.6.16, is lksctp-tools-1.0.6, and SLES10.2 ships with lksctp-1.0.4.
Every other Distro we’ve looked at, ie: (RHEL5, RHEL4, MontaVista5), has lksctp-tools matching the kernel. Except SLES10.
Example: These two structs in SLES10.2 should never be different.
uname –a -> Linux xyzxyz 2.6.16.60-0.23-smp #1 SMP Thu May 15 06:38:31 UTC 2008 x86_64 x86_64 x86_64 GNU/Linux
lksctp-tools-1.0.4-12.2
lksctp-tools-devel-1.0.4-12.2
/usr/include/netinet/sctp.h
struct sctp_paddrparams {
sctp_assoc_t spp_assoc_id;
struct sockaddr_storage spp_address;
__u32 spp_hbinterval;
__u16 spp_pathmaxrxt;
} __attribute__((packed, aligned(4)));
kernel-source-2.6.16.60-0.23
/usr/src/linux-2.6.16.60-0.23/include/net/sctp/user.h
struct sctp_paddrparams {
sctp_assoc_t spp_assoc_id;
struct sockaddr_storage spp_address;
__u32 spp_hbinterval;
__u16 spp_pathmaxrxt;
__u32 spp_pathmtu;
__u32 spp_sackdelay;
__u32 spp_flags;
} __attribute__((packed, aligned(4)));
It appears that since sles10 is not matched to the correct lksctp,
I am getting run-time errors in my sctp application.
This header file mismatch was observed in 10.1 and 10.2.
Can anyone comment on this observation ?