Pipes, Queus and Mask
Jacob S. Barrett
jbarrett at amduat.net
Fri Oct 22 15:42:36 PDT 2004
On Friday 22 October 2004 01:57 pm, "Jacob S. Barrett" <jbarrett at amduat.net>
wrote:
> I am a little confused around the working in the man page:
> queue A queue is an abstraction used to implement the WF2Q+
> (Worst- case Fair Weighted Fair Queueing) policy, which is an effi- cient
> variant of the WFQ policy.
> The queue associates a weight and a reference pipe to each
> flow, and then all backlogged (i.e., with packets queued)
> flows linked to the same pipe share the pipe's bandwidth
> pro- portionally to their weights. Note that weights are not pri- orities;
> a flow with a lower weight is still guaranteed to get its fraction of the
> bandwidth even if a flow with a higher weight is permanently backlogged.
>
> If I have a queue with a mask on src-ip. I understand that each dynamic
> queue will share the same weight and the same pipe. My confusion comes
> when I want to have dynamic pipes masked on the src-ip as well. If the
> queue is tied to this pipe will all dynamic queues flow into matching
> dynamic pipes? The reason I as this question is that when I configure this
> I see the dynamic queue created, but not the dynamic pipe. Also the
> bandwidth appears to be shared as though they are sharing the same pipe.
> Is it correct to say that if a masking queue is linked to a masking pipe
> that all flows will go through a dynamic queue and then will share the same
> pipe and no dynamic pipes will be created?
I figured I better include an example config:
ipfw pipe 1 config bw 128kbps mask src-ip 0x000000ff buckets 2565
ipfw queue 1 config pipe 1 mask srp-ip 0x000000ff buckets 256
ipfw pipe 2 config bw 1500kbps mask dst-ip 0x000000ff buckets 256
ipfw queue 2 config pipe 2 mask dst-ip 0x000000ff buckets 256
ipfw add queue 1 all from any to any out via ng0
ipfw add queue 2 all from any to any in via ng0
00001: 128.000 Kbit/s 0 ms 5 sl. 0 queues (256 buckets) droptail
mask: 0x00 0x000000ff/0x0000 -> 0x00000000/0x0000
00002: 1.500 Mbit/s 0 ms 5 sl. 0 queues (256 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x000000ff/0x0000
q00001: weight 1 pipe 1 5 sl. 4 queues (256 buckets) droptail
mask: 0x00 0x000000ff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte
Drp
143 ip 0.0.0.91/0 0.0.0.0/0 60186 6077130 0 0
10063
223 ip 0.0.0.243/0 0.0.0.0/0 227 16953 0 0 0
237 ip 0.0.0.234/0 0.0.0.0/0 549 113319 0 0 0
239 ip 0.0.0.235/0 0.0.0.0/0 16336 761792 0 0
37
q00002: weight 1 pipe 2 5 sl. 4 queues (256 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x000000ff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte
Drp
40 ip 0.0.0.0/0 0.0.0.91/0 76970 54572437 0 0
1309
57 ip 0.0.0.0/0 0.0.0.74/0 179 12343 0 0 0
152 ip 0.0.0.0/0 0.0.0.235/0 29130 42567650 0 0
609
153 ip 0.0.0.0/0 0.0.0.234/0 922 172001 0 0 2
As you can see there are no dynamic pipes created. Is this expected behavior?
--
Jacob S. Barrett
jbarrett at amduat.net
www.amduat.net
"I don't suffer from insanity, I enjoy every minute of it."
More information about the freebsd-ipfw
mailing list