60007 48 7501 pipe 10004 ip from any to any recv igb0 xmit igb1_vlan20 // da1cda49-cfd1-44a5-9509-8381855800ba wan -> opt4: Full Bandwidth Down60008 0 0 pipe 10005 ip from any to any xmit igb1_vlan20 recv igb0 // 21372daf-d801-4fe6-89c2-3286b60cd58c wan -> opt4: Full Bandwidth Up
The recv interface can be tested on either incoming or outgoingpackets, while the xmit interface can only be tested on outgoingpackets. So out is required (and in is invalid) whenever xmit isused.
60007 0 0 pipe 10004 ip from any to any recv igb0 xmit igb1_vlan20 // da1cda49-cfd1-44a5-9509-8381855800ba wan -> opt4: Full Bandwidth Down60008 0 0 pipe 10005 ip from any to any recv igb1_vlan20 xmit igb0 // 21372daf-d801-4fe6-89c2-3286b60cd58c opt4 -> wan: Full Bandwidth Up
We can use pipes to artificially limit bandwidth, e.g. on a machine act-ing as a router, if we want to limit traffic from local clients on192.168.2.0/24 we do:ipfw add pipe 1 ip from 192.168.2.0/24 to any outipfw pipe 1 config bw 300Kbit/s queue 50KBytesnote that we use the out modifier so that the rule is not used twice.Remember in fact that ipfw rules are checked both on incoming and outgo-ing packets.
60001 13 2833 queue 10000 ip from any to any recv igb0 xmit igb1_vlan10 // 47a9f075-3071-485a-af77-10bf40b890bf wan -> opt3: HIGH Prio Down Queue60002 13 2387 queue 10004 ip from any to any xmit igb0 recv igb1_vlan10 // 6fd0200e-67ec-4cd3-8e28-48b09b2b7295 opt3 -> wan: HIGH Prio Up Queue60003 26 5798 queue 10003 ip from any to any in via igb0 // a08111ee-8f5a-4d94-996c-3c77f22fb6e2 wan: NO Prio Down Queue60004 11 3506 queue 10007 ip from any to any out via igb0 // f63b5459-06e8-4e3f-950a-72e7acc652d8 wan: NO Prio Up Queue