From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Furniss Date: Thu, 20 Aug 2015 10:34:38 +0000 Subject: Re: upgrading kernel breaks tc ? Message-Id: <55D5AD3E.7020308@gmail.com> List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: lartc@vger.kernel.org Akshat Kakkar wrote: > I am running sl6.3 (i.e. kernel 2.6.32-279). I upgraded the kernel > (and only kernel) using elrepo to kernel 4.1.4. You won't get new features without updating TC - but your test case on my setup still deletes all the filters with matching tc. > Now when I boot with this new kernel, and try to delete specific tc > filter, it is not happening. It is instead deleting all the filters. > Following is the commanf I am trying, > > tc filter del dev eth1 protocol ip parent 1: prio 5 handle 800:0:3 > u32 But earlier you found that handle alone wasn't unique so you should have used the whole command line that you added. Saying that it still deletes all, so that wasn't it. > It is behaving exactily as the command without handle, i.e. like > > tc filter del dev eth1 protocol ip parent 1: prio 5 It maybe a bug or it maybe that old kernel was unsafe letting you delete something that is going to get hashed to. FWIW using replace/change + full command (with eg. flowid changed) works for me, but I didn't find a way to change anything else - which doesn't mean there isn't a way, just that I am not familiar with hashing/advanced tc. Historically I always used to just remove the root qdisc and start again to change something, as it was safer/less error prone. If you have 000s of rules then use batch mode which will be way, way, faster than inputting them with a script.