Best mangle practise?

I have one rb493AH connected to 6 wireless links to AP’s with all their own networks.
Ether1 is connected to rb1000 that makes connection to 5 internet connections and does do client limiting and priorization etc.

In rb493AH I have to limit and prioritize traffic towards clients since some wireless links are bottle neck compared to combined possible demand or capacity available at ISP’s.

I mangle in prerouting chain.

to avoid double marking I prefer to use the incoming port (interface connected to client network) for mark connection followed by package marker. Queue on that interface then limit/prioritize traffic in these connections towards clients (=download).

To mention the incoming port I now need to have each filter 6 times? (6 incoming interfaces?)

Or would it be more cpu economic not to mention incoming port at all and just mangle all connections going through router? So basically all client initiated connections get mangled twice. Once while the initial connection is created by the first package send to remote internet host and then second when router sees packages coming back. It again will be mangle in prerouting chain to create conn. mark while that connection actually already exist.

Or, could I make one filter that actually has as classifier !ether1 (so “ALL ports but NOT Ether1”)
But I ever have been told the negative (“!”) option ´eats´ cpu power so better not to use it?

Which option would be the best?

Traffic running over this router has at present max. 20-25Mb combined (up+dwn) traffic during peak times but will grow slowly over time into 30-35 this year I expect.