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>
This commit is contained in:
Yousong Zhou
2018-09-05 06:21:51 +00:00
parent 76e57b333d
commit f2bf8d3d4c
10 changed files with 190 additions and 69 deletions
+33
View File
@@ -27,3 +27,36 @@ mainly a wrapper around `ovs-ctl` and `ovn-ctl` with simple knobs from
/etc/init.d/openvswitch status
Use `ovs-ctl` and `ovn-ctl` directly for more functionalities
# Open vSwitch in-tree Linux datapath modules
The Open vSwitch build system uses regexp and conditional-compilation
heuristics to support building the shipped kernel module source code against a
wide range of kernels, as of openvswitch-2.10, the list is supposed to include
vanilla linux 3.10 to 4.15, plus a few distro kernels.
It may NOT work
- Sometimes the code does not compile
- Sometimes the code compiles but insmod will fail
- Sometimes modules are loaded okay but actually does not function right
For these reasons, the in-tree datapath modules are NOT visible/enabled by
default.
Building and using in-tree datapath modules requires some level of devel
abilities to proceed. You are expected to configure build options and build
the code on your own
E.g. pair openvswitch userspace with in-tree datapath module
CONFIG_DEVEL=y
CONFIG_PACKAGE_openvswitch=y
# CONFIG_PACKAGE_kmod-openvswitch is not set
CONFIG_PACKAGE_kmod-openvswitch-intree=y
E.g. replace in-tree datapath module with upstream version
opkg remove --force-depends kmod-openvswitch-intree
opkg install kmod-openvswitch
ovs-ctl force-reload-kmod