%% ===========================================================================
% etsi_goals - Sets up the goals (rate and reach) according to ETSI VDSL part1
%
% Reference:
%   ETSI VDSL TS 101-270-1 V1.1.6 (1999-08)
%% ===========================================================================

%% ===========================================================================
% Copyright (C) 1999-2000
% by Telia Research AB, Lulea, Sweden;                    All rights reserved. 
%
% Project       : FSAN xDSL simulation tool
% Author(s)     : Tomas Nordstrom (Tomas.Nordstrom@FTW.at)
%               : Daniel Bengtsson (Daniel.J.Bengtsson@Telia.se)
%
% CVS:       $Id: etsi_goals.m,v 1.5 2000/03/13 14:04:17 tono Exp $
%% ===========================================================================
% Change History
%      1999-10-25 (ToNo) Created
%      2000-03-13 (ToNo) Removed test services and swaped .NS into .SN
%% ===========================================================================
global ex;

%% ===========================================================================
% ETSI bitrates (goals)

abaseu=[32,32,48,64];
abased=[100,134,226,362];
Arates=[abaseu; abased]*64*1e3;
Anames=['A1'; 'A2'; 'A3'; 'A4'];

sbase=[abased 442];  % [100,134,226,362,442];
Srates=[sbase; sbase]*64*1e3;
Snames=['S1';'S2';'S3';'S4';'S5'];

ex.goal.rates=[Srates,Arates]';
ex.goal.names=[Snames; Anames];

% That is,
%  upstream  downstream
%    6.4000    6.4000 S1
%    8.5760    8.5760 S2
%   14.4640   14.4640 S3
%   23.1680   23.1680 S4
%   28.2880   28.2880 S5
%    2.0480    6.4000 A1
%    2.0480    8.5760 A2
%    3.0720   14.4640 A3
%    4.0960   23.1680 A4

%% ===========================================================================
% ETSI reaches (goals)

ex.goal.reach.M(1).L(1).SN = [
        1344        1344         893        1292        1392         944;
        1195        1195         844        1194        1244         896;
         746         746         545         695         795         646;
           0           0           0           0           0           0;
           0           0           0           0           0           0;
        1588        1686         892           0           0           0;
        1490        1589         843           0           0           0;
        1245        1294         796           0           0           0;
         844         896         495           0           0           0;
];

ex.goal.reach.M(1).L(2).SN = [
        1241        1242         893        1292        1296         881;
        1086        1195         844        1195        1149         821;
         746         664         545         695         713         580;
           0           0           0           0           0           0;
           0           0           0           0           0           0;
        1504        1598         847           0           0           0;
        1400        1589         794           0           0           0;
        1140        1186         730           0           0           0;
         768         815         452           0           0           0;
];

ex.goal.reach.M(1).L(3).SN = [
        1242        1242         827        1199        1291         876;
        1087        1087         769        1093        1138         820;
         668         668         490         624         714         580;
           0           0           0           0           0           0;
           0           0           0           0           0           0;
        1500        1594         843           0           0           0;
        1395        1488         789           0           0           0;
        1138        1184         729           0           0           0;
         769         816         453           0           0           0;
];

ex.goal.reach.M(1).L(4).SN = [
        1342        1342         891        1284        1384         936;
        1184        1184         833        1190        1240         891;
         732         732         531         685         785         636;
           0           0           0           0           0           0;
           0           0           0           0           0           0;
        1590        1689         894           0           0           0;
        1493        1592         846           0           0           0;
        1240        1290         791           0           0           0;
         833         885         484           0           0           0;
];

%[goallenM(2).l(1).array(2,:)' goallenM(2).l(2).array(2,:)' goallenM(2).l(3).array(2,:)' goallenM(2).l(4).array(2,:)' goallenM(2).l(5).array(2,:)' goallenM(2).l(6).array(2,:)']

ex.goal.reach.M(2).L(1).SN = [
        1442        1442         994        1344        1444         945;
        1245        1245         946        1245        1294         896;
         795         795         646         745         845         646;
         298         298         298         397         397         347;
         248         248         248         298         298         298;
        1687        1789         991           0           0           0;
        1589        1688         943           0           0           0;
        1294        1344         896           0           0           0;
         945         995         595           0           0           0;
];

ex.goal.reach.M(2).L(2).SN = [
        1332        1332         919        1252        1345         881;
        1132        1132         861        1141        1186         822;
         708         708         575         668         758         580;
         261         261         261         347         347         304;
         212         212         212         255         255         255;
        1598        1695         941           0           0           0;
        1493        1585         887           0           0           0;
        1186        1232         822           0           0           0;
         847         891         534           0           0           0;
];

ex.goal.reach.M(2).L(3).SN = [
        1333        1333         920        1246        1339         876;
        1132        1132         861        1139        1184         820;
         712         712         580         668         758         581;
         268         268         268         354         354         311;
         219         219         219         262         262         262;
        1594        1690         936           0           0           0;
        1488        1580         882           0           0           0;
        1184        1230         820           0           0           0;
         848         892         535           0           0           0;
];

ex.goal.reach.M(2).L(4).SN = [
        1440        1440         992        1336        1435         937;
        1233        1233         934        1240        1290         891;
         781         781         632         734         834         636;
         281         281         281         380         380         330;
         229         229         229         280         280         280;
        1689        1791         993           0           0           0;
        1592        1691         945           0           0           0;
        1290        1340         891           0           0           0;
         935         984         584           0           0           0;
];

% noise A 
goallenM(2).l(1).array =[ 1442 1245 795 298 248 1687 1589 1294 945; 
1332 1132 708 261 212 1598 1493 1186 847; 
1333 1132 712 268 219 1594 1488 1184 848; 
1440 1233 781 281 229 1689 1592 1290 935]; 

% noise B 
goallenM(2).l(2).array =[ 1442 1245 795 298 248 1789 1688 1344 995; 
1332 1132 708 261 212 1695 1585 1232 891; 
1333 1132 712 268 219 1690 1580 1230 892; 
1440 1233 781 281 229 1791 1691 1340 984]; 

% noise C 
goallenM(2).l(3).array =[ 994 946 646 298 248 991 943 896 595; 
919 861 575 261 212 941 887 822 534; 
920 861 580 268 219 936 882 820 535; 
992 934 632 281 229 993 945 891 584]; 

% noise D 
goallenM(2).l(4).array =[ 1344 1245 745 397 298 0 0 0 0; 
1252 1141 668 347 255 0 0 0 0; 
1246 1139 668 354 262 0 0 0 0; 
1336 1240 734 380 280 0 0 0 0]; 

% noise E 
goallenM(2).l(5).array =[ 1444 1294 845 397 298 0 0 0 0; 
1345 1186 758 347 255 0 0 0 0; 
1339 1184 758 354 262 0 0 0 0; 
1435 1290 834 380 280 0 0 0 0]; 

% noise F 
goallenM(2).l(6).array =[ 945 896 646 347 298 0 0 0 0 
881 822 580 304 255 0 0 0 0 
876 820 581 311 262 0 0 0 0 
937 891 636 330 280 0 0 0 0];

% There is no asymmetric service for Noise D, E and F. The argument is
% that ADSL would be more appropriate in those situations.

%(Columns are services S1-S5, A1-A4. Rows are loops 1-4.)  All figures
% in meters. Mask M1 no notches (which is of course - incorrect)



% noise A 
goallenM(1).l(1).array =[ 1344 1195 746 0 0 1588 1490 1245 844; 
1241 1086 746 0 0 1504 1400 1140 768; 
1242 1087 668 0 0 1500 1395 1138 769; 
1342 1184 732 0 0 1590 1493 1240 833];

% noise B 
goallenM(1).l(2).array =[ 1344 1195 746 0 0 1686 1589 1294 896; 
1242 1195 664 0 0 1598 1589 1186 815; 
1242 1087 668 0 0 1594 1488 1184 816; 
1342 1184 732 0 0 1689 1592 1290 885]; 

% noise C 
goallenM(1).l(3).array =[ 893 844 545 0 0 892 843 796 495; 
893 844 545 0 0 847 794 730 452; 
827 769 490 0 0 843 789 729 453; 
891 833 531 0 0 894 846 791 484]; 

% noise D 
goallenM(1).l(4).array =[ 1292 1194 695 0 0 0 0 0 0; 
1292 1195 695 0 0 0 0 0 0; 
1199 1093 624 0 0 0 0 0 0; 
1284 1190 685 0 0 0 0 0 0]; 

% noise E 
goallenM(1).l(5).array =[ 1392 1244 795 0 0 0 0 0 0; 
1296 1149 713 0 0 0 0 0 0; 
1291 1138 714 0 0 0 0 0 0; 
1384 1240 785 0 0 0 0 0 0]; 

% noise F 
goallenM(1).l(6).array =[ 944 896 646 0 0 0 0 0 0; 
881 821 580 0 0 0 0 0 0;
876 820 580 0 0 0 0 0 0 ;
936 891 636 0 0 0 0 0 0];