Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753843AbcJDHx3 convert rfc822-to-8bit (ORCPT ); Tue, 4 Oct 2016 03:53:29 -0400 Received: from katalix.com ([82.103.140.233]:49557 "EHLO mail.katalix.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751623AbcJDHx1 (ORCPT ); Tue, 4 Oct 2016 03:53:27 -0400 Subject: Re: [PATCH net v2] L2TP:Adjust intf MTU,factor underlay L3,overlay L2 To: "R. Parameswaran" References: <57ED30D7.6000009@katalix.com> <1cec5be4-0719-0dca-d3c6-8c794c867672@katalix.com> Cc: kleptog@svana.org, netdev@vger.kernel.org, davem@redhat.com, linux-kernel@vger.kernel.org, nprachan@brocade.com, rshearma@brocade.com, dfawcus@brocade.com, stephen@networkplumber.org, acme@redhat.com, lboccass@brocade.com, bhong@brocade.com From: James Chapman Organization: Katalix Systems Ltd Message-ID: <149288c4-a352-ae30-ad3a-91d1edfa4bce@katalix.com> Date: Tue, 4 Oct 2016 08:53:14 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2132 Lines: 46 On 04/10/16 04:12, R. Parameswaran wrote: > > Hi James, > > Please see inline, thanks for the reply: > > On Sat, 1 Oct 2016, James Chapman wrote: > >> On 30/09/16 03:39, R. Parameswaran wrote: >>>>> + /* Adjust MTU, factor overhead - underlay L3 hdr, overlay L2 hdr*/ >>>>> + if (tunnel->sock->sk_family == AF_INET) >>>>> + overhead += (ETH_HLEN + sizeof(struct iphdr)); >>>>> + else if (tunnel->sock->sk_family == AF_INET6) >>>>> + overhead += (ETH_HLEN + sizeof(struct ipv6hdr)); >>>> What about options in the IP header? If certain options are set on the >>>> socket, the IP header may be larger. >>>> >>> Thanks for the reply - It looks like IP options can only be >>> enabled through setsockopt on an application's socket (if there's any >>> other way to turn on IP options, please let me know - didn't see any >>> sysctl setting for transmit). This scenario would come >>> into picture when an application opens a raw IP or UDP socket such that it >>> routes into the L2TP logical interface. >> No. An L2TP daemon (userspace) will open a socket for each tunnel that >> it creates. Control and data packets use the same socket, which is the >> socket used by this code. It may set any options on its sockets. L2TP >> tunnel sockets can be created either by an L2TP daemon (managed tunnels) >> or by ip l2tp commands (unmanaged tunnels). >> > One Q I have is whether it would be sufficient to solve this for the > common case (i.e no IP options) and have an expectation that the > administrator will explicitly provision the mtu using the 'ip link ... > mtu' command when dealing with infrequent occurences like IP options? > > But looking at the code, it looks to be possible to pick up whether > options are enabled and how long the options are, from the ip_options struct > embedded in the tunnel socket. If you want me to, I can repost the patch > with this change (will need a few days) - please let me know if this is > what you had in mind. > > Yes, that's what I had in mind. But my preference would be that this would be a new function in the ip core, for use by any encap protocol, where appropriate.