xref: /linux/Documentation/netlink/specs/psp.yaml (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
100c94ca2SJakub Kicinski# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
200c94ca2SJakub Kicinski---
300c94ca2SJakub Kicinskiname: psp
400c94ca2SJakub Kicinski
500c94ca2SJakub Kicinskidoc:
600c94ca2SJakub Kicinski  PSP Security Protocol Generic Netlink family.
700c94ca2SJakub Kicinski
800c94ca2SJakub Kicinskidefinitions:
900c94ca2SJakub Kicinski  -
1000c94ca2SJakub Kicinski    type: enum
1100c94ca2SJakub Kicinski    name: version
1200c94ca2SJakub Kicinski    entries: [hdr0-aes-gcm-128, hdr0-aes-gcm-256,
1300c94ca2SJakub Kicinski              hdr0-aes-gmac-128, hdr0-aes-gmac-256]
1400c94ca2SJakub Kicinski
1500c94ca2SJakub Kicinskiattribute-sets:
1600c94ca2SJakub Kicinski  -
1700c94ca2SJakub Kicinski    name: dev
1800c94ca2SJakub Kicinski    attributes:
1900c94ca2SJakub Kicinski      -
2000c94ca2SJakub Kicinski        name: id
2100c94ca2SJakub Kicinski        doc: PSP device ID.
2200c94ca2SJakub Kicinski        type: u32
2300c94ca2SJakub Kicinski        checks:
2400c94ca2SJakub Kicinski          min: 1
2500c94ca2SJakub Kicinski      -
2600c94ca2SJakub Kicinski        name: ifindex
2700c94ca2SJakub Kicinski        doc: ifindex of the main netdevice linked to the PSP device.
2800c94ca2SJakub Kicinski        type: u32
2900c94ca2SJakub Kicinski      -
3000c94ca2SJakub Kicinski        name: psp-versions-cap
3100c94ca2SJakub Kicinski        doc: Bitmask of PSP versions supported by the device.
3200c94ca2SJakub Kicinski        type: u32
3300c94ca2SJakub Kicinski        enum: version
3400c94ca2SJakub Kicinski        enum-as-flags: true
3500c94ca2SJakub Kicinski      -
3600c94ca2SJakub Kicinski        name: psp-versions-ena
3700c94ca2SJakub Kicinski        doc: Bitmask of currently enabled (accepted on Rx) PSP versions.
3800c94ca2SJakub Kicinski        type: u32
3900c94ca2SJakub Kicinski        enum: version
4000c94ca2SJakub Kicinski        enum-as-flags: true
41*6b46ca26SJakub Kicinski  -
42*6b46ca26SJakub Kicinski    name: assoc
43*6b46ca26SJakub Kicinski    attributes:
44*6b46ca26SJakub Kicinski      -
45*6b46ca26SJakub Kicinski        name: dev-id
46*6b46ca26SJakub Kicinski        doc: PSP device ID.
47*6b46ca26SJakub Kicinski        type: u32
48*6b46ca26SJakub Kicinski        checks:
49*6b46ca26SJakub Kicinski          min: 1
50*6b46ca26SJakub Kicinski      -
51*6b46ca26SJakub Kicinski        name: version
52*6b46ca26SJakub Kicinski        doc: |
53*6b46ca26SJakub Kicinski          PSP versions (AEAD and protocol version) used by this association,
54*6b46ca26SJakub Kicinski          dictates the size of the key.
55*6b46ca26SJakub Kicinski        type: u32
56*6b46ca26SJakub Kicinski        enum: version
57*6b46ca26SJakub Kicinski      -
58*6b46ca26SJakub Kicinski        name: rx-key
59*6b46ca26SJakub Kicinski        type: nest
60*6b46ca26SJakub Kicinski        nested-attributes: keys
61*6b46ca26SJakub Kicinski      -
62*6b46ca26SJakub Kicinski        name: tx-key
63*6b46ca26SJakub Kicinski        type: nest
64*6b46ca26SJakub Kicinski        nested-attributes: keys
65*6b46ca26SJakub Kicinski      -
66*6b46ca26SJakub Kicinski        name: sock-fd
67*6b46ca26SJakub Kicinski        doc: Sockets which should be bound to the association immediately.
68*6b46ca26SJakub Kicinski        type: u32
69*6b46ca26SJakub Kicinski  -
70*6b46ca26SJakub Kicinski    name: keys
71*6b46ca26SJakub Kicinski    attributes:
72*6b46ca26SJakub Kicinski      -
73*6b46ca26SJakub Kicinski        name: key
74*6b46ca26SJakub Kicinski        type: binary
75*6b46ca26SJakub Kicinski      -
76*6b46ca26SJakub Kicinski        name: spi
77*6b46ca26SJakub Kicinski        doc: Security Parameters Index (SPI) of the association.
78*6b46ca26SJakub Kicinski        type: u32
7900c94ca2SJakub Kicinski
8000c94ca2SJakub Kicinskioperations:
8100c94ca2SJakub Kicinski  list:
8200c94ca2SJakub Kicinski    -
8300c94ca2SJakub Kicinski      name: dev-get
8400c94ca2SJakub Kicinski      doc: Get / dump information about PSP capable devices on the system.
8500c94ca2SJakub Kicinski      attribute-set: dev
8600c94ca2SJakub Kicinski      do:
8700c94ca2SJakub Kicinski        request:
8800c94ca2SJakub Kicinski          attributes:
8900c94ca2SJakub Kicinski            - id
9000c94ca2SJakub Kicinski        reply: &dev-all
9100c94ca2SJakub Kicinski          attributes:
9200c94ca2SJakub Kicinski            - id
9300c94ca2SJakub Kicinski            - ifindex
9400c94ca2SJakub Kicinski            - psp-versions-cap
9500c94ca2SJakub Kicinski            - psp-versions-ena
9600c94ca2SJakub Kicinski        pre: psp-device-get-locked
9700c94ca2SJakub Kicinski        post: psp-device-unlock
9800c94ca2SJakub Kicinski      dump:
9900c94ca2SJakub Kicinski        reply: *dev-all
10000c94ca2SJakub Kicinski    -
10100c94ca2SJakub Kicinski      name: dev-add-ntf
10200c94ca2SJakub Kicinski      doc: Notification about device appearing.
10300c94ca2SJakub Kicinski      notify: dev-get
10400c94ca2SJakub Kicinski      mcgrp: mgmt
10500c94ca2SJakub Kicinski    -
10600c94ca2SJakub Kicinski      name: dev-del-ntf
10700c94ca2SJakub Kicinski      doc: Notification about device disappearing.
10800c94ca2SJakub Kicinski      notify: dev-get
10900c94ca2SJakub Kicinski      mcgrp: mgmt
11000c94ca2SJakub Kicinski    -
11100c94ca2SJakub Kicinski      name: dev-set
11200c94ca2SJakub Kicinski      doc: Set the configuration of a PSP device.
11300c94ca2SJakub Kicinski      attribute-set: dev
11400c94ca2SJakub Kicinski      do:
11500c94ca2SJakub Kicinski        request:
11600c94ca2SJakub Kicinski          attributes:
11700c94ca2SJakub Kicinski            - id
11800c94ca2SJakub Kicinski            - psp-versions-ena
11900c94ca2SJakub Kicinski        reply:
12000c94ca2SJakub Kicinski          attributes: []
12100c94ca2SJakub Kicinski        pre: psp-device-get-locked
12200c94ca2SJakub Kicinski        post: psp-device-unlock
12300c94ca2SJakub Kicinski    -
12400c94ca2SJakub Kicinski      name: dev-change-ntf
12500c94ca2SJakub Kicinski      doc: Notification about device configuration being changed.
12600c94ca2SJakub Kicinski      notify: dev-get
12700c94ca2SJakub Kicinski      mcgrp: mgmt
12800c94ca2SJakub Kicinski
129117f02a4SJakub Kicinski    -
130117f02a4SJakub Kicinski      name: key-rotate
131117f02a4SJakub Kicinski      doc: Rotate the device key.
132117f02a4SJakub Kicinski      attribute-set: dev
133117f02a4SJakub Kicinski      do:
134117f02a4SJakub Kicinski        request:
135117f02a4SJakub Kicinski          attributes:
136117f02a4SJakub Kicinski            - id
137117f02a4SJakub Kicinski        reply:
138117f02a4SJakub Kicinski          attributes:
139117f02a4SJakub Kicinski            - id
140117f02a4SJakub Kicinski        pre: psp-device-get-locked
141117f02a4SJakub Kicinski        post: psp-device-unlock
142117f02a4SJakub Kicinski    -
143117f02a4SJakub Kicinski      name: key-rotate-ntf
144117f02a4SJakub Kicinski      doc: Notification about device key getting rotated.
145117f02a4SJakub Kicinski      notify: key-rotate
146117f02a4SJakub Kicinski      mcgrp: use
147117f02a4SJakub Kicinski
148*6b46ca26SJakub Kicinski    -
149*6b46ca26SJakub Kicinski      name: rx-assoc
150*6b46ca26SJakub Kicinski      doc: Allocate a new Rx key + SPI pair, associate it with a socket.
151*6b46ca26SJakub Kicinski      attribute-set: assoc
152*6b46ca26SJakub Kicinski      do:
153*6b46ca26SJakub Kicinski        request:
154*6b46ca26SJakub Kicinski          attributes:
155*6b46ca26SJakub Kicinski            - dev-id
156*6b46ca26SJakub Kicinski            - version
157*6b46ca26SJakub Kicinski            - sock-fd
158*6b46ca26SJakub Kicinski        reply:
159*6b46ca26SJakub Kicinski          attributes:
160*6b46ca26SJakub Kicinski            - dev-id
161*6b46ca26SJakub Kicinski            - rx-key
162*6b46ca26SJakub Kicinski        pre: psp-assoc-device-get-locked
163*6b46ca26SJakub Kicinski        post: psp-device-unlock
164*6b46ca26SJakub Kicinski    -
165*6b46ca26SJakub Kicinski      name: tx-assoc
166*6b46ca26SJakub Kicinski      doc: Add a PSP Tx association.
167*6b46ca26SJakub Kicinski      attribute-set: assoc
168*6b46ca26SJakub Kicinski      do:
169*6b46ca26SJakub Kicinski        request:
170*6b46ca26SJakub Kicinski          attributes:
171*6b46ca26SJakub Kicinski            - dev-id
172*6b46ca26SJakub Kicinski            - version
173*6b46ca26SJakub Kicinski            - tx-key
174*6b46ca26SJakub Kicinski            - sock-fd
175*6b46ca26SJakub Kicinski        reply:
176*6b46ca26SJakub Kicinski          attributes: []
177*6b46ca26SJakub Kicinski        pre: psp-assoc-device-get-locked
178*6b46ca26SJakub Kicinski        post: psp-device-unlock
179*6b46ca26SJakub Kicinski
18000c94ca2SJakub Kicinskimcast-groups:
18100c94ca2SJakub Kicinski  list:
18200c94ca2SJakub Kicinski    -
18300c94ca2SJakub Kicinski      name: mgmt
184117f02a4SJakub Kicinski    -
185117f02a4SJakub Kicinski      name: use
18600c94ca2SJakub Kicinski
18700c94ca2SJakub Kicinski...
188