- 21 Aug, 2006 13 commits
-
-
Mike Hibler authored
Change dbmonitor to, by default, use the latest of A->B and B->A values when setting characteristics on site A. Do this for both latency and bandwidth values, though should probably allow BW values to continue to be asymmetric.
-
Robert Ricci authored
list, which could happen if we somehow saw an ack for a packet whose send() we missed (ie. the kernel dropped it on the way in to pcap).
-
Robert Ricci authored
Fix range check - this was necessary because of my change to the ackFor calculation. Tricky detail about STL list.erase() - it does *not* erase the end iterator, which meant that we were failing to remove the packet being acked (we were removing all packets up to that one). So, we have it increment the iterator in localAck() even if we find the one we're looking for. Tested well for lossless connections - still needs testing for lossy connections and SACK (see below). Hopefully, it works for the former, but I know it doesn't work for the latter. Added more debugging output to localAck() Added a check which should warn us if we see any SACKS, though I can't be sure it works, because I haven't seen any yet (that I know of! :)
-
Kevin Atkinson authored
Small script to set the cloudinfo from an input file. Only works on elab experiments for now.
-
Mike Hibler authored
usage: showsamples.pl [-Bbdl] <srcix>|all <dstix>|all show database records for given site indices -B show both srcix -> dstix and dstix -> srcix -b show bandwidth -d show delay (the default) -l show loss -n <num> show only the last <num> records -S <time> show records no later than unix timestamp <time> usage: showsamples.pl -e pid/eid show mapping of name->ix for all plab nodes in <pid>/<eid>
-
Robert Ricci authored
wrong interpretation of how part of TCP works. Being an ACK and being a data packet are *not* mutually exclusive, though the old code assumed that they were. There are basically four things we might need to do: If outgoing (a) Handle an outgoing ACK (b) Handle an outgoing data packet If incoming (c) Handle an incoming ACK (d) Handle an incoming data packet Note that a and b can be done on the same packet, as well as c and d. Right now, however, our code only handles b and c. We will need to support a and d before we can model real applications, I think! Also, make handleTcp() more robust.
-
Robert Ricci authored
-
Kevin Atkinson authored
Avoid counting planetlab vnodes twice.
-
Kevin Atkinson authored
tbreport related changes from Mike Kasick <mkasick@andrew.cmu.edu>: - assign_wrapper2 now passes violations to the tbreport error parser. - Fixed improper regexp in assign_wrapper2 tbreport error parser. - Readded create_vlan_failed error in snmpit (left out of original commit for unknown reason). - Modified endexp to use libtblog, added tbswap_out_failed error.
-
Dan Gebhardt authored
-
Robert Ricci authored
replay information.
-
Robert Ricci authored
-
Robert Ricci authored
-
- 18 Aug, 2006 14 commits
-
-
Robert Ricci authored
number being ACKed - it's the next one the peer expects. So, the thing being acked is actually one less.
-
Robert Ricci authored
PacketSensor() not initializing its globalRange .
-
Jonathon Duerig authored
Removed extra-sensor SENSOR logging. This should make the SENSOR logs of normal and replay modes identical except for timestamps (the timestamps should probably use packet timestamps rather than real timestamps anyhow). Also cleared the option lists on loading, so we don't get repeated options from previous packets on replay.
-
Jonathon Duerig authored
-
Jonathon Duerig authored
Fixed a stupid core dump bug caused by an uninitialized variable. Ran some basic tests of tcp-option parsing functionality. Added a tcp-option printer to the NullSensor.
-
Jonathon Duerig authored
-
Mike Hibler authored
-
Jonathon Duerig authored
-
Jonathon Duerig authored
Fixed debugging statement. It needs to be unsigned rather than signed because these are sequence numbers.
-
Robert Ricci authored
-
Kirk Webb authored
Duh - balance pool priorities so that one doesn't starve the rest.
-
Mike Hibler authored
It shows you how the delay pipes are configured for an experiment. Only tested on pelab clouds however...
-
Mike Hibler authored
-
Kirk Webb authored
Left in debugging values on accident...
-
- 17 Aug, 2006 5 commits
-
-
Kirk Webb authored
New plab vnode monitor framework, now with proactive node checking action! The old monitor has been completely replaced. The new one uses modular pools to test and track plab nodes. There are currently two pool modules: good and bad. THe good pool tests nodes that have are not known to have issues to proactively find problems and push nodes into the "bad" pool when necessary. The bad pool acts similarly to the old plabmonitor; it does and end to end test on nodes, and if and when they finally come up, moves them to the good pool. Both pools have a testing backoff mechanism that works as follows: * The node is tested right away upon entering either pool * Node fails to setup: * goodpool: node is sent to bad pool (hwdown) * badpool: node is scheduled to be retested according to an additive backoff function, maxing out at 1 hour. * Node setup succeeds: * goodpool: node is scheduled to be retested according to an additive backoff function, maxing out at 1 hour. * badpool: node is moved to good pool. The backoff thing may be bogus, we'll see. It seems like a reasonable thing to do though - no need to hammer a node with tests if it consistently succeeds or fails. Nodes that flop back and forth will get the most testing punishment. A future enhancement will be to watch for flopping and force nodes that exhibit this behavior to pass several consecutive tests before being eligible for return back into the good pool. The monitor only allows a configurable window's worth of outstanding tests to go on at once. When tests finish, more nodes tests are allowed to start up right away. Some refactoring needs to be done. Currently the good and bad pools share quite a bit of duplicated code. I don't know if I dare venture into inheritance with perl, but that would be a good way to approach this. Some other pool module ideas: * dynamic setup pools When experiments w/ plab vnodes are swapped in, use the plab monitor to manage setting up the vnodes by dynamically creating pools on a per-experiment basis. This has the advantage that the monitor can keep a global cap on the number of outstanding setup operations. These pools might also try to bring up vnodes that failed to setup during swapin later on, along with other vnode monitoring tasks. * "all nodes" pools Similar to the dynamic pools just mentioned, but with the mission to extend experiments to all plab nodes possible (as nodes come and go). Useful for services.
-
Jonathon Duerig authored
Rationalized Rob's previous checkin with mine to remove the additional dependencies that I had made to the now defunct IpHeader
-
Robert Ricci authored
Add a lot of additional debugging output. Fix incorrect TCP payload size calculation - assumed Ethernet, ignored IP and TCP option headers. Replace weird nonstandart IpHeader structure with 'struct ip' from netinet/ip.h .
-
Jonathon Duerig authored
Added sensor replay. It seems to be working perfectly. A replay is automatically saved after every run in plab-n/local/logs/stub.replay. You can get a replay by running a command similar to: sudo ./magent --replay-load=/proj/tbres/exp/pelab-generated/logs/plab-1/local/logs/stub.replay
-
Mike Hibler authored
to get a UID to use.
-
- 16 Aug, 2006 2 commits
-
-
Mike Hibler authored
-
Kevin Atkinson authored
tbreport errors & context. - Modified fatal() in swapexp, batchexp, and tbprerun, and die_noretry() in os_setup to pass hash parameter to tblog functions. - Added tbreport errror & context information for select errors in swapexp, tbswap, assign_wrapper2, snmpit_lib, snmpit, batchexp, assign_wrapper, os_setup, parse-ns, & tbprerun. - Added assign error parser in assign_wrapper2. - Added parse.tcl error parser in parse-ns. - Added severity constants for tbreport in libtblog_simple. - Added tbreport() function & context table mappging for reporting discrete error types to libtblog.
-
- 15 Aug, 2006 6 commits
-
-
Robert Ricci authored
is so that when we use a monitor that doesn't care about, say, writes, we can avoid waisting the CPU required to parse them. The four supported reports are: connect - connect() and close() notifications sockopt - Information about socket options io - read()s and write()s all - Duh. The default if none are given You can specify reports by setting LIBNETMON_REPORTS or using the new -r option to netmond. If you want more than one report type, seperate them with commas. Added a new control message, CM_REPORTS, to pass these back and forth from netmond to libnetmon. Added a long overdue LIBNETMON_NETMOND option which just uses the standard socket paths to talk to netmond - this way, you don't have to set them by hand when debugging, which is a huge PITA.
-
Mike Hibler authored
-
Robert Ricci authored
-
Robert Ricci authored
get put into the $Ports{} hash by snmpit_lib This is just a placeholder: I'll have to put code in later to print out a more interesting representation for trunks.
-
Robert Ricci authored
newer perl versions.
-
Robert Ricci authored
-