You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

314 lines
12 KiB

openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
openvswitch: provide in-tree kmod builds Open vSwitch 2.10 introduces meters support to the kernel datapath. In upstream Linux, the feature is only available since 4.15 This is mainly for make the newly introduced meter features in linux kernel datapath more easily available root@OpenWrt:/# ovs-ofctl -OOpenFlow13 meter-features br0 OFPST_METER_FEATURES reply (OF1.3) (xid=0x2): max_meter:4294967295 max_bands:1 max_color:0 band_types: drop capabilities: kbps pktps burst stats root@OpenWrt:/# Size comparison between in-tree and upstreamed modules are attached 2800 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve-intree/lib/modules/4.14.67/vport-geneve.ko 2736 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-geneve/lib/modules/4.14.67/vport-geneve.ko 2596 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre-intree/lib/modules/4.14.67/vport-gre.ko 2536 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-gre/lib/modules/4.14.67/vport-gre.ko 288320 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-intree/lib/modules/4.14.67/openvswitch.ko 118984 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch/lib/modules/4.14.67/openvswitch.ko 2792 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-lisp-intree/lib/modules/4.14.67/vport-lisp.ko 2788 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-stt-intree/lib/modules/4.14.67/vport-stt.ko 3668 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan-intree/lib/modules/4.14.67/vport-vxlan.ko 3400 Sep 5 08:47 ipkg-mips_24kc/kmod-openvswitch-vxlan/lib/modules/4.14.67/vport-vxlan.ko Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
6 years ago
  1. #
  2. # Copyright (C) 2013 Julius Schulz-Zander <julius@net.t-labs.tu-berlin.de>
  3. # Copyright (C) 2014-2017 OpenWrt.org
  4. # Copyright (C) 2018 Yousong Zhou <yszhou4tech@gmail.com>
  5. #
  6. # This is free software, licensed under the GNU General Public License v2.
  7. # See /LICENSE for more information.
  8. #
  9. include $(TOPDIR)/rules.mk
  10. include $(INCLUDE_DIR)/kernel.mk
  11. # Checklist on version bump
  12. #
  13. # - Check acinclude.m4 for range of supported kernel versions: "but version newer than .* is not supported"
  14. # - Check and update kmod dependencies when necessary (runtime module load check in the least)
  15. #
  16. PKG_NAME:=openvswitch
  17. PKG_VERSION:=2.10.1
  18. PKG_RELEASE:=1
  19. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  20. PKG_SOURCE_URL:=https://www.openvswitch.org/releases/
  21. PKG_HASH:=4f93c764295952848a924271250d7c6a6a53747d0019ef6ff880aa8ea6897c80
  22. PKG_LICENSE:=Apache-2.0
  23. PKG_LICENSE_FILES:=LICENSE
  24. PKG_BUILD_DEPENDS:=python/host python-six/host
  25. PKG_USE_MIPS16:=0
  26. PKG_BUILD_PARALLEL:=1
  27. PKG_FIXUP:=autoreconf
  28. PKG_INSTALL:=1
  29. PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
  30. include $(INCLUDE_DIR)/package.mk
  31. include ../../lang/python/python-host.mk
  32. include ../../lang/python/python-package.mk
  33. ovs_kmod_packages:=
  34. ovs_kmod_intree_kernel_patchver_min:=3.10
  35. ovs_kmod_intree_kernel_patchver_max:=4.15
  36. ovs_kmod_intree_not_supported:=$(strip $(call kernel_patchver_lt,$(ovs_kmod_intree_kernel_patchver_min))$(call kernel_patchver_gt,$(ovs_kmod_intree_kernel_patchver_max)))
  37. ovs_kmod_intree_dir:=$(PKG_BUILD_DIR)/datapath/linux
  38. ovs_kmod_upstream_dir:=$(LINUX_DIR)/net/openvswitch
  39. ovs_kmod_package_name=$(if $(filter openvswitch,$(1)),openvswitch,$(1))
  40. ovs_kmod_is_intree=$(filter %-intree,$(1))
  41. ovs_kmod_upstream_name=kmod-$(call ovs_kmod_package_name,$(patsubst %-intree,%,$(1)))
  42. ovs_kmod_package_provides=$(call ovs_kmod_upstream_name,$(1))
  43. define OvsKmodPackageTemplate
  44. define KernelPackage/$(call ovs_kmod_package_name,$(1))
  45. SECTION:=kernel
  46. CATEGORY:=Kernel modules
  47. SUBMENU:=Network Support
  48. TITLE:=$(ovs_kmod_$(1)_title)
  49. DEPENDS:=$(ovs_kmod_$(1)_depends) $(if $(call ovs_kmod_is_intree,$(1)),@DEVEL $(if $(ovs_kmod_intree_not_supported),@BROKEN))
  50. PROVIDES:=$(call ovs_kmod_package_provides,$(1))
  51. KCONFIG:=$(ovs_kmod_$(1)_kconfig)
  52. FILES:=$(ovs_kmod_$(1)_files)
  53. AUTOLOAD:=$(call AutoProbe,$(foreach m,$(ovs_kmod_$(1)_files),$(patsubst %.ko,%,$(basename $(m)))))
  54. endef
  55. ovs_kmod_packages+=$(call ovs_kmod_package_name,$(1))
  56. endef
  57. ovs_kmod_openvswitch_title:=Open vSwitch kernel datapath (upstream)
  58. ovs_kmod_openvswitch_kconfig:=CONFIG_OPENVSWITCH
  59. ovs_kmod_openvswitch_depends:=\
  60. +kmod-lib-crc32c +kmod-mpls \
  61. +kmod-nf-nat +IPV6:kmod-nf-nat6 \
  62. +kmod-nf-conntrack +IPV6:kmod-nf-conntrack6
  63. ovs_kmod_openvswitch_files:=$(ovs_kmod_upstream_dir)/openvswitch.ko
  64. $(eval $(call OvsKmodPackageTemplate,openvswitch))
  65. ovs_kmod_openvswitch-gre_title:=Open vSwitch GRE tunneling support (upstream)
  66. ovs_kmod_openvswitch-gre_kconfig:= CONFIG_OPENVSWITCH_GRE
  67. ovs_kmod_openvswitch-gre_depends:= +kmod-openvswitch +kmod-gre
  68. ovs_kmod_openvswitch-gre_files:= $(ovs_kmod_upstream_dir)/vport-gre.ko
  69. $(eval $(call OvsKmodPackageTemplate,openvswitch-gre))
  70. ovs_kmod_openvswitch-vxlan_title:=Open vSwitch VXLAN tunneling support (upstream)
  71. ovs_kmod_openvswitch-vxlan_kconfig:= CONFIG_OPENVSWITCH_VXLAN
  72. ovs_kmod_openvswitch-vxlan_depends:= +kmod-openvswitch +kmod-vxlan
  73. ovs_kmod_openvswitch-vxlan_files:= $(ovs_kmod_upstream_dir)/vport-vxlan.ko
  74. $(eval $(call OvsKmodPackageTemplate,openvswitch-vxlan))
  75. ovs_kmod_openvswitch-geneve_title:=Open vSwitch Geneve tunneling support (upstream)
  76. ovs_kmod_openvswitch-geneve_kconfig:= CONFIG_OPENVSWITCH_GENEVE
  77. ovs_kmod_openvswitch-geneve_depends:= +kmod-openvswitch +kmod-geneve
  78. ovs_kmod_openvswitch-geneve_files:= $(ovs_kmod_upstream_dir)/vport-geneve.ko
  79. $(eval $(call OvsKmodPackageTemplate,openvswitch-geneve))
  80. # NOTE depends
  81. #
  82. # - kmod-gre: with linux-4.14, ovs-2.10, when ovs decides to not
  83. # USE_UPSTREAM_TUNNEL, it requires kmod-gre to be enabled so that
  84. # CONFIG_NET_IPGRE_DEMUX is enabled and ovs will have rpl_gre_init()
  85. # compiled in.
  86. #
  87. # - kmod-gre6: with linux-4.14, ovs-2.10, when ovs decides to not
  88. # USE_UPSTREAM_TUNNEL, it requires xfrm6_tunnel_register() from
  89. # net/ipv6/tunnel6.ko, which will be pulled in by kmod-ip6-tunnel, which
  90. # will be pulled in by kmod-gre6. NOTE that tunnel6.ko itself cannot be
  91. # enabled and selected on its own
  92. #
  93. ovs_kmod_openvswitch-intree_title:=Open vSwitch kernel datapath (in tree)
  94. ovs_kmod_openvswitch-intree_depends:=$(ovs_kmod_openvswitch_depends) +kmod-gre +IPV6:kmod-gre6
  95. ovs_kmod_openvswitch-intree_files:= $(ovs_kmod_intree_dir)/openvswitch.ko
  96. $(eval $(call OvsKmodPackageTemplate,openvswitch-intree))
  97. ovs_kmod_openvswitch-gre-intree_title:=Open vSwitch GRE tunneling support (in tree)
  98. ovs_kmod_openvswitch-gre-intree_depends:= +kmod-openvswitch-intree +kmod-gre
  99. ovs_kmod_openvswitch-gre-intree_files:= $(ovs_kmod_intree_dir)/vport-gre.ko
  100. $(eval $(call OvsKmodPackageTemplate,openvswitch-gre-intree))
  101. ovs_kmod_openvswitch-vxlan-intree_title:=Open vSwitch VXLAN tunneling support (in tree)
  102. ovs_kmod_openvswitch-vxlan-intree_depends:= +kmod-openvswitch-intree +kmod-vxlan
  103. ovs_kmod_openvswitch-vxlan-intree_files:= $(ovs_kmod_intree_dir)/vport-vxlan.ko
  104. $(eval $(call OvsKmodPackageTemplate,openvswitch-vxlan-intree))
  105. ovs_kmod_openvswitch-geneve-intree_title:=Open vSwitch Geneve tunneling support (in tree)
  106. ovs_kmod_openvswitch-geneve-intree_depends:= +kmod-openvswitch-intree +kmod-geneve
  107. ovs_kmod_openvswitch-geneve-intree_files:= $(ovs_kmod_intree_dir)/vport-geneve.ko
  108. $(eval $(call OvsKmodPackageTemplate,openvswitch-geneve-intree))
  109. ovs_kmod_openvswitch-stt-intree_title:=Open vSwitch STT tunneling support (in tree)
  110. ovs_kmod_openvswitch-stt-intree_depends:= +kmod-openvswitch-intree
  111. ovs_kmod_openvswitch-stt-intree_files:= $(ovs_kmod_intree_dir)/vport-stt.ko
  112. $(eval $(call OvsKmodPackageTemplate,openvswitch-stt-intree))
  113. ovs_kmod_openvswitch-lisp-intree_title:=Open vSwitch LISP tunneling support (in tree)
  114. ovs_kmod_openvswitch-lisp-intree_depends:= +kmod-openvswitch-intree
  115. ovs_kmod_openvswitch-lisp-intree_files:= $(ovs_kmod_intree_dir)/vport-lisp.ko
  116. $(eval $(call OvsKmodPackageTemplate,openvswitch-lisp-intree))
  117. ovs_packages:=
  118. ovs_package_name=$(if $(filter openvswitch,$(1)),openvswitch,openvswitch-$(1))
  119. define OvsPackageTemplate
  120. define Package/$(call ovs_package_name,$(1))
  121. SECTION:=net
  122. SUBMENU:=Open vSwitch
  123. CATEGORY:=Network
  124. URL:=https://www.openvswitch.org
  125. TITLE:=$(ovs_$(1)_title)
  126. HIDDEN:=$(ovs_$(1)_hidden)
  127. DEPENDS:=$(ovs_$(1)_depends) +libunbound
  128. endef
  129. define Package/$(call ovs_package_name,$(1))/install
  130. $(foreach f,$(ovs_$(1)_files),
  131. $(INSTALL_DIR) $$(1)/$(dir $(f))
  132. $(CP) $(PKG_INSTALL_DIR)/$(f) $$(1)/$(dir $(f))
  133. )
  134. $(ovs_$(1)_install)
  135. endef
  136. ovs_packages+=$(call ovs_package_name,$(1))
  137. endef
  138. # Dependency review
  139. #
  140. # for f in sbin/*; do echo $f; readelf -d $f | grep -i shared; done
  141. # for f in bin/*; do echo $f; readelf -d $f | grep -i shared; done
  142. # for f in lib/*.so; do echo $f; readelf -d $f | grep -i shared; done
  143. #
  144. ovs_libopenvswitch_title:=Open vSwitch (libopenvswitch.so)
  145. ovs_libopenvswitch_hidden:=1
  146. ovs_libopenvswitch_depends:=+libopenssl +librt
  147. ovs_libopenvswitch_files:=usr/lib/libopenvswitch*.so*
  148. $(eval $(call OvsPackageTemplate,libopenvswitch))
  149. ovs_libofproto_title:=Open vSwitch (libofproto.so libsflow.so)
  150. ovs_libofproto_hidden:=1
  151. ovs_libofproto_depends:=+librt
  152. ovs_libofproto_files:=usr/lib/libofproto*.so* usr/lib/libsflow*.so*
  153. $(eval $(call OvsPackageTemplate,libofproto))
  154. ovs_libovsdb_title:=Open vSwitch (libovsdb.so)
  155. ovs_libovsdb_hidden:=1
  156. ovs_libovsdb_depends:=+librt
  157. ovs_libovsdb_files:=usr/lib/libovsdb*.so*
  158. $(eval $(call OvsPackageTemplate,libovsdb))
  159. ovs_libovn_title:=Open vSwitch (libovn.so)
  160. ovs_libovn_hidden:=1
  161. ovs_libovn_depends:=+librt
  162. ovs_libovn_files:=usr/lib/libovn*.so*
  163. $(eval $(call OvsPackageTemplate,libovn))
  164. ovs_vswitchd_title:=Open vSwitch (ovs-vswitchd)
  165. ovs_vswitchd_hidden:=1
  166. ovs_vswitchd_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libofproto
  167. ovs_vswitchd_files:=usr/sbin/ovs-vswitchd
  168. $(eval $(call OvsPackageTemplate,vswitchd))
  169. ovs_ovsdb_title:=Open vSwitch (ovsdb-server)
  170. ovs_ovsdb_hidden:=1
  171. ovs_ovsdb_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libovsdb
  172. ovs_ovsdb_files:=usr/sbin/ovsdb-server
  173. $(eval $(call OvsPackageTemplate,ovsdb))
  174. ovs_common_title:=Open vSwitch (common files)
  175. ovs_common_hidden:=1
  176. ovs_common_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libofproto +openvswitch-libovsdb
  177. ovs_common_files:= \
  178. usr/share/openvswitch/scripts/ovs-lib \
  179. usr/share/openvswitch/scripts/ovs-ctl \
  180. usr/share/openvswitch/scripts/ovs-kmod-ctl \
  181. usr/share/openvswitch/scripts/ovs-save \
  182. $(foreach b,ovs-appctl ovs-dpctl ovs-ofctl ovs-vsctl ovsdb-client ovsdb-tool,usr/bin/$(b))
  183. define ovs_common_install
  184. $$(INSTALL_DIR) $$(1)/etc/openvswitch
  185. $$(INSTALL_DIR) $$(1)/etc/init.d
  186. $$(INSTALL_BIN) ./files/openvswitch.init $$(1)/etc/init.d/openvswitch
  187. $$(INSTALL_DIR) $$(1)/etc/config
  188. $$(INSTALL_DATA) ./files/openvswitch.config $$(1)/etc/config/openvswitch
  189. $$(INSTALL_DIR) $$(1)/usr/share/openvswitch/scripts
  190. $$(INSTALL_BIN) ./files/ovs-ctl-wrapper $$(1)/usr/share/openvswitch/scripts/
  191. $$(LN) /usr/share/openvswitch/scripts/ovs-ctl-wrapper $$(1)/usr/bin/ovs-ctl
  192. $$(LN) /usr/share/openvswitch/scripts/ovs-ctl-wrapper $$(1)/usr/bin/ovs-kmod-ctl
  193. endef
  194. define Package/openvswitch-common/conffiles
  195. /etc/openvswitch
  196. endef
  197. $(eval $(call OvsPackageTemplate,common))
  198. # coreutils-sleep is required by ovs-lib for sleeping a fraction of second
  199. #
  200. # uuidgen is required for generating system-id
  201. ovs_openvswitch_title:=Open vSwitch
  202. ovs_openvswitch_hidden:=
  203. ovs_openvswitch_depends:=+librt +coreutils +coreutils-sleep +uuidgen \
  204. +openvswitch-common +openvswitch-vswitchd +openvswitch-ovsdb +kmod-openvswitch
  205. ovs_openvswitch_files:= usr/share/openvswitch/vswitch.ovsschema
  206. $(eval $(call OvsPackageTemplate,openvswitch))
  207. ovs_ovn-common_title:=Open Virtual Network (common files)
  208. ovs_ovn-common_hidden:=1
  209. ovs_ovn-common_depends:=+librt +openvswitch-common +openvswitch-libopenvswitch +openvswitch-libovn +openvswitch-libovsdb
  210. ovs_ovn-common_files:= \
  211. usr/share/openvswitch/scripts/ovn-ctl \
  212. $(foreach b,ovn-nbctl ovn-sbctl ovn-trace ovn-detrace,usr/bin/$(b))
  213. define ovs_ovn-common_install
  214. $$(INSTALL_DIR) $$(1)/usr/share/openvswitch/scripts
  215. $$(LN) /usr/share/openvswitch/scripts/ovs-ctl-wrapper $$(1)/usr/bin/ovn-ctl
  216. endef
  217. $(eval $(call OvsPackageTemplate,ovn-common))
  218. ovs_ovn-north_title:=Open Virtual Network (north package)
  219. ovs_ovn-north_hidden:=
  220. ovs_ovn-north_depends:=+openvswitch-ovsdb +openvswitch-ovn-common
  221. ovs_ovn-north_files:=\
  222. usr/share/openvswitch/ovn-nb.ovsschema \
  223. usr/share/openvswitch/ovn-sb.ovsschema \
  224. usr/bin/ovn-northd
  225. $(eval $(call OvsPackageTemplate,ovn-north))
  226. ovs_ovn-host_title:=Open Virtual Network (chassis package)
  227. ovs_ovn-host_hidden:=
  228. ovs_ovn-host_depends:=+openvswitch +openvswitch-ovn-common
  229. ovs_ovn-host_files:=usr/bin/ovn-controller
  230. $(eval $(call OvsPackageTemplate,ovn-host))
  231. ovs_python_title:=Open vSwitch (Python library)
  232. ovs_python_hidden:=
  233. ovs_python_depends:=+PACKAGE_openvswitch-python:python +PACKAGE_openvswitch-python:python-six
  234. define ovs_python_install
  235. $$(INSTALL_DIR) $$(1)$$(PYTHON_PKG_DIR)
  236. $$(CP) $$(PKG_INSTALL_DIR)/usr/share/openvswitch/python/ovs $$(1)$$(PYTHON_PKG_DIR)
  237. endef
  238. $(eval $(call OvsPackageTemplate,python))
  239. CONFIGURE_ARGS+= \
  240. --enable-ndebug \
  241. --enable-shared \
  242. --disable-libcapng \
  243. CONFIGURE_VARS += \
  244. ovs_cv_flake8=no \
  245. ovs_cv_python3=no \
  246. ovs_cv_sphinx=no \
  247. ovs_cv_python=$(PYTHON) \
  248. ovs_cv_python_host=$(HOST_PYTHON_BIN) \
  249. KARCH=$(LINUX_KARCH) \
  250. ovs_intree_kmod_configs:=CONFIG_PACKAGE_kmod-openvswitch-intree
  251. ovs_intree_kmod_enabled:=$(strip $(foreach c,$(ovs_intree_kmod_configs),$(c)))
  252. PKG_CONFIG_DEPENDS+=$(ovs_intree_kmod_configs)
  253. ifneq ($(ovs_intree_kmod_enabled),)
  254. CONFIGURE_ARGS += --with-linux=$(LINUX_DIR)
  255. endif
  256. TARGET_CFLAGS += -flto -std=gnu99
  257. MAKE_VARS += PYTHONPATH="$(HOST_PYTHONPATH)"
  258. $(foreach p,$(ovs_kmod_packages),\
  259. $(eval $(call KernelPackage,$(p)))\
  260. )
  261. $(foreach p,$(ovs_packages),\
  262. $(eval $(call BuildPackage,$(p)))\
  263. )