Currently, a viable way to limit P2P traffic (which is mostly encrypted) would be to try to prioritize as many "known" services as practical (e.g. dns, http, smtp, pop, imap etc) and then just put all the rest (which would include P2P) in "bulk traffic" category with low bandwidth.
L7 might be used to identify & classify certain protocols that also encrypt their traffic, e.g. Skype (I posted about it in this sub-forum a few weeks ago).
Another way that I've considered would be to use pf's max-src-conn-* options to limit the total number of open connections for each IP, but pfsense currently puts the "offending" IPs into the <virusprot>table and thus blocks them altogether…
To clarify, I'd like to define an alias known_ports = "{ 22, 25, 53, 80, 443, etc }" and then add a fw rule
from LANnet
to any
port !known_ports
max-src-conn-rate 4/60
Since P2P connections tend to be numerous, short and bursty, with the only common parameter being the src-IP (the client running the P2P software), I would think it would throttle them down a bit.</virusprot>