Skip to content

2.4 Starting Symbiote Smart Space

Matteo Di Fraia edited this page Sep 12, 2018 · 2 revisions

SSP side

In order to configure the SSP you need to create a application.properties file and put it inside the SSP directory. In this file you need to specify the SSP id and local username and password according to the following template:

ssp.id=<TODO the id of the SSP as registered in the Administration Panel of the symbIoTe Core>
 
# The credentials of the SSP Owner account in the LAAM
symbIoTe.component.username=TODO
symbIoTe.component.password=TODO

This is a concrete file for our example:

ssp.id=SSP_UNIDATA
# The credentials of the SSP Owner account in the LAAM
symbIoTe.component.username=loc_sspunidata
symbIoTe.component.password=loc_sspunidata123

Note:
Username and password assigned in application.properties file should be different from the Service Owner credentials in symbiote core.

Before starting the middleware you have to have an wifi access point service configured and running. The broadcasted SSID should respect the following syntax (Regex):

^sym-[0-9a-f]{20}$

While the psw associated should be the hex value where each 'f' should be replaced by '9' and each '5' should be replaced by 'a'.

For example this is a valid symbiotic SSP-wifi:

SSID: "sym-00010203040506070809"

psw: "00010203040a06070809"

Also, ensure that you have installed a dhcp server and a dns server to resolve the name "ssp.symbiote.org".

The following are an example of configuration files for the SSP wifi infrastructure using the following software: hostapd, isc-dhcpserver and bind9.

  • hostapd.conf
interface=wlp2s0
hw_mode=g
ssid=sym-00010203040506070809
hw_mode=g
channel=1
wpa=3
wpa_passphrase=00010203040a06070809
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
beacon_int=100
auth_algs=3
macaddr_acl=0
wmm_enabled=1
eap_reauth_period=360000000
ctrl_interface=/var/run/hostapd
  • dhcpd.conf
ddns-update-style none;
 
log-facility local7;
 
subnet 10.20.30.0 netmask 255.255.255.0 {
  range 10.20.30.2 10.20.30.40;
  option routers 10.20.30.1;
  option domain-name "symbiote.org";
  option domain-name-servers 10.20.30.1;
  default-lease-time 600;
  max-lease-time 7200;
}
  • bind9/symbiote.org
$ORIGIN .
$TTL 907200     ; 1 week 3 days 12 hours
symbiote.org           IN SOA  ns.symbiote.org. ns.symbiote.org. (
                                1263535758 ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                38400      ; minimum (10 hours 40 minutes)
                                )
                        NS      ns.symbiote.org.
                        A       10.20.30.1
                        MX      10 ns.symbiote.org.
$ORIGIN symbiote.org.
 
innkeeper                     A       10.20.30.1
ns                            A       10.20.30.1

You have to link the bind9 config file usually named named.conf.local with the previously symbiote.org zone. E.g. adding this line in the named.conf.local file:

zone "symbiote.org" IN { type master; file "symbiote.org"; };

So this is the result of the file named.conf.local:

include "/etc/bind/rndc.key";
acl trusted    {
                10.20.30.0/24;
                localhost;
               };
view "trusted-view"
 {
  match-clients { trusted; };
  zone "symbiote.org"           IN { type master; file "symbiote.org";      };
  zone "255.in-addr.arpa"       IN { type master; file "/etc/bind/db.255";  };
 };

Then you can use the following command to set-up the network (example if using debian distribution):

hostapd hostapd.conf >/dev/null &
ifconfig wlp2s0 10.20.30.1/24
/etc/init.d/isc-dhcp-server start
/etc/init.d/bind9 restart

Then, issue the following commands to deploy the SSP:

$ cd /opt/symbiote/SymbioteSmartSpace
$ gradle assemble --refresh-dependencies
$ java -jar build/libs/SymbioteSmartSpace-1.0.0.jar

Now the Smart Space Middleware should be running.

SDEV side

Once the SSP is up and running, you can fire up the SDEV burned with the example firmware from the GitHub Repo. It will connect to the SSP WiFi, establish the secure communication tunnel session using the lightweight security protocol and the begin to register its resources. After that, it handles the RAP request.