please include the kernel module VXLAN

Bug #1811819 reported by Oz Tiram on 2019-01-15
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-kvm (Ubuntu)
Undecided
Unassigned
Xenial
Undecided
Po-Hsu Lin
Bionic
Undecided
Po-Hsu Lin
Disco
Undecided
Po-Hsu Lin

Bug Description

== SRU Justification ==
VXLAN is used by Flannel and maybe other CNI plugins for Kubernetes,
it will be great to enable the support in KVM kernels.

== Fix ==
Enable the CONFIG_VXLAN in the config file.
CONFIG_NET_UDP_TUNNEL=m and other configs were added automatically with
updateconfigs.

CONFIG_OPENVSWITCH_VXLAN supprt was excluded intentionally as this is
not requested (and to reduce the binary size).

== Test ==
Test kernels could be found here:
https://people.canonical.com/~phlin/kernel/lp-1811819-vxlan/

Kernel smoke tested.
User has also verified that all the patched kernels are working as
expected.

== Regression Potentail ==
Low, this enables the support for VXLAN module on KVM kernels, we might
see some related bugs in the future. Since we already have this in the
generic kernel so the impact should be small.

== Original Bug Report ==
The kernel built with this packages does have VXLAN compiled.
It would be nice if this could be fixed since VXLAN is used by Flannel and maybe other CNI plugins for Kubernetes.

$ grep -i vxlan /boot/config-4.4.0-1039-kvm
# CONFIG_VXLAN is not set

When running a kubernetes cluster with Flannel with this image:

$ kubectl logs kube-flannel-ds-amd64-jfkc8 -n kube-system --kubeconfig=case1-admin.conf
I0116 11:35:34.176962 1 main.go:475] Determining IP address of default interface
I0116 11:35:34.177231 1 main.go:488] Using interface with name ens3 and address 10.32.192.14
I0116 11:35:34.177259 1 main.go:505] Defaulting external address to interface address (10.32.192.14)
I0116 11:35:34.191358 1 kube.go:131] Waiting 10m0s for node controller to sync
I0116 11:35:34.273844 1 kube.go:294] Starting kube subnet manager
I0116 11:35:35.274075 1 kube.go:138] Node controller sync successful
I0116 11:35:35.274106 1 main.go:235] Created subnet manager: Kubernetes Subnet Manager - node-1-case1
I0116 11:35:35.274113 1 main.go:238] Installing signal handlers
I0116 11:35:35.274233 1 main.go:353] Found network config - Backend type: vxlan
I0116 11:35:35.274292 1 vxlan.go:120] VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false
E0116 11:35:35.275803 1 main.go:280] Error registering network: operation not supported
I0116 11:35:35.275860 1 main.go:333] Stopping shutdownHandler...

Oz Tiram (oz-tiram) on 2019-01-15
description: updated
Oz Tiram (oz-tiram) on 2019-01-16
description: updated
Po-Hsu Lin (cypressyew) wrote :

Hello,

Can you give this test kernel a try?
https://people.canonical.com/~phlin/kernel/lp-1811819-vxlan/X/

Config changed in this kernel:
+# CONFIG_GENEVE is not set
+# CONFIG_OPENVSWITCH_VXLAN is not set
-# CONFIG_VXLAN is not set
+CONFIG_VXLAN=m

$ sudo modprobe vxlan
$ lsmod | grep vxlan
vxlan 36864 0
ip6_udp_tunnel 12288 1 vxlan
udp_tunnel 12288 1 vxlan

Do you need this feature in other KVM kernels?
Thanks

Changed in linux-kvm (Ubuntu):
status: New → Incomplete
Po-Hsu Lin (cypressyew) wrote :

Hello,
can you give the kernel in comment #1 a try?
Thanks

Jeffrey Forman (jeffreyforman) wrote :

I just tried this on a ubuntu cloud 18.04.3 VM and it works. Could this get foreported to the 4.15.x kernels as well?

Po-Hsu Lin (cypressyew) wrote :

Hi Jeffery,
thanks for the test, sure this can be enabled on Bionic 4.15 (and newer for the future releases) as well.
I will build a test kernel tomorrow for you to test.

Changed in linux-kvm (Ubuntu Xenial):
assignee: nobody → Po-Hsu Lin (cypressyew)
Po-Hsu Lin (cypressyew) wrote :

Please give the B/D KVM kernel here a try:
https://people.canonical.com/~phlin/kernel/lp-1811819-vxlan/B
https://people.canonical.com/~phlin/kernel/lp-1811819-vxlan/D

Changes for D-KVM:
+# CONFIG_OPENVSWITCH_VXLAN is not set
-# CONFIG_VXLAN is not set
+CONFIG_VXLAN=m

Changes for B-KVM:
+# CONFIG_GENEVE is not set
+# CONFIG_GTP is not set
-# CONFIG_NET_UDP_TUNNEL is not set
+CONFIG_NET_UDP_TUNNEL=m
+# CONFIG_OPENVSWITCH_VXLAN is not set
-# CONFIG_VXLAN is not set
+CONFIG_VXLAN=m

Changes for X-KVM:
+# CONFIG_GENEVE is not set
-# CONFIG_NET_UDP_TUNNEL is not set
+CONFIG_NET_UDP_TUNNEL=m
+# CONFIG_OPENVSWITCH_VXLAN is not set
-# CONFIG_VXLAN is not set
+CONFIG_VXLAN=m

Jeffrey Forman (jeffreyforman) wrote :

Both of those, B and D, are confirmed to work.

Po-Hsu Lin (cypressyew) wrote :

Thanks again! Jeffrey.
I have submit the SRU request:
https://lists.ubuntu.com/archives/kernel-team/2019-August/103191.html

description: updated
Changed in linux-kvm (Ubuntu Bionic):
assignee: nobody → Po-Hsu Lin (cypressyew)
Changed in linux-kvm (Ubuntu Disco):
assignee: nobody → Po-Hsu Lin (cypressyew)
Changed in linux-kvm (Ubuntu Xenial):
status: New → In Progress
Changed in linux-kvm (Ubuntu Bionic):
status: New → In Progress
Changed in linux-kvm (Ubuntu Disco):
status: New → In Progress
Changed in linux-kvm (Ubuntu):
status: Incomplete → In Progress
Jeffrey Forman (jeffreyforman) wrote :

Just curious on an update of when this should be available in the apt repositories? Thanks!

Changed in linux-kvm (Ubuntu Xenial):
status: In Progress → Fix Committed
Changed in linux-kvm (Ubuntu Bionic):
status: In Progress → Fix Committed
Changed in linux-kvm (Ubuntu Disco):
status: In Progress → Fix Committed
Po-Hsu Lin (cypressyew) wrote :

Hi Jeffrey,
This should be available in the end of September (next kernel release)
Thanks

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers