Marking Connections for Packet/Routing

I have some confusion. What is difference between mark connection vs mark packet vs mark routing?

For example. I want to mark a src-ip for bandwidth shaping so i should first mark connection from this ip then mark packets for these marked connections, then used them in queue ?

For Routing, I also want to mark routing for this user so that I can route him from second wan link. so i can mark conn then pkts then routing?

I also have PCC setup, so I exempt few users from the PCC by creating ACCEPT rule on top in mangle, how it will effect other rules? can i still mark these accepted connections in second rule to give them another connection mark?

Can I Mark connection, then mark packet for these marked connections, then I can also mark routing for these marked connections or pkts?

What is the role of PASSTHROUGH yes/no in this scenario?

how things work here?

They mark connections/packets/routing respectively, but you already know that. Each packet can have all three. Only for connections, you just mark the first packet and following ones get the right connection mark automatically.

Accept rule stops processing in given chain, so no further rules will be checked for given packet.

To change more than one mark, that’s what passthrough option is for. If it’s set to “no”, the processing in chain ends when the rule matches. For “yes”, it continues further.