* [LARTC] RE: tcng and network processor
@ 2003-02-15 7:16 Jacob Teplitsky
0 siblings, 0 replies; only message in thread
From: Jacob Teplitsky @ 2003-02-15 7:16 UTC (permalink / raw)
To: lartc
Hi Chris,
Did find and read docs in tcng/doc ?
We are using tcng external interface to translate something like this:
=================================
/*
* diffserv.tc
*
* Written 2002 by Jacob Teplitsky
* Copyright 2002 Bivio Networks
*/
/*
* Classification:
* - static classification by DSCP
*
* Queuing:
* - traffic selected by static classification:
* EF:
* policed by SLB, and transmitted unshaped.
* AF:
* - nr_wfq
* - GRED for each AF level
* - DSMARK implementing marking (AF33 -> AF32 and AF43 -> AF42)
* - other traffic:
* - RED
*/
$ef_rate = 25 Mbps;
$af_rate = 100 Mbps;
dev "s0e0" {
egress {
/* Expedited Forwarding, RFC2598 */
$ef_pol = SLB(cir $ef_rate,cbs 100 kB);
class (<$ef>) if ip_dscp = 0b101110 && SLB_else_drop($ef_pol);
/* Assured Forwarding, RFC2597 */
class (<$af11>) if ip_dscp = 0b001010;
class (<$af12>) if ip_dscp = 0b001100;
class (<$af13>) if ip_dscp = 0b001110;
class (<$af21>) if ip_dscp = 0b010010;
class (<$af22>) if ip_dscp = 0b010100;
class (<$af23>) if ip_dscp = 0b010110;
class (<$af31>) if ip_dscp = 0b011010;
class (<$af32>) if ip_dscp = 0b011100;
class (<$af33>,set_dscp(0b011100))
if ip_dscp = 0b011110;
class (<$af41>) if ip_dscp = 0b100010;
class (<$af42>) if ip_dscp = 0b100100;
class (<$af43>,set_dscp(0b100100))
if ip_dscp = 0b100110;
/* Best Effort */
class (<$be>) if 1;
nr_cbr {
$ef = class (rate 2 Gbps, bounded,prio 1) {
fifo;
}
class (rate $af_rate,bounded,prio 1) {
nr_wfq {
nr_wfq_class(weight 2) {
nr_gred (min 6kB,max 18kB,limit 20kB) {
$af11 = class (probability 0.1);
$af12 = class (probability 0.2);
$af13 = class (probability 0.4,default);
}
}
nr_wfq_class(weight 1) {
nr_gred (min 8kB,max 24kB,limit 50kB) {
$af21 = class (probability 0.1);
$af22 = class (probability 0.2);
$af23 = class (probability 0.4,default);
}
}
nr_wfq_class(weight 3) {
nr_gred (min 8kB,max 24kB,limit 100kB) {
$af31 = class (probability 0.1);
$af32 = class (probability 0.2);
$af33 = class (probability 0.4,default);
}
}
nr_wfq_class(weight 1) {
nr_gred (min 8kB,max 24kB,limit 100kB) {
$af41 = class (probability 0.1);
$af42 = class (probability 0.2);
$af43 = class (probability 0.4,default);
}
}
}
}
$be = class (rate 100MBps,prio 2) { /* rate is ignored */
fifo;
}
}
}
}
==================================== to:
===================================# b300
bucket 1 = 3125000 0 102400 102400 0
block s0e0 egress
qdisc 3 = fifo
qdisc 5 = gred bandwidth 0 default 2
class 0 = avpkt 1 burst 0 limit 20480 max 18432 min 6144 probability 100000
class 1 = avpkt 1 burst 0 limit 20480 max 18432 min 6144 probability 200000
class 2 = avpkt 1 burst 0 limit 20480 max 18432 min 6144 probability 400000
qdisc 6 = gred bandwidth 0 default 2
class 0 = avpkt 1 burst 0 limit 51200 max 24576 min 8192 probability 100000
class 1 = avpkt 1 burst 0 limit 51200 max 24576 min 8192 probability 200000
class 2 = avpkt 1 burst 0 limit 51200 max 24576 min 8192 probability 400000
qdisc 7 = gred bandwidth 0 default 2
class 0 = avpkt 1 burst 0 limit 102400 max 24576 min 8192 probability 100000
class 1 = avpkt 1 burst 0 limit 102400 max 24576 min 8192 probability 200000
class 2 = avpkt 1 burst 0 limit 102400 max 24576 min 8192 probability 400000
qdisc 8 = gred bandwidth 0 default 2
class 0 = avpkt 1 burst 0 limit 102400 max 24576 min 8192 probability 100000
class 1 = avpkt 1 burst 0 limit 102400 max 24576 min 8192 probability 200000
class 2 = avpkt 1 burst 0 limit 102400 max 24576 min 8192 probability 400000
qdisc 4 = prio bands 4
class 1 = qdisc 5 pragma weight=2.000000
class 2 = qdisc 6 pragma weight=1.000000
class 3 = qdisc 7 pragma weight=3.000000
class 4 = qdisc 8 pragma weight=1.000000
qdisc 9 = fifo
qdisc 2 = cbq
class 0 = allot 1 avpkt 1 bandwidth 2147483647 maxburst 1 rate 2147483647
class 1 = allot 1 avpkt 1 bandwidth 2147483647 bounded 1 maxburst 1 parent 0 prio 1 qdisc 3 rate 250000000
class 2 = allot 1 avpkt 1 bandwidth 2147483647 bounded 1 maxburst 1 parent 0 prio 1 qdisc 4 rate 12500000
class 3 = allot 1 avpkt 1 bandwidth 2147483647 maxburst 1 parent 0 prio 2 qdisc 9 rate 100000000
qdisc 1 = dsmark indices 512
class 0 = qdisc 2
class 128 class 272 class 273 class 274 class 288 class 289 class 290 class 304 class 305 class 306 = mask 3 value 112
class 320 class 321 class 322 = mask 3 value 144
class 384 action 128 = class 1:384,2:3
action 66 = class 1:322,2:2,4:4,8:2
action 65 = class 1:321,2:2,4:4,8:1
action 64 = class 1:320,2:2,4:4,8:0
action 50 = class 1:306,2:2,4:3,7:2
action 49 = class 1:305,2:2,4:3,7:1
action 48 = class 1:304,2:2,4:3,7:0
action 34 = class 1:290,2:2,4:2,6:2
action 33 = class 1:289,2:2,4:2,6:1
action 32 = class 1:288,2:2,4:2,6:0
action 18 = class 1:274,2:2,4:1,5:2
action 17 = class 1:273,2:2,4:1,5:1
action 16 = class 1:272,2:2,4:1,5:0
action 0 = drop
action 1 = class 1:128,2:1
action 2 = count 1 action 1
action 3 = conform 1 action 2 action 0
match 0:152:6=0x2E action 3
match 0:152:6=0x0A action 16
match 0:152:6=0x0C action 17
match 0:152:6=0x0E action 18
match 0:152:6=0x12 action 32
match 0:152:6=0x14 action 33
match 0:152:6=0x16 action 34
match 0:152:6=0x1A action 48
match 0:152:6=0x1C action 49
match 0:152:6=0x1E action 50
match 0:152:6=0x22 action 64
match 0:152:6=0x24 action 65
match 0:152:6=0x26 action 66
match action 128
# END
==================================
Then we use set of routines:
tcng/lib/tcng/include/tccext.h to parse the tccext output
and download the config into our NP.
However, we are not using Intel IXP1200 NP
Thanks
- Jacob
> From: "Chris Clark" <cclark@ece.gatech.edu>
> Subject: RE: [LARTC] tcng and network processor
>
> I see that Bivio uses a network processor with TCNG, but I can't find
> any more details... There are no whitepapers on the website.
>
> Werner (or anyone else at Bivio), are you able to provide any details?
>
>
> -----Original Message-----
>
> I am considering a project to translate tcc output (C code or external
> interface) to network processor code, so that the NP can do the actual
> traffic shaping. I have a platform using the Intel IXP1200 NP on a PCI
> card, which functions as a NIC for the host PC running Linux. This
> approach would reduce the processing load on the host.
>
> Has anyone attempted anything like this?
>
> I have never used tcng before, but I have been reading all of the
> available documentation. Is there anything that I should know about tcc
> or its output before I attempt this?
>
> Thanks,
> Chris
>
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-02-15 7:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-15 7:16 [LARTC] RE: tcng and network processor Jacob Teplitsky
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.