RFC 3222
Terminology for Forwarding Information Base (FIB) based Router Performance
RFC 3222: Terminology for Forwarding Information Base (FIB) based Router Performance โจ
okay bestie, this one is from December 2001 and it's written by G. Trotter from Agilent Technologies ๐ง It's Informational, which means it's here to inform the Internet community and does not set any kind of standard ๐ The header doesn't list any RFCs it obsoletes or updates, so it's not replacing anything.
Status of This Memo
this memo is giving info for the Internet community ๐ it does not specify an Internet standard of any kind, and distribution of it is unlimited ๐ธ
Copyright Notice
Copyright (C) The Internet Society (2001). All Rights Reserved. ๐
Abstract
so this doc describes the terms you use in a methodology that figures out how fast an IP router can forward packets, depending on the forwarding information base (FIB) that's installed inside it ๐ฆ a router's forwarding performance can be tied to how big its FIB is and how that FIB is put together, which is lowkey the whole point ๐
Table of Contents
1. Introduction.................................................... 2
2. Overview........................................................ 3
3. Existing Definitions............................................ 3
4. Definition Format............................................... 3
5. Definitions - parameters........................................ 4
5.1 Network Prefix................................................. 4
5.2 Network Prefix Length.......................................... 4
5.3 Forwarding Information Base (FIB).............................. 5
5.4 Forwarding Information Base Entry.............................. 6
5.5 Forwarding Information Base Size............................... 6
5.6 Longest Length Prefix Match Algorithm.......................... 7
5.7 Forwarding Information Base Prefix Distribution................ 7
5.8 Per-Interface or Per-Card Forwarding Information Base.......... 8
5.9 Per-Interface Forwarding Information Base Cache................ 9
5.10 Route Aggregation............................................ 10
6. Definitions - metrics.......................................... 10
6.1 Maximum Forwarding Information Base Size...................... 11
6.2 Forwarding Information Base Learning Time..................... 11
6.3 Forwarding Information Base-dependent Throughput.............. 12
6.4 Forwarding Information Base-dependent Latency................. 12
6.5 Forwarding Information Base-dependent Frame Loss Rate......... 13
7. Security Considerations........................................ 13
8. References..................................................... 13
9. Author's Address............................................... 14
10. Full Copyright Statement...................................... 15
1. Introduction โจ
this doc defines the terms you'll use in a methodology that checks how fast IP routers forward packets, based on the forwarding information base installed in the router ๐
the goal here is to figure out how well routers perform as their FIBs keep getting bigger and more complicated ๐
this methodology uses the packet forwarding performance measurements from [2], and it also points to the terminology doc [3] for the terms ๐
2. Overview ๐
so to measure FIB-based router performance, you install different FIBs (5.3) in the router ๐ง the two key things that describe a FIB are the FIB size (5.5) and the FIB prefix distribution (5.7) ๐ a router's performance can depend on these two big factors, especially if the prefix distribution leans toward longer network prefixes (5.1) ๐ you measure the FIB-dependent throughput, latency and frame loss rate (6.3, 6.4, 6.5) using fully meshed traffic flows [2], and that's how you see how the router's performance changes ๐ฆ you might have to test all the way up to the maximum FIB size (6.1) ๐ซถ
when you set up the router for these tests, you either enter the routes in by hand or they get advertised through a routing protocol ๐ ๏ธ it can take a while (that's the FIB learning time (6.2)) before the router has learned every route โณ
when routes get advertised into the router, they should be advertised in a way that doesn't cause route aggregation (5.10) to happen ๐ โโ๏ธ you also need to account for the effect of a per-interface FIB cache (5.9) ๐
3. Existing Definitions ๐
you should check out [3] before you try to use this doc ๐ค [2] talks about a bunch of terms that matter for benchmarking network interconnect devices, so it's worth a read too ๐
4. Definition Format ๐
the definition format is the same as the one in [3], and it's repeated here so you don't have to hunt for it ๐ซถ it looks like this:
X.x Term to be defined. (e.g., Latency)
Definition:
The specific definition for the term.
Discussion:
A brief discussion about the term, it's application and any
restrictions on measurement procedures.
Measurement units:
The units used to report measurements of this term, if applicable.
Issues:
List of issues or conditions that effect this term.
See Also:
List of other terms that are relevant to the discussion of this
term.
5. Definitions - parameters ๐ธ
this section defines the parameters that control how the methodology runs to figure out a router's FIB-based forwarding performance ๐ง
5.1 Network Prefix ๐ฆ
Definition: "A network prefix is . . . a contiguous set of bits at the more significant end of the address that defines a set of systems; host numbers select among those systems."
(this definition is taken straight from section 2.2.5.2, "Classless Inter Domain Routing (CIDR)", in [4] ๐)
Discussion: in CIDR land, the network prefix is the network part of an IP address ๐ people often use "slash (/) notation" to show this part instead of a bitwise mask, and it's giving clean โจ slash notation ties the network prefix length (see 5.2), in bits, to an IP address. for example, 141.184.128.0/17 means the network part of this IPv4 address is 17 bits wide ๐
Measurement units: <n/a>
Issues:
See Also:
- Network Prefix Length (5.2)
5.2 Network Prefix Length ๐
Definition: The number of bits used to define the network prefix. Network prefixes, using CIDR terminology, are typically referred to as 15.35.128.0 /17, indicating that the network prefix is 17 bits long. ๐
Discussion: when you're talking about groups of addresses, the network prefix length is often how you describe them as an equivalence class ๐ซถ for example, "100 /16 addresses" refers to 100 addresses whose network prefix length is 16 bits ๐
Measurement units: bits
Issues:
See Also:
- network prefix (5.1)
- forwarding information base prefix distribution (5.7)
5.3 Forwarding Information Base (FIB) ๐
Definition: according to the definition in Appendix B of [4]:
"The table containing the information necessary to forward IP Datagrams, in this document, is called the Forwarding Information Base. At minimum, this contains the interface identifier and next hop information for each reachable destination network prefix."
Discussion: the FIB is basically a database that maps network prefixes to router port identifiers ๐บ๏ธ
a FIB is made up of [FIB size (5.5)] FIB entries (5.4) ๐งฑ
the FIB is not the same thing as the "routing table" (also called the Routing Information Base), which holds all the routing information received from routing peers ๐ โโ๏ธ
the FIB only holds unique paths. it does not hold secondary paths ๐
Measurement units: <none>
Issues:
See Also:
- forwarding information base entry (5.4)
- forwarding information base size (5.5)
- forwarding information base prefix distribution (5.7)
- maximum forwarding information base size (6.1)
5.4 Forwarding Information Base Entry ๐ง
Definition: a single entry inside a forwarding information base ๐ it holds the minimum info needed to make a forwarding decision for a particular packet. the typical parts of a FIB entry are a network prefix, a router port identifier and next hop information. it's an entry the router can use, and does use, to forward packets ๐
Discussion: see (5.3). ๐
Measurement units: <n/a>
Issues:
See Also:
- forwarding information base (5.3)
- forwarding information base size (5.5)
- forwarding information base prefix distribution (5.7)
- maximum forwarding information base size (6.1)
5.5 Forwarding Information Base Size ๐
Definition: the number of forwarding information base entries inside a forwarding information base ๐งฎ
Discussion: the number of entries in a FIB is one of the big key elements that can affect a router's forwarding performance ๐ค generally speaking, the more entries there are, the longer it could take to find the longest matching network prefix in the FIB ๐ข
Measurement units: Number of routes
Issues:
See Also:
- forwarding information base (5.3)
- forwarding information base entry (5.4)
- forwarding information base prefix distribution (5.7)
- maximum forwarding information base size (6.1)
5.6 Longest Length Prefix Match Algorithm ๐
Definition: an algorithm a router uses to quickly match destination addresses in received IP packets to the exit interfaces on the router ๐โโ๏ธ
Discussion:
Measurement Units: <none>
Issues:
See Also:
5.7 Forwarding Information Base Prefix Distribution ๐
Definition: The distribution of network prefix lengths within the forwarding information base. ๐
Discussion: okay so the FIB could have all entries at one single prefix length, but realistically the prefix lengths are spread across a whole range ๐ซถ Performance measurements will be run against FIBs filled with one prefix length, and also against FIBs with a mix of lengths โจ
The distribution can affect how fast a router forwards. The longer the prefix length, the longer the router takes to run the longest length prefix match algorithm, and the lower the router's performance could end up being ๐ญ
Measurement units: The FIB prefix distribution is written as a list of prefix lengths, each paired with the percentage of FIB entries that have that prefix length. Here's an example ๐
{[/16, 100], [/20, 360], [/24, 540]}
This means 100 entries have a 16 bit network prefix length, 360 have a 20 bit network prefix length, and 540 have a 24 bit network prefix length ๐
Issues:
See Also:
- forwarding information base (5.3)
- forwarding information base entry (5.4)
- forwarding information base size (5.5)
- maximum forwarding information base size (6.1)
5.8 Per-Interface or Per-Card Forwarding Information Base ๐ฆ
Definition: A complete copy of the FIB, installed on a router's card or individual physical interface so the destination address to network prefix lookup goes faster ๐
Discussion: Router manufacturers have come up with lots of optimizations, and one of them is copying the FIB onto every interface or interface card in the router. Once that's done, destination address and network prefix lookups can happen right on the interface or card, which takes the load off the router's CPU ๐ง โจ
Measurement units: <n/a>
Issues:
See Also:
- forwarding information base (5.3)
- per-interface forwarding information base cache (5.9)
5.9 Per-Interface Forwarding Information Base Cache ๐
Definition: A subset of a FIB, installed on a router's interface card to speed up the destination address / network prefix lookup ๐โโ๏ธ
Discussion: Before routers started putting a full FIB copy on every interface, a popular trick was to install a cache of frequently used routes on the router's interface. Those most-used routes live in the FIB cache ๐
Packets whose destination address doesn't match a network prefix in the per-interface FIB cache get sent up to the router's central processor, which looks them up in the complete FIB ๐
This matters a lot for benchmarking. Packets whose destination address matches a cache entry can be forwarded faster than packets that don't match one โจ
To create useful benchmarks, you have to think about the per-interface forwarding cache. Benchmark tests that measure forwarding performance need the destination addresses in the incoming packets to be spread across the full set of network prefixes advertised into the router. That cancels out the cache's help, but it does stress the FIB-based forwarding performance of the router, which is the whole point ๐
Measurement units: <n/a>
Issues:
See Also:
- forwarding information base (5.3)
- per-interface forwarding information base (5.8)
5.10 Route Aggregation ๐ธ
Definition: The ability of a router to squash many FIB entries down into a single entry ๐๏ธ
Discussion: A router may aggregate routes in its FIB into one entry to save space ๐พ
When you advertise routes into a router to run benchmarks that depend on the FIB installed inside it, you have to make sure the router doesn't aggregate the routes. Otherwise your results are kind of cooked ๐
So when routes get advertised to the router or installed statically, you need to take care that the router doesn't aggregate them.
For example, say you advertise a set of /24 network prefixes into one particular port on the router. If you send 256 consecutive /24 routes that share a common leading 16 bits, all on a single port, the router will install one FIB entry saying that every network matching that particular /16 network prefix is reachable through that one entry. Not what you wanted! ๐ญ
Route aggregation on a router can be turned off, but the routes should still be advertised into the router in a way that avoids aggregation anyway ๐
Measurement units: <none>
Issues:
See Also:
6. Definitions - metrics ๐
This section defines the metrics, or results, that would characterize the FIB based forwarding performance of a router. ๐ง
6.1 Maximum Forwarding Information Base Size ๐
Definition: The maximum number of FIB entries that can be supported within the FIB. The Maximum Forwarding Information Base Size is the size at which all entries can be used, and are used, to forward traffic. ๐ฅ
Discussion: Knowing the maximum FIB size for a router is super useful. It tells you whether the router can handle the application space you're aiming for, and whether it'll keep up with projected network growth ๐
As a benchmarking value, you need to find this number so performance measurements can be made all the way up to the maximum possible FIB size ๐
Measurement units: Number of routes
Issues: Could this value vary with the forwarding information base prefix distribution? ๐ค
See Also:
- forwarding information base (5.3)
- forwarding information base entry (5.4)
- forwarding information base size (5.5)
- forwarding information base prefix distribution (5.7)
6.2 Forwarding Information Base Learning Time โณ
Definition: The time a router takes to process received routing messages, and to construct the FIB (and possibly distribute it, or a subset of it, among the interface cards in the router). This is measured from the moment the router is presented with the first routing message, until it can forward packets using any entry in the FIB ๐ฌ
Discussion: It takes time for a router to build its FIB. The router has to process received routing packets, build the routing information database, select the best paths, build the FIB, and then possibly distribute the FIB or a subset of it to the interface cards. With very large FIBs, this whole process can take several minutes ๐ญ
When you're benchmarking with the FIB taken into account, you have to give the router time to process the routing information and install the complete FIB inside itself before you start measuring performance ๐โจ
Measurement units: Prefixes per second.
Issues:
See Also:
- forwarding information base (5.3)
6.3 Forwarding Information Base-dependent Throughput ๐
Definition: Throughput, as defined in [3], used in a context where the FIB influences the throughput. ๐
Discussion: This definition of FIB-dependent throughput was added so that this measurement is clearly distinguished from the one defined in [3] ๐ซถ
Measurement units: See [3].
Issues:
See Also:
- forwarding information base-dependent latency (6.4)
- forwarding information base-dependent frame loss rate (6.5)
6.4 Forwarding Information Base-dependent Latency โฑ๏ธ
Definition: Latency, as defined in [3], used in a context where the FIB influences the throughput. ๐
Discussion: This definition of FIB-dependent latency was added so that this measurement is clearly distinguished from the one defined in [3] ๐
Measurement units: See [3].
Issues:
See Also:
- forwarding information base-dependent throughput (6.3)
- forwarding information base-dependent frame loss rate (6.5)
6.5 Forwarding Information Base-dependent Frame Loss Rate ๐
Definition: Frame Loss Rate, as defined in [3], used in a context where the FIB influences the throughput. ๐ธ
Discussion: This definition of FIB-dependent frame loss rate was added so that this measurement is clearly distinguished from the one defined in [3] ๐ฆ
Measurement units: See [3].
Issues:
See Also:
- forwarding information base-dependent throughput (6.3)
- forwarding information base-dependent latency (6.4)
7. Security Considerations ๐
As this document is solely for the purpose of providing metric methodology and describes neither a protocol nor a protocols implementation, there are no security considerations associated with this document. ๐ซถ
8. References ๐
- [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996.
- [2] Bradner, S. and J. McQuaid, "Benchmarking Methodology for Network Interconnect Devices", RFC 2544, March 1999.
- [3] Bradner, S., "Benchmarking Terminology for Network Interconnection Devices", RFC 1242, July 1991.
- [4] Baker, F., "Requirements for IP Version 4 Routers", RFC 1812, June 1995.
9. Author's Address ๐๏ธ
Guy Trotter
Agilent Technologies (Canada) Inc.
#2500 4710 Kingsway
Burnaby, British Columbia
Canada
V5H 4M2
Phone: +1 604 454 3516
EMail: Guy_Trotter@agilent.com
10. Full Copyright Statement โจ
okay bestie, this is the legal bit ๐ and yes it's copyright, so the Internet Society gets its name on it ๐ธ
Copyright (C) The Internet Society (2001). All Rights Reserved. ๐
so basically you can copy this doc and pass it around ๐ and you can make derivative works that comment on or explain it or help people implement it ๐ฅ just keep the copyright notice and this paragraph on everything you make โจ the one thing you can't do is edit this doc itself ๐, like you can't delete the copyright notice or the Internet Society references, unless it's for making Internet standards (then the Internet Standards process copyright procedures have to be followed) or you're translating it into a language that isn't English ๐
the permissions are perpetual ๐ the Internet Society and its successors or assigns won't take them back ๐ซถ
and now the disclaimer, which is not as fun but very important ๐ญ this doc and the information in it is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ๐ translation: no promises, no guarantees, use it at your own risk ๐
Acknowledgement ๐ซถ
funding for the RFC Editor function is currently provided by the Internet Society ๐ง so the people who keep these docs organised get their bills paid by the same crew that wrote the copyright notice, which is pretty iconic ๐
๐ฆ where this page comes from
- ietf: rfc3222 2001-12
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms