IPMatchList Command

Reference Documentation

Platform
Napatech SmartNIC
Content Type
Reference Information
Capture Software Version
Link™ Capture Software 12.11
Napatech Software Suite: IPMatchList Command

This section specifies the syntax and semantics for the IPMatchList command.
The syntax for the IP match list command is shown below.

<IPMatchListAction>         ::= 'IPMatchList' [ '[' <IPMatchListOptionSpec> ']' ] '=' <IPMatchListSpec>
<IPMatchListOptionSpec>     ::= <IPMatchListOption> [ ';' <IPMatchListOptionSpec> ]
<IPMatchListOption>         ::= ( 'Port' '=' <PortNumberSpec> ) |
                                ( 'KeySet' = <KeySetId> ) |
                                ( 'Tag' '=' <Identifier> )
<IPMatchListSpec>   ::= <IPAddrType> '==' <IPAddrList> | <IPAddrMask> | <IPAddrRange>
<IPAddrType>        ::= 'IPv4Addr' | 'IPv6Addr'
<IPAddrList>        ::= <IPv4AddrValue> { ',' <IPv4AddrValue> ] }
                        <IPv6AddrValue> { ',' <IPv6AddrValue> }
<IPAddrMask>        ::= '{' <IPv4AddrMask> ':' <IPv4AddrValue> '}' |
                        '{' <IPv6AddrMask> ':' <IPv6AddrValue> '}'
<IPAddrRange>       ::= '(' <IPv4AddrValue> '..' <IPv4AddrValue> ')' |
                        '(' <IPv6AddrValue> '..' <IPv6AddrValue> ')'

The IPMatchList command sets up a list of IP addresses to match against a given IP packet. Both the outer source and destination IP addresses can be matched against the list as well as inner tunnel source and destination IP addresses. To remove the IP address(es) given in an "IPMatchList Command" from the list use the Delete command and the Ntpl ID returned from the IPMatchList command. The Delete command can also be used to delete individual IP address(es) from the list.

'KeySet' is a number that is associated with the IP addresses entered so that it can later be used in a test. Refer to Key Match Test. The key set id must be used consistently to refer to values of the same type. You must not add an IPv4 addres with key set id 6 and later add an IPv6 address with the same set id. When no set key value is given, IPv4 addresses will be assigned to set '1' and IPv6 addresses will be assigned to set '2'. These default key sets are preconfigured meaning you cannot assign an IPv4 address to key set '2' or an IPv6 address to key set '1'. You should not use '0' as key set value as this is reserved to indicate a miss.

The matched IP address can consist of a list of single IP addresses, an IP range or an IP address with an applied IP mask. Both IPv4 and IPv6 addresses are supported.

The port option is used to specify which ports should use the IP match list. The default is to apply the IP match list to all ports. As the IP match list is an adapter global setting, all ports present on the adapter must be included in the command.

For a description of the 'Tag' option please refer to Tag Option.

This command is to be used in combination with the IP match tests in a filter expression.

IP Match List Example

The following example illustrates how to use the IP match list command with single IP addresses, a list of IP addresses, a range of addresses and an IP address with applied IP mask for both IPv4 and IPv6.

The filter NTPL example is shown below.

IPMatchList = IPv4Addr == [10.10.10.10]
IPMatchList = IPv4Addr == [172.26.2.1],[172.26.2.25],[172.26.2.33]
IPMatchList = IPv4Addr == ([10.10.10.1]..[10.10.10.5])
IPMatchList = IPv4Addr == {[FF.FF.0.0]:[192.168.0.0]}
IPMatchList[Keyset = 3] = IPv6Addr == [2001:0db8:0:0:0:0:0:1]
IPMatchList[Keyset = 3] = IPv6Addr == [23a8:0cd6:0:0:0:0:0:1],[23a8:0cd6:0:0:0:0:0:19],[23a8:0cd6:0:0:0:0:0:24]
IPMatchList[Keyset = 3] = IPv6Addr == ([2001:0db8:0:0:0:0:0:10]..[2001:0db8:0:0:0:0:0:00FF])
IPMatchList[Keyset = 3] = IPv6Addr == {[FFFF:0:0:0:0:0:0:0]:[2001:0db8:0:0:0:0:0:0]}
Note that matching with masks will use TCAM storage as opposed to CAM storage; these are not automatically optimised into equivalent individual IP matches.

For example, the following expression will use TCAM storage:

IPMatchList = IPv4Addr == {[ff.ff.ff.ff]:[1.2.3.4]}
While the following expression will use CAM storage, despite being functionally equivalent:

IPMatchList = IPv4Addr == {[1.2.3.4]}
For more information about the available filter storage resources available, please see filter info.