Question regarding the IEEE floating point format used in RFC 363 0

"Nelke, Jens" <jens.nelke@KEYMILE.COM> Thu, 29 July 2004 11:50 UTC

Received: from cherry.ease.lsoft.com (cherry.ease.lsoft.com [209.119.0.109]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA05212 for <ospf-archive@LISTS.IETF.ORG>; Thu, 29 Jul 2004 07:50:40 -0400 (EDT)
Received: from vms.dc.lsoft.com (209.119.0.2) by cherry.ease.lsoft.com (LSMTP for Digital Unix v1.1b) with SMTP id <7.00E2D77D@cherry.ease.lsoft.com>; Thu, 29 Jul 2004 7:50:39 -0400
Received: from PEACH.EASE.LSOFT.COM by PEACH.EASE.LSOFT.COM (LISTSERV-TCP/IP release 1.8e) with spool id 28119607 for OSPF@PEACH.EASE.LSOFT.COM; Thu, 29 Jul 2004 07:50:37 -0400
Received: from 192.76.144.61 by WALNUT.EASE.LSOFT.COM (SMTPL release 1.0i) with TCP; Thu, 29 Jul 2004 07:39:41 -0400
Received: from bommel.kecam-han.de ([193.99.158.1]) by smtp01do.de.uu.net (8.9.3p2/5.5.5) with ESMTP id NAA11226 for <OSPF@PEACH.EASE.LSOFT.COM>; Thu, 29 Jul 2004 13:39:37 +0200 (MET DST)
Received: from mailrelay.kecam-han.de (ldap [10.9.1.54]) by bommel.kecam-han.de (8.11.6+Sun/8.9.1) with ESMTP id i6TBePM01539 for <OSPF@PEACH.EASE.LSOFT.COM>; Thu, 29 Jul 2004 13:40:25 +0200 (MET DST)
Received: from exchange1.kecam-han.de (localhost [127.0.0.1]) by mailrelay.kecam-han.de (8.12.2/8.12.2) with ESMTP id i6TBdYhp012284 for <OSPF@PEACH.EASE.LSOFT.COM>; Thu, 29 Jul 2004 13:39:35 +0200 (MEST)
Received: by exchange1.ke-elektronik.de with Internet Mail Service (5.5.2653.19) id <MKTZVHP3>; Thu, 29 Jul 2004 13:42:21 +0200
X-MS-TNEF-Correlator: <FE7A715E1037D711830A0002A5512D9A01BC29D2@exchange1.ke-elektronik.de>
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain; charset="iso-8859-1"
Message-ID: <FE7A715E1037D711830A0002A5512D9A01BC29D2@exchange1.ke-elektronik.de>
Date: Thu, 29 Jul 2004 13:42:17 +0200
Reply-To: Mailing List <OSPF@PEACH.EASE.LSOFT.COM>
Sender: Mailing List <OSPF@PEACH.EASE.LSOFT.COM>
From: "Nelke, Jens" <jens.nelke@KEYMILE.COM>
Subject: Question regarding the IEEE floating point format used in RFC 363 0
To: OSPF@PEACH.EASE.LSOFT.COM
Precedence: list

Hi everybody,

I have some questions on the IEEE floating point format. The format contains
a mantissa of 23 Bits. As I understood the floating point format is
calculated by using the 23 Bits beginning with the most significant Bit of a
value together with an appropriate exponent. All values which can be stored
within the 23 Bits (0x7FFFFF->) will be precise, larger values may lead to
rounding errors. Let me show you an example for unreserved bandwidth of what
I mean:

Gigabit Ethernet Interface -> 1000000000 Bits/s -> 125000000 Bytes/s ->
0x7735940 Bytes/s this value fits into the 23 Bit long mantissa.

On this interface a 1 MBit/s LSP is established:

1 MBit/s -> 1000000 Bits/s -> 125000 Bytes/s -> 0x1E848 Bytes/s

After establishing the LSP the unreserved bandwidth would be:

Unreserved Bandwidth -> 124875000 Bytes/s -> 0x77170F8 Bytes/s we would need
a mantissa of 24 Bits to represent this value correct. Because we only have
23 Bits available the value stored in the floating point format would be:

0x77170F0 Bytes/s -> 124874992 Bytes/s

This value would be passed to all other OSPF-TE routers in the network and
would lead to a wrong picture of the bandwidth available.

Does anybody know if during the standardization process this fact was taken
into concern? And how large the bandwidth changes were estimated to be, am I
thinking to small ;-)?

The second problem with the IEEE floating point format is the maximum size
of the interface. Future networks will contain not just 100 MBit and Gigabit
interfaces but also be 10 or 100 Gigabit interfaces. Even 10 Gigabit
interfaces cannot be used correctly with the current format. Example:

10 Gigabit interface -> 10000000000 Bits/s -> 1250000000 Bytes/s ->
0x4A817C80 Bytes/s this leads to 24 Bits being needed to represent this
value. A neighbor would see the following unreserved bandwidth:

0x4A817C00 Bytes/s -> 1249999872 Bytes/s -> 9999998976 Bits/s

This problem is the same as shown above and leads to errors during bandwidth
calculation.

Why weren't the values stored in unsigned long with the units Kilobits/s if
I remember correct this kind of encoding is used in some of the MPLS TE
MIBs.

Is there currently any work done on this issue?

I know that some of the problems can be reduced by using rounding
calculations, but the nicer solution in my opinion would be to use kilobits
per second as a unit for the bandwith stored in a 32 Bit value.

Regards

Jens

----------------------------------------------------------------------------
----------------
Dipl.-Ing. Jens Nelke             KEYMILE GmbH
Entwicklung                         Wohlenbergstr. 3, 30179 Hannover
----------------------------------------------------------------------------
----------------
Phone:   +49 511 978197-657
Fax:  +49 511 978197-671       < mailto:jens.nelke@keymile.com
<mailto:jens.nelke@keymile.com> >
< http://keymile.com/ <http://keymile.com/> >
----------------------------------------------------------------------------
----------------