Installation

A minimal installation of Fedora 14 is reccommended, you can download the 32bit ISO images here

YUM Repository

The YUM Repository For the latest version of the Generic SFA Wrapper for your version of Fedora

	# vi /etc/yum.repos.d/sfa.repo
	
	[myplc]
	name= MyPLC
	baseurl=http://build.onelab.eu/sfa/2.1-9/sfa-2.1-9--f14-32/RPMS/
	enabled=1
	gpgcheck=0
	   
	# vi /etc/yum.repos.d/myplc.repo
	
	[myplc-f14-32]
	name=MyPLC native
	baseurl=http://build.onelab.eu/5.0/rc19/onelab--5.0-rc19-f14-32/RPMS/
	# go fetch sfa packages from sfa.repo
	exclude=sfa*
	enabled=1
	gpgcheck=0
	

Proceed with the installation of SFA

	# yum install sfa
	

Generic SFA Wrapper Configuration

Configure the Generic SFA Wrapper

There is one key setting that you need to tweak in order to disable the PlanetLab driver

	# sfa-config-tty
	Enter command (u for usual changes, w to save, ? for help) e SFA_GENERIC_FLAVOUR
	== SFA_GENERIC_FLAVOUR : [pl] void
	
	Enter command (u for usual changes, w to save, ? for help) w

	Wrote /etc/sfa/configs/site.xml

	Merged

	/etc/sfa/default_configs/site.xml

	and    /etc/sfa/configs/site.xml

	into    /etc/sfa/sfa_config.xml

	You might want to type ‘r’ (restart sfa), ‘R’ (reload sfa) or ‘q’ (quit)

	Enter command (u for usual changes, w to save, ? for help) r

	=================== Stopping sfa
	
	Shutting down SFA                    [  OK  ]
	
	=================== Starting sfa
	
	STARTING...
	
	SFA: Checking for PostgreSQL server        [  OK  ]
	
	SFA: installing peer certs                [  OK  ]
	
	SFA: Registry                        [  OK  ]
	
	SFA: Aggregate                    [  OK  ]
	
	SFA: SliceMgr                        [  OK  ]
	
	Enter command (u for usual changes, w to save, ? for help) q
	

we assume that you have configured your registry to serve the toplevel domain named topdomain

	# sfa-config-tty
	
	Enter command (u for usual changes, w to save, ? for help) e sfa_interface_hrn
	== SFA_INTERFACE_HRN : [plc] topdomain
	        Enter command (u for usual changes, w to save, ? for help) w
	
	    Wrote /etc/sfa/configs/site.xml
	
	    Merged
	
	/etc/sfa/default_configs/site.xml
	
	and    /etc/sfa/configs/site.xml
	
	into    /etc/sfa/sfa_config.xml
	
	You might want to type ‘r’ (restart sfa), ‘R’ (reload sfa) or ‘q’ (quit)
	
	Enter command (u for usual changes, w to save, ? for help) r
	
	=================== Stopping sfa
	
	Shutting down SFA                    [  OK  ]
	
	Stopping PostgreSQL server                [  OK  ]
	
	=================== Starting sfa
	
	STARTING...
	
	SFA: Checking for PostgreSQL server        [  OK  ]
	
	SFA: installing peer certs                [  OK  ]
	
	SFA: Registry                        [  OK  ]
	
	SFA: Aggregate                    [  OK  ]
	
	SFA: SliceMgr                        [  OK  ]
	
	Enter command (u for usual changes, w to save, ? for help) q
	

initializes the toplevel records that are needed to proceed

	# sfaadmin reg import_registry
	

Create a subdomain. Although we could in principle use the 'topdomain' authority to sign users directly, it sounds like a better practice to create subauthorities, so let us create one

	# sfaadmin reg register -t authority -x topdomain.subdomain
	

You can use your existing public key or create a new one for this tutorial generate a key for your user (it will only be used locally)

    # ssh-keygen -t rsa
	

Enter the location of your ssh key (ex: /tmp) choose your password.
In this authority we can now create a user record that will refer to a 'PI' in this subdomain; we attach an email address and a public key to this PI record like this

    # sfaadmin reg register -t user -x topdomain.subdomain.pi --email the.pi@subdomain.com --key /tmp/id_rsa.pub
	

This being done, we can 'attach' this user record as a PI to the topdomain.subdomain authority record (of course we refer to all these records through their hrn)

    # sfaadmin reg update -t authority -x topdomain.subdomain --pi topdomain.subdomain.pi
	

Use SFI (SFA client)

	# yum install sfa-client
	# mkdir ~/.sfi
	# cp /tmp/id_rsa ~/.sfi/topdomain.subdomain.pi.pkey
	# vi ~/.sfi/sfi_config
	
	SFI_AUTH='topdomain.subdomain'
	SFI_USER='topdomain.subdomain.pi'
	SFI_REGISTRY='http://localhost:12345/'# sfi --help
	
	
	SFI_SM='http://localhost:12347/'
	

check if SFA client is installed and

create slice

	# vi ~/.sfi/slice_record.xml
	
	
	<record hrn="topdomain.subdomain.slice" type="slice"
	  description="A slice for illustrating registry-only features in SFA"
	  url="http://test.onelab.eu/">
	<researcher>topdomain.subdomain.user</researcher>
	</record>
		
	# sfi add ~/.sfi/slice_record.xml
	

enter the password of your key and test the SFI client

	# sfi list topdomain
	topdomain.subdomain (authority)
	

sfi show topdomain.subdomain.slice

RSpec

Define your needs in an Rspec specific to your testbed.
This RSpec corresponds to the informations you want to advertise about the resources of your testbed.
For example for the Nitos testbed, the need is to reserve both nodes and channels.
The idea of leasing a channel is new and specific to this Wireless testbeds.
So we had to define a draft of the NITOS Rspec.

	
	<lease id="1" slice_id="dostavro" t_from="1339070400" t_until="1339072200">
    	<node component_id="urn:publicid:nitlab+outdoor+omf.nitos.node001"/>
    	<channel id="1" />
	</lease>	

if your TestBed needs the definition of a specific RSpec, this later have to be implemented as a new version of RSpec supported by the Generic SFA Wrapper which parse, validate, and generate the RSpec (contact INRIA).

On the testbed side, an API should be implemented in order to retrieve your specific testbed informations (nodes, slices, leases,...etc).

Then a specific SFA driver for your testbed must be implemented to translate Generic SFA wrapper API calls into your testbed specific API calls.

Finally, configure the SFA generic wrapper to use your driver (flavour configuration with sfa-config-tty)