Login to pfSense webUI
Go to the “Firewall” tab at the top and select “Traffic Shaper”
Now select the “Limiters” tab
Click “New Limiter” on the left hand side
You will likely be making two limiters, one for upload and one for download.
For download, enable the limiter by checking the “enable” box at the top, then set your bandwidth limitation and finally set “Mask” to “Destination Addresses” now click “Save”
For upload, enable the limiter by checking the “enable” box at the top, then set your bandwidth limitation and finally set “Mask” to “Source Addresses” now click “Save”
Now the limiter needs to be added to a firewall rule. If you are trying to limit an entire subnet, go to the “Firewall” tab at the top and select “Rules.” Next select the interface that you would like to apply the limiters to, “LAN” for example. Edit the “IPV4 / IPV6 * * * *” rule, by default this is rule is put in place to allow all traffic from the LAN to pass to any interface. Scroll down and select the “Show Advanced” continue scrolling until you find “In/Out Pipe” the first dropdown should contain the upload limiter and the second dropdown should contain the download limiter.
Finally click save, apply the rules and test!