Subject: Re: [PATCH net v2] mpls: load mpls_gso after mpls_iptunnel

From: Guillaume Nault <[email-masked]>
Date: Wed, 21 Oct 2020 11:30:41 +0200

On Tue, Oct 20, 2020 at 02:43:33PM +0300, Alexander Ovechkin wrote:
> mpls_iptunnel is used only for mpls encapsuation, and if encaplusated
> packet is larger than MTU we need mpls_gso for segmentation.
> 
> Signed-off-by: Alexander Ovechkin <[email-masked]>
> Acked-by: Dmitry Yakunin <[email-masked]>
> ---
>  net/mpls/mpls_iptunnel.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/net/mpls/mpls_iptunnel.c b/net/mpls/mpls_iptunnel.c
> index 2def85718d94..ef59e25dc482 100644
> --- a/net/mpls/mpls_iptunnel.c
> +++ b/net/mpls/mpls_iptunnel.c
> @@ -300,5 +300,6 @@ static void __exit mpls_iptunnel_exit(void)
>  module_exit(mpls_iptunnel_exit);
>  
>  MODULE_ALIAS_RTNL_LWT(MPLS);
> +MODULE_SOFTDEP("post: mpls_gso");
>  MODULE_DESCRIPTION("MultiProtocol Label Switching IP Tunnels");
>  MODULE_LICENSE("GPL v2");

Then CONFIG_MPLS_IPTUNNEL should probably select CONFIG_NET_MPLS_GSO.
Currently, one can build mpls_iptunnel.ko without mpls_gso.ko.

Also, MPLS encapsulation can also be done with act_mpls.ko. So this
module should probably have this softdep too (and the Kconfig
dependency).