<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4664537527942619276</id><updated>2011-04-21T14:33:52.196-07:00</updated><title type='text'>tcconf</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tan-tcconf.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tan-tcconf.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chris Tan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4664537527942619276.post-4833321125593526500</id><published>2007-07-11T11:04:00.000-07:00</published><updated>2007-07-11T11:24:02.610-07:00</updated><title type='text'>New library</title><content type='html'>I have almost finished switching the LQL library to &lt;a href="http://people.suug.ch/%7Etgr/libnl/"&gt;libnl&lt;/a&gt;, the netlink library.  It supports more queuing disciplines but seems to be a bit less mature in terms of development.  I have been adding bits of code to it as I start to understand how it works.&lt;br /&gt;&lt;br /&gt;So far, parsing from XML is working, as well as parsing to XML (the save feature).  Next up, is to port the CLASSIFY iptables extension into libnl and to extend the XML parse/safe format to include it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4664537527942619276-4833321125593526500?l=tan-tcconf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tan-tcconf.blogspot.com/feeds/4833321125593526500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4664537527942619276&amp;postID=4833321125593526500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/4833321125593526500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/4833321125593526500'/><link rel='alternate' type='text/html' href='http://tan-tcconf.blogspot.com/2007/07/new-library.html' title='New library'/><author><name>Chris Tan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4664537527942619276.post-5788954023048052333</id><published>2007-06-19T17:40:00.000-07:00</published><updated>2007-06-19T17:56:36.220-07:00</updated><title type='text'>Next up, "save" feature</title><content type='html'>After some compilation issues which were remedied by my mentor, &lt;a href="http://fedoraproject.org/wiki/StevenPritchard"&gt;Steven Pritchard&lt;/a&gt;, I successfully parsed the XML test file (shown earlier) and created the correct qdiscs/classes.&lt;br /&gt;&lt;br /&gt;Still to do:&lt;br /&gt;- "default" HTB class setting&lt;br /&gt;- the Priomap qdisc and "set_prio" setting&lt;br /&gt;- better error checking&lt;br /&gt;- freeing memory&lt;br /&gt;&lt;br /&gt;Tomorrow I will begin working on the "save" feature, which should allow current QoS settings to be saved into a gnode tree (similar to iptables-save).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4664537527942619276-5788954023048052333?l=tan-tcconf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tan-tcconf.blogspot.com/feeds/5788954023048052333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4664537527942619276&amp;postID=5788954023048052333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/5788954023048052333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/5788954023048052333'/><link rel='alternate' type='text/html' href='http://tan-tcconf.blogspot.com/2007/06/next-up-save-feature.html' title='Next up, &quot;save&quot; feature'/><author><name>Chris Tan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4664537527942619276.post-4766583000814814142</id><published>2007-06-07T18:08:00.000-07:00</published><updated>2007-06-07T18:26:57.122-07:00</updated><title type='text'>More on parsing</title><content type='html'>I lied in the last post, I've been using &lt;a href="http://xmlsoft.org/index.html"&gt;libxml2&lt;/a&gt; to parse and write the config file. The example I posted had some minor errors in syntax which have been fixed now.&lt;br /&gt;&lt;br /&gt;I had some problems with the &lt;a href="http://www.coverfire.com/lql/docs/LQLQDiscPriomap.html"&gt;Priomap&lt;/a&gt; qdisc and recursively traversing the &lt;a href="http://xmlsoft.org/html/libxml-tree.html#xmlNode"&gt;xmlNodes&lt;/a&gt; while creating &lt;a href="http://www.coverfire.com/lql/docs/LQLElement.html"&gt;LQLElements&lt;/a&gt;.  Because of this, I am creating a tree (a copy of the xml tree) using &lt;a href="http://developer.gnome.org/doc/API/2.0/glib/glib-N-ary-Trees.html"&gt;N-ary Trees&lt;/a&gt; included in Glib.  This tree holds an xmlNode (for data such as qdisc type, and other properties), an &lt;a href="http://www.coverfire.com/lql/docs/LQLInterface.html"&gt;LQLInterface&lt;/a&gt; (required for new LQLElements), and an LQLElement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4664537527942619276-4766583000814814142?l=tan-tcconf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tan-tcconf.blogspot.com/feeds/4766583000814814142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4664537527942619276&amp;postID=4766583000814814142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/4766583000814814142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/4766583000814814142'/><link rel='alternate' type='text/html' href='http://tan-tcconf.blogspot.com/2007/06/more-on-parsing.html' title='More on parsing'/><author><name>Chris Tan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4664537527942619276.post-7422556736681725387</id><published>2007-05-31T15:32:00.000-07:00</published><updated>2007-05-31T15:50:56.728-07:00</updated><title type='text'>Config file</title><content type='html'>I've decided to use XML (or a subset of XML) for saving settings to a text file.&lt;br /&gt;&lt;br /&gt;Some notes:&lt;br /&gt;- XML is able to save hierarchical information&lt;br /&gt;- Major &amp; minor numbers no longer need to be specified (program should do this automatically)&lt;br /&gt;- Priority for HTB classes does not need to be specified (priority decreases for each additional class)&lt;br /&gt;- Indentation will be ignored and probably not used by the program&lt;br /&gt;&lt;br /&gt;Example file:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_RCQRrXyog9I/Rl9OLUD9q1I/AAAAAAAAAAM/6s-TUkujMy8/s1600-h/xml.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_RCQRrXyog9I/Rl9OLUD9q1I/AAAAAAAAAAM/6s-TUkujMy8/s400/xml.jpg" alt="" id="BLOGGER_PHOTO_ID_5070857661713328978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After looking into the GLib &lt;span class="refentrytitle"&gt;&lt;a href="http://developer.gnome.org/doc/API/2.0/glib/glib-Simple-XML-Subset-Parser.html"&gt;Simple XML Subset Parser&lt;/a&gt;&lt;/span&gt;&lt;span class="refpurpose"&gt;, I think it would probably be easier to write my own parser.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4664537527942619276-7422556736681725387?l=tan-tcconf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tan-tcconf.blogspot.com/feeds/7422556736681725387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4664537527942619276&amp;postID=7422556736681725387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/7422556736681725387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/7422556736681725387'/><link rel='alternate' type='text/html' href='http://tan-tcconf.blogspot.com/2007/05/config-file.html' title='Config file'/><author><name>Chris Tan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_RCQRrXyog9I/Rl9OLUD9q1I/AAAAAAAAAAM/6s-TUkujMy8/s72-c/xml.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4664537527942619276.post-6906154291367112574</id><published>2007-05-30T07:19:00.000-07:00</published><updated>2007-05-31T07:30:51.029-07:00</updated><title type='text'>Glib</title><content type='html'>Reading up on GLib and GObjects&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/edu/l-dw-linux-glib-i.html"&gt;IBM tutorial&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.gnome.org/doc/API/2.0/glib/index.html"&gt;GLib Reference Manual&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.gnome.org/doc/API/2.0/gobject/index.html"&gt;GObject Reference Manual&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4664537527942619276-6906154291367112574?l=tan-tcconf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tan-tcconf.blogspot.com/feeds/6906154291367112574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4664537527942619276&amp;postID=6906154291367112574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/6906154291367112574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/6906154291367112574'/><link rel='alternate' type='text/html' href='http://tan-tcconf.blogspot.com/2007/05/glib.html' title='Glib'/><author><name>Chris Tan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4664537527942619276.post-265792943064748756</id><published>2007-05-30T07:15:00.000-07:00</published><updated>2007-05-30T07:17:55.436-07:00</updated><title type='text'>Schedule</title><content type='html'>&lt;p style="margin-bottom: 0in;"&gt;&lt;span style="font-size:180%;"&gt;&lt;b&gt;Proposed Schedule&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style=""&gt;May  28&lt;/span&gt;&lt;sup&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/sup&gt;&lt;span style=""&gt;  – June 11&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Start coding&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Compile and   implement IMQ on Fedora 7&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Look for   additional use cases (e.g. by looking for other implementations of   traffic shaping)&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Work on   design of GUI&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Read up on   ncurses API&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style=""&gt;June  12 – June 25&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Finish use   case study.  Rough drawings of GUI have been made and shown to   mentor.&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Create IMQ   rpm package&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Testing of a   basic traffic shaping script with IMQ package under different   machines and networks    &lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Start coding   GUI&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style=""&gt;Look   at code from other programs which use ncurses (e.g. &lt;a href="http://sourceforge.net/projects/bwmng"&gt;bwm&lt;/a&gt;,   &lt;a href="http://packages.debian.org/unstable/admin/aptitude"&gt;aptitude&lt;/a&gt;,   etc.).&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;June 26 –  July 10&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Complete all   non-GUI related functions&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style=""&gt;July  11 – July 16&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Have a rough   GUI available for the end of Mid-term evaluation&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style=""&gt;July  17&lt;/span&gt;&lt;sup&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/sup&gt;&lt;span style=""&gt;–  August 10&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Program   should be completed&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;August 11 –  August 31&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Advertise on   &lt;a href="http://www.fedoraforum.org/"&gt;Fedora forums&lt;/a&gt; and try to   get beta testers&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;If   additional time remains:&lt;/p&gt;   &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style=""&gt;Add    support for &lt;a href="http://www.ipp2p.org/"&gt;ipp2p&lt;/a&gt; and &lt;/span&gt;&lt;a href="http://l7-filter.sourceforge.net/"&gt;&lt;span style=""&gt;l7filter&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;    &lt;/span&gt;    &lt;/p&gt;    &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Add    CONNMARK support&lt;/p&gt;    &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style=""&gt;Port    &lt;/span&gt;&lt;i&gt;&lt;span style=""&gt;tcconf&lt;/span&gt;&lt;/i&gt;&lt;span style=""&gt;    to other distributions&lt;/span&gt;&lt;/p&gt;   &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4664537527942619276-265792943064748756?l=tan-tcconf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tan-tcconf.blogspot.com/feeds/265792943064748756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4664537527942619276&amp;postID=265792943064748756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/265792943064748756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4664537527942619276/posts/default/265792943064748756'/><link rel='alternate' type='text/html' href='http://tan-tcconf.blogspot.com/2007/05/schedule.html' title='Schedule'/><author><name>Chris Tan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
