libnl: /data/src/libnl/lib/xfrm/nl-xfrm.h Source File

libnl 3.12.0

nl-xfrm.h
1/* SPDX-License-Identifier: LGPL-2.1-only */
2/*
3 * Copyright (c) 2003-2013 Thomas Graf <tgraf@suug.ch>
4 * Copyright (c) 2013 Sassano Systems LLC <joe@sassanosystems.com>
5 */
6
7#ifndef __LIB_XFRM_NL_XFRM_H__
8#define __LIB_XFRM_NL_XFRM_H__
9
10/* Lifetime configuration, used for both policy rules (SPD) and SAs. */
11 struct xfrmnl_ltime_cfg {
12 uint32_t refcnt;
13 uint64_t soft_byte_limit;
14 uint64_t hard_byte_limit;
15 uint64_t soft_packet_limit;
16 uint64_t hard_packet_limit;
17 uint64_t soft_add_expires_seconds;
18 uint64_t hard_add_expires_seconds;
19 uint64_t soft_use_expires_seconds;
20 uint64_t hard_use_expires_seconds;
21};
22
23/* Current lifetime, used for both policy rules (SPD) and SAs. */
24 struct xfrmnl_lifetime_cur {
25 uint64_t bytes;
26 uint64_t packets;
27 uint64_t add_time;
28 uint64_t use_time;
29};
30
31 struct xfrmnl_replay_state {
32 uint32_t oseq;
33 uint32_t seq;
34 uint32_t bitmap;
35};
36
37 struct xfrmnl_replay_state_esn {
38 uint32_t bmp_len;
39 uint32_t oseq;
40 uint32_t seq;
41 uint32_t oseq_hi;
42 uint32_t seq_hi;
43 uint32_t replay_window;
44 uint32_t bmp[0];
45};
46
47 struct xfrmnl_mark {
48 uint32_t v; /* value */
49 uint32_t m; /* mask */
50};
51
52 struct xfrmnl_id {
53 struct nl_addr *daddr;
54 uint32_t spi;
55 uint8_t proto;
56};
57
58 struct xfrmnl_user_sec_ctx {
59 uint16_t len;
60 uint16_t exttype;
61 uint8_t ctx_alg;
62 uint8_t ctx_doi;
63 uint16_t ctx_len;
64 char ctx[0];
65};
66
67 struct xfrmnl_user_tmpl {
68 struct xfrmnl_id id;
69 uint16_t family;
70 struct nl_addr *saddr;
71 uint32_t reqid;
72 uint8_t mode;
73 uint8_t share;
74 uint8_t optional;
75 uint32_t aalgos;
76 uint32_t ealgos;
77 uint32_t calgos;
78 struct nl_list_head utmpl_list;
79};
80
81#endif /* __LIB_XFRM_NL_XFRM_H__ */
nl_list_head
Definition list.h:19
xfrmnl_id
Definition nl-xfrm.h:52
xfrmnl_lifetime_cur
Definition nl-xfrm.h:24
xfrmnl_ltime_cfg
Definition nl-xfrm.h:11
xfrmnl_mark
Definition nl-xfrm.h:47
xfrmnl_replay_state_esn
Definition nl-xfrm.h:37
xfrmnl_replay_state
Definition nl-xfrm.h:31
xfrmnl_user_sec_ctx
Definition nl-xfrm.h:58
xfrmnl_user_tmpl
Definition nl-xfrm.h:67