net/smc: Introduce IPPROTO_SMC
This patch allows to create smc socket via AF_INET, similar to the following code, /* create v4 smc sock */ v4 = socket(AF_INET, SOCK_STREAM, IPPROTO_SMC); /* create v6 smc sock */ v6 = socket(AF_INET6, SOCK_STREAM, IPPROTO_SMC); There are several reasons why we believe it is appropriate here: 1. For smc sockets, it actually use IPv4 (AF-INET) or IPv6 (AF-INET6) address. There is no AF_SMC address at all. 2. Create smc socket in the AF_INET(6) path, which allows us to reuse the infrastructure of AF_INET(6) path, such as common ebpf hooks. Otherwise, smc have to implement it again in AF_SMC path. Signed-off-by:D. Wythe <alibuda@linux.alibaba.com> Reviewed-by:
Wenjia Zhang <wenjia@linux.ibm.com> Reviewed-by:
Dust Li <dust.li@linux.alibaba.com> Tested-by:
Niklas Schnelle <schnelle@linux.ibm.com> Tested-by:
Wenjia Zhang <wenjia@linux.ibm.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- include/uapi/linux/in.h 2 additions, 0 deletionsinclude/uapi/linux/in.h
- net/smc/Makefile 1 addition, 1 deletionnet/smc/Makefile
- net/smc/af_smc.c 14 additions, 2 deletionsnet/smc/af_smc.c
- net/smc/smc_inet.c 159 additions, 0 deletionsnet/smc/smc_inet.c
- net/smc/smc_inet.h 22 additions, 0 deletionsnet/smc/smc_inet.h