RE: RFC-2283 question

"Rijsman, Bruno" <brijsman@unisphere.cc> Tue, 09 November 1999 17:32 UTC

Received: from segue.merit.edu (segue.merit.edu [198.108.1.41]) by nic.merit.edu (8.9.1a/8.9.1) with ESMTP id MAA12396 for <idr-archive@nic.merit.edu>; Tue, 9 Nov 1999 12:32:31 -0500 (EST)
Received: by segue.merit.edu (Postfix) id 63B185DDC2; Tue, 9 Nov 1999 12:32:03 -0500 (EST)
Delivered-To: idr-outgoing@merit.edu
Received: by segue.merit.edu (Postfix, from userid 56) id 21C445DD97; Tue, 9 Nov 1999 12:32:03 -0500 (EST)
Received: from mail.nyp.ans.net (mail.nyp.ans.net [147.225.190.25]) by segue.merit.edu (Postfix) with ESMTP id 4DF9E5DDC2 for <bgp@merit.edu>; Tue, 9 Nov 1999 12:32:00 -0500 (EST)
Received: from ntserver1.redstonecom.com (ntserver1.redstonecom.com [199.105.223.130]) by mail.nyp.ans.net (8.9.3/8.9.3) with ESMTP id MAA21218 for <bgp@ans.net>; Tue, 9 Nov 1999 12:31:59 -0500 (EST)
Received: by NTSERVER1 with Internet Mail Service (5.0.1460.8) id <45HQQ69L>; Tue, 9 Nov 1999 12:31:30 -0500
Message-ID: <90ABC30C744ED311B16E00500464BEFC23662E@NTSERVER1>
From: "Rijsman, Bruno" <brijsman@unisphere.cc>
To: Hua Kuang <hkuang@nortelnetworks.com>
Cc: BGP exploder <bgp@ans.net>
Subject: RE: RFC-2283 question
Date: Tue, 09 Nov 1999 12:31:30 -0500
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.0.1460.8)
Content-Type: text/plain; charset="iso-8859-1"
Sender: owner-idr@merit.edu
Precedence: bulk

Hua> MP_(UN)REACH_NLRI are path attributes, in RFC1771 and the later 
Hua> BGP4 drafts, each path attribute contains a triple <type, length,
value>,  
Hua> this "length" here should be enough to hold the NLRIs information.

Hua,

This works fine if an MP_REACH_NLRI attribute only contains a single triple 
<Address Family Information, Next Hop Information, Network Layer
Reachability Information>

+----------------------------+
| 14 (MP_REACH_NLRI)         | Path Attribute Type Code
+----------------------------+
| LEN                        | Path Attribute Length 
+----------------------------+ ........................
| 1 (IPv4)                   | AFI           ^       ^
+----------------------------+               | 9     | LEN
| 2 (multicast)              | SAFI          |       |
+----------------------------+               |       |
| 4                          | Next Hop Len  |       |
+----------------------------+               |       |
| 5.6.7.8                    | Next Hop      |       |
+----------------------------+               |       |
| 0                          | Nr of NSPAs   v       |
+----------------------------+..................     |
| 2.2.1.0 / 24               |   ^                   |
| 2.2.2.0 / 24               |   | LEN - 9           |
| 2.2.3.0 / 24               |   v                   v
+----------------------------+.........................

However, if there are multiple triples per MP_REACH_NLRI attributes (as
allowed by
RFC 2283 but not by DRAFT draft-ietf-idr-bgp-multiprotocol-v2-03) there is
no way
to figure out how many prefixes there are in each triple:

+----------------------------+
| 14 (MP_REACH_NLRI)         | Path Attribute Type Code
+----------------------------+
| LEN                        | Path Attribute Length 
+----------------------------+ ........................
| 1 (IPv4)                   | AFI           ^       ^
+----------------------------+               | ???   | LEN
| 1 (unicast)                | SAFI          |       |
+----------------------------+               |       |
| 4                          | Next Hop Len  |       |
+----------------------------+               |       |
| 1.2.3.4                    | Next Hop      |       |
+----------------------------+               |       |
| 0                          | Nr of NSPAs   |       |
+----------------------------+.....          |       |
| 1.1.1.0 / 24               |   ^           |       |
| 1.1.2.0 / 24               |   | ???       |       |
| 1.1.3.0 / 24               |   v           v       |
+----------------------------+.................      |
| 1 (IPv4)                   | AFI           ^       |
+----------------------------+               | ???   |
| 2 (multicast)              | SAFI          |       |
+----------------------------+               |       |
| 4                          | Next Hop Len  |       |
+----------------------------+               |       |
| 5.6.7.8                    | Next Hop      |       |
+----------------------------+               |       |
| 0                          | Nr of NSPAs   |       |
+----------------------------+.....          |       |
| 2.2.1.0 / 24               |   ^           |       |
| 2.2.2.0 / 24               |   | ???       |       |
| 2.2.3.0 / 24               |   v           v       v
+----------------------------+.........................

Bruno.

-----Original Message-----
From: Hua Kuang [mailto:hkuang@nortelnetworks.com]
Sent: Tuesday, November 09, 1999 12:08 PM
To: Rijsman, Bruno
Cc: BGP exploder
Subject: Re: RFC-2283 question


Bruno,

MP_(UN)REACH_NLRI
are path attributes,  in RFC1771 and the later BGP4 drafts,
each path attribute contains a triple
< type, length, value>,  this "length" here should be
enough to hold the NLRIs information.


Hua


"Rijsman, Bruno" wrote:

> RFC-2283 contains the following paragraph (which was not present in
> draft-ietf-idr-bgp4-multiprotocol-v2-03.txt) at the bottom of page 2:
>
> The [MP_REACH_NLRI] attribute contains ONE OR MORE triples <Address Family
> Information, Next Hop Information, Network Layer Reachability
Information>,
> ..."
>
> The encoding of the MP_REACH_NLRI attribute contains fields for
> * length of the next hop network address,
> * the number of SNPAs
> * the length of each SNPA
> * the length of each prefix
>
> However, the encoding of the MP_REACH_NLRI attribute does NOT contain a
> field for the number of prefixes (i.e. the number of prefixes and hence
the
> total length of the NLRI field is implicit).
>
> My question is: if the MP_REACH_NLRI contains MORE THAN ONE triple
<Address
> Family Information, Next Hop Information, Network Layer Reachability
> Information>, how do I know where one triple ends and the next begins? In
> other words, how can I find out what the number of prefixes is in a given
> triple?
>
> It seems to me that in the absence of a "number of prefixes" field, we can
> only have ONE triple per MP_REACH_NLRI attribute and therefor only ONE
type
> of NLRI (i.e. address family) per UPDATE message (since dupplicate
> attributes are not allowed). Either that or we must include a "number of
> prefixes" field in the MP_REACH_NLRI attribute...
>
> Bruno Rijsman
> Unisphere Solutions