Lines Matching refs:attrs

52 static struct wg_device *lookup_interface(struct nlattr **attrs,
57 if (!attrs[WGDEVICE_A_IFINDEX] == !attrs[WGDEVICE_A_IFNAME])
59 if (attrs[WGDEVICE_A_IFINDEX])
61 nla_get_u32(attrs[WGDEVICE_A_IFINDEX]));
62 else if (attrs[WGDEVICE_A_IFNAME])
64 nla_data(attrs[WGDEVICE_A_IFNAME]));
203 wg = lookup_interface(genl_info_dump(cb)->attrs, cb->skb);
329 static int set_allowedip(struct wg_peer *peer, struct nlattr **attrs)
335 if (!attrs[WGALLOWEDIP_A_FAMILY] || !attrs[WGALLOWEDIP_A_IPADDR] ||
336 !attrs[WGALLOWEDIP_A_CIDR_MASK])
338 family = nla_get_u16(attrs[WGALLOWEDIP_A_FAMILY]);
339 cidr = nla_get_u8(attrs[WGALLOWEDIP_A_CIDR_MASK]);
342 nla_len(attrs[WGALLOWEDIP_A_IPADDR]) == sizeof(struct in_addr))
345 nla_data(attrs[WGALLOWEDIP_A_IPADDR]), cidr, peer,
348 nla_len(attrs[WGALLOWEDIP_A_IPADDR]) == sizeof(struct in6_addr))
351 nla_data(attrs[WGALLOWEDIP_A_IPADDR]), cidr, peer,
357 static int set_peer(struct wg_device *wg, struct nlattr **attrs)
365 if (attrs[WGPEER_A_PUBLIC_KEY] &&
366 nla_len(attrs[WGPEER_A_PUBLIC_KEY]) == NOISE_PUBLIC_KEY_LEN)
367 public_key = nla_data(attrs[WGPEER_A_PUBLIC_KEY]);
370 if (attrs[WGPEER_A_PRESHARED_KEY] &&
371 nla_len(attrs[WGPEER_A_PRESHARED_KEY]) == NOISE_SYMMETRIC_KEY_LEN)
372 preshared_key = nla_data(attrs[WGPEER_A_PRESHARED_KEY]);
374 if (attrs[WGPEER_A_FLAGS])
375 flags = nla_get_u32(attrs[WGPEER_A_FLAGS]);
381 if (attrs[WGPEER_A_PROTOCOL_VERSION]) {
382 if (nla_get_u32(attrs[WGPEER_A_PROTOCOL_VERSION]) != 1)
387 nla_data(attrs[WGPEER_A_PUBLIC_KEY]));
398 !memcmp(nla_data(attrs[WGPEER_A_PUBLIC_KEY]),
436 if (attrs[WGPEER_A_ENDPOINT]) {
437 struct sockaddr *addr = nla_data(attrs[WGPEER_A_ENDPOINT]);
438 size_t len = nla_len(attrs[WGPEER_A_ENDPOINT]);
454 if (attrs[WGPEER_A_ALLOWEDIPS]) {
458 nla_for_each_nested(attr, attrs[WGPEER_A_ALLOWEDIPS], rem) {
469 if (attrs[WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL]) {
471 attrs[WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL]);
487 if (attrs[WGPEER_A_PRESHARED_KEY])
488 memzero_explicit(nla_data(attrs[WGPEER_A_PRESHARED_KEY]),
489 nla_len(attrs[WGPEER_A_PRESHARED_KEY]));
495 struct wg_device *wg = lookup_interface(info->attrs, skb);
507 if (info->attrs[WGDEVICE_A_FLAGS])
508 flags = nla_get_u32(info->attrs[WGDEVICE_A_FLAGS]);
513 if (info->attrs[WGDEVICE_A_LISTEN_PORT] || info->attrs[WGDEVICE_A_FWMARK]) {
525 if (info->attrs[WGDEVICE_A_FWMARK]) {
528 wg->fwmark = nla_get_u32(info->attrs[WGDEVICE_A_FWMARK]);
533 if (info->attrs[WGDEVICE_A_LISTEN_PORT]) {
535 nla_get_u16(info->attrs[WGDEVICE_A_LISTEN_PORT]));
543 if (info->attrs[WGDEVICE_A_PRIVATE_KEY] &&
544 nla_len(info->attrs[WGDEVICE_A_PRIVATE_KEY]) ==
546 u8 *private_key = nla_data(info->attrs[WGDEVICE_A_PRIVATE_KEY]);
583 if (info->attrs[WGDEVICE_A_PEERS]) {
587 nla_for_each_nested(attr, info->attrs[WGDEVICE_A_PEERS], rem) {
604 if (info->attrs[WGDEVICE_A_PRIVATE_KEY])
605 memzero_explicit(nla_data(info->attrs[WGDEVICE_A_PRIVATE_KEY]),
606 nla_len(info->attrs[WGDEVICE_A_PRIVATE_KEY]));