Custom Profiles for Hardware Resources
This topic provides an overview of custom profiles for hardware resources
hw-profile
Using hw-db-profile you can statically reserve hardware resources. But hw-db-profile cannot be used for all hw resources because there are resources that need to be managed independently. You can use the custom profile infrastructure instead to customize hardware resource allocation as per application requirements. Using the custom profile infrastructure allows you to create application-specific dynamic hardware resource allocations.
In the following configuration stanza, the hardware profile
(hw-profile) is the top level configuration statement under
which you specify the currently active custom hardware profile that is applied on
the system. hw-profile-name is the name of the currently active
custom hardware profile that is applied to the system. Upon successful commit, the
system restarts the PFE. Note that you can create multiple custom hardware profiles
but only use one as the currently active custom hardware profile using this CLI.
system {
packet-forwarding-options {
hw-profile {
<hw-profile-name>
}
}
}
Custom hardware profile
As discussed in the preceding section, the custom hardware profile
(hw-profile-name) is user-defined and holds details for
custom profiles created for hardware resources such as counters.
In the following configuration stanza, <hw-profile-name>
is the name of the custom hardware profile that holds details for custom
profiles created for counters (counter-profile
<counter-profile>) hardware resource.
system {
packet-forwarding-options {
custom-profiles {
hw-profiles <hw-profile-name> {
counter-profile <counter-profile>
}
}
}
}
In the following configuration stanza, custom profiles are created for counters (hardware resources). Custom profiles created for counters are called counter profiles. In Junos OS release 25.3 only counter profiles are supported.
system {
packet-forwarding-options {
custom-profiles {
counter-profiles <counter-profile-name> {
app {
tcam-ingress {
counter-4k <num-of-counter-engines>
counter-8k <num-of-counter-engines>
counter-16k <num-of-counter-engines>
external-cntr <num-of-entries>
}
voq {
counter-4k <num-of-counter-engines>
counter-8k <num-of-counter-engines>
counter-16k <num-of-counter-engines>
}
ifl-ingress {
counter-4k <num-of-counter-engines>
counter-8k <num-of-counter-engines>
counter-16k <num-of-counter-engines>
}
.....
}
}
}
}
}
So the sequence of steps to follow is:
-
Create custom counter profiles. See counter-profiles
-
Create custom hardware profiles. Each custom hardware profile can be defined with one to many distinct custom profiles. See hw-profiles.
-
Apply one custom hardware profile as the active hardware profile. See hw-profile.
Custom counter profile
A custom counter profile provides a mechanism to allocate counter engines per application. The allocations are made based on the scale requirements of applications. Counter resources are provided through various counter engines. There are three types of counter engines based on the number of counters they support. 4k counter engine support 4K counters. Similarly, 8K and 16 counter engine supports 8K and 16K counters. Number of counter engines varies depending on platform. See counter-profiles.
In the following configuration stanza, <counter-profile-name> is
the name of the custom counter profile. Under app,
tcam-ingress, voq, and
ifl-ingress, are the names of the applications that have been
allocated counter hardware resources.
system {
packet-forwarding-options {
custom-profiles {
counter-profiles <counter-profile-name> {
app {
tcam-ingress {
counter-4k <num-of-counters>
counter-8k <num-of-counters>
counter-16k <num-of-counters>
external-cntr <num-of-entries>
}
voq {
counter-4k <num-of-counters>
counter-8k <num-of-counters>
counter-16k <num-of-counters>
}
ifl-ingress {
counter-4k <num-of-counters>
counter-8k <num-of-counters>
counter-16k <num-of-counters>
}
}
}
}
}
}
Example
The following example demonstrates setting counter resources for applications. Two custom counter profiles are created. Two custom hardware profiles are created for each custom counter profile. One custom hardware profile is set as the active hardware profile
The steps are as follows:
Create two custom counter profiles cntr1 and
cntr2
set system packet-forwarding-options custom-profiles counter-profiles cntr1 app tcam-ingress counter-8k 3 set system packet-forwarding-options custom-profiles counter-profiles cntr1 app voq counter-16k 2 set system packet-forwarding-options custom-profiles counter-profiles cntr1 app ifl-ingress counter-8k 2 set system packet-forwarding-options custom-profiles counter-profiles cntr1 app perf-mon-ingress counter-4k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr1 app policer-ingress counter-16k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr1 app tcam-egress counter-4k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr1 app ifl-egress counter-8k 2 set system packet-forwarding-options custom-profiles counter-profiles cntr1 app perf-mon-egress counter-4k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr1 app policer-egress counter-16k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app tcam-ingress counter-8k 3 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app ifl-ingress counter-4k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app ifl-ingress counter-8k 2 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app ifl-ingress counter-16k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app perf-mon-ingress counter-16k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app policer-ingress counter-16k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app tcam-egress counter-4k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app ifl-egress counter-4k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app ifl-egress counter-8k 2 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app ifl-egress counter-16k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app storm-control counter-4k 1 set system packet-forwarding-options custom-profiles counter-profiles cntr2 app mcast counter-4k 1
Create two custom hardware profiles each for the two custom counter profiles
set system packet-forwarding-options custom-profiles hw-profiles hw1 counter-profile cntr1 set system packet-forwarding-options custom-profiles hw-profiles hw2 counter-profile cntr2
Set one custom hardware profile as the active hardware profile
set system packet-forwarding-options hw-profile hw1
Considerations in Counter Profile Management
Default behaviour
-
If no custom counter profile is defined, the platform uses the default statically allocated counter profile. This allocation will be same as existing allocation prior to the 25.3 release.
-
Once a custom profile is defined, only the application mentioned in custom counter profile will have counter allocation as configured by user.
VOQ Statistics - Reserved Counters
-
ACX7100 / ACX7509 platforms have one 8K counter engine internally reserved for Port VOQ statistics.
-
Other platforms reserve one 4K counter engine by default.
-
If a custom counter profile is configured without explicit VOQ allocation, the reserved engine supports only Port VOQ. For HQoS statistics, a custom counter profile with app
voqneeds to be configured.
TCAM and Policer Engine
-
It is mandatory to configure the TCAM and Policer applications (tcam-ingress, tcam-egress, policer-ingress, and policer-egress) when defining a custom counter profile in the 25.3 release till it is available for user to configure. TCAM and policer app cannot be configured with values other than their default profile values.
-
The configured values for these applications must match the platform’s default allocations exactly.
-
Any deviation from the default counter enignes (e.g., setting tcam-ingress counter-8k to 2 instead of the default 3) will result in a validation error during commit.
-
Counter engines are shared between counters and policers. Applications using policers must explicitly reserve the required number of counter engines to avoid resource conflicts.
Multicast Route Statistics
-
Starting from release 25.3, Multicast statistics are supported through the Counter Profile Infrastructure, enabling resource flexibility and application-specific allocation.
-
To ensure backward compatibility, the legacy CLI:
set system packet-forwarding-options mcast stats-enableis retained (hidden) in applicable releases. This allows support for older configurations while transitioning to the new model. -
Validations are introduced to prevent duplicate counter engine reservations for multicast, avoiding configuration conflicts between the legacy CLI and the new profile-based approach.
-
It is recommended that users explicitly configure multicast statistics using the custom counter profile, and remove any legacy CLI configuration to ensure clarity and avoid unintended behavior.
External Counters (external-cntr) in OP2 (ACX7332)
-
In ACX7332, TCAM uses counter engine in OP2 for IFF/FTF based filters. However, for policers and other uses, TCAM continues to use the internal counter engine. Hence allocation needs to be done accordingly.
-
external-cntris allocated based on number of counter entries. Onlytcam-ingressapplication can reserve theexternal-cntrentries and is set to 262142 entries.
Configuration guidelines
The following table summarizes the configuration recommendations for counter engines for each application. It is recommended that users configure the number of counter engines to match the number of application scale.
|
Application |
Configuration Guidelines |
|---|---|
|
storm-control |
Storm-control relies on the counter engine to implement policing functionality. Therefore, configuring the counter engine beyond the application scale is not necessary. |
|
VOQ |
HQoS scale with statistics support can be increased based on available free counter engine resources. The increase in HQoS scale is not directly proportional to counter engine availability, as it also depends on other hardware resources." Counter engines are assigned at the system level for HQoS |
|
tcam-ingress |
Not applicable as counter engines cannot be modified. |
|
perf-mon-ingress |
TWAMP and inline sFlow functionality utilize the counter engine for timestamping and sequencing purposes respectively. Therefore, configuring the counter engine beyond the application scale is not necessary. |
|
ifl-ingress |
When IFLs are symmetrically distributed across multiple PFEs, a smaller number of counter engine entries may suffice— For example, with 16K IFLs split evenly between two PFEs (8K IFLs per PFE), 8K counter engine entries might be sufficient. This is because the counter engine itself is also distributed symmetrically across PFE. However, if the same total number of IFLs (e.g., 16K IFLs) is configured on a single PFE, it is recommended to provision the full amount of counter engine entries (e.g., 16K) at the system level to ensure statistics can be collected for all interfaces. Above explanation holds good for physical IFL but not for logical IFLs. |
|
policer-ingress |
Not Applicable, as counter engines cannot be modified |
|
tcam-egress |
Not Applicable, as counter engines cannot be modified |
|
perf-mon-egress |
Same as perf-mon-ingress for inline Sflow application. |
|
ifl-egress |
Same as ifl-ingress |
|
policer-egress |
Not Applicable, as counter engines cannot be modified |
|
multicast |
Counter engines are assigned at the system level for multicast routes. The availability of statistics for multicast routes is also dependent on other HW resources (FEC-3 Hierarchy) |
-
In platforms such as ACX7100-32C, and ACX7100-48L it is not possible to directly copy the default counter profile configuration into a custom profile due to internal reservation of certain apps. As a result, users must manually adjust the counter engines in the custom profile to match the behavior or scale of the default profile, if needed.
For example, the default counter profile below is the counter engine allocation.
show system packet-forwarding-options hw-profile counter-profile Active Hw-Profile : default-hw-profile Active Counter-Profile : default-counter-profile Counter Profile Status : SUCCESS ---------------------------------------------------------------------------------------- Application-Name | 4K | 8K | 16K | External | Total | Status | Engines | Engines | Engines | | (K) | ---------------------------------------------------------------------------------------- STORM_CONTROL | 1 | 0 | 0 | 0 | 4 | SUCCESS VOQ | 1 | 0 | 2 | 0 | 36 | SUCCESS TCAM_INGRESS | 0 | 3 | 0 | 0 | 24 | SUCCESS IFL_INGRESS | 0 | 2 | 0 | 0 | 16 | SUCCESS PERF_MON_INGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS POLICER_INGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS IFL_EGRESS | 0 | 2 | 0 | 0 | 16 | SUCCESS TCAM_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS PERF_MON_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS POLICER_EGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS Same scale as default counter profile can be achieved via below by adjusting the counter engines. (VOQ internally 8K is reserved. Internal reservation can be checked in
show cntr-app-map).show system packet-forwarding-options hw-profile counter-profile Active Hw-Profile : hw1 Active Counter-Profile : cntr1 Counter Profile Status : SUCCESS ---------------------------------------------------------------------------------------- Application-Name | 4K | 8K | 16K | External | Total | Status | Engines | Engines | Engines | | (K) | ---------------------------------------------------------------------------------------- STORM_CONTROL | 1 | 0 | 0 | 0 | 4 | SUCCESS VOQ | 1 | 3 | 0 | 0 | 28 | SUCCESS 8k internally reserved (28+8=36K) TCAM_INGRESS | 0 | 3 | 0 | 0 | 24 | SUCCESS IFL_INGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS PERF_MON_INGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS POLICER_INGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS IFL_EGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS TCAM_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS PERF_MON_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS POLICER_EGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS ---------------------------------------------------------------------------------------- Total-Allocated | 4 | 6 | 4 | 0 | Total-Free | 2 | 0 | 1 | 0 | Total-Engines | 6 | 6 | 5 | 0 | ----------------------------------------------------------------------------------------- -
For ACX7024, default counter profile allocation is as below.
show system packet-forwarding-options hw-profile counter-profile Active Hw-Profile : default-hw-profile Active Counter-Profile : default-counter-profile Counter Profile Status : SUCCESS ---------------------------------------------------------------------------------------- Application-Name | 4K | 8K | 16K | External | Total | Status | Engines | Engines | Engines | | (K) | ---------------------------------------------------------------------------------------- STORM_CONTROL | 1 | 0 | 0 | 0 | 4 | SUCCESS VOQ | 0 | 0 | 1 | 0 | 16 | SUCCESS TCAM_INGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS IFL_INGRESS | 0 | 1 | 0 | 0 | 8 | SUCCESS PERF_MON_INGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS POLICER_INGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS IFL_EGRESS | 0 | 1 | 0 | 0 | 8 | SUCCESS TCAM_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS PERF_MON_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS POLICER_EGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESSFor custom profile configuration available 4k counter engine is less than default, as 1 4k is internally reserved to VOQ. Hence need to adjust either
PERF_MON_INGRESS or PERF_MON_EGRESSapp to 8k as show below.show system packet-forwarding-options hw-profile counter-profile Active Hw-Profile : hw1 Active Counter-Profile : cntr1 Counter Profile Status : SUCCESS ---------------------------------------------------------------------------------------- Application-Name | 4K | 8K | 16K | External | Total | Status | Engines | Engines | Engines | | (K) | ---------------------------------------------------------------------------------------- STORM_CONTROL | 1 | 0 | 0 | 0 | 4 | SUCCESS VOQ | 0 | 0 | 1 | 0 | 16 | SUCCESS >>> 16+4 (20K available,adjust as needed) TCAM_INGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS IFL_INGRESS | 0 | 1 | 0 | 0 | 8 | SUCCESS PERF_MON_INGRESS | 0 | 1 | 0 | 0 | 8 | SUCCESS >>> Moved to 8k POLICER_INGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS IFL_EGRESS | 0 | 1 | 0 | 0 | 8 | SUCCESS TCAM_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS PERF_MON_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS POLICER_EGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS ---------------------------------------------------------------------------------------- Total-Allocated | 3 | 3 | 4 | 0 | Total-Free | 0 | 1 | 0 | 0 | Total-Engines | 3 | 4 | 4 | 0 |
Validation Examples
The following are a few validation examples where the system performs a check before committing the configuration statement.
Ifl symmetric validation for ingress and egress
user@host# set system packet-forwarding-options custom-profiles counter-profiles cntr1 app ifl-ingress counter-4k 7
[edit]
user@host# commit
[edit system packet-forwarding-options custom-profiles counter-profiles cntr1]
'app'
Number of ifl ingress and egress counters should be same. Current configuration has ingress: 7 egress: 1
error: commit failed: (validation hook evaluation failed)
Number of configured engines exceeds supported engines
root@acx7100-w-pfe-17# set system packet-forwarding-options custom-profiles counter-profiles cntr1 app perf-mon-ingress counter-4k 2
root@acx7100-w-pfe-17# commit
[edit system packet-forwarding-options custom-profiles counter-profiles cntr1]
'app'
'4k' counter engine exceeds limit. Only '5' 4k counter engine can be configured across application. Current configured is 6
error: commit failed: (validation hook evaluation failed)
App specific validation- Inline Sflow is configured, however counter engines required for sflow is not configured
[edit system packet-forwarding-options custom-profiles hw-profiles hw1 counter-profile]
'counter-profile cntr1'
perf-mon-ingress and perf-mon-egress counter engine required for sflow is not configured.
error: commit failed: (validation hook evaluation failed)
Mandatory configuration of TCAM and policer app in the current release
root@acx7100-w-pfe-17# set system packet-forwarding-options custom-profiles counter-profiles cntr2 app ifl-ingress counter-4k 1
[edit system packet-forwarding-options custom-profiles counter-profiles cntr2]
'app'
Error: None of the required applications (policer-ingress, policer-egress, tcam-ingress, tcam-egress) are configured with counters. Default values for these applications are:
policer-ingress: {'4k': 0, '8k': 0, '16k': 1, 'ext': 0}
policer-egress: {'4k': 0, '8k': 0, '16k': 1, 'ext': 0}
tcam-ingress: {'4k': 0, '8k': 3, '16k': 0, 'ext': 0}
tcam-egress: {'4k': 1, '8k': 0, '16k': 0, 'ext': 0}
error: commit failed: (validation hook evaluation failed)
TCAM and policer app cannot be configured other than default profile values.
Configure the same value as the default profile for TCAM app
root@acx7100-w-pfe-17# set system packet-forwarding-options custom-profiles counter-profiles cntr1 app tcam-ingress counter-8k 2
[edit]
root@acx7100-w-pfe-17# commit
[edit system packet-forwarding-options custom-profiles counter-profiles cntr1]
'app'
Error: Need to configure the same value as the default profile for app 'tcam-ingress' counter-8k. Default value is 3
Handling upgrade and downgrade scenarios
You must delete the hardware profile, all custom hardware profiles, and all custom counter profiles to downgrade to a Junos OS version that has no support for the custom profile infrastructure. To upgrade to a Junos OS version where custom profile is supported, follow the regular Junos OS upgrade procedure, and then start using the custom profile infrastructure.
Because prior to 25.3 release, multicast route statistics was supported using the CLI
set system packet-forwarding-options mcast stats-enable, the
system handles multicast route statistics for upgrade and downgrade procedures in
the manner summarized in the following table.
|
Scenario |
Expected behavior |
|---|---|
|
Upgrade to image with custom profile support - when multicast statistics is not configured on the device. |
The upgrade will be successful. User can configure custom profile
with |
|
Upgrade to image with custom profile support - when multicast statistics is configured on the device. |
|
|
Downgrade/ rollback to older Junos OS image, where counter
profile infrastructure is not supported, and custom profile
configurations for |
Will fail the downgrade. To successfully downgrade to an older
Junos OS version, the custom profile infrastructure CLI
configurations for After downgrading to an older Junos image where custom profile
infrastructure is not supported, user can configure multicast
statistics support using the old multicast statistics CLI -
|
|
Downgrade/ rollback to older Junos OS image, where counter
profile infrastructure is not supported, and multicast statistic
configuration has already been set using |
Downgrade to the older image will be successful and multicast counter-engine would be reserved after the image downgrade. |
Troubleshooting - hw-profile
-
Use show commands
show system packet-forwarding-options hw-profileandshow system packet-forwarding-options hw-profile counter-profileto display any failure in counter profile and hardware profile activation. -
You can also use PFE commands -
show evo-pfemand cntr-infoandshow evo-pfemand cntr-app-mapto diagnose the failure in PFE. show evo-pfemand cntr-infowill display the counter engines allocated to each feature. This should match the number of counter engines configured by user.show evo-pfemand cntr-app-mapwill display whether counter configuration is success or failure for each feature in PFE and the reason for failure.
Show command outputs when hw-profile is not configured - default hw profile
user@router# run show system packet-forwarding-options hw-profile Active Hw-Profile : default-hw-profile Profile Status : SUCCESS ------------------------------------------------------------- Profile-Name | App | Status ------------------------------------------------------------- default-counter-profile | COUNTER | SUCCESS
user@router# run show system packet-forwarding-options hw-profile counter-profile
Active Hw-Profile : default-hw-profile
Active Counter-Profile : default-counter-profile
Counter Profile Status : SUCCESS
----------------------------------------------------------------------------------------
Application-Name | 4K | 8K | 16K | External | Total | Status
| Engines | Engines | Engines | | (K) |
----------------------------------------------------------------------------------------
STORM_CONTROL | 1 | 0 | 0 | 0 | 4 | SUCCESS
VOQ | 1 | 0 | 2 | 0 | 36 | SUCCESS
TCAM_INGRESS | 0 | 3 | 0 | 0 | 24 | SUCCESS
IFL_INGRESS | 0 | 2 | 0 | 0 | 16 | SUCCESS
PERF_MON_INGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS
POLICER_INGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS
IFL_EGRESS | 0 | 2 | 0 | 0 | 16 | SUCCESS
TCAM_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS
PERF_MON_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS
POLICER_EGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS
Show command outputs when hw-profile is configured
user@router# run show system packet-forwarding-options hw-profile Active Hw-Profile : hw1 Profile Status : SUCCESS ------------------------------------------------------------- Profile-Name | App | Status ------------------------------------------------------------- cntr1 | COUNTER | SUCCESS
user@router# run show system packet-forwarding-options hw-profile counter-profile
Active Hw-Profile : hw1
Active Counter-Profile : cntr1
Counter Profile Status : SUCCESS
----------------------------------------------------------------------------------------
Application-Name | 4K | 8K | 16K | External | Total | Status
| Engines | Engines | Engines | | (K) |
----------------------------------------------------------------------------------------
TCAM_INGRESS | 0 | 3 | 0 | 0 | 24 | SUCCESS
POLICER_INGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS
TCAM_EGRESS | 1 | 0 | 0 | 0 | 4 | SUCCESS
POLICER_EGRESS | 0 | 0 | 1 | 0 | 16 | SUCCESS
----------------------------------------------------------------------------------------
Total-Allocated | 1 | 3 | 2 | 0 |
Total-Free | 4 | 4 | 3 | 0 |
Total-Engines | 5 | 7 | 5 | 0 |
-----------------------------------------------------------------------------------------
PFE debug commands - default counter profile
user@router:pfe> show evo-pfemand cntr-app-map
Counter Profile Name: default-counter-profile
Counter App Map Info:
Appname Counter4k Counter8k Counter16k CounterExt Status
================================================================================
STORM_CONTROL 1 0 0 0 SUCCESS
VOQ 1 0 2 0 SUCCESS
TCAM_INGRESS 0 3 0 0 SUCCESS
IFL_INGRESS 0 2 0 0 SUCCESS
PERF_MON_INGRESS 1 0 0 0 SUCCESS
POLICER_INGRESS 0 0 1 0 SUCCESS
IFL_EGRESS 0 2 0 0 SUCCESS
TCAM_EGRESS 1 0 0 0 SUCCESS
PERF_MON_EGRESS 1 0 0 0 SUCCESS
POLICER_EGRESS 0 0 1 0 SUCCESS
================================================================================
Total-used 5 7 4 0
================================================================================
Total-Usr-Available 5 7 5 NA
================================================================================
Total-BCM-Available 8 8 6 NA
================================================================================
user@router:pfe> show evo-pfemand cntr-info
InitDone:1
Total Num of Engines:22
Bitmap: num_units=1 size=22 utilized=72.7273% Used=16 peak utilization=16% lastUnitIdx=22 mask=8000000000000000 BM_UNIT_SIZE=64HWM Ts=1752158450972060177%
BM[ 0]= XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0011111111011100011111 = 0xff71f
EngineType StartIdx EndIdx
===============================
4kEngine: 0 7
8kEngine: 8 15
16kEngine: 16 21
EngineId AppName
==========================
0 Storm Control
1 Voq Stats
2 FW StatsEgr
3 Oamp Egress Stats
4 Oamp Stats
8 FW StatsIng
9 FW StatsIng
10 FW StatsIng
12 Ingress Lif Stats
13 Ingress Lif Stats
14 Egress Lif Stats
15 Egress Lif Stats
16 Voq Stats
17 Voq Stats
18 FW PolicerIng
19 FW PolicerEgr
Troubleshooting - custom counter profile
Debug Commands- Counter profile configured
user@router:pfe> show evo-pfemand cntr-app-map Counter Profile Name: cntr1 Counter App Map Info: Appname Counter4k Counter8k Counter16k CounterExt Status ================================================================================ TCAM_INGRESS 0 3 0 0 SUCCESS POLICER_INGRESS 0 0 1 0 SUCCESS TCAM_EGRESS 1 0 0 0 SUCCESS POLICER_EGRESS 0 0 1 0 SUCCESS Reserved Counter App Map Info: VOQ 1 0 0 0 SUCCESS ================================================================================ Total-used 2 3 2 0 ================================================================================ Total-Usr-Available 5 7 5 NA ================================================================================ Total-BCM-Available 8 8 6 NA ================================================================================
user@router:pfe> show evo-pfemand cntr-info
InitDone:1
Total Num of Engines:22
Bitmap: num_units=1 size=22 utilized=31.8182% Used=7 peak utilization=7% lastUnitIdx=22 mask=8000000000000000
BM_UNIT_SIZE=64HWM Ts=1748943680386874258%
BM[ 0]= XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0000110000011100000011 = 0x30703
EngineType StartIdx EndIdx
===============================
4kEngine: 0 7
8kEngine: 8 15
16kEngine: 16 21
EngineId AppName
==========================
0 FW StatsEgr
1 Voq Stats
8 FW StatsIng
9 FW StatsIng
10 FW StatsIng
16 FW PolicerIng
17 FW PolicerEgr
Caveats
-
Policers can only be allocated with 16K engines
-
Certain counters are reserved for internal use and are not available to users.
-
In ACX7332, TCAM uses counter engine in OP2 for IFF/FTF based filters. However, for policers and other uses, TCAM still continue to internal counter engine. Hence allocation needs to be done accordingly.
-
Ifl-ingressandifl-egresscounter engines must be symmetrically allocated. -
Prior to 25.3 release, Multicast counter engines are shared with LSP/IP tunnel counter engines and only one of them can be enabled using respective CLI. Hence the counter-engine reserved by LSP/IP applications will continue to be reserved. When multicast stats is enabled via old CLI (
set system packet-forwarding-options mcast stats-enable), it would continue to statically reserve the counter-engine shared with LSP/Transit. If multicast stats is enabled via counter-profile, it will use from the resources available to the custom counter-profile. -
Port VOQ uses internally reserved counters. Once the user-configured counter engines for HQoS are exhausted, they may overlap with the remaining entries of the Port VOQ counters.
Limitations
-
The behavior will be non-deterministic if the application scales beyond the number of custom profile counter engines allocated. For example, if IFL scale is 8k, but only one 4k counter engine is configured, then it cannot be guaranteed which IFL statistics will be displayed.
-
BNG DB profile is not supported from hw-db-profile in cases where hw-db-profile and custom hardware profile co-exist on a system.
-
Because evo-pfemand is restarted, when a CLI successfully committed, existing stats are cleared.