+
+
+define KernelPackage/nlmon
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Virtual netlink monitoring device
+ KCONFIG:=CONFIG_NLMON
+ FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
+ AUTOLOAD:=$(call AutoProbe,nlmon)
+endef
+
+define KernelPackage/nlmon/description
+ Kernel module which adds a monitoring device for netlink.
+endef
+
+$(eval $(call KernelPackage,nlmon))
+
+
+define KernelPackage/mdio
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=MDIO (clause 45) PHY support
+ KCONFIG:=CONFIG_MDIO
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/net/mdio.ko
+ AUTOLOAD:=$(call AutoLoad,32,mdio)
+endef
+
+define KernelPackage/mdio/description
+ Kernel modules for MDIO (clause 45) PHY support
+endef
+
+$(eval $(call KernelPackage,mdio))
+
+define KernelPackage/macsec
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
+ DEPENDS:=+kmod-crypto-gcm
+ KCONFIG:=CONFIG_MACSEC
+ FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
+ AUTOLOAD:=$(call AutoLoad,13,macsec)
+endef
+
+define KernelPackage/macsec/description
+ MACsec is an encryption standard for Ethernet.
+endef
+
+$(eval $(call KernelPackage,macsec))
+
+
+define KernelPackage/netlink-diag
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Netlink diag support for ss utility
+ KCONFIG:=CONFIG_NETLINK_DIAG
+ FILES:=$(LINUX_DIR)/net/netlink/netlink_diag.ko
+ AUTOLOAD:=$(call AutoLoad,31,netlink-diag)
+endef
+
+define KernelPackage/netlink-diag/description
+ Netlink diag is a module made for use with iproute2's ss utility
+endef
+
+$(eval $(call KernelPackage,netlink-diag))
+
+
+define KernelPackage/inet-diag
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=INET diag support for ss utility
+ KCONFIG:= \
+ CONFIG_INET_DIAG \
+ CONFIG_INET_TCP_DIAG \
+ CONFIG_INET_UDP_DIAG \
+ CONFIG_INET_RAW_DIAG \
+ CONFIG_INET_DIAG_DESTROY=n
+ FILES:= \
+ $(LINUX_DIR)/net/ipv4/inet_diag.ko \
+ $(LINUX_DIR)/net/ipv4/tcp_diag.ko \
+ $(LINUX_DIR)/net/ipv4/udp_diag.ko \
+ $(LINUX_DIR)/net/ipv4/raw_diag.ko
+ AUTOLOAD:=$(call AutoLoad,31,inet_diag tcp_diag udp_diag raw_diag)
+endef
+
+define KernelPackage/inet-diag/description
+Support for INET (TCP, DCCP, etc) socket monitoring interface used by
+native Linux tools such as ss.
+endef
+
+$(eval $(call KernelPackage,inet-diag))
+
+
+define KernelPackage/wireguard
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=WireGuard secure network tunnel
+ DEPENDS:= \
+ +kmod-crypto-lib-chacha20poly1305 \
+ +kmod-crypto-lib-curve25519 \
+ +kmod-udptunnel4 \
+ +IPV6:kmod-udptunnel6
+ KCONFIG:= \
+ CONFIG_WIREGUARD \
+ CONFIG_WIREGUARD_DEBUG=n
+ FILES:=$(LINUX_DIR)/drivers/net/wireguard/wireguard.ko
+ AUTOLOAD:=$(call AutoProbe,wireguard)
+endef
+
+define KernelPackage/wireguard/description
+ WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes
+ state-of-the-art cryptography. It aims to be faster, simpler, leaner, and
+ more useful than IPSec, while avoiding the massive headache. It intends to
+ be considerably more performant than OpenVPN. WireGuard is designed as a
+ general purpose VPN for running on embedded interfaces and super computers
+ alike, fit for many different circumstances. It uses UDP.
+endef
+
+$(eval $(call KernelPackage,wireguard))
+
+
+define KernelPackage/netconsole
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Network console logging support
+ KCONFIG:=CONFIG_NETCONSOLE \
+ CONFIG_NETCONSOLE_DYNAMIC=n
+ FILES:=$(LINUX_DIR)/drivers/net/netconsole.ko
+ AUTOLOAD:=$(call AutoProbe,netconsole)
+endef
+
+define KernelPackage/netconsole/description
+ Network console logging support.
+endef
+
+$(eval $(call KernelPackage,netconsole))
+
+
+define KernelPackage/qrtr
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Qualcomm IPC Router support
+ HIDDEN:=1
+ KCONFIG:=CONFIG_QRTR
+ FILES:= \
+ $(LINUX_DIR)/net/qrtr/qrtr.ko
+ AUTOLOAD:=$(call AutoProbe,qrtr)
+endef
+
+define KernelPackage/qrtr/description
+ Qualcomm IPC Router support
+endef
+
+$(eval $(call KernelPackage,qrtr))
+
+define KernelPackage/qrtr-tun
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=TUN device for Qualcomm IPC Router
+ DEPENDS:=+kmod-qrtr
+ KCONFIG:=CONFIG_QRTR_TUN
+ FILES:= $(LINUX_DIR)/net/qrtr/qrtr-tun.ko
+ AUTOLOAD:=$(call AutoProbe,qrtr-tun)
+endef
+
+define KernelPackage/qrtr-tun/description
+ TUN device for Qualcomm IPC Router
+endef
+
+$(eval $(call KernelPackage,qrtr-tun))
+
+define KernelPackage/qrtr-smd
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=SMD IPC Router channels
+ DEPENDS:=+kmod-qrtr @TARGET_ipq807x
+ KCONFIG:=CONFIG_QRTR_SMD
+ FILES:= $(LINUX_DIR)/net/qrtr/qrtr-smd.ko
+ AUTOLOAD:=$(call AutoProbe,qrtr-smd)
+endef
+
+define KernelPackage/qrtr-smd/description
+ SMD IPC Router channels
+endef
+
+$(eval $(call KernelPackage,qrtr-smd))
+
+define KernelPackage/qrtr-mhi
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=MHI IPC Router channels
+ DEPENDS:=+kmod-mhi-bus +kmod-qrtr
+ KCONFIG:=CONFIG_QRTR_MHI
+ FILES:= $(LINUX_DIR)/net/qrtr/qrtr-mhi.ko
+ AUTOLOAD:=$(call AutoProbe,qrtr-mhi)
+endef
+
+define KernelPackage/qrtr-mhi/description
+ MHI IPC Router channels
+endef
+
+$(eval $(call KernelPackage,qrtr-mhi))