Wednesday, July 11, 2007
New library
I have almost finished switching the LQL library to libnl, 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.
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.
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.
Tuesday, June 19, 2007
Next up, "save" feature
After some compilation issues which were remedied by my mentor, Steven Pritchard, I successfully parsed the XML test file (shown earlier) and created the correct qdiscs/classes.
Still to do:
- "default" HTB class setting
- the Priomap qdisc and "set_prio" setting
- better error checking
- freeing memory
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).
Still to do:
- "default" HTB class setting
- the Priomap qdisc and "set_prio" setting
- better error checking
- freeing memory
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).
Thursday, June 7, 2007
More on parsing
I lied in the last post, I've been using libxml2 to parse and write the config file. The example I posted had some minor errors in syntax which have been fixed now.
I had some problems with the Priomap qdisc and recursively traversing the xmlNodes while creating LQLElements. Because of this, I am creating a tree (a copy of the xml tree) using N-ary Trees included in Glib. This tree holds an xmlNode (for data such as qdisc type, and other properties), an LQLInterface (required for new LQLElements), and an LQLElement.
I had some problems with the Priomap qdisc and recursively traversing the xmlNodes while creating LQLElements. Because of this, I am creating a tree (a copy of the xml tree) using N-ary Trees included in Glib. This tree holds an xmlNode (for data such as qdisc type, and other properties), an LQLInterface (required for new LQLElements), and an LQLElement.
Thursday, May 31, 2007
Config file
I've decided to use XML (or a subset of XML) for saving settings to a text file.
Some notes:
- XML is able to save hierarchical information
- Major & minor numbers no longer need to be specified (program should do this automatically)
- Priority for HTB classes does not need to be specified (priority decreases for each additional class)
- Indentation will be ignored and probably not used by the program
Example file:
After looking into the GLib Simple XML Subset Parser, I think it would probably be easier to write my own parser.
Some notes:
- XML is able to save hierarchical information
- Major & minor numbers no longer need to be specified (program should do this automatically)
- Priority for HTB classes does not need to be specified (priority decreases for each additional class)
- Indentation will be ignored and probably not used by the program
Example file:
After looking into the GLib Simple XML Subset Parser, I think it would probably be easier to write my own parser.
Wednesday, May 30, 2007
Schedule
Proposed Schedule
May 28 – June 11
Start coding
Compile and implement IMQ on Fedora 7
Look for additional use cases (e.g. by looking for other implementations of traffic shaping)
Work on design of GUI
Read up on ncurses API
June 12 – June 25
June 26 – July 10
Complete all non-GUI related functions
July 11 – July 16
Have a rough GUI available for the end of Mid-term evaluation
July 17 – August 10
Program should be completed
August 11 – August 31
Advertise on Fedora forums and try to get beta testers
If additional time remains:
Subscribe to:
Posts (Atom)