Lines Matching defs:attrs
46 ifindex = nla_get_u32(info->attrs[OVPN_A_IFINDEX]);
61 NL_SET_BAD_ATTR(info->extack, info->attrs[OVPN_A_IFINDEX]);
97 static bool ovpn_nl_attr_sockaddr_remote(struct nlattr **attrs,
108 if (attrs[OVPN_A_PEER_REMOTE_PORT])
109 port = nla_get_be16(attrs[OVPN_A_PEER_REMOTE_PORT]);
111 if (attrs[OVPN_A_PEER_REMOTE_IPV4]) {
113 in = nla_data(attrs[OVPN_A_PEER_REMOTE_IPV4]);
114 } else if (attrs[OVPN_A_PEER_REMOTE_IPV6]) {
116 in6 = nla_data(attrs[OVPN_A_PEER_REMOTE_IPV6]);
147 static u8 *ovpn_nl_attr_local_ip(struct nlattr **attrs)
151 if (!attrs[OVPN_A_PEER_LOCAL_IPV4] && !attrs[OVPN_A_PEER_LOCAL_IPV6])
154 if (attrs[OVPN_A_PEER_LOCAL_IPV4])
155 return nla_data(attrs[OVPN_A_PEER_LOCAL_IPV4]);
157 addr6 = nla_data(attrs[OVPN_A_PEER_LOCAL_IPV6]);
184 struct nlattr **attrs)
188 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_PEER], attrs,
192 if (attrs[OVPN_A_PEER_REMOTE_IPV4] && attrs[OVPN_A_PEER_REMOTE_IPV6]) {
198 if (!attrs[OVPN_A_PEER_REMOTE_IPV4] &&
199 !attrs[OVPN_A_PEER_REMOTE_IPV6] && attrs[OVPN_A_PEER_REMOTE_PORT]) {
205 if ((attrs[OVPN_A_PEER_REMOTE_IPV4] ||
206 attrs[OVPN_A_PEER_REMOTE_IPV6]) &&
207 !attrs[OVPN_A_PEER_REMOTE_PORT]) {
213 if (!attrs[OVPN_A_PEER_REMOTE_IPV4] &&
214 attrs[OVPN_A_PEER_LOCAL_IPV4]) {
220 if (!attrs[OVPN_A_PEER_REMOTE_IPV6] &&
221 attrs[OVPN_A_PEER_LOCAL_IPV6]) {
232 local_fam = ovpn_nl_family_get(attrs[OVPN_A_PEER_LOCAL_IPV4],
233 attrs[OVPN_A_PEER_LOCAL_IPV6]);
234 remote_fam = ovpn_nl_family_get(attrs[OVPN_A_PEER_REMOTE_IPV4],
235 attrs[OVPN_A_PEER_REMOTE_IPV6]);
243 if (remote_fam != AF_INET6 && attrs[OVPN_A_PEER_REMOTE_IPV6_SCOPE_ID]) {
250 if (ovpn->mode == OVPN_MODE_P2P && (attrs[OVPN_A_PEER_VPN_IPV4] ||
251 attrs[OVPN_A_PEER_VPN_IPV6])) {
257 if ((attrs[OVPN_A_PEER_KEEPALIVE_INTERVAL] &&
258 !attrs[OVPN_A_PEER_KEEPALIVE_TIMEOUT]) ||
259 (!attrs[OVPN_A_PEER_KEEPALIVE_INTERVAL] &&
260 attrs[OVPN_A_PEER_KEEPALIVE_TIMEOUT])) {
273 * @attrs: the attributes from the user request
280 struct nlattr **attrs)
290 if (ovpn_nl_attr_sockaddr_remote(attrs, &ss)) {
295 local_ip = ovpn_nl_attr_local_ip(attrs);
308 if (attrs[OVPN_A_PEER_VPN_IPV4]) {
311 nla_get_in_addr(attrs[OVPN_A_PEER_VPN_IPV4]);
314 if (attrs[OVPN_A_PEER_VPN_IPV6]) {
317 nla_get_in6_addr(attrs[OVPN_A_PEER_VPN_IPV6]);
321 if (attrs[OVPN_A_PEER_KEEPALIVE_INTERVAL] &&
322 attrs[OVPN_A_PEER_KEEPALIVE_TIMEOUT]) {
323 interv = nla_get_u32(attrs[OVPN_A_PEER_KEEPALIVE_INTERVAL]);
324 timeout = nla_get_u32(attrs[OVPN_A_PEER_KEEPALIVE_TIMEOUT]);
343 struct nlattr *attrs[OVPN_A_PEER_MAX + 1];
354 ret = nla_parse_nested(attrs, OVPN_A_PEER_MAX, info->attrs[OVPN_A_PEER],
359 ret = ovpn_nl_peer_precheck(ovpn, info, attrs);
363 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_PEER], attrs,
368 if (ovpn->mode == OVPN_MODE_MP && !attrs[OVPN_A_PEER_VPN_IPV4] &&
369 !attrs[OVPN_A_PEER_VPN_IPV6]) {
375 peer_id = nla_get_u32(attrs[OVPN_A_PEER_ID]);
385 sockfd = nla_get_u32(attrs[OVPN_A_PEER_SOCKET]);
400 !attrs[OVPN_A_PEER_REMOTE_IPV4] &&
401 !attrs[OVPN_A_PEER_REMOTE_IPV6]) {
414 (attrs[OVPN_A_PEER_REMOTE_IPV4] ||
415 attrs[OVPN_A_PEER_REMOTE_IPV6])) {
441 ret = ovpn_nl_peer_modify(peer, info, attrs);
468 struct nlattr *attrs[OVPN_A_PEER_MAX + 1];
478 ret = nla_parse_nested(attrs, OVPN_A_PEER_MAX, info->attrs[OVPN_A_PEER],
483 ret = ovpn_nl_peer_precheck(ovpn, info, attrs);
487 if (attrs[OVPN_A_PEER_SOCKET]) {
493 peer_id = nla_get_u32(attrs[OVPN_A_PEER_ID]);
505 (attrs[OVPN_A_PEER_REMOTE_IPV4] ||
506 attrs[OVPN_A_PEER_REMOTE_IPV6])) {
516 ret = ovpn_nl_peer_modify(peer, info, attrs);
652 struct nlattr *attrs[OVPN_A_PEER_MAX + 1];
662 ret = nla_parse_nested(attrs, OVPN_A_PEER_MAX, info->attrs[OVPN_A_PEER],
667 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_PEER], attrs,
681 if (attrs[i]) {
688 peer_id = nla_get_u32(attrs[OVPN_A_PEER_ID]);
778 struct nlattr *attrs[OVPN_A_PEER_MAX + 1];
787 ret = nla_parse_nested(attrs, OVPN_A_PEER_MAX, info->attrs[OVPN_A_PEER],
792 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_PEER], attrs,
796 peer_id = nla_get_u32(attrs[OVPN_A_PEER_ID]);
815 struct nlattr *attrs[OVPN_A_KEYDIR_MAX + 1];
818 ret = nla_parse_nested(attrs, OVPN_A_KEYDIR_MAX, key,
826 if (NL_REQ_ATTR_CHECK(info->extack, key, attrs,
828 NL_REQ_ATTR_CHECK(info->extack, key, attrs,
832 dir->cipher_key = nla_data(attrs[OVPN_A_KEYDIR_CIPHER_KEY]);
833 dir->cipher_key_size = nla_len(attrs[OVPN_A_KEYDIR_CIPHER_KEY]);
839 dir->nonce_tail = nla_data(attrs[OVPN_A_KEYDIR_NONCE_TAIL]);
840 dir->nonce_tail_size = nla_len(attrs[OVPN_A_KEYDIR_NONCE_TAIL]);
877 struct nlattr *attrs[OVPN_A_KEYCONF_MAX + 1];
887 ret = nla_parse_nested(attrs, OVPN_A_KEYCONF_MAX,
888 info->attrs[OVPN_A_KEYCONF],
893 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
897 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
899 NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
901 NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
903 NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
905 NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
909 pkr.slot = nla_get_u32(attrs[OVPN_A_KEYCONF_SLOT]);
910 pkr.key.key_id = nla_get_u32(attrs[OVPN_A_KEYCONF_KEY_ID]);
911 pkr.key.cipher_alg = nla_get_u32(attrs[OVPN_A_KEYCONF_CIPHER_ALG]);
913 ret = ovpn_nl_get_key_dir(info, attrs[OVPN_A_KEYCONF_ENCRYPT_DIR],
918 ret = ovpn_nl_get_key_dir(info, attrs[OVPN_A_KEYCONF_DECRYPT_DIR],
923 peer_id = nla_get_u32(attrs[OVPN_A_KEYCONF_PEER_ID]);
982 struct nlattr *attrs[OVPN_A_KEYCONF_MAX + 1];
994 ret = nla_parse_nested(attrs, OVPN_A_KEYCONF_MAX,
995 info->attrs[OVPN_A_KEYCONF],
1000 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
1004 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
1019 if (attrs[i]) {
1026 peer_id = nla_get_u32(attrs[OVPN_A_KEYCONF_PEER_ID]);
1034 slot = nla_get_u32(attrs[OVPN_A_KEYCONF_SLOT]);
1065 struct nlattr *attrs[OVPN_A_PEER_MAX + 1];
1073 ret = nla_parse_nested(attrs, OVPN_A_KEYCONF_MAX,
1074 info->attrs[OVPN_A_KEYCONF],
1079 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
1083 peer_id = nla_get_u32(attrs[OVPN_A_KEYCONF_PEER_ID]);
1100 struct nlattr *attrs[OVPN_A_KEYCONF_MAX + 1];
1110 ret = nla_parse_nested(attrs, OVPN_A_KEYCONF_MAX,
1111 info->attrs[OVPN_A_KEYCONF],
1116 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
1120 if (NL_REQ_ATTR_CHECK(info->extack, info->attrs[OVPN_A_KEYCONF], attrs,
1124 peer_id = nla_get_u32(attrs[OVPN_A_KEYCONF_PEER_ID]);
1125 slot = nla_get_u32(attrs[OVPN_A_KEYCONF_SLOT]);