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

Acee Lindem <acee@redback.com> Thu, 29 May 2008 20:20 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 8AA2B28C0E4; Thu, 29 May 2008 13:20:21 -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 B243F28C0DB for <ospf@core3.amsl.com>; Thu, 29 May 2008 13:20:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.437
X-Spam-Level:
X-Spam-Status: No, score=-2.437 tagged_above=-999 required=5 tests=[AWL=0.162, BAYES_00=-2.599]
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 V638mea+Z6WF for <ospf@core3.amsl.com>; Thu, 29 May 2008 13:20:18 -0700 (PDT)
Received: from prattle.redback.com (prattle.redback.com [155.53.12.9]) by core3.amsl.com (Postfix) with ESMTP id B0F853A6B6C for <ospf@ietf.org>; Thu, 29 May 2008 13:20:18 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id 6DAF3DAD23F; Thu, 29 May 2008 13:20:16 -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 16702-09; Thu, 29 May 2008 13:20:16 -0700 (PDT)
Received: from [?????n?IPv6???1] (login004.redback.com [155.53.12.57]) by prattle.redback.com (Postfix) with ESMTP id B6072DAD243; Thu, 29 May 2008 13:20:15 -0700 (PDT)
In-Reply-To: <483F0B31.40103@cisco.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> <483F0B31.40103@cisco.com>
Mime-Version: 1.0 (Apple Message framework v753)
Message-Id: <8D9BA19E-F5C1-4C9A-B813-B191EF4BD1EB@redback.com>
From: Acee Lindem <acee@redback.com>
Date: Thu, 29 May 2008 16:20:14 -0400
To: Paul Wells <pauwells@cisco.com>
X-Mailer: Apple Mail (2.753)
X-Virus-Scanned: by amavisd-new at redback.com
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 Paul,

On May 29, 2008, at 3:59 PM, Paul Wells wrote:

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

No - I'd let an implementation set the bit and use the minimum IPv6  
MTU if they wanted to avoid a mismatch with their neighbors. In other  
words, this would handle the case where the routers IPv4 and IPv6  
MTUs were the same but their neighbor's were not.

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

I don't think this is necessary - 10.6 of [OSPFv2] says the receiver  
should check that the received MTU is not greater than the receiving  
interface MTU. So, in short, the sender indicates what it will send  
(either explicitly or the minimum) and the receiver verifies that it  
can receive this MTU. Perhaps, I didn't articulate this well but I  
gotta get on another conference call in a couple minutes.

Thanks,
Acee



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