summaryrefslogtreecommitdiff
path: root/docs/vpp/configuration/dataplane/ipsec.rst
blob: 31734c862412aebf579bfbd27a255cad693243e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
:lastproofread: 2026-02-23

.. _vpp_config_dataplane_ipsec:

.. include:: /_include/need_improvement.txt

#######################
VPP IPsec Configuration
#######################

VPP supports IPsec (Internet Protocol Security) offloading from the
kernel, which speeds up cryptographic operations by leveraging VPP's
high-performance packet processing capabilities.

IPsec does not require any specific configuration on VPP side. If both
sources and destinations of the IPsec traffic are reachable via VPP
interfaces, VPP will automatically offload the IPsec processing from
the kernel. IPsec tunnels are configured in the VPN configuration
section, see :ref:`ipsec_general`.

IPsec Configuration Parameters
==============================

enable IPsec acceleration
^^^^^^^^^^^^^^^^^^^^^^^^^

When VPP is used for offloading IPsec, it creates a virtual interface to
connect to peers. The interface type is always 'ipsec', which is used for
IPsec tunnels.

.. cfgcmd:: set vpp settings ipsec-acceleration

Enabling this option allows VPP to handle IPsec traffic more efficiently by
offloading processing from the kernel.

netlink
^^^^^^^

VPP uses netlink to receive IPsec event messages from the kernel. Proper
settings of the following parameters are crucial for ensuring that VPP can
process all such messages:

.. cfgcmd:: set vpp settings lcp netlink batch-delay-ms <milliseconds>

This parameter specifies the delay in milliseconds between processing
batch netlink messages.

.. cfgcmd:: set vpp settings lcp netlink batch-size <number>

This parameter specifies the maximum number of netlink messages to
process in a single batch.

.. cfgcmd:: set vpp settings lcp netlink rx-buffer-size <number>

This parameter specifies the size of the receive buffer for netlink
socket. If you expect to offload many IPsec tunnels or get frequent and
intensive rekeying, you may need to increase this value.

.. note::

    IPsec uses the same netlink parameters as LCP, so tuning them
    affects both LCP and IPsec processing.

Potential Issues and Troubleshooting
====================================

Improper IPsec configuration can lead to various issues, including:

- Failure to offload IPsec tunnels to VPP
- Lost IPsec event messages due to insufficient netlink buffer size or
  batch settings
- IPsec states or SAs are not synchronized between kernel and VPP