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

Acee Lindem <acee@redback.com> Thu, 29 May 2008 18:31 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 E848728C0FD; Thu, 29 May 2008 11:31:37 -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 CF5ED3A6B38 for <ospf@core3.amsl.com>; Thu, 29 May 2008 11:31:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.953
X-Spam-Level:
X-Spam-Status: No, score=-1.953 tagged_above=-999 required=5 tests=[AWL=-0.646, BAYES_00=-2.599, HTML_MESSAGE=0.001, MISSING_HEADERS=1.292]
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 gOj8VdwA6ak3 for <ospf@core3.amsl.com>; Thu, 29 May 2008 11:31:34 -0700 (PDT)
Received: from prattle.redback.com (prattle.redback.com [155.53.12.9]) by core3.amsl.com (Postfix) with ESMTP id 8543628C16E for <ospf@ietf.org>; Thu, 29 May 2008 11:24:26 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id 1836684B543 for <ospf@ietf.org>; Thu, 29 May 2008 11:24:26 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23170-01 for <ospf@ietf.org>; Thu, 29 May 2008 11:24:25 -0700 (PDT)
Received: from [?????n?IPv6???1] (login004.redback.com [155.53.12.57]) by prattle.redback.com (Postfix) with ESMTP id 2E41284B53F for <ospf@ietf.org>; Thu, 29 May 2008 11:24:25 -0700 (PDT)
Mime-Version: 1.0 (Apple Message framework v753)
In-Reply-To: <E3F65CA6-4DF0-4BCB-8CFE-9D4FDFEC9F10@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>
Message-Id: <1C8A838F-FFFF-414D-AF88-A3CF2A9B88C9@redback.com>
Cc: OSPF List <ospf@ietf.org>
From: Acee Lindem <acee@redback.com>
Date: Thu, 29 May 2008 14:24:24 -0400
X-Mailer: Apple Mail (2.753)
X-Virus-Scanned: by amavisd-new at redback.com
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: multipart/mixed; boundary="===============0132085738=="
Sender: ospf-bounces@ietf.org
Errors-To: ospf-bounces@ietf.org

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
>>> 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