[LARTC] tcng - what's next

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[ Background: tcng is a system that allows traffic control
  configurations to be expressed in a much more natural way than
  with iproute2/tc, while retaining full compatibility. tcng can
  generate tc configuration commands, so no kernel changes are
  required. http://tcng.sourceforge.net/ ]

I started tcng about one and a half years ago at EPF Lausanne, as
part of a research project. Back then, the main goals were to
provide a more friendly configuration language, and also to allow
better abstraction between the configuration process and the
underlying traffic control implementation.

Then, work on tcng continued for one year on a contract with Bivio
Networks, where I was graciously allowed to release most of my
work to the public. The main result of this was the so-called
"external interface" that can be used to drive hardware
accelerators.

Also, I got a lot of useful input from Jacob Teplitsky and others,
and major usability and performance improvements were made during
that time. Most importantly, while the original design assumed that
all traffic control configurations would mirror the structure of
traffic control in the Linux kernel, tcng now allows much better
abstraction for classification.

Now that my contract with Bivio Networks has ended, I'm continuing
tcng as a hobbyist project. While I consider tcng to be
sufficiently mature for serious use, there are still a few issues
I plan to tackle, among them:

- phase out "kernel-style" classification (the missing link for
  this is that "if" can't handle meta-data like skb->nfmark yet)
- treat classifications as the construction of a finite state
  machine instead of the current ad hoc algebra. This is a hairy
  graph theoretical problem, but I expect major scalability
  improvements once I've solved this.
- add loops to the classification mechanism (e.g. to walk through
  IPv4 options or IPv6 headers)
- try to find a way to express queuing in an abstract and
  structured way, much like classification
- and, of course, there are many minor misfeatures to address

Since tcng is much broader than just Diffserv, I'm moving any
discussion and announcements over to the LARTC mailing list
(http://lartc.org/#mailinglist). I'm posting this message and the
next release announcement to both lists.

- Werner

-- 
  _________________________________________________________________________
 / Werner Almesberger, Buenos Aires, Argentina         wa@almesberger.net /
/_http://icapeople.epfl.ch/almesber/_____________________________________/
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux