#macros
ext_if="rl0"
int_if="sis0"
#upload
altq on rl0 cbq bandwidth 256Kb queue { std_out }
queue std_out bandwidth 256Kb { std_out_slack, std_out_mac, std_out_korolis, std_out_localnet } queue std_out_slack bandwidth 30% cbq(borrow)
queue std_out_mac bandwidth 30% cbq(borrow)
queue std_out_korolis bandwidth 30% cbq(borrow)
queue std_out_localnet bandwidth 10% cbq(borrow)
#download
altq on sis0 cbq bandwidth 1024Kb queue { std_in }
queue std_in bandwidth 1024Kb { std_in_slack, std_in_mac, std_in_korolis, std_in_localnet }
queue std_in_slack bandwidth 30% cbq(borrow)
queue std_in_mac bandwidth 30% cbq(borrow)
queue std_in_korolis bandwidth 30% cbq(borrow)
queue std_in_localnet bandwidth 10% cbq(borrow)
# ....... filtering section...........
#computers ip
slack="10.0.0.1"
mac="10.0.0.2"
korolis="10.0.0.3"
localnet="10.0.0.0/24"
#computers ports
slack_tcp_port="{ 22 80 5555 }"
slack_udp_port="{ 5555 }"
mac_tcp_port="{ 5100 }"
mac_udp_port="{ 5100 }"
korolis_tcp_port="{ 1412 }"
korolis_udp_port=" { 1412 }"
#slackware port forwanding
rdr on $ext_if proto tcp from any to any port $slack_tcp_port -> $slack
rdr on $ext_if proto udp from any to any port $slack_udp_port -> $slack
#mac port forwarding
rdr on $ext_if proto tcp from any to any port $mac_tcp_port -> $mac
rdr on $ext_if proto udp from any to any port $mac_udp_port -> $mac
#korolis port forwarding
rdr on $ext_if proto tcp from any to any port $korolis_tcp_port -> $korolis
rdr on $ext_if proto udp from any to any port $korolis_udp_port -> $korolis
# filter rules for rl0 inbound
block in on $ext_if all
#filter rules for rl0 outbount
block out on $ext_if all
pass out on $ext_if from any to $slack queue std_out_slack
pass out on $ext_if from any to $mac queue std_out_mac
pass out on $ext_if from any to $korolis queue std_out_korolis
#filter rules for sis0 inbound
block in on $int_if all
pass in on $int_if from $localnet
#filter rules for sis0 outbound
block out on $int_if all
pass out $int_if from any to $localnet
pass out on $int_if from any to $slack queue std_in_slack
pass out on $int_if from any to $mac queue std_in_mac
pass out on $int_if from any to $korolis queue std_in_korolis