1AF_SMC(7)                  Linux Programmer's Manual                 AF_SMC(7)
2
3
4

NAME

6       AF_SMC - Sockets for SMC communication
7

SYNOPSIS

9       #include <sys/socket.h>
10
11       #define AF_SMC 43
12
13       #define SMCPROTO_SMC  0
14
15       #define SMCPROTO_SMC6 1
16
17       tcp_sockfd = socket(AF_SMC, SOCK_STREAM, SMCPROTO_SMC);
18
19       tcp_sockfd = socket(AF_SMC, SOCK_STREAM, SMCPROTO_SMC6);
20

DESCRIPTION

22       Shared  Memory  Communication  via RDMA (SMC) is a socket over the RDMA
23       communication protocol that allows existing TCP socket applications  to
24       transparently  benefit from RDMA when exchanging data over an RDMA over
25       Converged Ethernet (RoCE) network. Those  networks  are  not  routable.
26       SMC  provides  host-to-host  direct  memory  access without traditional
27       TCP/IP processing overhead.  SMC offers  preservation  of  existing  IP
28       topology  and  IP  security,  and introduces minimal administrative and
29       operational changes.  The exploitation of SMC  is  transparent  to  TCP
30       socket applications.
31
32       The  new  address family AF_SMC supports the SMC protocol on Linux.  It
33       keeps the address format of AF_INET and AF_INET6 sockets  and  supports
34       streaming socket types only.
35
36   Usage modes
37       Two usage modes are possible:
38
39       AF_SMC native usage
40              uses  the  socket domain AF_SMC instead of AF_INET and AF_INET6.
41              Specify SMCPROTO_SMC for AF_INET  compatible  socket  semantics,
42              and SMC_PROTO_SMC6 for AF_INET6 respectively.
43
44       Usage of AF_INET socket applications with SMC preload library
45              converts  AF_INET  and  AF_INET6 sockets to AF_SMC sockets.  The
46              SMC preload library is part of the SMC tools package.
47
48       SMC socket capabilities are negotiated at connection setup. If one peer
49       is  not  SMC capable, further socket processing falls back to TCP usage
50       automatically.
51
52   Implementation details: Links and Link Groups
53       To run RDMA traffic to a peer, a so-called link is established  between
54       a  local RoCE card and a remote RoCE card. To enhance availability, you
55       can configure alternate links with automatic fail  over.   Primary  and
56       backup links to a certain peer are combined in a so-called link group.
57
58   RoCE adapter mapping: Creation of a pnet table
59       The  SMC  protocol  requires  grouping  of multiple physical networks -
60       standard Ethernet and RoCE networks. Such groups  are  called  Physical
61       Networks  (PNets). For SMC, RoCE adapter mapping is configured within a
62       table called pnet table.  Any available Ethernet interface can be  com‐
63       bined  with  available RDMA-capable network interface cards (RNICs), if
64       they belong to the same Converged Ethernet fabric.  To  configure  RoCE
65       Adapter  mapping,  you must create a pnet table.  Modify the table with
66       the smc-tools command smc_pnet.
67
68       For details see smc_pnet(8).
69
70   Displaying SMC socket state information
71       SMC socket state information can be obtained with the smc-tools command
72       smcss.  For details see smcss(8).
73
74   Starting a TCP application to work with SMC
75       To  use  an  existing  TCP  application  to  work with SMC, use the SMC
76       preload library.  The SMC Tools package provides the command smc_run to
77       convert  AF_INET  and  AF_INET6  socket calls to AF_SMC socket calls by
78       means of the preload technique.  For more information about the preload
79       mechanism, see also ld.so(8).
80
81       Example:
82
83              smc_run ftp
84
85       This command-line example starts an FTP client over SMC.
86
87   MTU and Infiniband data transfer
88       Infiniband  traffic  may  use MTU values 256, 512, 1024, 2048, or 4096.
89       SMC determines the configured MTU  size  of  the  RoCE  Ethernet  port,
90       announces  this  MTU  size  to  the  peer  during connection start, and
91       chooses the minimum MTU size of both peers.
92
93

AUTHOR

95       Copyright IBM Corp. 2016, 2018
96
97       Published under the terms and conditions of the EPL
98       (Eclipse Public License).
99
100

SEE ALSO

102       socket(2), ip(7), tcp(7), socket(7), smc_run(8), smcss(8), smc_pnet(8)
103

HISTORY

105       AF_SMC, version 1.0.0
106
107             Initial version.
108
109
110
111smc-tools                        January 2017                        AF_SMC(7)
Impressum