Post your Answer
You must be logged in to post an answer.
Thanks for reaching out.
Yes System memory and Routing table are directly related(i.e directly proportional to each other).If a device gets more routes or if a switch is expected to receive Full internet scale routes from ISP then it consumes certain amount of space in Hardware to program these routes in hardware.
You can check the Resource usage and current hardware utilization by issuing "show hardware capacity" which outputs Used entries ,Free entries and also in % for the resources.
switch(config)#sh hardware capacity
Table Feature Chip Used Used Free Committed Best Case Max High
Entries (%) Entries Entries Entries Watermark
----------------- ----------------- ------------- ---------- -------- ----------- ------------- ------------- ---------------------
Routing Resource1 Jericho 10 0% 2294 0 2304 10
Routing Resource2 Jericho 4 0% 2300 0 2304 4
Routing Resource3 Jericho 20 0% 73708 0 73728 20
Routing V4Hosts 0 0% 163840 0 163840 0
Routing V4Routes 0 0% 786350 0 786432 0
Routing V6Hosts 0 0% 163840 0 163840 0
Routing V6Routes 0 0% 786350 0 786432 0
Also Arista's Flex route feature provides support for the full internet routing table, in hardware, with IP forwarding at Layer 3 and with sufficient headroom for future growth in both IPv4 and IPv6 route scale to more than 2.5 million routes.
You can refer to the below White paper for more details regarding Flex Route feature:
Also you can enhance/optimize the storage of Ipv4 routes in routing table by either route expansion/compression feature as stated in below TOI's:
With Flex route feature enabled 7280SR2 has a capability to support ~1.3M routes.
There is no need for additional memory requirement on the switch as linux(EOS is linux based) handles system memory well and allocates resources accordingly.
AFAIK there might not be any way to add additional memory to the switch.
Thanks for the details.
I have enabled FlexRoute 10 gays ago and I started receiving the below log from yesterday.
SandCounters: %CAPACITY-1-UTILIZATION_HIGH: Routing-V4Routes table utilization is currently at 90%, crossed threshold 90%
I checked the hardware capacity and below is the output.
Table Feature Chip Used Used Free Committed Best Case High
If 7280SR2 can support up to 1.3M routes, It has to write this log only after 1.17M routes.
Can you please help me get rid of this log?
I wrote sometime ago an article around flex route, you can find it at the following link:
From your output, it looks like the LEM DB is full at 90% therefore the log is generated.
Can you take a look at the command:
"show platform sand l3 summary" and look for the lines following "Jericho LPM:" and "Lem:"?
Moreover, how does your flexroute config look like? Can you please share it here?
Thanks in advance
Thanks for the answer.
Below are the requested details.
Ipv6 Host Tcam Status:
Config - ip hardware fib optimize prefixes profile internet - This is the only line that i added to enable flex route.
Please suggest a way to get rid of the logs.
By default, alerts will be triggered at 90% utilization. You can alter the alert threshold with the following command:
(config)#hardware capacity alert table LEM threshold 96 --->> This will set the alarm threshold at 96%
The "no hardware capacity alert table" command disables the alerts and configures a threshold of 0
(config)#no hardware capacity alert table
Please note that there is a bug in earlier EOS versions that will cause the "hardware capacity alert table threshold" configurations to NOT persist after a switch reload. So you will need to reapply the configs anytime you reload the switch. This issue is fixed in EOS version 4.24.2 and above.
"hardware capacity alert table threshold" configurations present in the startup config may not be applied after the switch reboots. This causes the capacity alert thresholds to always stay at the default value. The workaround is to reapply the thresholds manually in the CLI.
Thank you for your response.
a)LEM (Longest exact match) is a table that is generally used to store all the host routes (ARP, /32 routes). When we configure Flexroute, we use the table to store prefixes (/20, /24, etc) routes as well in the LEM (before that it gets programmed in LPM).
b)From the above "show platform sand l3 summary" output I could see that LPM still has 70% free space:
If LEM gets full (100% utilised) , further routes will start getting programmed in LPM which still has free space.(70 % free)
c)LEM is a way of optimising the routes in LPM.LEM lookup happens before LPM:
So as much routes you will have in LEM, you are actually optimising your space. How that works is say you have three prefixes as:
And all the above routes have next hop pointing to 126.96.36.199. In such case the three routes will be programmed as 10.1.0.0/16 (or some other prefix length lesser than 24) with next-hop 188.8.131.52 .
So by programming the 3 routes as one route in LEM, we are saving up some space in LPM. If you try to reduce the LEM entries you will end up occupying more entries in LPM because of route expansion.
d)Issuing either of the following commands will not log the warning messages even though if LEM threshold reaches 100%.
The above commands disable the alert/warning messages for LEM table alone.
Thanks for the details. It is really helpful.
I was afraid since the logs contain " Routing-V4Routes table" So I thought the routing table is almost full. Now I can understand that the logs meant the LEM table and I also got the command to disable/enable the LEM threshold-related logs.
All the above answers were really helpful. Thanks.
You must be logged in to post an answer.