Hi Jakub, If the user specifies 'pref' in the new rule, then tc checks if there is a tcf_proto object that matches this priority. If the tcf_proto object does not exist, tc creates a tcf_proto object and it adds the new rule to this tcf_proto. In cls_flower, each tcf_proto only stores one single rule, so if the user tries to add another rule with the same 'pref', cls_flower returns EEXIST. I'll prepare a new patchset not to map the priority to the netfilter basechain priority, instead the rule priority will be internally allocated for each new rule. Thanks for your feedback.