export OpenFlow port numbers
authorGiuseppe Lettieri <g.lettieri@iet.unipi.it>
Tue, 9 Oct 2012 18:42:57 +0000 (20:42 +0200)
committerGiuseppe Lettieri <g.lettieri@iet.unipi.it>
Tue, 9 Oct 2012 18:42:57 +0000 (20:42 +0200)
make showports will produce several lines of the form

PORT_src_dst=n

meaning that on node src the port that goes to node dst has OpenFlow id
equal to n.

planetlab/exp-tool/Makefile

index 7919aa5..dc54466 100644 (file)
@@ -104,6 +104,9 @@ sshs: $(foreach id,$(ALL_NODE_IDS),ssh-$(id))
 showdpids: $(foreach id,$(ALL_NODE_IDS),showdpid-$(id))
 .PHONY: showdpids
 
+showports: $(foreach id,$(ALL_NODE_IDS),showports-$(id))
+.PHONY: showports
+
 DBS=$(foreach id,$(ALL_NODE_IDS),cache/db.$(id))
 dbs: $(DBS)
 .PHONY: dbs
@@ -147,6 +150,11 @@ ssh-%: FORCE
 showdpid-%: FORCE
        @echo $*_DPID=0x$$( $(SSH) $(HOST_$*) $(SUDO) ovs-vsctl get bridge $(BRIDGE) datapath_id | sed -e 's,",,g')
 
+showports-%: FORCE
+       @$(SSH) $(HOST_$*) $(SUDO) ovs-ofctl show $(BRIDGE) \
+               | perl -nle '/(\d+)\(L(.*?)\Q$(SEP)\E(.*?)\):/ && \
+                       print "PORT_".("$$2" eq "$*" ? "$$2_$$3" : "$$3_$$2")."=$$1"'
+
 # should probably replace sshcheck
 cache/status.%: FORCE
        @echo "=== DB and SWITCH processes on $(call display,$*)"