IPv4/IPv6 FIB LEM optimization
The 7250 IXR Gen 3 forwarding ASIC supports different types of hardware lookup tables. Some tables are optimized to perform longest-prefix matches, and others are designed for exact-match logic. The exact-match tables are conventionally used for MPLS label lookups and MAC address lookups. When a router is deployed in a role requiring limited exact-match table resources, spare exact-match table capacity can be repurposed to increase IP FIB capacity. SR Linux supports this optimization as a system-wide configuration option.
When the optimization is enabled:
-
IPv4 routes with specific prefix lengths (/20, /21, /22, /23, and /24) are programmed into the exact-match tables instead of the longest-prefix match hardware tables, leaving more capacity in these tables for all of the other prefix lengths. This provides a substantial boost to the total IP FIB scale of the system, with benefits increasing as the number of /20-/24 routes increases. The default-free IPv4 Internet routing table has over 1 million routes in 2026, and over 93 percent of these routes are /20-/24 routes.
-
IPv6 routes with specific prefix lengths (44, 45, 46, 47, and 48) are programmed into the exact-match tables instead of the longest-prefix match hardware tables.
Configuring IPv4/IPv6 FIB LEM optimization
Enable IPv4 FIB LEM optimization
The following example enables the IPv4 FIB LEM optimization feature.
--{ * candidate shared default }--[ ]--
# info with-context platform resource-management ip-routes ipv4-lem-optimization
platform {
resource-management {
ip-routes {
ipv4-lem-optimization true
}
}
}
A chassis reboot is required for changes to the configuration of
ipv4-lem-optimization to take effect. When a change has been
made to the LEM optimization configuration, but the system has not yet been
rebooted, chassis-reboot-required reads true and
the state value for ipv4-lem-optimization reflects the value that
the system last booted with.
Enable IPv6 FIB LEM optimization
The following example enables the IPv6 FIB LEM optimization feature.
--{ * candidate shared default }--[ ]--
# info with-context platform resource-management ip-routes ipv6-lem-optimization
platform {
resource-management {
ip-routes {
ipv6-lem-optimization true
}
}
}
A chassis reboot is required for changes to the configuration of
ipv6-lem-optimization to take effect. When a change has been
made to the LEM optimization configuration, but the system has not yet been
rebooted, chassis-reboot-required reads true and
the state value for ipv6-lem-optimization reflects the value that
the system last booted with.
Displaying LEM resource information
Use the info from state command to display LEM resource information. Information about the following LEM resources can be displayed:
- exact-match-entries (applicable to 7250 IXR Gen 2c+ and 7250 IXR Gen 3 IMMs) – reports the utilization of 30-bit entries in LEM, in aggregate, across all tracked applications.
- exact-match-entries-1 (applicable to 7250 IXR Gen 2c+ and 7250 IXR Gen 3 IMMs) – reports the utilization of 30-bit entries in LEM1, in aggregate, across all tracked applications.
- exact-match-entries-2 (applicable to 7250 IXR Gen 3 IMMs only) – reports the utilization of 30-bit entries in LEM2, in aggregate, across all tracked applications.
-
exact-match-entries-mpls-label (applicable to 7250 IXR Gen 2c+ and 7250 IXR Gen 3 IMMs) – reports the utilization of 30-bit entries in LEM1 (7250 IXR Gen 2c+) or LEM2 (7250 IXR Gen 3) used for MPLS ILMs.
-
exact-match-entries-ipv4-route (applicable to 7250 IXR Gen 3 IMMs only) – reports the utilization of 30-bit entries in LEM1 used for IPv4 /20 lookup.
-
exact-match-entries-ipv6-route (applicable to 7250 IXR Gen 3 IMMs only) – reports the utilization of 30-bit entries in LEM1 used for IPv6 /44 lookup.
-
exact-match-entries-next-hop (applicable to 7250 IXR Gen 3 IMMs only) – reports the utilization of 30-bit entries in LEM2 used for IPv4 and IPv6 next-hops.
The following example displays threshold settings for LEM resources.
--{ running }--[ ]--
# info from state platform resource-monitoring datapath asic resource *
resource es-prune-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource exact-match-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource exact-match-entries-mac-da {
upper-threshold-set 90
upper-threshold-clear 70
}
resource exact-match-entries-mac-sa {
upper-threshold-set 90
upper-threshold-clear 70
}
resource exact-match-entries-mpls-label {
upper-threshold-set 90
upper-threshold-clear 70
}
resource ip-tunnel-source-ipv4-addresses {
upper-threshold-set 90
upper-threshold-clear 70
}
resource ip-tunnel-source-ipv6-addresses {
upper-threshold-set 90
upper-threshold-clear 70
}
resource ip-tunnel-statistics {
upper-threshold-set 90
upper-threshold-clear 70
}
resource kaps-private {
upper-threshold-set 90
upper-threshold-clear 70
}
resource kaps-public {
upper-threshold-set 90
upper-threshold-clear 70
}
resource level-1-ecmp-groups {
upper-threshold-set 90
upper-threshold-clear 70
}
resource level-1-ecmp-members {
upper-threshold-set 90
upper-threshold-clear 70
}
resource level-1-non-ecmp-fecs {
upper-threshold-set 90
upper-threshold-clear 70
}
resource level-2-ecmp-groups {
upper-threshold-set 90
upper-threshold-clear 70
}
resource level-2-ecmp-members {
upper-threshold-set 90
upper-threshold-clear 70
}
resource level-2-non-ecmp-fecs {
upper-threshold-set 90
upper-threshold-clear 70
}
resource level-3-ecmp-groups {
upper-threshold-set 90
upper-threshold-clear 70
}
resource level-3-ecmp-members {
upper-threshold-set 90
upper-threshold-clear 70
}
resource level-3-non-ecmp-fecs {
upper-threshold-set 90
upper-threshold-clear 70
}
resource phase-2-type-1-eedb-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource phase-2-type-2-eedb-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource phase-3-type-1-eedb-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource phase-3-type-2-eedb-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource phase-4-type-1-eedb-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource phase-5-type-1-eedb-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource phase-6-type-1-eedb-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource phase-7-type-1-eedb-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource subinterface-basic-stats-counters {
upper-threshold-set 90
upper-threshold-clear 70
}
resource subinterface-detailed-stats-counters {
upper-threshold-set 90
upper-threshold-clear 70
}
resource subinterface-irb-stats-counters {
upper-threshold-set 90
upper-threshold-clear 70
}
resource type-1-esem-entries {
upper-threshold-set 90
upper-threshold-clear 70
}
resource type-2-esem-entries {
upper-threshold-set 90
upper-threshold-clear 70
}