Re: [OSPF] What is the use of MTU field in DD packet

Paul Wells <pauwells@cisco.com> Thu, 29 May 2008 20:01 UTC

Return-Path: <ospf-bounces@ietf.org>
X-Original-To: ospf-archive@optimus.ietf.org
Delivered-To: ietfarch-ospf-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 323723A6BC9; Thu, 29 May 2008 13:01:46 -0700 (PDT)
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C7DA03A6B27 for <ospf@core3.amsl.com>; Thu, 29 May 2008 13:01:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uQDYcOKTlFFK for <ospf@core3.amsl.com>; Thu, 29 May 2008 13:01:35 -0700 (PDT)
Received: from sj-iport-2.cisco.com (sj-iport-2.cisco.com [171.71.176.71]) by core3.amsl.com (Postfix) with ESMTP id 3F4933A6BAE for <ospf@ietf.org>; Thu, 29 May 2008 12:59:48 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.27,562,1204531200"; d="scan'208";a="51519033"
Received: from sj-dkim-3.cisco.com ([171.71.179.195]) by sj-iport-2.cisco.com with ESMTP; 29 May 2008 12:59:47 -0700
Received: from sj-core-1.cisco.com (sj-core-1.cisco.com [171.71.177.237]) by sj-dkim-3.cisco.com (8.12.11/8.12.11) with ESMTP id m4TJxljj004933; Thu, 29 May 2008 12:59:47 -0700
Received: from xbh-sjc-231.amer.cisco.com (xbh-sjc-231.cisco.com [128.107.191.100]) by sj-core-1.cisco.com (8.13.8/8.13.8) with ESMTP id m4TJxlRZ017816; Thu, 29 May 2008 19:59:47 GMT
Received: from xfe-sjc-212.amer.cisco.com ([171.70.151.187]) by xbh-sjc-231.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 29 May 2008 12:59:47 -0700
Received: from pauwells-linux.cisco.com ([10.19.20.100]) by xfe-sjc-212.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 29 May 2008 12:59:46 -0700
Message-ID: <483F0B31.40103@cisco.com>
Date: Thu, 29 May 2008 14:59:45 -0500
From: Paul Wells <pauwells@cisco.com>
User-Agent: Thunderbird 2.0.0.14 (X11/20080501)
MIME-Version: 1.0
To: Acee Lindem <acee@redback.com>
References: <079701c889ec$22702080$0200a8c0@your029b8cecfe> <C71840B5-D198-4EA8-B132-0EFD68F54FD8@redback.com> <FDC03E35ADE75E40946C3E92BE45EA5E01518A42@emailbng2.jnpr.net><BDF86469-AC88-444C-BABD-A80F4E774A41@redback.com><483D9ECE.5080300@cisco.com><DDD4820E-1879-486B-8C3A-66CA4C58AFF4@redback.com><483DCF2F.2040801@cisco.com> <FC4EC379-E871-4610-BAC2-DD89E59E5887@redback.com> <34BDD2A93E5FD84594BB230DD6C18EA2046DBEC5@nuova-ex1.hq.nuovaimpresa.com> <E3F65CA6-4DF0-4BCB-8CFE-9D4FDFEC9F10@redback.com> <1C8A838F-FFFF-414D-AF88-A3CF2A9B88C9@redback.com>
In-Reply-To: <1C8A838F-FFFF-414D-AF88-A3CF2A9B88C9@redback.com>
X-OriginalArrivalTime: 29 May 2008 19:59:46.0522 (UTC) FILETIME=[8B530BA0:01C8C1C6]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=15422; t=1212091187; x=1212955187; c=relaxed/simple; s=sjdkim3002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=pauwells@cisco.com; z=From:=20Paul=20Wells=20<pauwells@cisco.com> |Subject:=20Re=3A=20[OSPF]=20What=20is=20the=20use=20of=20M TU=20field=20in=20DD=20packet |Sender:=20; bh=bPDVxNfxuLDFO9oMVhpW6NWN+kTYcw2yoIXzXfGGmw4=; b=n11Cl2i9aQ1wynrdt8V4vV5tStsgZT5hSYngEetAvatxWeUvjUu63gbbk8 12SX/IxQU1s+GGv95MATuZ0cejChBV3myAoZwJDUYmJoQ1N8No27GmbNSD1Z X1jmniS3bN;
Authentication-Results: sj-dkim-3; header.From=pauwells@cisco.com; dkim=pass ( sig from cisco.com/sjdkim3002 verified; );
Cc: OSPF List <ospf@ietf.org>
Subject: Re: [OSPF] What is the use of MTU field in DD packet
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: ospf-bounces@ietf.org
Errors-To: ospf-bounces@ietf.org

Hi Acee,

This scheme looks okay to me. I have a couple of 
questions/suggestions, though. You say:

"If the IPv6 and IPv4 MTUs differ, the M6-bit MUST be set for 
non-IPv6 address families."

Do we also need to add a sentence like:

If the IPv6 and IPv4 MTUs are the same, the M6-bit MUST NOT be set 
for non-IPv6 address families.

in order to preclude an implementation setting the M6-bit in all 
cases?

Also, what happens when the M6-bits of routers on the link don't 
match? The text specifies that the router which has differing 
IPv4/IPv6 MTUs will send 1280 byte OSPFv3 packets, but it's really 
the other router(s) on the link that need to do this because they 
don't know what that router's IPv6 MTU is. I'd suggest changing 
the third paragraph to something like:

If the M6-bit is set in a received Database Description packet for 
a non-IPv6 address family, the receiving router MUST NOT check the 
Interface MTU in the Database Exchange packet against the 
receiving interface's IPv6 MTU and it MUST send OSPFv3 packets no 
larger than 1280 octets.

Thanks,
Paul

Acee Lindem wrote:
> Those of you who have worked with me in the past will not be surprised 
> that I have come up with a slightly different solution. However, I think 
> this is a simpler approach allows an OSPFv3 router to disable IPv6 MTU 
> checking for non-IPv6 address families even if their IPv6 MTU matches 
> their IPv4 MTU. 
> 
> 
> 2.7.  Database Description Maximum Transmissoin Unit (MTU)
>       Specification for Non-IPv6 AFs
> 
>    For address families other than IPv6, both the MTU for the address
>    family of the instance and IPv6 MTU used for OSPFv3 maximum packet
>    determination must be considered.  The MTU in the Database
>    Description packet MUST always contain the MTU corresponding to the
>    advertised address family.  For example, if the instance corresponds
>    to an IPv4 address family, the IPv4 MTU for the interface MUST be
>    specified in the interface MTU field.  As specified section 10.6 of
>    [OSPFV2], the Database Description packet will be rejected if the MTU
>    is greater than the receiving interface's MTU for the address family
>    corresponding to the instance.  This behavior will assure an
>    adjacency is not formed and address family specific routes are not
>    installed over a path with conflicting MTUs.
> 
>    The value used for OSPFv3 maximum packet size determination must also
>    be compatible an adjacency to be established.  Since only a single
>    MTU field is specified, the M6-bit is defined by this specification.
>    If the M6-bit is set, the OSPFv3 router will send OSPFv3 packets no
>    larger than 1280 octets, the minimum IPv6 MTU (refer to [IPV6]).  If
>    the M6-bit is clear, the specified MTU should also be checked against
>    the IPv6 MTU and the Database Description packet should be rejected
>    if the MTU is larger than the receiving interface's IPv6 MTU.  If the
>    IPv6 and IPv4 MTUs differ, the M6-bit MUST be set for non-IPv6
>    address families.
> 
>    If the M6-bit is set in a received Database Description packet for a
>    non-IPv6 address family, the receiving router MUST NOT check the
>    Interface MTU in the Database Exchange packet against the receiving
>    interface's IPv6 MTU.
> 
>    The figure below graphically depicts the OSPFv3 Database Packet:
> 
>       0                   1                   2                    3
>       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7  8 9 0 1
>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+
>      |      3        |       2       |        Packet Length            |
>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+
>      |                           Router ID                             |
>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+
>      |                             Area ID                             |
>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+
>      |           Checksum            |  Instance ID  |      0          |
>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+
>      |       0       |               Options                           |
>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+
>      |        Interface MTU          |      0        |0|0|0|M6|0|I|M|MS|
>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+
>      |                    DD sequence number                           |
>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+
>      |                                                                 |
>      +-                                                               -+
>      |                                                                 |
>      +-                     An LSA Header                             -+
>      |                                                                 |
>      +-                                                               -+
>      |                                                                 |
>      +-                                                               -+
>      |                                                                 |
>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+
>      |                       ...                                       |
> 
>                  The OSPFv3 Database Description Packet
> 
>    The changed fields in the Database Description packet are described
>    below.  The remaining fields are unchanged from [OSPFV3].
> 
> 
>    Interface MTU
>       The size in octets of the largest address-family specific datagram
>       that can be sent out the associated interface without
>       fragmentation.  The MTUs of common Internet link types can be
>       found in Table 7-1 of [MTUDISC].  Interface MTU should be set to 0
>       in Database Description packets sent over virtual links.
> 
>    M6-bit
>       The Minimum IPv6 MTU bit - this bit indicates the sender wishes
>       that the minumum IPv6 MTU be used for OSPFv3 maximum packet size
>       determination.
> 
> Thanks,
> Acee
> 
> On May 29, 2008, at 10:04 AM, Acee Lindem wrote:
> 
>> Hi Sina,
>> Other than it will be a pain to specify, I like #2 with one  
>> variation. I say that if the new bit is clear, the 2 MTUs are equal  
>> and the specified MTU is simply checked against both MTUs. If it is  
>> set, it means the MTUs differ and we need to use the IPv6 minimum for  
>> OSPFv3 packet computation. As someone may point out, it's actually  
>> more complex - I'll post proposed text (hopefully, later today).
>> Thanks,
>> Acee
>> On May 28, 2008, at 10:11 PM, Sina Mirtorabi wrote:
>>
>>> Hi Acee,
>>>
>>>>> This still leaves the question of what to do for af-alt when
>>>>> routing address families other than IPv6. It seems that there are
>>>>> two cases of interest in deciding which MTU to advertise in
>>>> the DBD
>>>>> packets:
>>>>>
>>>>> 1. IPv6 MTUs match, but IPv4 MTUs differ.
>>>>> 2. IPv6 MTUs differ, but IPv4 MTUs match.
>>>>>
>>>>> In the first case I don't think we're doing anyone a favor by
>>>>> installing routes in the IPv4 RIB that will be unreliable due to a
>>>>> MTU mismatch.
>>>>>
>>>>> In the second case OSPFv3 flooding and synchronization may be
>>>>> compromised. A side effect of this may be that the adjacency never
>>>>> forms, or having formed may later fail.
>>>>>
>>>>> Short of resorting to LLS or some other way of communicating both
>>>>> MTUs it seems we have to pick one or the other.
>>>>>
>>>>> I'd like to propose that we use the DBD packet to communicate the
>>>>> IPv4 MTU when routing that address family, and use the IPv6
>>>> minimum
>>>>> MTU of 1280 bytes for OSPFv3 protocol packets.
>>>>
>>>> This is a coherent proposal. I'd like to bounce this off the other
>>>> authors and would solicit general comments. The question is whether
>>>> the OSPFv3 protocol checking for MTU mismatches is worth relegated
>>>> OSPFv3 exchange and flooding to the the IPv6 minimum MTU. I'm not
>>>> sure it does but I'd like to open it up to a brief discussion.
>>>
>>> One issue is backward compatibility, if there is any implementation of
>>> alt draft, then we cannot just change the MTU in the DD packet from  
>>> IPv6
>>> to IPv4 MTU. If we don't worry about backward compatibility (no  
>>> deployed
>>> implementation) then we have a shot to define as appropriate. There  
>>> are
>>> couple of options
>>>
>>> 1) Paul's proposal however I would add that IPv6 Path MTU discovery
>>> should be used.
>>>
>>> 2) We can set a bit in the DD packet to indicate that the MTU value is
>>> for both v4 and v6, if this bit is clear (i.e. MTU mismatch between v4
>>> and v6) then the MTU field in DD packet is for corresponding AF, e.g.
>>> IPv4 and for IPv6 mtu we have to use 1) (minimum MTU), the  
>>> advantage of
>>> this is that unless MTU is really different between v4 and v6 you  
>>> don't
>>> blindly reduce the IPv6 mtu
>>>
>>> 3) carry the MTU value for both IPv6 and IPv4 either in DD packet  
>>> (there
>>> are unused octet although not contiguous block) or through LLS.
>>>
>>> 4) any other options
>>>
>>>
>>> The advantage of 2) a part from simplicity is that by not knowing the
>>> IPv6 MTU we fall back to minimum MTU and adj will be formed, for 3) if
>>> there is a MTU mismatch then unless you change the rule and state that
>>> in case of mismatch, default minimum MTU should be used, the adj will
>>> not be established if we follow the MTU mismatch rule. The only
>>> advantage of the 3) compared to 2) is that in case IPv4 and IPv6 does
>>> not match AND IPv6 are the same between the system, the actual IPv6  
>>> MTU
>>> (which is carried) is used instead of Minimum MTU.
>>>
>>> thanks
>>> Sina
>>>
>>>>
>>>> Thanks,
>>>> Acee
>>>>
>>>>
>>>>
>>>>>
>>>>> Thanks,
>>>>> Paul
>>>>>
>>>>> Acee Lindem wrote:
>>>>>> Hi Paul,
>>>>>> On May 28, 2008, at 2:05 PM, Paul Wells wrote:
>>>>>>> Hi Acee,
>>>>>>>
>>>>>>> I disagree about the "original intent" of the MTU field.
>>>> As I see
>>>>>>> it, it's function is to prevent an OSPF adjacency from forming
>>>>>>> over a link where the endpoints disagree about the link MTU. We
>>>>>>> do this primarily to prevent the data plane from using a link
>>>>>>> that will drop packets sent to a system with an MTU smaller than
>>>>>>> ours.
>>>>>> I happen to remember the discussion of this problem on the OSPF
>>>>>> list and this was not the primary motivation. There were lots of
>>>>>> problems with bridged heterogeneous LANs with mismatched MTUs
>>>>>> (ethernet, FDDI, token ring, and the worst of all technologies -
>>>>>> ATM emulated LANs :^).  Adjacencies would come up fine initially
>>>>>> but the exchange process would hang indefinitely when they were
>>>>>> restarted due to the router with the larger MTU having a larger
>>>>>> database and trying to use full DD packets. Unfortunately, the
>>>>>> OSPF list was hosted on a server at Microsoft Corporation
>>>> in those
>>>>>> days and I don't have access to archives. Here is some text from
>>>>>> RFC 2178, appendix G: G.9 Detecting interface MTU mismatches
>>>>>>    When two neighboring routers have a different interface
>>>> MTU for
>>>>>> their
>>>>>>    common network segment, serious problems can ensue: large
>>>>>> packets are
>>>>>>    prevented from being successfully transferred from one router
>>>>>> to the
>>>>>>    other, impairing OSPF's flooding algorithm and possibly creating
>>>>>>    "black holes" for user data traffic.
>>>>>>    This memo provides a fix for the interface MTU mismatch
>>>> problem by
>>>>>>    advertising the interface MTU in Database Description packets.
>>>>>> When a
>>>>>>    router receives a Database description packet advertising an MTU
>>>>>>    larger than the router can receive, the router drops
>>>> the Database
>>>>>>    Description packet. This prevents an adjacency from forming,
>>>>>> telling
>>>>>>    OSPF flooding and user data traffic to avoid the connection
>>>>>> between
>>>>>>    the two routers. For more information, see Sections
>>>> 10.6, 10.8,
>>>>>> and
>>>>>>    A.3.3.
>>>>>> On the other hand, once the MTU checking was implemented, I
>>>>>> believe data plane MTU consistency has been purported as a
>>>>>> benefit. If we used the IPv4 MTU in the IPv4 address database
>>>>>> exchanges, we could still have an IPv6 MTU mismatch. One could
>>>>>> depend on the unicast IPv6 address family for this checking but,
>>>>>> heretofore, we've kept the instances independent. Thanks,
>>>>>> Acee
>>>>>>>
>>>>>>> While OSPFv3 certainly needs to know the IPv6 link MTU when
>>>>>>> building it's packets, this information should be available
>>>>>>> locally without reference to the MTU field in the DBD packet.
>>>>>>>
>>>>>>> So, I would argue that in af-alt the MTU in the DBD
>>>> packet should
>>>>>>> be for the address family we are routing, not IPv6 in all cases.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Paul
>>>>>>>
>>>>>>> Acee Lindem wrote:
>>>>>>>> Hi Prasanna,
>>>>>>>> On May 28, 2008, at 8:18 AM, Prasanna Kumar A.S wrote:
>>>>>>>>> Hi
>>>>>>>>>   I just wanted to understand what the primary use of
>>>>>>>>> exchanging  MTU in
>>>>>>>>> DD packets and doing MTU-check is? Is it only for the control
>>>>>>>>> plane or
>>>>>>>>> is it for the DATA-plane?
>>>>>>>> Control-plane - when sending DD, LSR, and LSU packets, OSPF
>>>>>>>> will  attempt to send as many LSA headers or complete LSAs as
>>>>>>>> will fit in a  maximum sized packet.
>>>>>>>>> Why I am getting this doubt is, in draft-ietf-ospf-af-
>>>>>>>>> alt-06.txt  doesn't
>>>>>>>>> specify which MTU we should use while exchanging the DD packet
>>>>>>>>> for the
>>>>>>>>> ipv4-unicast or ipv4-mutlticast Address-family, is it
>>>> ipv6-mtu or
>>>>>>>>> ipv4-mtu?
>>>>>>>> We have this clarified in the an update which we post soon.
>>>>>>>> Since  this is OSPFv3 which using IPv6 for transport,
>>>> you always
>>>>>>>> use the  IPv6 MTU.
>>>>>>>> Thanks,
>>>>>>>> Acee
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> Prasanna
>>>>>>>>> _______________________________________________
>>>>>>>>> OSPF mailing list
>>>>>>>>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>>>>>>> https://www.ietf.org/mailman/listinfo/ospf
>>>>>>>> _______________________________________________
>>>>>>>> OSPF mailing list
>>>>>>>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>>>>>> https://www.ietf.org/mailman/listinfo/ospf
>>>>
>>>> _______________________________________________
>>>> OSPF mailing list
>>>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>> https://www.ietf.org/mailman/listinfo/ospf
>>>>
>>
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>> https://www.ietf.org/mailman/listinfo/ospf
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf
_______________________________________________
OSPF mailing list
OSPF@ietf.org
https://www.ietf.org/mailman/listinfo/ospf