Lines Matching refs:rta
480 struct rtattr *rta;
485 rta = NLMSG_TAIL(n);
486 rta->rta_type = type;
487 rta->rta_len = len;
488 memcpy(RTA_DATA(rta), &data, 4);
497 struct rtattr *rta;
503 rta = NLMSG_TAIL(n);
504 rta->rta_type = type;
505 rta->rta_len = len;
506 memcpy(RTA_DATA(rta), data, alen);
524 int rta_addattr32(struct rtattr *rta, int maxlen, int type, __u32 data)
529 if (RTA_ALIGN(rta->rta_len) + len > maxlen) {
533 subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len));
537 rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len;
541 int rta_addattr_l(struct rtattr *rta, int maxlen, int type,
547 if (RTA_ALIGN(rta->rta_len) + RTA_ALIGN(len) > maxlen) {
551 subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len));
555 rta->rta_len = NLMSG_ALIGN(rta->rta_len) + RTA_ALIGN(len);
559 int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len)
562 while (RTA_OK(rta, len)) {
563 if (rta->rta_type <= max)
564 tb[rta->rta_type] = rta;
565 rta = RTA_NEXT(rta,len);
568 fprintf(stderr, "!!!Deficit %d, rta_len=%d\n", len, rta->rta_len);
572 int parse_rtattr_byindex(struct rtattr *tb[], int max, struct rtattr *rta, int len)
577 while (RTA_OK(rta, len)) {
578 if (rta->rta_type <= max && i < max)
579 tb[i++] = rta;
580 rta = RTA_NEXT(rta,len);
583 fprintf(stderr, "!!!Deficit %d, rta_len=%d\n", len, rta->rta_len);