Operating System - HP-UX
1836230 Members
1869 Online
110096 Solutions
New Discussion

Re: X.25 - difference between ioctl(X25_SET_FRAGMENT_SIZE) and setsockopt(SO_RCVBUF)

 
Stefan Paitoni
Advisor

X.25 - difference between ioctl(X25_SET_FRAGMENT_SIZE) and setsockopt(SO_RCVBUF)

I am encountering some loss of data (my client app. receives OOB_VC_MSG_TOO_BIG), I saw in the documentation ioctl(X25_SET_FRAGMENT_SIZE) and setsockopt(SO_RCVBUF), can anybody tell me the difference between these 2 system calls ?
2 REPLIES 2
Berlene Herren
Honored Contributor

Re: X.25 - difference between ioctl(X25_SET_FRAGMENT_SIZE) and setsockopt(SO_RCVBUF)

To receive a message in fragments of the complete X.25 message,
use ioctl(X25_SET_FRAGMENT_SIZE). The state of the MDTF bit is 1 for all except the last fragment of the message.

SO_RCVBUF set-socket-options are used to set the the high water mark (maximum size) of a TCP session's Send Window and Receive Window.

Berlene
http://www.mindspring.com/~bkherren/dobes/index.htm
Stefan Paitoni
Advisor

Re: X.25 - difference between ioctl(X25_SET_FRAGMENT_SIZE) and setsockopt(SO_RCVBUF)

OK.
Maybe I can explain more my problem : in my client I call setsockopt(SO_RCVBUF) with 58254 which is the maximum value (from documentation), I call also ioctl(X25_SET_FRAGMENT_SIZE) with 0 (but it fails with errno 22). So sometimes my client receives the event OOB_VC_MSG_TOO_BIG, so it means that the data packet my client receive is bigger than 58254 bytes. Can you tell me what can I do ?
PS: someone else in my company ported this client to HP-UX 11 and he set SO_RCVBUF to 80000, and it worked !! Can you tell me why it worked, because the maximum value is 58254 according to HP documentation.