complete -c pfctl -s s -d 'Show a filter parameter by modifier' -xa \ 'queue\t"Show loaded queue definitions" \ rules\t"Show loaded filter rules" \ Anchors\t"Show anchors attached to main ruleset" \ states\t"Show state table" Sources\t"Show source tracking table" \ info\t"Show filter information" \ labels\t"Show stats of labeled filter rules" \ timeouts\t"Show global timeouts" \ memory\t"Show pool memory hard limits" \ Tables\t"Show the list of tables" \ osfp\t"Show a list of OS fingerprints" \ Interfaces\t"List PF interfaces/drivers" \ all\t"Everything."' complete -c pfctl -s F -d 'Flush filter params specified by mod' -xa \ 'rules\t"Flush filter rules" \ states\t"Flush state table" \ Sources\t"Flush source tracking table" \ info\t"Flush filter information" \ Tables\t"Flush the tables" \ ospf\t"Flush the passive OS fingerprints" \ all\t"Flush everything"' complete -c pfctl -s T -d 'Table command' -xa \ 'kill\t"Kill a table." \ flush\t"Flush addresses of a table" \ add\t"Add one or more addresses in table" \ delete\t"Delete one or more addresses from a table" \ expire\t"Delete addresses where stats cleared > N seconds" \ replace\t"Replace the addresses of the table" \ show\t"Show the contents of a table" \ test\t"Test if the given addresses match a table" \ zero\t"Clear all the stats of a table"'