On 7/14/18 1:10 AM, Qiaobin Fu wrote:
> @@ -156,6 +162,9 @@ parse_skbedit(struct action_util *a, int *argc_p, char 
> ***argv_p, int tca_id,
>       if (flags & SKBEDIT_F_PTYPE)
>               addattr_l(n, MAX_MSG, TCA_SKBEDIT_PTYPE,
>                         &ptype, sizeof(ptype));
> +     if (pure_flags != 0)
> +             addattr_l(n, MAX_MSG, TCA_SKBEDIT_FLAGS,
> +                       &pure_flags, sizeof(pure_flags));

I realize this follows suit with the current code, but tc needs to use
the helpers -- like addattr64 instead of addattr_l

>       addattr_nest_end(n, tail);
>  
>       *argc_p = argc;
> @@ -214,6 +223,13 @@ static int print_skbedit(struct action_util *au, FILE 
> *f, struct rtattr *arg)
>               else
>                       print_uint(PRINT_ANY, "ptype", " ptype %u", ptype);
>       }
> +     if (tb[TCA_SKBEDIT_FLAGS] != NULL) {
> +             __u64 *flags = RTA_DATA(tb[TCA_SKBEDIT_FLAGS]);

and rta_getattr_u64 instead of RTA_DATA.

> +
> +             if (*flags & SKBEDIT_F_INHERITDSFIELD)
> +                     print_null(PRINT_ANY, "inheritdsfield", " %s",
> +                                  "inheritdsfield");
> +     }
>  
>       print_action_control(f, " ", p->action, "");
>  
> 

Reply via email to