This module defines the Param class, it’s type specific derivatives (IntParam, StrParam) and the Parameters class which serves as a container for Param instances. This can be used by a BaseRecipe class to specify optional/mandatory parameters for the entire test, or by HostReq and DeviceReq classes to define specific parameters needed for the matching algorithm.

class lnst.Common.Parameters.Param(mandatory=False, **kwargs)

Base Parameter class

Can beused to define your own specific parameter type. Param derived classes serve as type checkers to enable earlier failure of the recipe.

  • mandatory (bool) – if True, marks the parameter as mandatory

  • default – the default value for the parameter, is also type-checked, immediately at Param object creation


The type check method

Implementation depends on the specific Param derived class.


the type checked or converted value


ParamError if the type check or conversion is invalid

class lnst.Common.Parameters.ChoiceParam(type=None, choices={}, **kwargs)

Choice Param This parameter is used for sitiuation where a param can have one of a specified set of valid values. For example:

>>> flow_type = ChoiceParam(type=StrParam, choices=set('tcp_rr', 'udp_rr', 'tcp_crr'))

The type check will fail if the specified value does not pass both the specified subtype type_check or is not one of the specified choices.

class lnst.Common.Parameters.NetworkParam(type: IPv4Network | IPv6Network, **kwargs)

Network Param

Parameters of this type are used to specify a IPv4 or IPv6 networks. (network address + prefix length).

For example::

vlan0_ipv4 = IPv4NetworkParam(default=””) vlan0_ipv6 = IPv6NetworkParam(default=”fc00:0:0:1::/64”)