StrongSwan has been around for a long time and it also have been and still is under active development.
This is both a strength and a weakness.
The strength means there are lots of documentation around and there are many existing deployments.
The weakness is that there was a major change in terms of config and even architecture between older and more recent versions of StrongSwan.
You thus have to be careful when consulting documentation on StrongSwan.
Most AI engines mess up in this area and I would recommend to use the documentation on the StrongSwan website as the first choice.
Although we will revisit it later in other Wiki pages keep the following three components / items in mind.
Charon. The charon daemon was built from scratch to implement the IKEv2 protocol for the strongSwan project. This can be considered the kernel of StrongSwan.
Vici. The vici plugin for libcharon provides the Versatile IKE Control Interface (VICI). We use Vici to communicate with Charon.
Swanctl. Swanctl is a command line utility to configure, control and monitor the IKE charon daemon via the vici interface plugin. Swanctl is also used by the startup scripts to load client configs.
We will work mostly (directly or indirectly with swanctl).
Although there are many other plugins available and part of StrongSwan, we stick to these three items for now to prevent from getting overwhelmed.
To recap, Charon is in the center, Vici sits on top of it. Swanctl is on the outside, using Vici to speak with Charon.