So, hello everyone.
I am Paul Le Guin de Carnaison.
I am an embedded software engineer at Sauvard Fair Linux.
And today I'm going to speak a little bit about the C-PASS project and how we brought
in.
My company Sauvard Fair Linux.
We are based both in Montreal and in France.
And we are experts in embedded software and free open source engineering.
And we've been working on the C-PASS project since the last couple of years.
So what is the C-PASS project?
C-PASS means software enable automation, platform and artifacts for the line.
What is it?
We are in a context of energy transition, as you all know.
And there is a lot of constraints with this new energy.
And the main constraint is that we have a multiplication of distributed controls.
We have more and more power stations.
And so we have an increase of the data management's need into this power station.
And so the idea is how can we bring some free and open source into this power station.
And this is where C-PASS is here.
So to remind a quick reminder on the aim of C-PASS, the goal of C-PASS is to develop
a reference design with an industrial grade on open source and real-time platform.
C-PASS allows us to also virtualize platform and inside this virtualize platform we can
run automation platform for our power station.
And so we can share multi-application provider and this combines performance and safety.
For 10 minutes presentation, I can present in deeper the C-PASS project, but my colleague
Erwan already did it last year at 4.10.25.
So if you're interested, you can see his presentation.
So the main idea of this presentation is how did we bring some functional tests to the
C-PASS project.
And for this, I want to take a simple case 2D.
So here is the power lines you can see in the campaign.
And you have a tree after the storm that falls on your power lines and there is two lines
that touch each other.
And this is a big issue in your electricity system.
And so you have systems that must cut the current very quickly to avoid any other on
people or on the infrastructure.
And so how can you have all this safety equipment with C-PASS?
So I have a very simple representation of all of this is working.
We have first a protection algorithm that makes a decision if there is or not a situation
where there is another or not.
And this algorithm is running inside a virtual machine and this is where we have the C-PASS
project because this is running inside a C-PASS cluster, inside a hypervisor, et cetera.
And we have on the opposite side an hardware which is doing the monitoring of our architecture.
And the communication between the C-PASS cluster and this hardware is done with a protocol.
And you know it, it's the ISC 61850 and this is a protocol which is based on TCP and it
generates packets that we call sample value and this is the communication between the
C-PASS cluster and our hardware.
And so why did we need functional tests?
C-PASS as you see is designed to work on a very critical infrastructure which is a
power distribution and if we are some issue on the power distribution there is a need
of the protection of the people and the protection of the infrastructure because we have electricity
as that.
And so in case of failure the safety protection must react as soon as possible.
And so this is why we need a very, very, very low latency transit of this sample value that
transit into the C-PASS cluster.
And the last thing is that your power distribution in your country is running every time you
have electricity in your home every time and so we are context of 24 hours and seven a
day context.
And so we have to ensure that this latency as low as possible every time.
And so we are in a deterministic system where determinism is the primary goal.
And so we have a big infrastructure, we have expensive items and so maybe you are wondering
how can we in our labs at our desktop or can we simulate all of this chain simply.
So this is the work we've been working on.
And so I represent here a very simple scheme about how can we reproduce this protection
chain in our lab.
The first piece is what we call the Publisher Machine and the goal of the Publisher Machine
is to generate the IEC 61850 sample values.
And then we have the C-PASS cluster and the C-PASS cluster is composed of two parts.
The first is the IPI Vizer which are running virtual machine and we have the virtual machines
which runs all of the software which are an SV client receiver that will proceed the
sample values that have been sent by the Publisher and a protection algorithm which
takes the decision based on this sample value if we are an issue or not.
I took here a presentation with two IPI Vizer and three VM but it could be a totally different
architecture.
So what tool did we use to do that?
First on the Publisher Machine we use the pick up format.
This is a very ideal of a format because we can reproduce some TCP traffic generation
and for example we can reproduce what could be happen on electricity infrastructure for
example a 50 hertz electrical signal and then we replace them with some tools.
Here I use a TCP replay to send this packet with the spacing we want.
We can use some PTP packets to synchronize all of this but keep in mind that it's not
a recroid, it's not an obligation to use.
PTP is only used on C-PASS when you wish to use some C-PASS features such as VM synchronization
and VM migration but this is not an obligation to be used.
And then on the C-PASS cluster we have first the IPI Vizer side and we have to have very
low latency.
First we have some CPU core isolation so we have done some work to dedicate some core
only for the Linux system that is running on the IPI Vizer and isolate some core only
for the VM which are running and do also some IEQ and processor isolation inside the
Linux kernel to be sure we have some priority for some application etc.
We also did some biosoptimization which is very hardware dependent but there is a lot
to do.
There is a thing like the multi-EPF reading feature that are very bad for determinism
and you have to disable this kind of feature.
And then on the virtual machines we have also it's kind of the same work that we did on
the IPI Vizer side which is all of the isolation and CPU and IEQ etc.
We use what is called the PTI path view and this is a very interesting feature because
it allows us to directly inside the VM to take the packets which are received on the
network interface of the IPI Vizer and this brought some good performance.
And finally we can also use some SAIOV that can be used if you have multiple virtual machines
but keep in mind that even if you have better results this is an optional feature.
Thank you for your attention and please let me know if you have a question and I will answer
to it.
Thank you.
Have you got any examples of real world adoption of this?
Let's say Karin A. Ronan.
So you are asking if we have concrete implementation of the C-PASS project.
Currently no.
We don't have any concrete implementation because C-PASS is currently near in early
adoption but we have a good opportunity to be in the future.
But currently it is not in production if it's your question but it's the goal of the C-PASS
project.
If you don't have a ground master clock what is the source of time?
Matthew I will let maybe answer this question about PTP.
In production we have to have a ground master clock but for testing we use just Linux PTP
as a PTP clock.
Thank you.