-Dcom.ibm.net.rdma.conf (Linux® only)

You can enable Java™ Sockets over RDMA (JSOR) on Java application server and client systems by specifying this system property on the command line. Each host system requires a valid configuration file.

Note: The RDMA implementation is deprecated and will likely be removed in a future release of IBM® SDK, Java Technology Edition, Version 8. A possible alternative is the open source Libfabric library.
-Dcom.ibm.net.rdma.conf=<path><config_file>
Where:
  • <path> is an absolute path to the configuration file, or a relative path from the directory in which the Java process is started.
  • <config_file> is a configuration file that specifies one or more rules.

Configuration file

The JSOR configuration file must be a plain text file that contains one rule per line. Comments must start with the # character.

The following syntax applies to a rule:
<net-spec><sp>(<connect-entry> | <accept-entry> | <bind-entry>)
Where:
  • <net-spec> = rdma
  • <sp>=1*LWSP-char
  • <connect-entry> = connect <host-spec><sp><port-spec>
  • <accept-entry> = accept <host-spec><sp><port-spec><sp>(*| any | all | <client-spec>[<sp><client-spec>])
  • <bind-entry> = bind <host-spec><sp><port-spec>
These suboptions apply to <connect-entry>, <accept-entry>, or <bind-entry>:
  • <host-spec> = (hostname | ipaddress [/ prefix])
  • <port-spec> = (* | port)[ - (* | port) ]
  • <client-spec> = (hostname | ipaddress [/ prefix])
The following notes apply to syntax:
  • Any number of linear white space characters (1*LWSP-char), such as tabs or spaces, can separate the <options>.
  • Brackets, [], indicate optional text.
  • The vertical bar character (|) within parentheses, (), indicates a choice of values. You must select only one.

Server configuration details

Rules that apply to a server configuration file:
  • A server configuration file can have <accept-entry> and <bind-entry> parameters. Each <accept-entry> implicitly generates a <bind-entry> as well.
  • Each hostname or ipaddress specified must be a valid InfiniBand interface address on that host.
  • If hostname is specified, there must be an appropriate hostname to InfiniBand interface address mapping available, otherwise the default domain name resolution maps to an ethernet address rather than an InfiniBand address.
  • <accept-entry>:
    • The <host-spec> and <port-spec> values must be the local host.
    • All <client-spec> values must be the local host.
    • The local hostname or ipaddress can be either NULL or LOOPBACK.
  • <bind-entry>:
    • The <host-spec> and <port-spec> values must be the local host.
    • The hostname or ipaddress values can be either NULL or LOOPBACK.
  • NULL or LOOPBACK addresses are replaced by an InfiniBand interface address during the bind process.
    • A NULL address in the configuration can be 0, 0.0, 0.0.0, 0.0.0.0, or ::.
    • A LOOPBACK IP address must be 127.0.0.1.
    The system selects an interface from the available InfiniBand interfaces. If you want to override the default address that is selected by the system, specify the -Dcom.ibm.net.rdma.preferredAddress system property.

Client configuration details

Rules that apply to a client configuration file:
  • A client configuration file can have <connect-entry> and <bind-entry> parameters.
  • Each hostname or ipaddress specified must be a valid InfiniBand interface address on that host.
  • If hostname is specified, there must be an appropriate hostname to InfiniBand interface address mapping available, otherwise the default domain name resolution maps to an ethernet address rather than an InfiniBand address.
  • <connect-entry>:
    • The <host-spec> and <port-spec> values must be the remote host.
    • The <port-spec> value must not be NULL or LOCAL.
    • The <host-spec> value can be either NULL or LOCAL. This value is replaced by your preferred RDMA-capable address during connection, which allows a JSOR client to connect to a JSOR server on the same host.
  • <bind-entry>:
    • Start of changes for service refresh 2 fix pack 10The <host-spec> and <port-spec> values must be the local host.End of changes for service refresh 2 fix pack 10
    • The hostname or ipaddress values can be either NULL or LOOPBACK.
    • NULL or LOOPBACK addresses are replaced by an InfiniBand interface address during the bind process.
      • A NULL address in the configuration can be 0, 0.0, 0.0.0, 0.0.0.0, or ::.
      • A LOOPBACK IP address must be 127.0.0.1.
      The system selects an interface from the available InfiniBand interfaces. If you want to override the default address that is selected by the system, specify the -Dcom.ibm.net.rdma.preferredAddress system property.

Example: Server configuration

This example shows a server-side configuration entry on host1:
# My server configuration
rdma accept host1 2000-3000 host2 host3
This rule configures connections that are accepted by host1 from host2 and host3 on server sockets that are listening on ports 2000 - 3000 (inclusive) as RDMA connections.

In this case, for every accept rule a corresponding bind rule is created internally that forces a specific bind operation for any sockets that match the rule. Consequently, a bind rule is not needed on the server, and an accept rule is not needed for a client.

Example: Client configuration

This example shows a client-side configuration entry on host2:
# My client configuration
rdma connect host1 2435
This rule configures a connection that originates from host2 to host1 on port 2435 to be treated as an RDMA connection.

Example: Binding to NULL, LOCAL, or LOOPBACK address

This example shows a bind entry with the NULL, LOCAL, or LOOPBACK address:
rdma bind 0 *
rdma bind :: *
rdma bind 127.0.0.1 *
These rules configure all bind connections to the local address to pick up and bind to an RDMA-enabled address. The system selects an interface from the available IB interfaces. If you want to override the default address that is selected by the system, specify the -Dcom.ibm.net.rdma.preferredAddress system property.

Use the :: format to override the local ipv6 address.