Subject: Re: [PATCH iproute2 1/1] tc: distinguish Add/Replace qdisc operations

From: Roman Mashak <[email-masked]>
Date: Fri, 27 Oct 2017 10:02:33 -0400

Stephen Hemminger <[email-masked]> writes:

> On Thu, 26 Oct 2017 17:30:08 -0400
> Roman Mashak <[email-masked]> wrote:
>
>> Signed-off-by: Roman Mashak <[email-masked]>
>> ---
>>  tc/tc_qdisc.c | 10 ++++++++++
>>  1 file changed, 10 insertions(+)
>> 
>> diff --git a/tc/tc_qdisc.c b/tc/tc_qdisc.c
>> index 1e9d909..493538c 100644
>> --- a/tc/tc_qdisc.c
>> +++ b/tc/tc_qdisc.c
>> @@ -231,6 +231,16 @@ int print_qdisc(const struct sockaddr_nl *who,
>>  	if (n->nlmsg_type == RTM_DELQDISC)
>>  		fprintf(fp, "deleted ");
>>  
>> +	if (n->nlmsg_type == RTM_NEWQDISC &&
>> +			(n->nlmsg_flags & NLM_F_CREATE) &&
>> +			(n->nlmsg_flags & NLM_F_REPLACE))
>> +		fprintf(fp, "replaced ");
>> +
>> +	if (n->nlmsg_type == RTM_NEWQDISC &&
>> +			(n->nlmsg_flags & NLM_F_CREATE) &&
>> +			(n->nlmsg_flags & NLM_F_EXCL))
>> +		fprintf(fp, "added ");
>> +
>>  	if (show_raw)
>>  		fprintf(fp, "qdisc %s %x:[%08x]  ",
>>  			rta_getattr_str(tb[TCA_KIND]),
>
> I am not sure about this. We don't do this for monitoring routes or addresses.

However we already do this for other TC components - actions and
filters, e.g. print_action() or print_filter().