IPv4/IPv6 FIB LEM optimization

Note: This feature is supported on 7250 IXR Gen 3 platforms.

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

Note: This feature is supported on 7250 IXR Gen 3 platforms.
To configure IPv4/IPv6 FIB LEM optimization, set platform resource-management ip-routes ipv4-lem-optimization or platform resource-management ip-routes ipv6-lem-optimization to true, then reboot the chassis.

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
    }