Lines Matching refs:nla

69  *   nla_data(nla)-------------^
70 * <- nla_len(nla) ->
445 * @arg nla Attribute.
449 int nla_type(const struct nlattr *nla)
451 return nla->nla_type & NLA_TYPE_MASK;
456 * @arg nla Attribute.
460 void *nla_data(const struct nlattr *nla)
462 return (char *) nla + NLA_HDRLEN;
467 * @arg nla Attribute
471 int nla_len(const struct nlattr *nla)
473 return nla->nla_len - NLA_HDRLEN;
478 * @arg nla Attribute of any kind.
488 int nla_ok(const struct nlattr *nla, int remaining)
490 return remaining >= sizeof(*nla) &&
491 nla->nla_len >= sizeof(*nla) &&
492 nla->nla_len <= remaining;
497 * @arg nla Attribute of any kind.
511 struct nlattr *nla_next(const struct nlattr *nla, int *remaining)
513 int totlen = NLA_ALIGN(nla->nla_len);
516 return (struct nlattr *) ((char *) nla + totlen);
527 static int validate_nla(struct nlattr *nla, int maxtype,
531 int minlen = 0, type = nla_type(nla);
546 if (pt->type == NLA_FLAG && nla_len(nla) > 0)
549 if (nla_len(nla) < minlen)
552 if (pt->maxlen && nla_len(nla) > pt->maxlen)
556 char *data = nla_data(nla);
557 if (data[nla_len(nla) - 1] != '\0')
586 struct nlattr *nla;
591 nla_for_each_attr(nla, head, len, rem) {
592 int type = nla_type(nla);
595 fprintf(stderr, "Illegal nla->nla_type == 0\n");
601 err = validate_nla(nla, maxtype, policy);
606 tb[type] = nla;
639 struct nlattr *nla;
642 nla_for_each_attr(nla, head, len, rem) {
643 err = validate_nla(nla, maxtype, policy);
667 struct nlattr *nla;
670 nla_for_each_attr(nla, head, len, rem)
671 if (nla_type(nla) == attrtype)
672 return nla;
711 * @arg nla Attribute of type NLA_STRING.
720 size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize)
722 size_t srclen = nla_len(nla);
723 char *src = nla_data(nla);
740 * @arg nla Attribute.
747 int nla_memcmp(const struct nlattr *nla, const void *data, size_t size)
749 int d = nla_len(nla) - size;
752 d = memcmp(nla_data(nla), data, size);
759 * @arg nla Attribute of type NLA_STRING.
765 int nla_strcmp(const struct nlattr *nla, const char *str)
768 int d = nla_len(nla) - len;
771 d = memcmp(nla_data(nla), str, len);
800 struct nlattr *nla;
808 nla = (struct nlattr *) nlmsg_tail(msg->nm_nlh);
809 nla->nla_type = attrtype;
810 nla->nla_len = nla_attr_size(attrlen);
812 memset((unsigned char *) nla + nla->nla_len, 0, nla_padlen(attrlen));
817 (void *) nla - nlmsg_data(msg->nm_nlh),
820 return nla;
839 struct nlattr *nla;
841 nla = nla_reserve(msg, attrtype, datalen);
842 if (!nla)
845 memcpy(nla_data(nla), data, datalen);
847 msg, datalen, (void *) nla - nlmsg_data(msg->nm_nlh), attrtype);
907 * @arg nla 8 bit integer attribute
911 uint8_t nla_get_u8(struct nlattr *nla)
913 return *(uint8_t *) nla_data(nla);
932 * @arg nla 16 bit integer attribute
936 uint16_t nla_get_u16(struct nlattr *nla)
938 return *(uint16_t *) nla_data(nla);
957 * @arg nla 32 bit integer attribute.
961 uint32_t nla_get_u32(struct nlattr *nla)
963 return *(uint32_t *) nla_data(nla);
982 * @arg nla u64 netlink attribute
986 uint64_t nla_get_u64(struct nlattr *nla)
990 nla_memcpy(&tmp, nla, sizeof(tmp));
1017 * @arg nla String attribute.
1021 char *nla_get_string(struct nlattr *nla)
1023 return (char *) nla_data(nla);
1026 char *nla_strdup(struct nlattr *nla)
1028 return strdup(nla_get_string(nla));
1052 * @arg nla Flag netlink attribute.
1056 int nla_get_flag(struct nlattr *nla)
1058 return !!nla;
1080 * @arg nla msecs netlink attribute
1084 unsigned long nla_get_msecs(struct nlattr *nla)
1086 return nla_get_u64(nla);
1152 * @arg nla Nested Attribute.
1161 int nla_parse_nested(struct nlattr *tb[], int maxtype, struct nlattr *nla,
1164 return nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy);