The driver software supports port virtualization, which enables multiple SmartNICs to be handled as one virtual SmartNIC. This makes it possible to use, for instance, two 2-port SmartNICs and make them look like a virtual 4-port SmartNIC, or to make two 1-port SmartNICs look like one virtual 2-port SmartNIC.
The port virtualization means that all ports on all SmartNICs in the system are seen as ports on one virtual SmartNIC.
This means that the API only works on port numbers and not on SmartNICs. SmartNICs are only used where necessary as in some time synchronization, time-stamping, sensor monitoring and configuration. In all other places SmartNICs are abstracted out.
Port numbering starts on SmartNIC 0 and continues on SmartNIC 1 and so on. For instance, if SmartNIC 0, 1 and 2 are NT40E3-4-PTP SmartNICs, SmartNIC 0 has ports 0 – 3, SmartNIC 1 has ports 4 – 7 and SmartNIC 3 has ports 8 – 11. The BusId parameter in the ntservice.ini file can be used for identifying SmartNICs, and you can change the SmartNIC sequence by writing new numbers in the [Adapter#] lines of the ntservice.ini file.