Lines Matching refs:nla

61 static int validate_nla_bitfield32(const struct nlattr *nla,  in validate_nla_bitfield32()  argument
64 const struct nla_bitfield32 *bf = nla_data(nla); in validate_nla_bitfield32()
165 const struct nlattr *nla, in nla_validate_range_unsigned() argument
174 value = nla_get_u8(nla); in nla_validate_range_unsigned()
177 value = nla_get_u16(nla); in nla_validate_range_unsigned()
180 value = nla_get_u32(nla); in nla_validate_range_unsigned()
183 value = nla_get_u64(nla); in nla_validate_range_unsigned()
186 value = nla_get_u64(nla); in nla_validate_range_unsigned()
189 value = nla_len(nla); in nla_validate_range_unsigned()
192 value = ntohs(nla_get_be16(nla)); in nla_validate_range_unsigned()
195 value = ntohl(nla_get_be32(nla)); in nla_validate_range_unsigned()
208 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_range_unsigned()
221 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_range_unsigned()
224 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_range_unsigned()
278 const struct nlattr *nla, in nla_validate_int_range_signed() argument
286 value = nla_get_s8(nla); in nla_validate_int_range_signed()
289 value = nla_get_s16(nla); in nla_validate_int_range_signed()
292 value = nla_get_s32(nla); in nla_validate_int_range_signed()
295 value = nla_get_s64(nla); in nla_validate_int_range_signed()
304 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_int_range_signed()
313 const struct nlattr *nla, in nla_validate_int_range() argument
326 return nla_validate_range_unsigned(pt, nla, extack, validate); in nla_validate_int_range()
331 return nla_validate_int_range_signed(pt, nla, extack); in nla_validate_int_range()
339 const struct nlattr *nla, in nla_validate_mask() argument
346 value = nla_get_u8(nla); in nla_validate_mask()
349 value = nla_get_u16(nla); in nla_validate_mask()
352 value = nla_get_u32(nla); in nla_validate_mask()
355 value = nla_get_u64(nla); in nla_validate_mask()
362 NL_SET_ERR_MSG_ATTR(extack, nla, "reserved bit set"); in nla_validate_mask()
369 static int validate_nla(const struct nlattr *nla, int maxtype, in validate_nla() argument
375 int minlen = 0, attrlen = nla_len(nla), type = nla_type(nla); in validate_nla()
392 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
400 !(nla->nla_type & NLA_F_NESTED)) { in validate_nla()
401 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
406 pt->type != NLA_UNSPEC && (nla->nla_type & NLA_F_NESTED)) { in validate_nla()
407 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
416 NL_SET_BAD_ATTR(extack, nla); in validate_nla()
432 err = validate_nla_bitfield32(nla, pt->bitfield32_valid); in validate_nla()
443 if (!minlen || memchr(nla_data(nla), '\0', minlen) == NULL) { in validate_nla()
454 char *buf = nla_data(nla); in validate_nla()
478 err = __nla_validate_parse(nla_data(nla), nla_len(nla), in validate_nla()
502 err = nla_validate_array(nla_data(nla), nla_len(nla), in validate_nla()
517 NL_SET_ERR_MSG_ATTR(extack, nla, in validate_nla()
545 err = nla_validate_int_range(pt, nla, extack, validate); in validate_nla()
550 err = nla_validate_mask(pt, nla, extack); in validate_nla()
556 err = pt->validate(nla, extack); in validate_nla()
565 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
576 const struct nlattr *nla; in __nla_validate_parse() local
588 nla_for_each_attr(nla, head, len, rem) { in __nla_validate_parse()
589 u16 type = nla_type(nla); in __nla_validate_parse()
593 NL_SET_ERR_MSG_ATTR(extack, nla, in __nla_validate_parse()
600 int err = validate_nla(nla, maxtype, policy, in __nla_validate_parse()
608 tb[type] = (struct nlattr *)nla; in __nla_validate_parse()
712 const struct nlattr *nla; in nla_find() local
715 nla_for_each_attr(nla, head, len, rem) in nla_find()
716 if (nla_type(nla) == attrtype) in nla_find()
717 return (struct nlattr *)nla; in nla_find()
737 ssize_t nla_strscpy(char *dst, const struct nlattr *nla, size_t dstsize) in nla_strscpy() argument
739 size_t srclen = nla_len(nla); in nla_strscpy()
740 char *src = nla_data(nla); in nla_strscpy()
773 char *nla_strdup(const struct nlattr *nla, gfp_t flags) in nla_strdup() argument
775 size_t srclen = nla_len(nla); in nla_strdup()
776 char *src = nla_data(nla), *dst; in nla_strdup()
819 int nla_memcmp(const struct nlattr *nla, const void *data, in nla_memcmp() argument
822 int d = nla_len(nla) - size; in nla_memcmp()
825 d = memcmp(nla_data(nla), data, size); in nla_memcmp()
836 int nla_strcmp(const struct nlattr *nla, const char *str) in nla_strcmp() argument
839 char *buf = nla_data(nla); in nla_strcmp()
840 int attrlen = nla_len(nla); in nla_strcmp()
848 d = memcmp(nla_data(nla), str, len); in nla_strcmp()
869 struct nlattr *nla; in __nla_reserve() local
871 nla = skb_put(skb, nla_total_size(attrlen)); in __nla_reserve()
872 nla->nla_type = attrtype; in __nla_reserve()
873 nla->nla_len = nla_attr_size(attrlen); in __nla_reserve()
875 memset((unsigned char *) nla + nla->nla_len, 0, nla_padlen(attrlen)); in __nla_reserve()
877 return nla; in __nla_reserve()
1003 struct nlattr *nla; in __nla_put() local
1005 nla = __nla_reserve(skb, attrtype, attrlen); in __nla_put()
1006 memcpy(nla_data(nla), data, attrlen); in __nla_put()
1024 struct nlattr *nla; in __nla_put_64bit() local
1026 nla = __nla_reserve_64bit(skb, attrtype, attrlen, padattr); in __nla_put_64bit()
1027 memcpy(nla_data(nla), data, attrlen); in __nla_put_64bit()