@@ -29,6 +29,22 @@ const struct nla_policy ovpn_keyconf_nl_policy[OVPN_A_KEYCONF_DECRYPT_DIR + 1] =
29
29
[OVPN_A_KEYCONF_DECRYPT_DIR ] = NLA_POLICY_NESTED (ovpn_keydir_nl_policy ),
30
30
};
31
31
32
+ const struct nla_policy ovpn_keyconf_del_input_nl_policy [OVPN_A_KEYCONF_SLOT + 1 ] = {
33
+ [OVPN_A_KEYCONF_PEER_ID ] = NLA_POLICY_FULL_RANGE (NLA_U32 , & ovpn_a_keyconf_peer_id_range ),
34
+ [OVPN_A_KEYCONF_SLOT ] = NLA_POLICY_MAX (NLA_U32 , 1 ),
35
+ };
36
+
37
+ const struct nla_policy ovpn_keyconf_get_nl_policy [OVPN_A_KEYCONF_CIPHER_ALG + 1 ] = {
38
+ [OVPN_A_KEYCONF_PEER_ID ] = NLA_POLICY_FULL_RANGE (NLA_U32 , & ovpn_a_keyconf_peer_id_range ),
39
+ [OVPN_A_KEYCONF_SLOT ] = NLA_POLICY_MAX (NLA_U32 , 1 ),
40
+ [OVPN_A_KEYCONF_KEY_ID ] = NLA_POLICY_MAX (NLA_U32 , 7 ),
41
+ [OVPN_A_KEYCONF_CIPHER_ALG ] = NLA_POLICY_MAX (NLA_U32 , 2 ),
42
+ };
43
+
44
+ const struct nla_policy ovpn_keyconf_swap_input_nl_policy [OVPN_A_KEYCONF_PEER_ID + 1 ] = {
45
+ [OVPN_A_KEYCONF_PEER_ID ] = NLA_POLICY_FULL_RANGE (NLA_U32 , & ovpn_a_keyconf_peer_id_range ),
46
+ };
47
+
32
48
const struct nla_policy ovpn_keydir_nl_policy [OVPN_A_KEYDIR_NONCE_TAIL + 1 ] = {
33
49
[OVPN_A_KEYDIR_CIPHER_KEY ] = NLA_POLICY_MAX_LEN (256 ),
34
50
[OVPN_A_KEYDIR_NONCE_TAIL ] = NLA_POLICY_EXACT_LEN (OVPN_NONCE_TAIL_SIZE ),
@@ -60,16 +76,49 @@ const struct nla_policy ovpn_peer_nl_policy[OVPN_A_PEER_LINK_TX_PACKETS + 1] = {
60
76
[OVPN_A_PEER_LINK_TX_PACKETS ] = { .type = NLA_UINT , },
61
77
};
62
78
79
+ const struct nla_policy ovpn_peer_del_input_nl_policy [OVPN_A_PEER_ID + 1 ] = {
80
+ [OVPN_A_PEER_ID ] = NLA_POLICY_FULL_RANGE (NLA_U32 , & ovpn_a_peer_id_range ),
81
+ };
82
+
83
+ const struct nla_policy ovpn_peer_new_input_nl_policy [OVPN_A_PEER_KEEPALIVE_TIMEOUT + 1 ] = {
84
+ [OVPN_A_PEER_ID ] = NLA_POLICY_FULL_RANGE (NLA_U32 , & ovpn_a_peer_id_range ),
85
+ [OVPN_A_PEER_REMOTE_IPV4 ] = { .type = NLA_BE32 , },
86
+ [OVPN_A_PEER_REMOTE_IPV6 ] = NLA_POLICY_EXACT_LEN (16 ),
87
+ [OVPN_A_PEER_REMOTE_IPV6_SCOPE_ID ] = { .type = NLA_U32 , },
88
+ [OVPN_A_PEER_REMOTE_PORT ] = NLA_POLICY_MIN (NLA_BE16 , 1 ),
89
+ [OVPN_A_PEER_SOCKET ] = { .type = NLA_U32 , },
90
+ [OVPN_A_PEER_VPN_IPV4 ] = { .type = NLA_BE32 , },
91
+ [OVPN_A_PEER_VPN_IPV6 ] = NLA_POLICY_EXACT_LEN (16 ),
92
+ [OVPN_A_PEER_LOCAL_IPV4 ] = { .type = NLA_BE32 , },
93
+ [OVPN_A_PEER_LOCAL_IPV6 ] = NLA_POLICY_EXACT_LEN (16 ),
94
+ [OVPN_A_PEER_KEEPALIVE_INTERVAL ] = { .type = NLA_U32 , },
95
+ [OVPN_A_PEER_KEEPALIVE_TIMEOUT ] = { .type = NLA_U32 , },
96
+ };
97
+
98
+ const struct nla_policy ovpn_peer_set_input_nl_policy [OVPN_A_PEER_KEEPALIVE_TIMEOUT + 1 ] = {
99
+ [OVPN_A_PEER_ID ] = NLA_POLICY_FULL_RANGE (NLA_U32 , & ovpn_a_peer_id_range ),
100
+ [OVPN_A_PEER_REMOTE_IPV4 ] = { .type = NLA_BE32 , },
101
+ [OVPN_A_PEER_REMOTE_IPV6 ] = NLA_POLICY_EXACT_LEN (16 ),
102
+ [OVPN_A_PEER_REMOTE_IPV6_SCOPE_ID ] = { .type = NLA_U32 , },
103
+ [OVPN_A_PEER_REMOTE_PORT ] = NLA_POLICY_MIN (NLA_BE16 , 1 ),
104
+ [OVPN_A_PEER_VPN_IPV4 ] = { .type = NLA_BE32 , },
105
+ [OVPN_A_PEER_VPN_IPV6 ] = NLA_POLICY_EXACT_LEN (16 ),
106
+ [OVPN_A_PEER_LOCAL_IPV4 ] = { .type = NLA_BE32 , },
107
+ [OVPN_A_PEER_LOCAL_IPV6 ] = NLA_POLICY_EXACT_LEN (16 ),
108
+ [OVPN_A_PEER_KEEPALIVE_INTERVAL ] = { .type = NLA_U32 , },
109
+ [OVPN_A_PEER_KEEPALIVE_TIMEOUT ] = { .type = NLA_U32 , },
110
+ };
111
+
63
112
/* OVPN_CMD_PEER_NEW - do */
64
113
static const struct nla_policy ovpn_peer_new_nl_policy [OVPN_A_PEER + 1 ] = {
65
114
[OVPN_A_IFINDEX ] = { .type = NLA_U32 , },
66
- [OVPN_A_PEER ] = NLA_POLICY_NESTED (ovpn_peer_nl_policy ),
115
+ [OVPN_A_PEER ] = NLA_POLICY_NESTED (ovpn_peer_new_input_nl_policy ),
67
116
};
68
117
69
118
/* OVPN_CMD_PEER_SET - do */
70
119
static const struct nla_policy ovpn_peer_set_nl_policy [OVPN_A_PEER + 1 ] = {
71
120
[OVPN_A_IFINDEX ] = { .type = NLA_U32 , },
72
- [OVPN_A_PEER ] = NLA_POLICY_NESTED (ovpn_peer_nl_policy ),
121
+ [OVPN_A_PEER ] = NLA_POLICY_NESTED (ovpn_peer_set_input_nl_policy ),
73
122
};
74
123
75
124
/* OVPN_CMD_PEER_GET - do */
@@ -86,7 +135,7 @@ static const struct nla_policy ovpn_peer_get_dump_nl_policy[OVPN_A_IFINDEX + 1]
86
135
/* OVPN_CMD_PEER_DEL - do */
87
136
static const struct nla_policy ovpn_peer_del_nl_policy [OVPN_A_PEER + 1 ] = {
88
137
[OVPN_A_IFINDEX ] = { .type = NLA_U32 , },
89
- [OVPN_A_PEER ] = NLA_POLICY_NESTED (ovpn_peer_nl_policy ),
138
+ [OVPN_A_PEER ] = NLA_POLICY_NESTED (ovpn_peer_del_input_nl_policy ),
90
139
};
91
140
92
141
/* OVPN_CMD_KEY_NEW - do */
@@ -98,19 +147,19 @@ static const struct nla_policy ovpn_key_new_nl_policy[OVPN_A_KEYCONF + 1] = {
98
147
/* OVPN_CMD_KEY_GET - do */
99
148
static const struct nla_policy ovpn_key_get_nl_policy [OVPN_A_KEYCONF + 1 ] = {
100
149
[OVPN_A_IFINDEX ] = { .type = NLA_U32 , },
101
- [OVPN_A_KEYCONF ] = NLA_POLICY_NESTED (ovpn_keyconf_nl_policy ),
150
+ [OVPN_A_KEYCONF ] = NLA_POLICY_NESTED (ovpn_keyconf_get_nl_policy ),
102
151
};
103
152
104
153
/* OVPN_CMD_KEY_SWAP - do */
105
154
static const struct nla_policy ovpn_key_swap_nl_policy [OVPN_A_KEYCONF + 1 ] = {
106
155
[OVPN_A_IFINDEX ] = { .type = NLA_U32 , },
107
- [OVPN_A_KEYCONF ] = NLA_POLICY_NESTED (ovpn_keyconf_nl_policy ),
156
+ [OVPN_A_KEYCONF ] = NLA_POLICY_NESTED (ovpn_keyconf_swap_input_nl_policy ),
108
157
};
109
158
110
159
/* OVPN_CMD_KEY_DEL - do */
111
160
static const struct nla_policy ovpn_key_del_nl_policy [OVPN_A_KEYCONF + 1 ] = {
112
161
[OVPN_A_IFINDEX ] = { .type = NLA_U32 , },
113
- [OVPN_A_KEYCONF ] = NLA_POLICY_NESTED (ovpn_keyconf_nl_policy ),
162
+ [OVPN_A_KEYCONF ] = NLA_POLICY_NESTED (ovpn_keyconf_del_input_nl_policy ),
114
163
};
115
164
116
165
/* Ops table for ovpn */
0 commit comments