Browse Source

dist/tools/desvirt: proper integration

pr/gpio
Cenk Gündoğan 7 years ago
parent
commit
dc509f030d
  1. 3
      Makefile.include
  2. 43
      dist/tools/desvirt/0001-add-example-topology.patch
  3. 35
      dist/tools/desvirt/Makefile
  4. 57
      dist/tools/desvirt/Makefile.desvirt

3
Makefile.include

@ -448,3 +448,6 @@ ifneq (,$(filter iotlab-m3 wsn430-v1_3b wsn430-v1_4,$(BOARD)))
include $(RIOTBASE)/dist/testbed-support/Makefile.iotlab
endif
endif
# Include desvirt Makefile
include $(RIOTBASE)/dist/tools/desvirt/Makefile.desvirt

43
dist/tools/desvirt/0001-add-example-topology.patch vendored

@ -1,43 +0,0 @@
From 7a98a45da47846f0379cfbd477936f67a2af75b3 Mon Sep 17 00:00:00 2001
From: Philipp Rosenkranz <philipp.rosenkranz@fu-berlin.de>
Date: Thu, 2 Oct 2014 17:09:32 +0200
Subject: [PATCH 1/1] add example topology
---
.desvirt/example.xml | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 .desvirt/example.xml
diff --git a/.desvirt/example.xml b/.desvirt/example.xml
new file mode 100644
index 0000000..e8d0244
--- /dev/null
+++ b/.desvirt/example.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<topology version="1">
+ <net description="two client nodes and one probing node" name="example">
+ <nodeTypes>
+ <nodeType name="riot_native">
+ <interfaces>
+ <interface name="wlan0" type="802.11bg"/>
+ </interfaces>
+ </nodeType>
+ </nodeTypes>
+ <nodes>
+ <node binary="../../../../examples/default/bin/native/default.elf" name="a1" type="riot_native"/>
+ <node binary="../../../../examples/default/bin/native/default.elf" name="a2" type="riot_native"/>
+ <node binary="../../../../examples/default/bin/native/default.elf" name="a3" type="riot_native"/>
+ </nodes>
+ <links>
+ <link broadcast_loss="0.0" from_if="wlan0" from_node="a1" loss="0.0" to_if="wlan0" to_node="a2" uni="false"/>
+ <link broadcast_loss="0.0" from_if="wlan0" from_node="a1" loss="0.0" to_if="wlan0" to_node="a3" uni="false"/>
+ <link broadcast_loss="0.0" from_if="wlan0" from_node="a2" loss="0.0" to_if="wlan0" to_node="a1" uni="false"/>
+ <link broadcast_loss="0.0" from_if="wlan0" from_node="a2" loss="0.0" to_if="wlan0" to_node="a3" uni="false"/>
+ <link broadcast_loss="0.0" from_if="wlan0" from_node="a3" loss="0.0" to_if="wlan0" to_node="a1" uni="false"/>
+ <link broadcast_loss="0.0" from_if="wlan0" from_node="a3" loss="0.0" to_if="wlan0" to_node="a2" uni="false"/>
+ </links>
+ </net>
+</topology>
--
1.9.1

35
dist/tools/desvirt/Makefile vendored

@ -1,35 +0,0 @@
PKG_NAME=desvirt
PKG_URL=https://github.com/des-testbed/desvirt.git
PKG_VERSION=master
PKG_DIR=$(CURDIR)/$(PKG_NAME)
.PHONY: all clean patch distclean desvirtdefine
all: clean $(PKG_NAME) patch desvirtdefine
patch:
cd "$(PKG_DIR)" && git am --ignore-whitespace "$(CURDIR)"/*.patch
desvirtdefine: patch
$(foreach topology,$(shell ls $(PKG_NAME)/.desvirt/*.xml), \
cd $(PKG_NAME) && \
./vnet --define --name "$(basename $(notdir $(topology)))";)
$(PKG_NAME):
# Get $(PKG_VERSION) of package from $(PKG_URL)
$(if $(wildcard $(PKG_NAME)),cd $(CURDIR)/$(PKG_NAME) && \
git clean -x -f && \
git reset --hard $(PKG_VERSION) \
, git clone $(PKG_URL) $(PKG_NAME) && \
cd $(PKG_NAME) && \
git reset --hard $(PKG_VERSION))
clean::
# Reset package to checkout state.
$(if $(wildcard $(PKG_NAME)),cd $(CURDIR)/$(PKG_NAME) && \
git clean -x -f && \
git reset --hard $(PKG_VERSION) \
, )
distclean::
rm -rf $(CURDIR)/$(PKG_NAME)

57
dist/tools/desvirt/Makefile.desvirt vendored

@ -0,0 +1,57 @@
TOOL_NAME=desvirt
TOOL_URL=https://github.com/des-testbed/desvirt.git
TOOL_VERSION=master
TOOL_DIR=$(RIOTBASE)/dist/tools/$(TOOL_NAME)/$(TOOL_NAME)
.PHONY: desvirt-check desvirt-check-topo-file desvirt-check-topo-args desvirt-clean \
desvirt-distclean desvirt-define desvirt-undefine desvirt-start desvirt-stop desvirt-list
desvirt-check:
ifeq ($(wildcard $(TOOL_DIR)),)
git clone $(TOOL_URL) $(TOOL_DIR)
cd $(TOOL_DIR) && git reset --hard $(TOOL_VERSION)
endif
desvirt-check-topo-file: desvirt-check
ifndef TOPO
$(error TOPO is not set)
endif
desvirt-check-topo-args: desvirt-check
ifndef TOPO_TYPE
$(error TOPO_TYPE is not set)
endif
ifndef TOPO_SIZE
$(error TOPO_SIZE is not set)
endif
desvirt-define: desvirt-check-topo-file
cd $(TOOL_DIR) && ./vnet -d $(TOOL_DIR)/.desvirt/$(TOPO_FLE) -n $(basename $(TOPO))
desvirt-undefine: desvirt-check-topo-file
cd $(TOOL_DIR) && ./vnet -u $(TOOL_DIR)/.desvirt/$(TOPO_FLE) -n $(basename $(TOPO))
desvirt-start: desvirt-check-topo-file
cd $(TOOL_DIR) && ./vnet -s -n $(basename $(TOPO))
desvirt-stop: desvirt-check-topo-file
cd $(TOOL_DIR) && ./vnet -q -n $(basename $(TOPO))
desvirt-topology: desvirt-check-topo-args all
cd $(TOOL_DIR) && \
./topology_creator -e $(ELFFILE) -n riot_native -r ieee802154 -s$(TOPO_SIZE) -t$(TOPO_TYPE) -f $(TOPO_TYPE)$(TOPO_SIZE)
desvirt-list: desvirt-check
cd $(TOOL_DIR) && ./vnet -l
desvirt-clean::
ifneq ($(wildcard $(TOOL_DIR)),"")
cd $(TOOL_DIR) && git clean -x -f && git reset --hard $(TOOL_VERSION)
endif
desvirt-distclean::
rm -rf $(TOOL_DIR)
Loading…
Cancel
Save