graph.ps: graph.dot
dot -Tps < $^ > $@
+####################
+# googlemap stuff
+# Uses:
+# GMAP_SERVER, the hostname that runs an ndnmap instance
+# GMAP_PROBES, a list of tuples of the form
+# <linkid>=<nodeid>=<internal_linkid>=<frequency>
+# e.g.
+# SENDER-MUX=SENDER=3=0.5
+# which would mean, the link 'SENDER-MUX' should be monitored at the 'SENDER' node and is coded
+# in links.json with id=3, every half second
+# sliver-ovs gmap-probe is designed to run in background,
+# and so that a new run will kill any previously running instance
+gprobes: $(foreach probe,$(GMAP_PROBES),gprobe-$(probe))
+
+gprobe-%: FORCE
+ $(SSH) -n $(call solve,$(word 2,$(subst @, ,$(*F)))) $(SUDO) \
+ sliver-ovs gmap-probe L$(word 1,$(subst @, ,$(*F))) $(GMAP_SERVER) $(word 3,$(subst @, ,$(*F))) $(word 4,$(subst @, ,$(*F)))
####################
# 'virtual' targets in that there's no real file attached
make status
list status of db and switch processes in all slivers
====================
+make gprobes
+ Uses GMAP_SERVER and GMAP_PROBES to run probes in selected slivers
+ that can update a googlemap server for animating link speeds
+ This of course is mostly a demo thing, based on a one-host ndnmap deployment for now
+====================
LINKS += MUX-END2
####################
-
-
# this one-shot function writes the current statistics onto the ndnmap site
# it needs to be called regularly so that ndnmap can do the bw computations
# would make sense for the caller to redirect stderr onto some relevant location
-function gmap_report_once () {
+function gmap_probe_once () {
iface=$1; shift
hostname=$1; shift
linkid=$1; shift
}
### the front end, manages pid and so on
-function gmap_report () {
+function gmap_probe () {
iface=$1; shift
hostname=$1; shift
linkid=$1; shift
[ -n "$pid" ] && kill $pid >& /dev/null
rm $pid_file
fi
+ # close std fds so that ssh invokations can return
+ exec <&-
+ exec >&-
while true; do
- gmap_report_once $iface $hostname $linkid
+ gmap_probe_once $iface $hostname $linkid
sleep $looptime
done &
# this is the pid for the background process
SUPPORTED_SUBCOMMANDS="start stop status
start_db stop_db start_switch stop_switch
create_bridge create_port del_bridge del_port
-show set_remote_endpoint set_controller del_controller gmap_report"
+show set_remote_endpoint set_controller del_controller gmap_probe"
function main () {
message="Usage: $COMMAND <subcommand> ...