Lucent's OMC-2000

The OMC 2000 Homepage - DnD Bray

S3

Marina's NMC Interface Group Web Page

v20.177 DOR 1177 omc-fm-177 OMC-NFM Interface Phase II v20.177.4 combined fp/dr, v20.177.4.1 document[prt][src][mrs](Issue: 02 1999-04-12 accepted) 177.4.2 estimations[prt][src][mrs](Issue: 00 1999-04-21 accepted) 177.5 feature design [prt] 177.5.1 high level design[prt][src][mrs](Issue: 01 1999-05-12 draft) 177.5.2 ascintf subsystem detailed design

OMC2000 AFD/NFM/NOC1/...

FEATURE OMC-FM-177 OMC-NFM PHASE 2 (NOC1) ~gcomanda

NOC1 Phase 2 ~mmusgrav

~mmusgrav/NOC1/
~mmusgrav/NOC1/DOCS/
~mmusgrav/NOC1/SOCKETS/my_sock/
~mmusgrav/rje/NFM/
~mmusgrav/jag4.8a/src/jag/[install][config][include][src][libsrc][...]/afd/[ascOutput][ascIntf]/

~jamesc/noc1/
Main files:


~jamesc/jag4.8a/src/jag/[install][config][include][src][libsrc][...]/afd/[ascOutput][ascIntf]/

/opt/pca/jag/jag4.8a/ofc/src/jag/libsrc/afd/[ascIntf][ascOutput]
/opt/pca/jag/jag4.8a/night/src/jag/libsrc/afd/[ascIntf][ascOutput]
/opt/pca/jag/jag4.8a/night/src/jag/src/[ascIntf][ascOutput]
/opt/pca/jag/jag4.8a/NFM_WORKING/src/jag/libsrc/[ascIntf][ascOutput]
/opt/pca/jag/jag4.8a/NFM_BACKUP/src/jag/libsrc/[ascIntf][ascOutput]
/opt/pca/jag/jag4.8a/ofc/src/jag/src/[ascIntf][ascOutput]/


Tue 4 May:
cd /users/jamesc/jag4.8a/src/jag/
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/afd/* ./libsrc/afd
cp -R /users/mmusgrav/jag4.8a/src/jag/src/ascIntf/* ./src/ascIntf
cp -R /users/mmusgrav/jag4.8a/src/jag/src/ascOutput/* ./src/ascOutput
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/util/* ./libsrc/util

cd /users/jamesc/jag4.8a/src/jag/
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/afd/ascOutput/*.C ./libsrc/afd/ascOutput
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/afd/ascOutput/*.h ./libsrc/afd/ascOutput
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/afd/ascIntf/*.C ./libsrc/afd/ascIntf
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/afd/ascIntf/*.h ./libsrc/afd/ascIntf
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/afd/mib/*.C ./libsrc/afd/mib
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/afd/mib/*.h ./libsrc/afd/mib

cp -R /users/mmusgrav/jag4.8a/src/jag/src/ascIntf/*.C ./src/ascIntf
cp -R /users/mmusgrav/jag4.8a/src/jag/src/ascIntf/*.h ./src/ascIntf
cp -R /users/mmusgrav/jag4.8a/src/jag/src/ascOutput/*.C ./src/ascOutput
cp -R /users/mmusgrav/jag4.8a/src/jag/src/ascOutput/*.h ./src/ascOutput
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/util/*.C ./libsrc/util
cp -R /users/mmusgrav/jag4.8a/src/jag/libsrc/util/*.h ./libsrc/util


bldscript includes
cp ~/jag4.8a/src/jag/libsrc/afd/ascIntf/*.h /lbuild/jamesc/jag4.8a/prod/jag/include/
cp ~/jag4.8a/src/jag/libsrc/afd/ascOutput/*.h /lbuild/jamesc/jag4.8a/prod/jag/include/
cp ~/jag4.8a/src/jag/src/ascIntf/*.h /lbuild/jamesc/jag4.8a/prod/jag/include/
cp ~/jag4.8a/src/jag/src/ascOutput/*.h /lbuild/jamesc/jag4.8a/prod/jag/include/
cp ~/jag4.8a/src/jag/libsrc/util/*.h /lbuild/jamesc/jag4.8a/prod/jag/include

bldscript ascOutput
cd /users/jamesc/jag4.8a/src/jag/libsrc/afd/ascOutput
bldscript install
ls -al /lbuild/jamesc/jag4.8a/prod/jag/libsrc/afd/ascOutput/*.o
cd /users/jamesc/jag4.8a/src/jag/src/ascOutput
bldscript install
ls -al /lbuild/jamesc/jag4.8a/prod/jag/install/bin

cd /users/jamesc/jag4.8a/src/jag/libsrc/afd/ascOutput
bldscript NFMOutput.o
cd /lbuild/jamesc/jag4.8a/prod/jag/lib
ar -r libascOutput.a ../libsrc/afd/ascOutput/*.o


bldscript ascIntf
cd /users/jamesc/jag4.8a/src/jag/libsrc/afd/ascIntf
bldscript install
ls -al /lbuild/jamesc/jag4.8a/prod/jag/libsrc/afd/ascIntf/*.o
ls -al /lbuild/jamesc/jag4.8a/prod/jag/lib/*.a
cd /users/jamesc/jag4.8a/src/jag/src/ascIntf
bldscript install
ls -al /lbuild/jamesc/jag4.8a/prod/jag/install/bin

Purify build 
. ~jamesc/bin/purify
cd /users/jamesc/jag4.8a/src/jag/libsrc/afd/ascOutput
bldscript install instrument=$PURIFY
cd /users/jamesc/jag4.8a/src/jag/src/ascOutput
bldscript install instrument=$PURIFY
ls -al /lbuild/jamesc/jag4.8a/prod/jag/install/bin

NUTS! we seem to be having problems.

Purify engine: While processing file /opt/osp/osp5.0.3/osp/5.0.3/hpux1020/lib/libMo.sl:
Error: Memory allocation failed during a request for 556276 bytes.
This failure can be caused by exceeding the data segment
size limit or by exhausting the available swap space.
Space left in the data segment is 155553792 bytes.
Data segment size limit is 251658240 bytes.
System error code: Not enough space
make: *** exit code 1 making ascOutput ignored


Sablime help, hz vol & faq.
. sablime jag4.8a
cd /users/jamesc/jag4.8a/src/jag/libsrc/afd/ascOutput
edget mr=omc990206 srf=BaseOutput.C dir=. g=jag4.8a prompt=n   ??

ssql mr g mrgstat from MG where dev.eq.jamesc
ssql mr g mrgstat from MG where dev.eq.mmusgrav
ssql mr g sfile dir from MD where dev.eq.mmusgrav and mdstat.eq.nodelta and g.eq."jag4.5" 
ssql all from GS where sfile.eq.ascOutputMain.C 
ssql sfile from GS where "dir.eq.jag/src/ascOutput"
ssql sfile from GS where dir.eq.jag/libsrc/afd/ascOutput
ssql dir sfile from GS where dir.lk.jag/libsrc/afd


/lbuild/jamesc/jag4.8a/prod/jag/install/bin
/lbuild/mmusgrav/jag4.8a/prod/jag/install/bin

/lbuild/jamesc/jag4.8a/prod/jag/libsrc/afd
/lbuild/jamesc/jag4.8a/prod/jag/lib
/lbuild/jamesc/jag4.8a/prod/jag/libsrc/afd/ascOutput
/lbuild/jamesc/jag4.8a/prod/jag/libsrc/afd/ascIntf

/opt/projects/jaguar/NEWCOMMONENV/bin/runascintf
/opt/projects/jaguar/NEWCOMMONENV/bin/runascoutput

runomcall4.8 # wait a while & kill gui
runascintf jamesc
runascoutput jamesc
rungui donal

~jamesc/jag4.8a/config/admin/system.cf
use "OUTPUT_TEMPLATE_DIR"       "/users/mmusgrav/bin/TEMPLATES
    "ALARMFWDDIR"               "/users/mmusgrav/noc1
    "AFD_MOSU_CHANGES"          0

/lbuild/dshanahan/jag4.8a/prod
rcp -r ./* jamesc@bryhp681:/lbuild/jamesc/jag4.8a/prod
or rather tar -xvf and cvf

isql -Ujamesc3 -Pjamesc3
isql -Ummusgrav3 -Pmmusgrav3

select name,code from classTable
where name like "al%"
select * from internalEFDtable0
select * from afdInterfacetable0
select * from neConnectiontable0

select * from alarmRecordtable0


;; repl-regexp
;;"\([A-Za-z0-9\/:]+\)[ \t]*" "\1, "
;;tidy whitespace with "[ ]+" " " 

delete from neConnectiontable0
insert into neConnectiontable0
(oidclass, oidinstLeft, oidinstRite, oidtomid, networkElementOidclass, 
  networkElementOidinstLeft, networkElementOidinstRite, 
  networkElementOidtomid, networkElementOidname, 
  bssConnectionOidclass, bssConnectionOidinstLeft, 
  bssConnectionOidinstRite, bssConnectionOidtomid, 
  name, nameBindingclass, 
  nameBindinginstLeft, nameBindinginstRite, nameBindingtomid, criticalCount, 
  majorCount, minorCount, alarmOutstandingCount, unAckCount, 
  specAvailStatus, reflectedAlarmStatus, underRepairRefAlCount, 
  criticalRefAlCount, majorRefAlCount, minorRefAlCount, 
  alarmOutstandingRefAlCount, upwardReflection, opState, adminState, 
  usageState, alarmStatus, procStatus, availStatus, cntlStatus, 
  standByStatus, unknownStatus, containerOidclass, containerOidinstLeft, 
  containerOidinstRite, containerOidtomid )
values ( 16916, 3343351, 926340985, 51, 17408, 
  3343353, 926340985, 
  51, "BSS:0", 
  19969, 3473408, 
  926341742, 53, 
  "NECONN:0", 0, 
  0, 0, 0, 0, 
  0, 0, 0, 0, 
  0, 0, 0, 
  0, 0, 0, 
  0, 0, 0, 1, 
  0, 0, 0, 0, 0, 
  0, 0, 16896, 1, 
  0, 51 )

delete from neConnectiontable0
insert into neConnectiontable0
(oidclass, oidinstLeft, oidinstRite, oidtomid, networkElementOidclass, 
  networkElementOidinstLeft, networkElementOidinstRite, 
  networkElementOidtomid, networkElementOidname, 
  bssConnectionOidclass, bssConnectionOidinstLeft, 
  bssConnectionOidinstRite, bssConnectionOidtomid, 
  name, nameBindingclass, 
  nameBindinginstLeft, nameBindinginstRite, nameBindingtomid, criticalCount, 
  majorCount, minorCount, alarmOutstandingCount, unAckCount, 
  specAvailStatus, reflectedAlarmStatus, underRepairRefAlCount, 
  criticalRefAlCount, majorRefAlCount, minorRefAlCount, 
  alarmOutstandingRefAlCount, upwardReflection, opState, adminState, 
  usageState, alarmStatus, procStatus, availStatus, cntlStatus, 
  standByStatus, unknownStatus, containerOidclass, containerOidinstLeft, 
  containerOidinstRite, containerOidtomid )
values ( 16916, 3343351, 926340985, 51, 17408, 
  3343353, 926340985, 
  51, "BSS:0", 
  19969, 3473408, 
  926341742, 53, 
  "NECONN:0", 0, 
  0, 0, 0, 0, 
  0, 0, 0, 0, 
  0, 0, 0, 
  0, 0, 0, 
  0, 0, 0, 1, 
  0, 0, 0, 0, 0, 
  0, 0, 16896, 1, 
  0, 51 )

insert into internalEFDtable0
(oidclass,    oidinstLeft, oidinstRite, oidtomid,    discriminatorId, holdTime,   
         startTime,                  stopTime,                   eventTypeBits,
         perceivedSeverityBits, alarmStateBits, destinationType,
         destination,                                       
         name,                                               nameBindingclass,
         nameBindinginstLeft, nameBindinginstRite, nameBindingtomid, criticalCount,
         majorCount,  minorCount,  alarmOutstandingCount, unAckCount,
         specAvailStatus, reflectedAlarmStatus, underRepairRefAlCount,
         criticalRefAlCount, majorRefAlCount, minorRefAlCount,
         alarmOutstandingRefAlCount, upwardReflection, opState,     adminState, 
         usageState,  alarmStatus, procStatus,  availStatus, cntlStatus, 
         standByStatus, unknownStatus, containerOidclass, containerOidinstLeft,
         containerOidinstRite, containerOidtomid, userLabel)        
values (20992,     3604480,   926510369,          55,             808,           0,
                "May 12 1999 12:59PM",                       NULL,           496,
                            31,             11,               7,
         "135.86.129.52",                                     
         "AFD:808",                                                           0,
                           0,                   0,                0,             0,
                   2,           0,                     0,           0,
                       0,                    0,                     0,
                          0,               0,               0,
                                  0,                4,           0,           1,
                   0,           4,           0,           0,           0,
                     0,             0,                 0,                    0,
                            0,                 0, "NFM_AFD" )

ypcat hosts |grep bryhp668
135.86.129.97   bryhp668

ypcat hosts |grep bryhp681
135.86.129.52   bryhp681

netstat
NFMSrv --- nothing
NFMSim ---
tcp        0      0  bryhp681.6543          bryhp681.1641          ESTABLISHED
tcp        0      0  bryhp681.1641          bryhp681.6543          ESTABLISHED
ctrlCNFMSrv

$  netstat |grep 6543
tcp        0      0  bryhp681.6543          bryhp681.1641          FIN_WAIT_2
tcp        0      0  bryhp681.1641          bryhp681.6543          CLOSE_WAIT

quit NFMSim
$ netstat |grep 6543
tcp        0      0  bryhp681.6543          bryhp681.1641          TIME_WAIT

run NFMSim, connection fails ... but exits TIME_WAIT ... or timeouts?

quit NFMSim 1st, then NFMSrv and all is fine.

Handy UNIX/C/C++/OSP/... references

socket TIME_WAIT info

Mail Thread Index cleaning up TIME_WAIT states http://www.sunsite.auc.dk/RFC/rfc/
RFC HyperText Archive
search RFCs for TIME_WAIT
RFC 1337 - TIME-WAIT Assassination Hazards in TCP
RFC 1122 - Requirements for Internet Hosts -- Communication Layers
RFC 793 - Transmission Control Protocol
RFC 1323 - TCP Extensions for High Performance
RFC 916 - RELIABLE ASYNCHRONOUS TRANSFER PROTOCOL (RATP)
RFC 1339 - Remote Mail Checking Protocol
stuck in TIME_WAIT, winsock mailing list Try setting SO_REUSEADR before closing the socket.
setting SO_REUSEADDR, SO_REUSEPORT and SO_LINGER


When this is done in the server NFMSrv ... i.e. in the OMC code?
The sockets don't linger in time_wait after client shutdown.
NFMSim sockets are not the problem => setting them there won't help.

NFMSim         ascOutput
--------------------------------------
socket         socket
               set REUSEADDR/PORT LINGER
               bind(6543)
connect------->accept
recv   <-------send
 ..             ..
shutdown       shutdown, TIME_WAIT exits because of REUSE* and LINGER

NFMSim shutdown before ascOutput => no problems, no TIME_WAIT
ascOutput shutdown first => TIME_WAIT without LINGER

   int nAllowReuse = 1;
   if (setsockopt(nfmSocketFd, SOL_SOCKET, SO_REUSEADDR, 
                         (char*)&nAllowReuse, sizeof(nAllowReuse)) <0 )
     {
       cerr << "NFMSim:setHost:ERROR: could not set socket to reuse addr." << endl;
     }

   if (setsockopt(nfmSocketFd, SOL_SOCKET, SO_REUSEPORT, 
                         (char*)&nAllowReuse, sizeof(nAllowReuse)) <0 )
     {
       cerr << "NFMSim:setHost:ERROR: could not set socket to reuse port." << endl;
     }

   linger lingerSet;
   lingerSet.l_onoff = 0;
   lingerSet.l_linger = 0;
   // set server to allow reuse of socket port
   if (setsockopt(nfmSocketFd, SOL_SOCKET, SO_LINGER, 
                         (char*)&lingerSet, sizeof(lingerSet)) <0 )
     {
       cerr << "NFMSim:setHost:ERROR: could not set socket to linger." << endl;
     }

OSP event info

Why doesn't ascIntf event get to ascOutput?
~jamesc/jag4.8a/src/jag/libsrc/afd/ascIntf/

Code review

a2ps in ~mmusgrav/bin somewhere

Unit Test

~bbrophy
~mmusgrav/rje/CODE_REVIEW/new/
~mmusgrav/NFM/UNIT_TEST/
TMS homepage
Test Tools - TMS user manuals etc.
TMS user info

The TESTS

Test scope - requirements - complete code coverage

process startup, reading from MIB, ascIntf-ascOutput communication

Test process startup with NFM AFD in mib 

NFM AFD creation
  create NFM AFD
  create NFM AFD with different time/weekmasks & test ...
  create 2nd NFM AFD (rejected)
  create NFM AFD (with wrong/missing NFM address/port?)
  create NFM AFD and connect (not from NFM => connection rejected)
  create NFM AFD after 2 errors above, check socket connection works
  modify other AFD to be NFM AFD 
  delete NFM AFD & recreate.

locking & unlocking of NFM AFD
  lock NFM AFD check new alarms
  unlock NFM AFD (check with new alarms)
  unlock NFM AFD after NFM_INIT_TIMER expires
  create locked NFM AFD, unlock.
 
init/update testing
  NFM AFD creation triggers init seq, check alarms b4 and after NFM_INIT_TIMER
  NFM AFD unlock triggers update or init
  Test alarms arriving during init/update >;)
  NFM AFD creation without any alarms
  NFM AFD creation with alarms in database before NFM_INIT_TIMER (old), after NFM_INIT_TIMER (recent) and with date>now.
  NFM AFD creation with varied NFM_INIT_TIMER from 0 to 24 hours and above (not valid).
  Test batched alarms with varied batch size

Heartbeat testing

GUI comms

ascOut-ascIntf specific comms

OMC-NFM connection testing - NFM goes down - OMC goes back to listen/accept
                             NFM comes up - OMC accepts connection - init/update and normal op.
lost ntf sent to mib only when NFM-OMC connection down

Unit test mosu vs file mess.
   Check destDownTime, nfmState, previousDestDownTime
   Note these can be in MOSU (for 4.9 or in persistent file for 4.8a) 
   used in updateOrInitialisation, set in NFMOutput constructor, ....where else?

FILE: 
  NFMOutput::readNfmOperationState
  NFMOutput::setNfmOperationState
  NFMOutput::deleteNfmOperationStateFile
  NFMOutput::readPreviousDestDownTime
  NFMOutput::setPreviousDestDownTime
  NFMOutput::deleteNfmPreviousDestDownTimeFile


unit test for each new method and methods majorly modified?
complete coverage ... error case checking ... 
Hmmm Hmm.

\(omc-[0-9-]*-[0-9-]*\) \1 Table 3.1-1: Requirements Reference Requirement # Description Subsystem Design Section

omc-177-10A new 'NFM' option shall be added to the AFD attribute 'Destination Type'. It shall be given an Enum value of '7'. 4.1.1

omc-177-30A new timer, AFD_NFM_INIT_TIMER shall be added to the system.cf file.This shall have values of 1-24 hours, with a step size of 1. This parameter shall be user modifiable. See OA&M section of the HLD. 4.4.1

omc-177-40The choke mechanism defined in the omc-fm-138 impact statement (Ref. 7.5), shall not be applied to the AFD configured for the NFM interface. This requirement is currently imple-mented for specific destinations only and will not affect new code or require modifications to existing code for this feature.

omc-177-50There may only be one AFD created with a destina-tion type of NFM, regardless of the state of this AFD. Any attempt to create a second AFD with a destination type of NFM will be rejected and a suit-able error message will be displayed. The mib will be responsible for returning this error code to the GUI. 4.12.1 See the GUI section of the HLD also.

omc-177-60During an Initialisation or Update, any attempt by the operator to modify the AFD will be rejected. A suitable error message will be presented to the operator when he attempts to initiate the modifica-tion by clicking on the 'Ok' button. The mib will be responsible for returning this error code to the GUI. 4.12.2 See the GUI section of the HLD also.

omc-177-100The AFD Create/Modify screen shall present a new destination option 'NFM' in the form of an additional option. See the GUI section of the HLD.

omc-177-110When a Destination Type of 'NFM' is selected as the AFD destination, the destination field will be datafilled with the IP address as read from a pre-populated configuration file (Ref. omc-177-400). The destination field itself shall not be modifiable by the operator. See the GUI section of the HLD. omc-177-120When the user selects NFM as the Destination Type, the hold timer will default to 'Not Active' instead of its usual '5 mins'. The operator will have the option to modify this if desired. See GUI section of the HLD. 4.9.3

omc-177-140The AFD detail screen shall display the new NFM destination type and its associated IP address as the destination. See the GUI section of the HLD.

omc-177-150The AFD browser window shall display the new destination type of 'NFM' when appropriate, and its associated destination field. See the GUI section of the HLD.

omc-177-160During an Initialisation or Update, the status bar of AFD Detailed View Window, where destination type is NFM, shall display the following messages: - NFM Initialisation in progress or - NFM Update in progress. The "in progress" messages shall remain for the duration of the Update/Initialisation, unless subse-quently overwritten. See the GUI section of the HLD.

omc-177-210The OMC shall provide the mechanism for the establishment of a socket connection over a TCP/ IP interface, to the NFM equipment. 4.3 , 4.6.3

omc-177-220Once the physical interface is established, the OMC shall 'listen' for a 'connection request' mes-sage from the NFM and establish a connection accordingly. This will only be done when the AFD is in an unlocked state. If the AFD is Locked, then no response to the 'connection request' will be offered. 4.3 ,4.6.3 , 4.7 , 4.10.1

omc-177-225The OMC must identify the connection request as originating from the NFM. This could be done by using the NFM IP address from the configuration file (omc-177-400). If the NFM cannot be positively identified, the request will be ignored. 4.3 , 4.6.3

omc-177-227When the AFD is locked whilst the OMC-NFM inter-face is in normal operation, the OMC shall cease all transmission to the NFM. The TCP connection shall not be broken. Once the AFD is unlocked, the OMC will resume transmission according to omc-177-230 4.10.1

omc-177-230The OMC must be capable of detecting a loss of connection. Once a break in the connection is detected, the OMC must be capable of measuring the amount of time which elapses until the connec-tion is re-established. 4.3 , 6 omc-177-235When the OMC detects that the link is down, it will set the operational state of the AFD to 'disabled' and will raise an alarm against the AFD. 4.3 , 4.10.1 , 6

omc-177-240The OMC shall support the transmission of heart- beat messages every 10 minutes. 4.10 omc-177-250The OMC shall initiate an initialisation procedure under the following situations: i) A connection has been established between the OMC and the NFM for the first time. ii) The OMC to NFM connection has been re-estab- lished where the downtime has been greater than or equal to AFD_NFM_INIT_TIMER (Ref. omc-177-30) 4.4.1 , 4.6.3

omc-177-255If the connection is lost during an initialisation, where the connection is re-established, the OMC shall again perform an initialisation regardless of the amount of time the connection has been down. 4.4.1 , 4.6.3 Requirement # Description Subsystem Design Section

omc-177-260When performing an initialisation, the alarms for-warded by the OMC will be those that: i) Match the 'Severity', 'Event Type', 'Managed Object', and 'MMN Number' filter criteria defined in the AFD. ii) Are currently in the open state (this condition overrides the 'Alarm State' filter settings). 4.4.2 , 4.6.3

omc-177-270The OMC shall support the transmission of Initiali-sation Start and Initialisation Stop notifications as part of the Initialisation procedure. 4.1.2.2 , 4.4.2 , 4.6.3

omc-177-280The OMC shall initiate an Update procedure when an OMC to NFM connection is re- established after a downtime of less than AFD_NFM_INIT_TIMER (omc-177-30). 4.4.1 , 4.6.3

omc-177-285If, during an Update, the connection is lost, the OMC shall consider that the connection was never re-established and shall continue to measure the downtime from the original loss of connection and shall not re-start the downtime measurement. 4.4.1 , 4.6.3

omc-177-290When performing an Update, the alarms forwarded to the OMC will be those that match the 'Severity', 'Alarm State', 'Managed Object', and 'MMN Num-ber' filter criteria defined in the AFD. 4.4.2 , 4.6.3

omc-177-300The OMC shall support the transmission of Update Start and Update Stop notifications as part of the Update procedure. 4.1.2.2 , 4.4.2 , 4.6.3

omc-177-310During an initialisation or update phase, the OMC may group multiple alarm reports in a single Alarm Notification. To facilitate this, the OMC shall sup-port the OPEN and CLEARED alarm message for-mats given in Table 4.3-1: Notification Formats, FP/ DR (Ref. 11.10 ) 4.6.3

omc-177-320Any alarms received at the OMC whilst an initialisa- tion or update is taking place, that match the filter-ing criteria for the AFD to NFM, shall be stored and subsequently sent in sequence once the OMC and NFM have been synchronized. 4.4.2 ,4.6.3

omc-177-400A script shall be provided to update the IP address and port number in the HPUX release, for the con- figuration file during installation. The IP address and port number information shall be made public. The OMC shall use this information for the setup of the new NFM interface. The exact nature and loca-tion of the configuration file is to be determined. This document places no conditions or require-ments in this respect. See OA&M section of the HLD. 4.3 , 4.6.3

omc-177-410No special permissions are required for the opera- tor to use this feature. Normal FM permissions will suffice. This requirement does not require any new code or modifications to existing code. Requirement # Description Subsystem Design Section

omc-177-430A simulator will be required for the testing of the NFM interface. The simulator must be capable of: => Supporting TCP/IP connection => sending a 'Connection Request' message to the OMC. => Receiving and breaking down the notifications sent from the OMC. => Displaying the ASCII test on screen and redi-recting it to a log file.

InternalEFDCopy::update
AsciiFormatter::writeReport
AscFilterList::remove_afd

BaseOutput::registerSieve
BaseOutput::HandleRegisterResult
BaseOutput::getDestTypeStr
BaseOutput::SetupTemplates
BaseOutput::processOutputAlarmEvent
BaseOutput::ProcessEvent
BaseOutput::GetEFDForDestination

OutputList::loadDestinations
OutputList::addOutput

SocketOutput::SocketOutput
SocketOutput::~SocketOutput
SocketOutput::writeStr
SocketListenEvent::SocketListenEvent
SocketListenEvent::DoXdr

NFMOutput::NFMOutput
NFMOutput::~NFMOutput
NFMOutput::openOutput
NFMOutput::closeOutput
NFMOutput::createAndSendInitialisationOrUpdateNotif
NFMOutput::updateOrInitialisation
NFMOutput::getEFDAdmStateForNFMDestination
NFMOutput::initialisationSequence
NFMOutput::updateSequence
NFMOutput::beginSequence
NFMOutput::findAlarms

  NFMOutput::getEFDAdmStateForNFMDestination
  NFMOutput::getEFDOidForNFMDestination

  NFMOutput::readNfmOperationState
  NFMOutput::setNfmOperationState
  NFMOutput::deleteNfmOperationStateFile

  NFMOutput::readPreviousDestDownTime
  NFMOutput::setPreviousDestDownTime
  NFMOutput::deleteNfmPreviousDestDownTimeFile

NFMOutput::findNFMInternalEFDCopy(); 
NFMOutput::createNFMInternalEFDCopyInstance

NFMOutput::handleErrorTask
NFMOutput::handleError

listenSensor::listenSensor
listenSensor::SubjectChanged
listenSensor::validateConnection

queueAndProcessAlarmsTask::queueAndProcessAlarmsTask
queueAndProcessAlarmsTask::insert
queueAndProcessAlarmsTask::remove
queueAndProcessAlarmsTask::processQueue

getAndProcessNewAlarmsTask::getAndProcessNewAlarmsTask

heartbeatSensor::heartbeatSensor
heartbeatSensor::SubjectChanged

updateOrInitialisationTask::updateOrInitialisationTask




NFMSim unit test!?

Standards and Procedures

1