Since commit b7c24497baea ("mpls: load mpls_gso after mpls_iptunnel"), mpls_iptunnel tries to load mpls_gso. Therefore, we need to build mpls_gso when mpls_iptunnel is selected (patch 1).
There's also the act_mpls module that can push MPLS headers on GSO packets. This module also depends on mpls_gso (patch 2). Guillaume Nault (2): mpls: Make MPLS_IPTUNNEL select NET_MPLS_GSO net/sched: act_mpls: Add softdep on mpls_gso.ko net/mpls/Kconfig | 1 + net/sched/Kconfig | 2 ++ net/sched/act_mpls.c | 1 + 3 files changed, 4 insertions(+) -- 2.21.3