smc: establish pnet table management
authorThomas Richter <tmricht@linux.vnet.ibm.com>
Mon, 9 Jan 2017 15:55:15 +0000 (16:55 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Jan 2017 21:07:38 +0000 (16:07 -0500)
commit6812baabf24d5c299c13223366a23c269408f4d0
treec491c997ee9f5f10cb538c669d05168132c6644a
parenta4cf0443c4143b19e42389a1674b5b65224544ce
smc: establish pnet table management

Connection creation with SMC-R starts through an internal
TCP-connection. The Ethernet interface for this TCP-connection is not
restricted to the Ethernet interface of a RoCE device. Any existing
Ethernet interface belonging to the same physical net can be used, as
long as there is a defined relation between the Ethernet interface and
some RoCE devices. This relation is defined with the help of an
identification string called "Physical Net ID" or short "pnet ID".
Information about defined pnet IDs and their related Ethernet
interfaces and RoCE devices is stored in the SMC-R pnet table.

A pnet table entry consists of the identifying pnet ID and the
associated network and IB device.
This patch adds pnet table configuration support using the
generic netlink message interface referring to network and IB device
by their names. Commands exist to add, delete, and display pnet table
entries, and to flush or display the entire pnet table.

There are cross-checks to verify whether the ethernet interfaces
or infiniband devices really exist in the system. If either device
is not available, the pnet ID entry is not created.
Loss of network devices and IB devices is also monitored;
a pnet ID entry is removed when an associated network or
IB device is removed.

Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/smc.h [new file with mode: 0644]
net/smc/Makefile
net/smc/af_smc.c
net/smc/smc_ib.c
net/smc/smc_pnet.c [new file with mode: 0644]
net/smc/smc_pnet.h [new file with mode: 0644]