HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1095 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 1095.


Report 1095 Actions


    Problem Report Number 1095
    Submitter's Classification Minor System Fault
    State Resolved
    Resolution Minor System Fault (MSF)
    Problem Resolution ID MSF.X.0044
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1996-11-01 08:00
    Expiry Date 1997-11-01
    Product Standard Sockets (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.1.0
    Test Identification Sockets/getsockopt 8
    Problem Summary MSF4U.00009 An MSF is requested because the implementation does not set the size requested for SO_RCVBUF.
    Problem Text
    On our implementation, getsockopt #8 and setsockopt #14 fail because they
    expect getsockopt() to return a value identical to the optval argument
    given in the previous call to setsockopt(). We request that the imple-
    mentation be allowed to pass for now on the basis of minor system fault.
    Our rationale follows.

    In implementations where buffering occurs in multiple places, such as
    STREAMS based implementations which queue in two or more places, it
    is often impossible to set the total amount of buffering to an arbitrary
    amount. An example of such an implementation would be one in which
    queueing takes place in the stream head read queue and in TCP's
    reassembly buffers.

    In STREAMS based implementations this is due to the mismatch between the
    byte-count specified with SO_RCVBUF and the per-message flow control
    checks in STREAMS where the canput() function returns true/false indepen-
    dent of the size of the message to be queued. For example if the stream
    head flow control high-water mark is set to one byte, it is still pos-
    sible to queue one full TCP message at the stream head. The only limit
    on the size of this streams message is the TCP connection's maximum
    segment size.

    Given this, in response to the SO_RCVBUF getsockopt(), our implementation
    of TCP tries to present a value that is as accurate as possible by rounding
    it up to a multiple of the maximum segment size. As a result the value
    returned to the getsockopt might be higher than the SO_RCVBUF value set
    with setsockopt().

    We would like the failure of this test case and the behavior of our
    implementation to be classified a "minor fault in the system tested".
    We also request that this matter to be referred to the specification
    working group for consideration as an allowed behavior through a
    Corrigenda to the specification and in future versions of the
    specification.
    ./"
    ./"
    ./"
    ./" MAKE NO CHANGES BELOW THIS LINE WHEN SUBMITTING A REQUEST
    ./"
    ./"
    ./"
    ./"
    ./" Section C - Comments on Requests - X/Open use only
    ./"
    Test Output
    TEST CASE: getsockopt

    TEST PURPOSE #8
    If the implementation supports a communications domain
    and a socket type:
    A successful call to int getsockopt(int socket, int
    level, SO_RCVBUF, void *option_value, size_t
    *option_len) shall report receive buffer size
    information for the protocol level level for the
    socket socket storing this information as an int in
    the object pointed to by option_value, set the object
    pointed to by option_len to the size of an int, and
    return 0.
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 129.146.85.212, port = 2269
    PREP: Server: create socket
    PREP: Server: bind address 129.146.85.212, port 2269 to socket
    PREP: Server: listen on socket
    PREP: Server: notify client server is ready
    PREP: Server: accept connection
    INFO: Server received signal 15
    INFO: Server terminated
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect socket to address 129.146.85.212, port 2269
    PREP: Call setsockopt to set option value
    TEST: Call getsockopt
    TEST: Return value
    TEST: Value
    ERROR: Value incorrect, expected 128, received 8192
    CLEANUP: Send SIGTERM to server
    8 FAIL

    TEST CASE: setsockopt

    TEST PURPOSE #14
    If the implementation supports a communications domain
    and a socket type:
    A call to int setsockopt(int socket, int level,
    SO_RCVBUF, const void *option_value, size_t
    option_len) shall set the receive buffer size for the
    protocol level level for the socket socket.
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 129.146.85.212, port = 1113
    PREP: Server: create socket
    PREP: Server: bind address 129.146.85.212, port 1113 to socket
    PREP: Server: listen on socket
    PREP: Server: notify client server is ready
    PREP: Server: accept connection
    INFO: Server: accepted connection from address 129.146.85.212, port 33408
    PREP: echo_server: read and echo data
    INFO: Server received signal 15
    INFO: Server terminated
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect socket to address 129.146.85.212, port 1113
    TEST: Call setsockopt
    TEST: Return value
    PREP: Set variable where value will be stored to -1
    TEST: Check value with getsockopt
    ERROR: Value incorrect, expected 128, received 8192
    CLEANUP: Send SIGTERM to server
    14 FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    A temporary waiver for a minor system fault is recommended.

    We believe these failures will have minimal impact on application
    portability.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Minor System Fault (MSF)
    Review Conclusion
    A Temporary Waiver is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority