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

Launchpad Janitor (janitor) wrote :
Download full text (20.5 KiB)

This bug was fixed in the package linux-kvm - 4.15.0-1047.47

---------------
linux-kvm (4.15.0-1047.47) bionic; urgency=medium

  * bionic/linux-kvm: 4.15.0-1047.47 -proposed tracker (LP: #1844383)

  * Bionic update: upstream stable patchset 2019-09-09 (LP: #1843338)
    - mm/zsmalloc.c: fix build when CONFIG_COMPACTION=n

  * please include the kernel module VXLAN (LP: #1811819)
    - [Config] Enable VXLAN module support

  [ Ubuntu: 4.15.0-65.74 ]

  * bionic/linux: 4.15.0-65.74 -proposed tracker (LP: #1844403)
  * arm64: large modules fail to load (LP: #1841109)
    - arm64/kernel: kaslr: reduce module randomization range to 4 GB
    - arm64/kernel: don't ban ADRP to work around Cortex-A53 erratum #843419
    - arm64: fix undefined reference to 'printk'
    - arm64/kernel: rename module_emit_adrp_veneer->module_emit_veneer_for_adrp
    - [config] Remove CONFIG_ARM64_MODULE_CMODEL_LARGE
  * CVE-2018-20976
    - xfs: clear sb->s_fs_info on mount failure
  * br_netfilter: namespace sysctl operations (LP: #1836910)
    - net: bridge: add bitfield for options and convert vlan opts
    - net: bridge: convert nf call options to bits
    - netfilter: bridge: port sysctls to use brnf_net
    - netfilter: bridge: namespace bridge netfilter sysctls
    - netfilter: bridge: prevent UAF in brnf_exit_net()
  * tuntap: correctly set SOCKWQ_ASYNC_NOSPACE (LP: #1830756)
    - tuntap: correctly set SOCKWQ_ASYNC_NOSPACE
  * Bionic update: upstream stable patchset 2019-08-30 (LP: #1842114)
    - HID: Add 044f:b320 ThrustMaster, Inc. 2 in 1 DT
    - MIPS: kernel: only use i8253 clocksource with periodic clockevent
    - mips: fix cacheinfo
    - netfilter: ebtables: fix a memory leak bug in compat
    - ASoC: dapm: Fix handling of custom_stop_condition on DAPM graph walks
    - bonding: Force slave speed check after link state recovery for 802.3ad
    - can: dev: call netif_carrier_off() in register_candev()
    - ASoC: Fail card instantiation if DAI format setup fails
    - st21nfca_connectivity_event_received: null check the allocation
    - st_nci_hci_connectivity_event_received: null check the allocation
    - ASoC: ti: davinci-mcasp: Correct slot_width posed constraint
    - net: usb: qmi_wwan: Add the BroadMobi BM818 card
    - qed: RDMA - Fix the hw_ver returned in device attributes
    - isdn: mISDN: hfcsusb: Fix possible null-pointer dereferences in
      start_isoc_chain()
    - netfilter: ipset: Fix rename concurrency with listing
    - isdn: hfcsusb: Fix mISDN driver crash caused by transfer buffer on the stack
    - perf bench numa: Fix cpu0 binding
    - can: sja1000: force the string buffer NULL-terminated
    - can: peak_usb: force the string buffer NULL-terminated
    - net/ethernet/qlogic/qed: force the string buffer NULL-terminated
    - NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim()
    - HID: input: fix a4tech horizontal wheel custom usage
    - SMB3: Kernel oops mounting a encryptData share with CONFIG_DEBUG_VIRTUAL
    - net: cxgb3_main: Fix a resource leak in a error path in 'init_one()'
    - net: hisilicon: make hip04_tx_reclaim non-reentrant
    - net: hisilicon: fix hip04-xmit never return TX_BUSY
    - net: hisili...

Changed in linux-kvm (Ubuntu Bionic):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :
Download full text (126.8 KiB)

This bug was fixed in the package linux-kvm - 5.0.0-1019.20

---------------
linux-kvm (5.0.0-1019.20) disco; urgency=medium

  * disco/linux-kvm: 5.0.0-1019.20 -proposed tracker (LP: #1846017)

  [ Ubuntu: 5.0.0-31.33 ]

  * disco/linux: 5.0.0-31.33 -proposed tracker (LP: #1846026)
  * Packaging resync (LP: #1786013)
    - [Packaging] update helper scripts
  * /proc/self/maps paths missing on live session (was vlc won't start; eoan
    19.10 & bionic 18.04 ubuntu/lubuntu/kubuntu/xubuntu/ubuntu-mate dailies)
    (LP: #1842382)
    - SAUCE: Revert "UBUNTU: SAUCE: shiftfs: enable overlayfs on shiftfs"

linux-kvm (5.0.0-1018.19) disco; urgency=medium

  * disco/linux-kvm: 5.0.0-1018.19 -proposed tracker (LP: #1844353)

  * fails to build when CONFIG_COMPACTION=n (LP: #1843069)
    - mm/zsmalloc.c: fix build when CONFIG_COMPACTION=n

  * please include the kernel module VXLAN (LP: #1811819)
    - [Config] Enable VXLAN module support

  [ Ubuntu: 5.0.0-30.32 ]

  * disco/linux: 5.0.0-30.32 -proposed tracker (LP: #1844362)
  * Disco update: upstream stable patchset 2019-08-20 (LP: #1840846)
    - Revert "e1000e: fix cyclic resets at link up with active tx"
    - e1000e: start network tx queue only when link is up
    - Input: synaptics - enable SMBUS on T480 thinkpad trackpad
    - nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header
    - drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel RDT
    - firmware: improve LSM/IMA security behaviour
    - irqchip/gic-v3-its: Fix command queue pointer comparison bug
    - clk: ti: clkctrl: Fix returning uninitialized data
    - efi/bgrt: Drop BGRT status field reserved bits check
    - perf/core: Fix perf_sample_regs_user() mm check
    - ARM: dts: gemini Fix up DNS-313 compatible string
    - ARM: omap2: remove incorrect __init annotation
    - afs: Fix uninitialised spinlock afs_volume::cb_break_lock
    - x86/apic: Fix integer overflow on 10 bit left shift of cpu_khz
    - be2net: fix link failure after ethtool offline test
    - ppp: mppe: Add softdep to arc4
    - sis900: fix TX completion
    - ARM: dts: imx6ul: fix PWM[1-4] interrupts
    - pinctrl: mcp23s08: Fix add_data and irqchip_add_nested call order
    - dm table: don't copy from a NULL pointer in realloc_argv()
    - dm verity: use message limit for data block corruption message
    - x86/boot/64: Fix crash if kernel image crosses page table boundary
    - x86/boot/64: Add missing fixup_pointer() for next_early_pgt access
    - HID: chicony: add another quirk for PixArt mouse
    - pinctrl: mediatek: Ignore interrupts that are wake only during resume
    - cpu/hotplug: Fix out-of-bounds read when setting fail state
    - pinctrl: mediatek: Update cur_mask in mask/mask ops
    - linux/kernel.h: fix overflow for DIV_ROUND_UP_ULL
    - genirq: Delay deactivation in free_irq()
    - genirq: Fix misleading synchronize_irq() documentation
    - genirq: Add optional hardware synchronization for shutdown
    - x86/ioapic: Implement irq_get_irqchip_state() callback
    - x86/irq: Handle spurious interrupt after shutdown gracefully
    - x86/irq: Seperate unused system vectors from spurious entry again
    - AR...

Changed in linux-kvm (Ubuntu Disco):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :
Download full text (5.9 KiB)

This bug was fixed in the package linux-kvm - 5.3.0-1003.3

---------------
linux-kvm (5.3.0-1003.3) eoan; urgency=medium

  * eoan/linux-kvm: 5.3.0-1003.3 -proposed tracker (LP: #1847294)

  * Miscellaneous Ubuntu changes
    - [Config] Enable some test modules needed for kernel selftests

  [ Ubuntu: 5.3.0-18.19 ]

  * eoan/linux: 5.3.0-18.19 -proposed tracker (LP: #1847298)
  * Enable the Dragonboards out of Eoan/master arm64 kernel (LP: #1846704)
    - [Packaging] arm64: snapdragon: introduce a snapdragon flavour
    - [Packaging] arm64: snapdragon: switch kernel format to Image
    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8916=y
    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8994=y
    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8996=y
    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8998=y
    - [Config] arm64: snapdragon: CONFIG_REGULATOR_QCOM_RPMH=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_BAM_DMA=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_HIDMA_MGMT=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_HIDMA=y
    - [Config] arm64: snapdragon: CONFIG_COMMON_CLK_QCOM=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_CLK_RPMH=y
    - [Config] arm64: snapdragon: CONFIG_MSM_GCC_8916=y
    - [Config] arm64: snapdragon: CONFIG_MSM_GCC_8994=y
    - [Config] arm64: snapdragon: CONFIG_MSM_MMCC_8996=y
    - [Config] arm64: snapdragon: CONFIG_MSM_GCC_8998=y
    - [Config] arm64: snapdragon: CONFIG_HWSPINLOCK_QCOM=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_APCS_IPC=y
    - [Config] arm64: snapdragon: CONFIG_RPMSG_QCOM_GLINK_RPM=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_GENI_SE=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_SMEM=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_SMD_RPM=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_SMP2P=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_SMSM=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_QFPROM=y
    - [Config] arm64: snapdragon: CONFIG_SERIAL_QCOM_GENI=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_TSENS=y
    - [Config] arm64: snapdragon: CONFIG_REGULATOR_QCOM_SMD_RPM=y
    - [Config] arm64: snapdragon: CONFIG_QCOM_CLK_SMD_RPM=y
    - [Config] arm64: snapdragon: CONFIG_RPMSG_QCOM_SMD=y
    - [Config] arm64: snapdragon: CONFIG_MFD_QCOM_RPM=y
    - [Config] arm64: snapdragon: CONFIG_SCSI_UFSHCD=y
    - [Config] arm64: snapdragon: CONFIG_SCSI_UFSHCD_PLATFORM=y
    - [Config] arm64: snapdragon: CONFIG_SCSI_UFS_HISI=y
    - [Config] arm64: snapdragon: CONFIG_MMC_SDHCI=y
    - [Config] arm64: snapdragon: CONFIG_MMC_SDHCI_PLTFM=y
    - [Config] arm64: snapdragon: CONFIG_MMC_SDHCI_MSM=y
    - [Config] arm64: snapdragon: CONFIG_REGULATOR_QCOM_SPMI=y
    - [Config] arm64: snapdragon: CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_USB_HS=y
    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_QMP=y
    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_UFS=y
    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_USB_HSIC=y
    - [Config] arm64: snapdragon: CONFIG_USB_CHIPIDEA_OF=y
    - [Config] arm64: snapdragon: CONFIG_USB_EHCI_HCD_PLATFORM=y
    - [Config] arm64: snapdragon: CONFIG_EXTCON_USB_GPIO=y
    - [Config] arm64: snapdragon: CONFIG_REGULATOR_...

Read more...

Changed in linux-kvm (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers