SMC_RUN(8)

NAME
smc_run - start a TCP socket program with the capability to use SMC as networking protocol

SYNOPSIS
smc_run [-dhrtv][-r SIZE] [-t SIZE] program parameters

DESCRIPTION
smc_run starts a program specified as argument with its parameters, allowing to use the SMC protocol for program-used TCP socket connections.
The script specifies libsmc-preload.so as a preload shared library for the Linux program loader, and may adjust transmit and receive buffer sizes to SIZE by setting socket options SO_RCVBUF and SO_SNDBUF respectively. SIZE can be specified in Bytes or using metric prefixes k and m, e.g. 8k...1024k/1m.
The preload library libsmc-preload.so intercepts a few TCP socket calls and triggers the equivalent execution through SMC.
Note: If it is not possibile to use smc_run, the libsmc-preload.so may be installed as apreload library via environment variable LD_PRELOAD. Use environment varibles SMC_SNDBUF and SMC_RCVBUF to request specific transmit and receive buffer sizes respectively. Supports metric prefixes k and m. The following options can be specified:

-d  Display additional diagnostic messages during the program execution.

-h  Display a brief usage information.

-r SIZE
    Request receive buffer size SIZE.
    Notes:

    •   May be overridden by the application.

    •   Increases net.core.rmem_max if necessary.

-t SIZE
    Request transmit buffer size SIZE.
    Notes:

    •   May be overridden by the application.

    •   Increases net.core.wmem_max if necessary.

-v  Display version information.

RETURN CODES
On success, the smc_run command returns 0. If an error occurs smc_run writes a message to stdout and completes with a return code other than 0.

1   An invalid option was specified.

EXAMPLES
Run program foo using SMC, requesting a receive buffer size of 512KB

    $ smc_run -r 512k ./foo

SEE ALSO
af_smc(7), smc_chk(8) smc_pnet(8), smc_rnics(8), smcd(8), smcr(8), smcss(8), tcp(7)