Before this commit the Homa code is "inert": it won't be compiled in kernel builds. This commit adds Homa's Makefile and Kconfig, and also links Homa into net/Makefile and net/Kconfig, so that Homa will be built during kernel builds if enabled (it is disabled by default). Signed-off-by: John Ousterhout <ouster@xxxxxxxxxxxxxxx> --- MAINTAINERS | 7 +++++++ net/Kconfig | 1 + net/Makefile | 1 + net/homa/Kconfig | 19 +++++++++++++++++++ net/homa/Makefile | 14 ++++++++++++++ 5 files changed, 42 insertions(+) create mode 100644 net/homa/Kconfig create mode 100644 net/homa/Makefile diff --git a/MAINTAINERS b/MAINTAINERS index 1389704c7d8d..935d1e995018 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10391,6 +10391,13 @@ F: lib/test_hmm* F: mm/hmm* F: tools/testing/selftests/mm/*hmm* +HOMA TRANSPORT PROTOCOL +M: John Ousterhout <ouster@xxxxxxxxxxxxxxx> +S: Maintained +W: https://homa-transport.atlassian.net/wiki/spaces/HOMA/overview +F: include/uapi/linux/homa.h +F: net/homa/ + HONEYWELL HSC030PA PRESSURE SENSOR SERIES IIO DRIVER M: Petre Rodan <petre.rodan@xxxxxxxxxxxxxxx> L: linux-iio@xxxxxxxxxxxxxxx diff --git a/net/Kconfig b/net/Kconfig index a629f92dc86b..ca8551c1a226 100644 --- a/net/Kconfig +++ b/net/Kconfig @@ -244,6 +244,7 @@ endif source "net/dccp/Kconfig" source "net/sctp/Kconfig" +source "net/homa/Kconfig" source "net/rds/Kconfig" source "net/tipc/Kconfig" source "net/atm/Kconfig" diff --git a/net/Makefile b/net/Makefile index 65bb8c72a35e..18fa3c323187 100644 --- a/net/Makefile +++ b/net/Makefile @@ -44,6 +44,7 @@ obj-y += 8021q/ endif obj-$(CONFIG_IP_DCCP) += dccp/ obj-$(CONFIG_IP_SCTP) += sctp/ +obj-$(CONFIG_HOMA) += homa/ obj-$(CONFIG_RDS) += rds/ obj-$(CONFIG_WIRELESS) += wireless/ obj-$(CONFIG_MAC80211) += mac80211/ diff --git a/net/homa/Kconfig b/net/homa/Kconfig new file mode 100644 index 000000000000..8ba81b00d35f --- /dev/null +++ b/net/homa/Kconfig @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: BSD-2-Clause +# +# Homa transport protocol +# + +menuconfig HOMA + tristate "The Homa transport protocol" + depends on INET + depends on IPV6 + + help + Homa is a network transport protocol for communication within + a datacenter. It provides significantly lower latency than TCP, + particularly for workloads containing a mixture of large and small + messages operating at high network utilization. For more information + see the homa(7) man page or checkout the Homa Wiki at + https://homa-transport.atlassian.net/wiki/spaces/HOMA/overview. + + If unsure, say N. diff --git a/net/homa/Makefile b/net/homa/Makefile new file mode 100644 index 000000000000..3eb192a6ffa6 --- /dev/null +++ b/net/homa/Makefile @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: BSD-2-Clause +# +# Makefile for the Linux implementation of the Homa transport protocol. + +obj-$(CONFIG_HOMA) := homa.o +homa-y:= homa_incoming.o \ + homa_outgoing.o \ + homa_peer.o \ + homa_pool.o \ + homa_plumbing.o \ + homa_rpc.o \ + homa_sock.o \ + homa_timer.o \ + homa_utils.o -- 2.34.1