VM configuration - Arc protection - Bay control and measurement - Motor protection - Transformer protection - 2 winding - Busbar differential protection (low impedance) - Feeder protection - Voltage regulation - Busbar protection (voltage and frequency) - Capacitor bank protection - Interconnection protection - Power management/Load shedding - Back-up protection - Engineering Manual - SSC600 Smart substation control and protection - 1.5 - IEC - ANSI - 18.12.2024

SSC600 and SSC600 SW Engineering Manual

Before taking the template into use, some minor changes are required.

Open ssc600-kvm.xml in a text editor. For example vi <path to SSC600 SW package>/virtual_products/ssc600-kvm.xml.

The CPU configuration must be updated to match the available CPU cores on the host. The SSC600 SW requires 4 cores, also the emulator requires one additional core. Update the cpuset attributes to match available cores.

<vcpu placement='static'>4</vcpu>

<cputune>

<vcpupin vcpu='0' cpuset='15'/>

<vcpupin vcpu='1' cpuset='14'/>

<vcpupin vcpu='2' cpuset='13'/>

<vcpupin vcpu='3' cpuset='12'/>

<emulatorpin cpuset='11'/>

<vcpusched vcpus='0' scheduler='fifo' priority='50'/>

<vcpusched vcpus='1' scheduler='fifo' priority='50'/>

<vcpusched vcpus='2' scheduler='fifo' priority='50'/>

<vcpusched vcpus='3' scheduler='fifo' priority='50'/>

</cputune>

The path to the virtual disk must also be updated:

<disk type='file' device='disk'>

<driver name='qemu' type='raw' cache='none' io='threads'/>

<source file='/var/lib/libvirt/images/ssc600_disk.img'/>

<target dev='vda' bus='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

</disk>

Update the path to the PTP status file if needed.

<filesystem type="mount" accessmode="mapped">

<driver type="path" wrpolicy="immediate"/>

<source dir="/var/lib/libvirt/images/ptp"/>

<target dir="ptp"/>

<readonly/>

<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/>

</filesystem>

Also, the networking must be updated to use the correct interfaces. For the process bus(ses), trustGuestRxFilters attribute must be set to yes for the network traffic to be passed through to the virtual machine.

Note: By default the network device with the lowest PCI ID will be used for management purposes, and the ones with a higher ID will be used for the process busses. The mapping can be changed through the SSC600SW web interface once it has been started.

<interface type='bridge'>

<mac/>

<source bridge='mgmt-bridge'/>

<model type='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

</interface>

<interface type='direct' trustGuestRxFilters='yes'>

<mac/>

<source dev='enp5s0' mode='bridge'/>

<model type='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

</interface>

If a protection communication port is required, use PCI passthrough to attach the desired network interface to the virtual machine. Add the following configuration under the <devices> tree in the template.

<hostdev mode='subsystem' type='pci' managed='yes'>

<source>

<address domain='0x…' bus='0x…' slot='0x…' function='0x…'/>

</source>

</hostdev>

To obtain the domain, bus, slot, and function parameters of a PCI device, use the virsh nodedev-dumpxml [dev id] command.

Note: The parameters are reported in decimal format but must be defined in hexadecimal format in the template.

To identify available PCI devices on the host system, use the virsh nodedev-list --tree command.

For example, if eno5 is the desired interface for the protection communication port and virsh nodedev-list --tree prints:


Then, the device parameters can be obtained from the output of the virsh nodedev-dumpxml pci_0000_b2_00_0 command:

<device>

<name>pci_0000_b2_00_0</name>

<path>/sys/devices/pci0000:b0/0000:b0:02.0/0000:b2:00.0</path>

<parent>pci_0000_b0_02_0</parent>

<driver>

<name>igb</name>

</driver>

<capability type='pci'>

<domain>0</domain>

<bus>178</bus>

<slot>0</slot>

<function>0</function>

<product id='0x1521'>I350 Gigabit Network Connection</product>

<vendor id='0x8086'>Intel Corporation</vendor>

.

.

.

In this example, the eno5 interface can be attached to the virtual machine using the following configuration:

<hostdev mode='subsystem' type='pci' managed='yes'>

<source>

<address domain='0x0’ bus='0xb2’ slot='0x0' function='0x0’ />

</source>

</hostdev>

Once SSC600 SW has been started, the PCI device can be mapped as a protection communication port through the web interface.

See the libvirt template ssc600-kvm.xml (../template/kvm/ssc600-kvm.xml).

Once the template has been updated, import the SSC600 SW virtual machine using the virsh command:

virsh define ssc600-kvm.xml

Note: If the virsh define command fails with unsupported machine type, update the machine type in the template.

<os>

<type arch="x86_64" machine="q35">hvm</type>

<boot dev="hd"/>

</os>

Supported machine types can be listed using qemu-system-x86_64 --machine help. q35* machine types are known to work.

If the command fails with chardev 'spicevmc' not supported without spice graphics add the below inside the devices XML block.

<graphics type="spice">

<listen type="none"/>

<image compression="off"/>

<gl enable="no"/>

</graphics>