Understanding the Unified Forwarding Table
Traditionally, forwarding tables have been statically defined and have supported only a fixed number of entries for each type of address. The Unified Forwarding Table (UFT) feature enables you to allocate forwarding table resources to optimize the memory available for different address types based on the needs of your network. You can choose to allocate a higher percentage of memory for one type of address or another.
Using the Unified Forwarding Table to Optimize Address Storage
On QFX5100, EX4600, QFX5200 and OCX1100 switches, you can control the allocation of forwarding table memory available to store the following:
MAC addresses—In a Layer 2 environment, the switch learns new MAC addresses and stores them in a MAC address table
Layer 3 host entries–In a Layer 2 and Layer 3 environment, the switch learns which IP addresses are mapped to which MAC addresses; these key-value pairs are stored in the Layer 3 host table.
Longest prefix match (LPM) table entries—In a Layer 3 environment, the switch has a routing table and the most specific route has an entry in the forwarding table to associate a prefix or netmask to a next hop. Note, however, that all IPv4 /32 prefixes and IPv6 /128 prefixes are stored in the Layer 3 host table.
Note Starting with Junos OS 13.2X51-D15, you can allocate more memory to store prefixes in the range /65 to /127 range.
Note Platform support depends on the Junos OS release in your installation.
When to Use a United Forwarding Table
This feature gives you the flexibility to configure your switch to match the needs of your particular network environment. For example, you might configure the switch to store more MAC addresses in a Layer 2 network, such as a virtualized network with many servers and virtualized machines. On the other hand, if your switch is located in the routing core of a network or participates in an IP fabric, you probably want to maximize the number of routing table entries it can store. In this case, you would configure it to use the lpm-profile, which provides the most longest prefix match table entries.
UFT essentially combines the three distinct forwarding tables to create one table with flexible resource allocation. You can select one of five forwarding table profiles that best meets your network needs. Each profile is configured with different maximum values for each type of address. For example, for a switch that handles a great deal of Layer 2 traffic, such as a virtualized network with many servers and virtualized machines, you would likely choose a profile that allocates a higher percentage of memory to MAC addresses. For a switch that operates in the core of a network, participates in an IP fabric, you probably want to maximize the number of routing table entries it can store. In this case, you would choose a profile that allocates a higher percentage of memory to longest match prefixes. The QFX5200 switch also supports a custom profile that allows you to partition the four available shared memory banks with a total of 128,000 entries among MAC addresses, Layer 3 host addresses, and LPM prefixes.
Support for QFX5200 switches was introduced in Junos OS Release 15.1x53-D30. The QFX5200 switch is not supported on Junos OS Release 16.1R1.
MAC Address and Host Address Memory Allocation
There are several profiles that allocate memory differently for MAC addresses and host addresses. You configure the mix that best meets your needs by choosing the appropriate profile. Table 1 lists the profiles you can choose and the associated maximum values for the MAC address and host table entries on QFX3500, QFX3600, and QFX5100 switches.
Table 1: Unified Forwarding Table Profiles on QFX3500, QFX3600, and QFX5100 Switches
| Profile Name | MAC Table | Host Table (unicast and multicast addresses) | |||||
|---|---|---|---|---|---|---|---|
| MAC Addresses | IPv4 unicast | IPv6 unicast | IPv4 (*, G) | IPv4 (S, G) | IPv6 (*, G) | IPv6 (S, G) | |
l2-profile-one | 288K | 16K | 8K | 8K | 8K | 4K | 4K |
l2-profile-two | 224K | 80K | 40K | 40K | 40K | 20K | 20K |
l2-profile-three (default) | 160K | 144K | 72K | 72K | 72K | 36K | 36K |
l3-profile | 96K | 208K | 104K | 104K | 104K | 52K | 52K |
lpm-profile | 32K | 16K | 8K | 8K | 8K | 4K | 4K |
lpm-profilewith unicast-in-lpm option | 32K | (stored in LPM table) | (stored in LPM table) | 8K | 8K | 4K | 4K |
On QFX5100 and QFX5200 switches, IPv4 and IPv6 host routes with ECMP next hops are stored in the host table. On QFX3500 and QFX3600 switches, these routes are stored in the LPM table.
The QFX5100, and QFX5200 switches all support five profiles, each of which allocates different amounts of memory for Layer 2 or Layer 3 entries, enabling you choose one that best suits the needs of your network. The QFX5200 switch, however, supports different maximum values for each profile from the other switches. The QFX5200 switch also supports a custom profile. For more information about the custom profile, see Configuring the Unified Forwarding Table on Switches.
Table 2 lists the profiles you can choose and the associated maximum values for the MAC address and host table entries on QFX5200 switches.
Table 2: Unified Forwarding Table Profiles on QFX5200 Switches
| Profile Name | MAC Table | Host Table (unicast and multicast addresses) | ||||||
|---|---|---|---|---|---|---|---|---|
| MAC Addresses | IPv4 unicast | IPv6 unicast | IPv4 (*, G) | IPv4 (S, G) | IPv6 (*, G) | IPv6 (S, G) | Exact-Match | |
l2-profile-one | 136K | 8K | 4K | 4K | 4K | 2K | 2K | 0 |
l2-profile-two | 104K | 40K | 20K | 20K | 20K | 10K | 10K | 0 |
l2-profile-three (default) | 72K | 72K | 36K | 36K | 36K | 18K | 18K | 0 |
l3-profile | 40K | 104K | 52K | 52K | 52K | 26K | 26K | 0 |
exact-match-profile | 8K | 8K | 4K | 4K | 4K | 2K | 2K | 64K |
lpm-profile | 8K | 8K | 4K | 4K | 4K | 2K | 2K | 0 |
lpm-profilewith unicast-in-lpm option | ? | (stored in LPM table) | (stored in LPM table) | ? | ? | ? | ? | 0 |
Note that all entries in the host table share the same memory space. If the host table stores the maximum number of entries for any given type, the entire shared table is full and is unable to accommodate any entries of any other type. As you can see, different entry types occupy different amounts of memory. For example, an IPv6 unicast address occupies twice as much memory as an IPv4 unicast address, and an IPv6 multicast address occupies four times as much memory as an IPv4 unicast address. Table 3 lists various valid combinations that the host table can store if you use the l2-profile-one profile on a QFX5100 switch. Each row in the table represents a case in which the host table is full and cannot accommodate any more entries.
Table 3: Example Host Table Combinations Using l2-profile-one on a QFX5100 Switch
| IPv4 unicast | IPv6 unicast | IPv4 multicast (*, G) | IPv4 multicast (S, G) | IPv6 multicast (*, G) | IPv6 multicast (S, G) |
|---|---|---|---|---|---|
16K | 0 | 0 | 0 | 0 | 0 |
12K | 2K | 0 | 0 | 0 | 0 |
12K | 0 | 2K | 2K | 0 | 0 |
8K | 4K | 0 | 0 | 0 | 0 |
4K | 2K | 2K | 2K | 0 | 0 |
0 | 4K | 0 | 0 | 1K | 1K |
On QFX5100 and QFX5200 switches, IPv4 and IPv6 host routes with ECMP next hops are stored in the host table.
The default profile is l2-profile-three, which allocates equal space for MAC Addresses and Layer 3 host addresses and space equal to 16,000 IPv4 entries for the LPM table.
If the host or LPM table stores the maximum number of entries for any given type of entry, the entire shared table is full and is unable to accommodate any entries of any other type. Different entry types occupy different amounts of memory. For example, an IPv6 unicast address occupies twice as much memory as an IPv4 unicast address, and an IPv6 multicast address occupies four times as much memory as an IPv4 unicast address.
LPM Table Memory Allocation
You configure the memory allocation for LPM table entries differently depending on which version of Junos OS you use. To learn how to configure memory allocation for LPM table entries see Configuring the Unified Forwarding Table on Switches. Starting with Junos OS 14.1X53-D30 you can free memory in the host table by using the unicast-in-lpm option with the lpm-profile to store IPv4 and IPv6 unicast addresses in the LPM table instead of the host table. See Configuring the lpm-profile With Junos OS 14.1x53-D30 and Later.
