mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-10-04 16:16:39 +00:00
tc: parse attributes with NLA_F_NESTED flag
The kernel now requires all new nested attributes to set the NLA_F_NESTED flag. Enable tc {qdisc,class,filter} to parse attributes that have the NLA_F_NESTED flag set. Signed-off-by: Leslie Monis <lesliemonis@gmail.com> Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
parent
22aec42679
commit
eae5f4b5c8
@ -246,8 +246,8 @@ static void graph_cls_show(FILE *fp, char *buf, struct hlist_head *root_list,
|
|||||||
"+---(%s)", cls_id_str);
|
"+---(%s)", cls_id_str);
|
||||||
strcat(buf, str);
|
strcat(buf, str);
|
||||||
|
|
||||||
parse_rtattr(tb, TCA_MAX, (struct rtattr *)cls->data,
|
parse_rtattr_flags(tb, TCA_MAX, (struct rtattr *)cls->data,
|
||||||
cls->data_len);
|
cls->data_len, NLA_F_NESTED);
|
||||||
|
|
||||||
if (tb[TCA_KIND] == NULL) {
|
if (tb[TCA_KIND] == NULL) {
|
||||||
strcat(buf, " [unknown qdisc kind] ");
|
strcat(buf, " [unknown qdisc kind] ");
|
||||||
@ -327,7 +327,7 @@ int print_class(struct nlmsghdr *n, void *arg)
|
|||||||
if (filter_classid && t->tcm_handle != filter_classid)
|
if (filter_classid && t->tcm_handle != filter_classid)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
parse_rtattr(tb, TCA_MAX, TCA_RTA(t), len);
|
parse_rtattr_flags(tb, TCA_MAX, TCA_RTA(t), len, NLA_F_NESTED);
|
||||||
|
|
||||||
if (tb[TCA_KIND] == NULL) {
|
if (tb[TCA_KIND] == NULL) {
|
||||||
fprintf(stderr, "print_class: NULL kind\n");
|
fprintf(stderr, "print_class: NULL kind\n");
|
||||||
|
@ -267,7 +267,7 @@ int print_filter(struct nlmsghdr *n, void *arg)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_rtattr(tb, TCA_MAX, TCA_RTA(t), len);
|
parse_rtattr_flags(tb, TCA_MAX, TCA_RTA(t), len, NLA_F_NESTED);
|
||||||
|
|
||||||
if (tb[TCA_KIND] == NULL && (n->nlmsg_type == RTM_NEWTFILTER ||
|
if (tb[TCA_KIND] == NULL && (n->nlmsg_type == RTM_NEWTFILTER ||
|
||||||
n->nlmsg_type == RTM_GETTFILTER ||
|
n->nlmsg_type == RTM_GETTFILTER ||
|
||||||
|
@ -235,7 +235,7 @@ int print_qdisc(struct nlmsghdr *n, void *arg)
|
|||||||
if (filter_ifindex && filter_ifindex != t->tcm_ifindex)
|
if (filter_ifindex && filter_ifindex != t->tcm_ifindex)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
parse_rtattr(tb, TCA_MAX, TCA_RTA(t), len);
|
parse_rtattr_flags(tb, TCA_MAX, TCA_RTA(t), len, NLA_F_NESTED);
|
||||||
|
|
||||||
if (tb[TCA_KIND] == NULL) {
|
if (tb[TCA_KIND] == NULL) {
|
||||||
fprintf(stderr, "print_qdisc: NULL kind\n");
|
fprintf(stderr, "print_qdisc: NULL kind\n");
|
||||||
@ -461,7 +461,7 @@ static int tc_qdisc_block_exists_cb(struct nlmsghdr *n, void *arg)
|
|||||||
if (len < 0)
|
if (len < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
parse_rtattr(tb, TCA_MAX, TCA_RTA(t), len);
|
parse_rtattr_flags(tb, TCA_MAX, TCA_RTA(t), len, NLA_F_NESTED);
|
||||||
|
|
||||||
if (tb[TCA_KIND] == NULL)
|
if (tb[TCA_KIND] == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user