function ttlist = etsi_loops(ttlist, goal); %% =========================================================================== %etsi_loops - Sets up the experiment description for the ETSI loops % % Parameter: ttlist Structure describing the traffic and topology % Parameter: goal Structure describing the goals % Returns: ttlist Structure describing the traffic and topology % % Example(s): % gui.ttlist = etsi_loops([]); % Set up ETSI loop definitions % ex.tt = getList(gui.ttlist,'ETSI M:1 L:1 S:S1 N:A'); Get a % specific ETSI loop % % gui.ttlist = etsi_loops(gui.ttlist); Add ETSI loops to an existing ttlist % % Reference(s): % ETSI VDSL Part 1 TS 101-270-1 V1.1.6 (1999-08) %% =========================================================================== %% =========================================================================== % Copyright (C): % 1998-2000 by Telia Research AB, Lulea, Sweden; % 2000 by Forschungszentrum Telekommunikation Wien, Austria; % All rights reserved. % Project : % Author(s) : Tomas Nordstrom (Tomas.Nordstrom@FTW.at) % : Daniel Bengtsson (Daniel.J.Bengtsson@Telia.se) % % CVS: $Id: etsi_loops.m,v 1.7 2000/09/04 09:25:20 tono Exp $ %% =========================================================================== % Change History % 1999-10-25 (ToNo) Reorganized things into etsi,ansi,itu,fsan definitions % 1999-11-05 (ToNo) Made nested loops to generate all possible loops % 2000-04-05 (UvAn) Removed "global ex", goal passed as a parameter % 2000-08-30 (ToNo) Removed "ex" from parameter test, % and fixed BT_dwug naming %% =========================================================================== % Uses goals to set length of scenarios if isempty(goal) | isempty(goal.names) | isempty(goal.reach), error(sprintf('etsi_loops needs goal.{names,reach} to be defined')); end; % Later these might become arguments to this routine MaskSet=[1 2]; LoopSet=[1]; FSANnoise={'A','B','C','D','E','F'}; for Mask=MaskSet; for Loop=LoopSet; for Noise=1:length(FSANnoise), for Service=1:length(goal.rates), dist = goal.reach.M(Mask).L(Loop).SN(Service,Noise); if dist~=0, tt.name=sprintf('ETSI M:%d L:%d S:%s N:%s',... Mask, Loop, goal.names(Service,:), FSANnoise{Noise}); switch Loop case 1, cable='BT_dwug'; % TP100 tt.topology=[{0 '' 'CO' ''}; {dist cable 'N1' sprintf('%.0f m TP100',dist)}; ]; tt.traffic=[{1 2 'VDSL' 21};]; case 2, cable='KPN_L1'; % TP150 tt.topology=[{0 '' 'CO' ''}; {dist cable 'N1' sprintf('%.0f m TP150',dist)}; ]; tt.traffic=[{1 2 'VDSL' 21};]; case 3, tt.topology=[{0 '' 'CO' ''}; {70 'KPN_R2' 'E' sprintf('%.0f m TP100x',70)}; % TP100x {dist-70 'KPN_L1' 'N1' sprintf('%.0f m TP150',dist-70)}]; % TP150 tt.traffic=[{1 3 'VDSL' 21};]; otherwise error(sprintf('Loop %d not implemented',l)); end; ttlist=insertList(ttlist,tt); end; end; end; end; end;