Gabe Frost
I need to ask a clarifying question, and think you should get some background. For starters, yes, TC is the only API by which you can set arbitrary layer-2 priority tag (802.1p). GQoS does not allow setting layer-2 priority (only layer-3 DSCP) and qWAVE (qos2) will only set layer-2 for adaptive flows (QOSAddSocketToFlow is *not* called with the QOS_NON_ADAPTIVE_FLOW flag) where the end-to-end path between source and destination will not drop a packet that contains the 802.1p tag. Essentially, qWAVE does an experiment to determine whether the tag will get dropped, and won't add it if so. You take a risk using TC to add layer-2 tag because it does not do this test and the frame may get dropped by some intermediate network element (network switch or NIC on receiving station).
All that said, I'm not sure what you mean by modifying a TC filter (which is used to match traffic for applying flow properties to) You set 802.1p essentially the same way you set DSCP. In the flow setup, you specify that you want layer-2, layer-3, or both priorities, and what specific value to use. A filter has nothing to do with it. I may be missing something, so please elaborate on what you are trying to do, and I'll try to be of more help. Are you asking specifically how to set 802.1p tag instead of DSCP in the flow creation
-- Gabe Frost [MSFT]