Lines Matching refs:nla

62 static int validate_nla_bitfield32(const struct nlattr *nla,
65 const struct nla_bitfield32 *bf = nla_data(nla);
164 const struct nlattr *nla,
173 value = nla_get_u8(nla);
176 value = nla_get_u16(nla);
179 value = nla_get_u32(nla);
183 value = nla_get_u64(nla);
186 value = nla_len(nla);
199 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
212 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
215 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
269 const struct nlattr *nla,
277 value = nla_get_s8(nla);
280 value = nla_get_s16(nla);
283 value = nla_get_s32(nla);
286 value = nla_get_s64(nla);
295 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
304 const struct nlattr *nla,
315 return nla_validate_range_unsigned(pt, nla, extack, validate);
320 return nla_validate_int_range_signed(pt, nla, extack);
328 const struct nlattr *nla,
335 value = nla_get_u8(nla);
338 value = nla_get_u16(nla);
341 value = nla_get_u32(nla);
344 value = nla_get_u64(nla);
351 NL_SET_ERR_MSG_ATTR(extack, nla, "reserved bit set");
358 static int validate_nla(const struct nlattr *nla, int maxtype,
364 int minlen = 0, attrlen = nla_len(nla), type = nla_type(nla);
382 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
390 !(nla->nla_type & NLA_F_NESTED)) {
391 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
396 pt->type != NLA_UNSPEC && (nla->nla_type & NLA_F_NESTED)) {
397 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
406 NL_SET_BAD_ATTR(extack, nla);
422 err = validate_nla_bitfield32(nla, pt->bitfield32_valid);
433 if (!minlen || memchr(nla_data(nla), '\0', minlen) == NULL) {
444 char *buf = nla_data(nla);
468 err = __nla_validate_parse(nla_data(nla), nla_len(nla),
492 err = nla_validate_array(nla_data(nla), nla_len(nla),
507 NL_SET_ERR_MSG_ATTR(extack, nla,
535 err = nla_validate_int_range(pt, nla, extack, validate);
540 err = nla_validate_mask(pt, nla, extack);
546 err = pt->validate(nla, extack);
555 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
566 const struct nlattr *nla;
578 nla_for_each_attr(nla, head, len, rem) {
579 u16 type = nla_type(nla);
583 NL_SET_ERR_MSG_ATTR(extack, nla,
591 int err = validate_nla(nla, maxtype, policy,
599 tb[type] = (struct nlattr *)nla;
703 const struct nlattr *nla;
706 nla_for_each_attr(nla, head, len, rem)
707 if (nla_type(nla) == attrtype)
708 return (struct nlattr *)nla;
717 * @nla: attribute to copy the string from
726 size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize)
728 size_t srclen = nla_len(nla);
729 char *src = nla_data(nla);
747 * @nla: attribute to copy the string from
752 char *nla_strdup(const struct nlattr *nla, gfp_t flags)
754 size_t srclen = nla_len(nla);
755 char *src = nla_data(nla), *dst;
794 * @nla: netlink attribute
798 int nla_memcmp(const struct nlattr *nla, const void *data,
801 int d = nla_len(nla) - size;
804 d = memcmp(nla_data(nla), data, size);
812 * @nla: netlink string attribute
815 int nla_strcmp(const struct nlattr *nla, const char *str)
818 char *buf = nla_data(nla);
819 int attrlen = nla_len(nla);
827 d = memcmp(nla_data(nla), str, len);
848 struct nlattr *nla;
850 nla = skb_put(skb, nla_total_size(attrlen));
851 nla->nla_type = attrtype;
852 nla->nla_len = nla_attr_size(attrlen);
854 memset((unsigned char *) nla + nla->nla_len, 0, nla_padlen(attrlen));
856 return nla;
982 struct nlattr *nla;
984 nla = __nla_reserve(skb, attrtype, attrlen);
985 memcpy(nla_data(nla), data, attrlen);
1003 struct nlattr *nla;
1005 nla = __nla_reserve_64bit(skb, attrtype, attrlen, padattr);
1006 memcpy(nla_data(nla), data, attrlen);