Almost completed porting the traceroute test to new AMP, but it will need
further testing to make sure that edge cases are properly dealt with
and that the behaviour is the same (except where intentionally different).
Added a few features such as reporting latency to each hop and will soon
allow some more configuration of packet sizes etc.
Had a good chat with Nevil and Brian on Friday about mPlane and data
storage, and how we might be able to have mPlane and our own software
Very short week this week, but managed to get a few little things sorted.
Added a new dataparser to NNTSC for reading the RRDs used by Munin, a program that Brad is using to monitor the switches in charge of our red cables. The data in these RRDs is a lot noisier than smokeping data, so it will be interesting to see how our anomaly detection goes with that data. Also finally got the AMP data actually being exported to our anomaly detector - the glue program that converted NNTSC data into something that can be read by anomaly_ts wasn't parsing AMP records properly.
Spent a bit of time working on adding some new rules to libprotoident to identify previously unknown traffic in some traces sent to me by one of our users.
Spent Friday afternoon talking with Brian Trammell about some mutual interests, in particular passive measurement of TCP congestion window state and large-scale measurement data collection, storage and access. In terms of the latter, it looks many of the design decisions we have reached with NNTSC are very similar to those that he had reached with mPlane (albeit mPlane is a fair bit more ambitious than what we are doing) which I think was pretty reassuring for both sides. Hopefully we will be able to collaborate more in this space, e.g. developing translation code to make our data collection compatible with mPlane.
Keystone, the openstack Identity service is now fully implemented. However the installation of Nova (Openstack Compute) requires a 64-bit version of CentOS 6.3 in order to install the hypervisor KVM. I will be transferring my work to a physical computer in the labs as opposed to my laptop.
Spent time this week looking into Ryu. I basically looked through the simple layer 2 switch code and worked out what each part was doing and how. Also looked at some of the other features it provides and how to go about using them. Following that I looked into creating rules for a switch using Ryu. Once I had that I modified the layer 2 switch code to intercept all ARP requests and output them to the port the DHCP server/ arp response script were running on.
Updated the loss and jitter graphs to use the new style graphs, same as
the latency one is using. Made some general improvements now that the
graph functionality is mostly there, including fixing up some reliance on
global variables and making sure that ajax requests are properly cancelled
if they are superseded.
Started to port the original AMP traceroute test to new AMP to collect
data for Shane to test his database schemas with.
Exporting from NNTSC is now back to a functional state and the whole event detection chain is back online. Added table and view descriptions for more complicated AMP tests; traceroute, http2 and udpstream are now all present. Hopefully we can get new AMP collecting and reporting data for these tests soon so we can test whether it actually works!
Had some user-sourced libtrace patches come in, so spent a bit of time integrating these into the source tree and testing the results. One simply cleans up the libpacketdump install directory to not create as many useless or unused files (e.g. static libraries and versioned library symlinks). The other adds support for the OpenBSD loopback DLT, which is actually a real nuisance because OpenBSD isn't entirely consistent with other OS's as to the values of some DLTs.
Helped Nathan with some TCP issues that Lightwire were seeing on a link. Was nice to have an excuse to bust out tcptrace again...
Looks like my L7 Filter paper is going to be rejected. Started thinking about ways in which it can be reworked to be more palatable, maybe present it as a comparative evaluation of open-source traffic classifiers instead.
Fixed keystone connection issues from last week. Re-implemented keystone to get a fresh config file and authentication is working. Creating necessary tenants, users and roles for Keystone.
Short week this week due to Easter. Had some other assignments to be working on this week. However I was able to
write a new python script that works like a merging of the two scripts I had last week. i.e. when it sees an arp packet, it queries a DHCP server for relevant information and forges a response to the machine that sent the request. I looked tcpdump output to make sure this response was being sent correctly.
Next week I hope to look into the controller side of things,
re-familiarising myself with ryu and looking into introducing rules to the switch
Short week this week as I was off for a few days with the flu.
Tidied up the AMP RPMs a bit more, adding init scripts, man pages etc.
Wrote up a quick bit of documentation in the wiki too so that this will be
quicker and easier to do next time.
Tracked down some of the last remaining problems before achieving feature
parity with the new AMP graphs - adding interaction to both the summary
and detail graphs, etc. Also fixed the line graphs to be properly
discontinuous when data is missing and added the ability to easily go back
one zoom level by clicking.