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.

108 lines
5.5 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
  1. # Which packages to install
  2. Install `openvswitch` if you need OpenFlow virtual switch function. It
  3. contains ovs-vswitchd, ovsdb-server and helper utilities such as ovs-vsctl,
  4. ovs-ofctl, ovs-ctl etc.
  5. Linux kernel datapath module openvswitch.ko will also be installed along with
  6. package `openvswitch`. Tunnel encap support for gre, geneve, vxlan can be
  7. included by installing `kmod-openvswitch-{gre,geneve,vxlan}` respectively
  8. For OVN deployment
  9. - Install `openvswitch-ovn-north` for ovs-northd, ovsdb-server, ovn helper utitlies
  10. - Install `openvswitch-ovn-host` for ovn-controller and `openvswitch`
  11. # How to use them
  12. Open vSwitch provides a few very useful helper script in
  13. `/usr/share/openvswitch/scripts/`. A simple initscript is provided. It's
  14. mainly a wrapper around `ovs-ctl` and `ovn-ctl` with simple knobs from
  15. `/etc/config/openvswitch`. Procd is not used here.
  16. /etc/init.d/openvswitch start
  17. /etc/init.d/openvswitch stop
  18. /etc/init.d/openvswitch stop north
  19. /etc/init.d/openvswitch restart ovs
  20. /etc/init.d/openvswitch status
  21. Use `ovs-ctl` and `ovn-ctl` directly for more functionalities
  22. # Open vSwitch in-tree Linux datapath modules
  23. The Open vSwitch build system uses regexp and conditional-compilation
  24. heuristics to support building the shipped kernel module source code against a
  25. wide range of kernels, as of openvswitch-2.10, the list is supposed to include
  26. vanilla linux 3.10 to 4.15, plus a few distro kernels.
  27. It may NOT work
  28. - Sometimes the code does not compile
  29. - Sometimes the code compiles but insmod will fail
  30. - Sometimes modules are loaded okay but actually does not function right
  31. For these reasons, the in-tree datapath modules are NOT visible/enabled by
  32. default.
  33. Building and using in-tree datapath modules requires some level of devel
  34. abilities to proceed. You are expected to configure build options and build
  35. the code on your own
  36. E.g. pair openvswitch userspace with in-tree datapath module
  37. CONFIG_DEVEL=y
  38. CONFIG_PACKAGE_openvswitch=y
  39. # CONFIG_PACKAGE_kmod-openvswitch is not set
  40. CONFIG_PACKAGE_kmod-openvswitch-intree=y
  41. E.g. replace in-tree datapath module with upstream version
  42. opkg remove --force-depends kmod-openvswitch-intree
  43. opkg install kmod-openvswitch
  44. ovs-ctl force-reload-kmod
  45. # UCI configuration options
  46. There are 5 config section types in package openvswitch:
  47. ovs ovn_northd, ovn_controller & ovs_bridge.
  48. Each of these supports a disabled option, which should be
  49. set to 0 to launch the respective daemons.
  50. The ovs section section also supports the options below, to configure a set of
  51. SSL CA, certificate and private key. After adding these to Open vSwitch, you
  52. may specify ssl: connection methods for e.g. the OpenFlow controller. Note that
  53. Open vSwitch only reads these files during startup, so it needs to be restarted
  54. after adding or changing these options.
  55. | Name | Type | Required | Default | Description |
  56. |----------|---------|----------|---------|-----------------------------------|
  57. | disabled | boolean | no | 0 | If set to 1, do not configure SSL |
  58. | ca | string | no | (none) | Path to CA certificate |
  59. | cert | string | no | (none) | Path to certificate |
  60. | key | string | no | (none) | Path to private key |
  61. The ovs_bridge section also supports the options below,
  62. for initialising a virtual bridge with an OpenFlow controller.
  63. | Name | Type | Required | Default | Description |
  64. |--------------------|---------|----------|--------------------------------|------------------------------------------------------------|
  65. | disabled | boolean | no | 0 | If set to true, disable initialisation of the named bridge |
  66. | name | string | no | Inherits UCI config block name | The name of the switch in the OVS daemon |
  67. | controller | string | no | (none) | The endpoint of an OpenFlow controller for this bridge |
  68. | datapath_id | string | no | (none) | The OpenFlow datapath ID for this bridge |
  69. | datapath_desc | string | no | (none) | The OpenFlow datapath description for this bridge |
  70. | drop_unknown_ports | boolean | no | 0 | Remove ports not defined in UCI from the bridge |
  71. | fail_mode | string | no | standalone | The bridge failure mode |
  72. | ports | list | no | (none) | List of ports to add to the bridge |
  73. The ovs_port section can be used to add ports to a bridge. It supports the options below.
  74. | Name | Type | Required | Default | Description
  75. | ---------|---------|----------|---------|------------------------------------------------|
  76. | disabled | boolean | no | 0 | If set to 1, do not add the port to the bridge |
  77. | bridge | string | yes | (none) | Name of the bridge to add the port to |
  78. | port | string | yes | (none) | Name of the port to add to the bridge |
  79. | ofport | integer | no | (none) | OpenFlow port number to be used by the port |
  80. | tag | integer | no | (none) | 802.1Q VLAN tag to set on the port |
  81. | type | string | no | (none) | Port type, e.g. internal, erspan, type, ... |