FilterInfo Command

Reference Documentation

Intel® PAC
Napatech SmartNIC
Reference Information
Napatech Software Suite: FilterInfo Command

This section specifies the syntax and semantics for the FilterInfo command.

Supported Options Per Feature Set

Supported Feature Sets
Options Detailed Information X X
Usage Information X X

The syntax for the FilterInfo command is shown below.

<FilterInfoAction>      ::= 'FilterInfo' { '[' <FilterInfoOptionList> ']' } = <FilterIdSpec>
<FilterInfoOptionList>  ::= <FilterInfoOption> { ';' <FilterInfoOption> }
<FilterInfoOption>      ::= ( 'Type' '=' 'Info' | 'Details' )
<FilterIdSpec>          ::= ( <NtplId> | 'All' )

The FilterInfo command is used to query information about currently configured filter resources. The command returns a textual representation of the information gathered. Two types of output are currently supported: detailed and usage information. The output type is selected using the 'Type' option. If the 'Type' option is not specified is defaults to 'Info'.

Detailed Information Output

The detailed information output gives a very fine-grained view of what filter resources are in use and how they are configured. The overall format of the detailed output is shown below.

Filter info details:
PhysicalAdapter <n>:
...Filter information...
...HashMask information...
PatternMatcher <n>:
...Pattern matcher information...
LengthChecker <n>:
...Length checker information...
IPMatcher <n>:
CamKeys: <x> TCamKeys: <y> Rebalance: <z>
...Programmed IPMatcher keys (truncated)...
...Programmed IPMatcher masks (truncated)...

The output is segmented into functional blocks. The first block (Filter information) is the core filtering functions along with NtplId, priority and allocated recipes.
The PatternMatcher block shows what extractors and comparators are allocated when using data filters. The extractors/comparators are referenced in the "Filter information" block when used (see example below. This output is particularly useful when debugging data filters, as it shows exactly what resources are used and how they are configured.
The IPMatcher information can be useful for inspecting the resource usage of the key stores.

Usage Information Output

The usage information output presents a matrix that gives a quick overview of the resource usage on all configured adapters. A sample output is shown below:

adapter                  0      1
Categorizer Functions   0/64   0/64
Length Comparators      0/8    0/8
Data Extractors         0/4    0/4
Data Comparators        0/32   0/32
KmFunctions             0/32   0/32
KmCAMUsage(%)            0      0
KmTCAMUsage(%)           0      0

The number on the left side of the '/' shows how many instances of the resource is currently in use while the number on the right side shows how many instances are available on the adapter. Notice that the last two items (key matcher storage) are specified as a percentage of the available resources. The items listed cover the following resources:

  • Categorizer functions (e.g. protocol tests, port tests etc.)
  • Packet length comparators
  • Data test extractors
  • Data test comparators
  • KmFunctions: Key matcher categorizer functions (subset of general categorizer functions)
  • KmCAMUsage: Key matcher CAM storage (i.e. individual keys)
  • KmTCAMUsage: Key matcher TCAM storage (i.e. masked keys and key ranges)

FilterInfo Examples

This section presents an example output from the FilterInfo command.

Detailed Information Example

This example shows the detailed FilterInfo output from the following commands:

Assign[StreamId = 1] = Data[Offset = 6] == 23 and layer3protocol == ipv4 and port == 0
Assign[StreamId=0] = Length < 1000
IPMatchList = IPv4Addr == []
IPMatchList = IPv4Addr == {[ff.ff.ff.00]:[]}

The detailed FilterInfo output for these filters is as follows:

Filter info details:
PhysicalAdapter 0:

NtplId: 3 Priority: 0
Category vector: 0, 0, 1, 0, 0
Distrib: Queues: 1,
l3=IPV4, portfilter=0x1, DATA(((0:0))),

NtplId: 4 Priority: 0
Category vector: 0, 0, 2, 0, 0
Distrib: Queues: 0,
Length(!(1000 <= (END_OF_FRAME-START_OF_FRAME) <= 10000)),
PhysicalAdapter 1:

NtplId: 4 Priority: 0
Category vector: 0, 0, 1, 0, 0
Distrib: Queues: 64,
Length(!(1000 <= (END_OF_FRAME-START_OF_FRAME) <= 10000)),
PatternMatcher 0:
Extractor0: START_OF_FRAME+6/32 -> Comp0:((lo:17000000 m:ff000000 hi:17000000))
LengthChecker 0:
Comparator0(offs1:START_OF_FRAME, offs2:END_OF_FRAME, inv:yes, lo:1000, hi:10000)
LengthChecker 1:
Comparator0(offs1:START_OF_FRAME, offs2:END_OF_FRAME, inv:yes, lo:1000, hi:10000)
IPMatcher 0:
CamKeys: 1 TCamKeys: 1 Rebalance: 0
Block0.2:(1) 0a0a0a17:1
Block0.3:(1) 0a0a0a17:1
IPMatcher 1:
CamKeys: 1 TCamKeys: 1 Rebalance: 0
Block0.2:(1) 0a0a0a17:1
Block0.3:(1) 0a0a0a17:1

It is worth noting the relationship between the data filter in the first part of the infomation block and the resources allocated in the PatternMatcher. Here DATA(((x,y))) means that comparator "y" of extractor "x" is used int the filter.