I have looked months for why the portal doesn't work as described in probably the best guide I have found:
http://m0n0.ch/wall/list/showmsg.php?id=35/88.
IPFW Show
50016 0 0 queue 8 ip from any to 10.172.3.0/27 in via sis1
50017 0 0 queue 7 ip from 10.172.3.0/27 to any out via sis1
Below is the shaper
<shaper>
<pipe>
<bandwidth>1024</bandwidth>
<descr><= [70% upload]</descr>
</pipe>
<pipe>
<bandwidth>16247</bandwidth>
<descr>=> [70% download]</descr>
</pipe>
<pipe>
<bandwidth>512</bandwidth>
<mask>source</mask>
<descr><= Portal 30% upload</descr>
</pipe>
<pipe>
<bandwidth>4096</bandwidth>
<mask>destination</mask>
<descr>=> Portal 30% Download Pipe</descr>
</pipe>
<queue>
<targetpipe>0</targetpipe>
<weight>96</weight>
<mask>source</mask>
<descr>U1</descr>
</queue>
<queue>
<targetpipe>0</targetpipe>
<weight>32</weight>
<mask>source</mask>
<descr>U2</descr>
</queue>
<queue>
<targetpipe>0</targetpipe>
<weight>2</weight>
<mask>source</mask>
<descr>U3</descr>
</queue>
<queue>
<targetpipe>1</targetpipe>
<weight>32</weight>
<mask>destination</mask>
<descr>D2</descr>
</queue>
<queue>
<targetpipe>1</targetpipe>
<weight>2</weight>
<mask>destination</mask>
<descr>D3</descr>
</queue>
<queue>
<targetpipe>1</targetpipe>
<weight>96</weight>
<mask>destination</mask>
<descr>D1</descr>
</queue>
<queue>
<targetpipe>2</targetpipe>
<weight>4</weight>
<mask>source</mask>
<descr><= Portal 30%</descr>
</queue>
<queue>
<targetpipe>3</targetpipe>
<weight>4</weight>
<mask>destination</mask>
<descr>=> Portal 30%</descr>
</queue>
<rule>
<interface>wan</interface>
<protocol>tcp</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>out</direction>
<iplen>0-128</iplen>
<iptos/>
<tcpflags>ack</tcpflags>
<descr><- ACK Upload</descr>
<targetqueue>0</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>tcp</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>in</direction>
<iplen>0-128</iplen>
<iptos/>
<tcpflags>ack</tcpflags>
<descr><- ACK Download</descr>
<targetqueue>0</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>out</direction>
<iplen>0-100</iplen>
<iptos/>
<tcpflags/>
<descr>Small Pkt Upload</descr>
<targetqueue>0</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>udp</protocol>
<source>
<any/>
</source>
<destination>
<any/>
<port>53</port>
</destination>
<direction>out</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>Outbound DNS Query</descr>
<targetqueue>0</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>ah</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>out</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>AH Upload</descr>
<targetqueue>0</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>esp</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>out</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>ESP Upload</descr>
<targetqueue>0</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>gre</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>out</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>GRE Upload</descr>
<targetqueue>1</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>icmp</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>out</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>ICMP Upload</descr>
<targetqueue>1</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>out</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>Catch-All Upload</descr>
<targetqueue>2</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>icmp</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>in</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>ICMP Download</descr>
<targetqueue>5</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>ah</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>in</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>AH Download</descr>
<targetqueue>5</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>esp</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>in</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>ESP Download</descr>
<targetqueue>5</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<protocol>gre</protocol>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>in</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>GRE Download</descr>
<targetqueue>5</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
<direction>in</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>Catch-All Download</descr>
<targetqueue>4</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<source>
<any/>
</source>
<destination>
<address>PortalNet</address>
</destination>
<direction>in</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr>=> Portal In</descr>
<targetqueue>7</targetqueue>
</rule>
<rule>
<interface>wan</interface>
<source>
<address>PortalNet</address>
</source>
<destination>
<any/>
</destination>
<direction>out</direction>
<iplen/>
<iptos/>
<tcpflags/>
<descr><= Portal Out</descr>
<targetqueue>6</targetqueue>
</rule>
<magic>
<p2plow/>
<maskq/>
<maxup>960</maxup>
<maxdown>19456</maxdown>
</magic>
<enable/>
</shaper>