· 7 years ago · Jan 13, 2019, 01:58 PM
1create or replace PACKAGE BODY EJ_HUA_MPLS AS
2
3
4PROCEDURE LOAD_PHYSICAL_MODEL IS
5 V_NMSID RECONCILE_NODE.NMSID%TYPE;
6 V_SN RECONCILE_NODE.SERIALNUMBER%TYPE;
7 V_RECON_NODE_ID RECONCILE_NODE.ID%TYPE;
8 V_PRNT_CARD_ID RECONCILE_CARD.ID%TYPE;
9 V_LVL0_PID EJ_HUAWEI_MPLS_CARDS.PID%TYPE;
10 V_LVL1_PID EJ_HUAWEI_MPLS_CARDS.PID%TYPE;
11 V_LVL2_PID EJ_HUAWEI_MPLS_CARDS.PID%TYPE;
12 V_PID EJ_HUAWEI_MPLS_CARDS.PID%TYPE;
13 V_BOARDTYPE EJ_HU_ELABEL_BRIEF_OUT.BOARDTYPE%TYPE;
14 TEMP EJ_HU_ELABEL_BRIEF_OUT.BOARDTYPE%TYPE;
15 V_CURRENT_LEVEL NUMBER;
16 V_CURRENT_PID EJ_HUAWEI_MPLS_CARDS.PID%TYPE;
17 V_COMMENT VARCHAR2(4000);
18 V_LVL1_CARD_ID NUMBER;
19 V_LVL2_CARD_ID NUMBER;
20 V_LVL1_SLOT_ID NUMBER;
21 V_CARD_NMSID RECONCILE_CARD.NMSID%TYPE;
22 V_SLOT_NUMBER NUMBER;
23 V_CURRENT_CARD_ID NUMBER;
24 V_COUNT NUMBER;
25
26-- V_VERSION EJ_HU_MPLS_VERSION_OUT.VERSION%TYPE;
27-- V_DEVICE_NAME EJ_HU_MPLS_VERSION_OUT.NAME%TYPE;
28 V_PID_FOUND VARCHAR2(1);
29 V_CARD_CODE RECONCILE_CARD.CODE%TYPE;
30 V_ACCEPT_SFP VARCHAR2(1);
31 V_HARDCODED_SLOTNR NUMBER;
32 V_SHLEF_NAME EJ_HUAWEI_MPLS_CARDS.SHELF_NAME%TYPE;
33 V_SHLEF_NMSID RECONCILE_SHELF.NMSID%TYPE;
34 V_ADD_CARD_RESULT NUMBER;
35 --V_DEV_INFO VARCHAR2(4000);
36 --V_CARD_INFO VARCHAR2(4000);
37BEGIN
38 dbms_output.put_line('Version 16');
39
40 --Mohan upate card description
41 UPDATE EJ_HU_ELABEL_BRIEF_OUT A1
42 SET A1.DESCRIPTION = ( SELECT DISTINCT A2.DESCRIPTION FROM EJ_HU_NE5K_CARD_DESC A2 WHERE A1.BARCODE =A2.BARCODE)
43 where exists ( SELECT A1.BARCODE FROM EJ_HU_NE5K_CARD_DESC A2
44 WHERE A1.BARCODE =A2.BARCODE) ;
45 --END OF Mohan upate card description
46
47 update EJ_HU_MPLS_ISIS_PEER_OUT isis
48set PORT_BW = (select gbe.PORT_BW from EJ_HU_MPLS_IF_GBE_OUT gbe where
49SUBSTR(REGEXP_SUBSTR(isis.interface ,'(([0-9]+/+[0-9]+/+[0-9]+))'),0) = SUBSTR(REGEXP_SUBSTR(gbe.interface_name ,'(([0-9]+/+[0-9]+/+[0-9]+))'),0)
50and gbe.device_ip = isis.device_ip
51and gbe.interface_name not like '%.%')
52where isis.INTERFACE not like '%.%' and isis.INTERFACE not like '%-T%';
53
54update EJ_HU_MPLS_ISIS_PEER_OUT isis
55set TRANSCEIVER_MAX_BW = (select gbe.TRANSCEIVER_MAX_BW from EJ_HU_MPLS_IF_GBE_OUT gbe where
56SUBSTR(REGEXP_SUBSTR(isis.interface ,'(([0-9]+/+[0-9]+/+[0-9]+))'),0) = SUBSTR(REGEXP_SUBSTR(gbe.interface_name ,'(([0-9]+/+[0-9]+/+[0-9]+))'),0)
57and gbe.device_ip = isis.device_ip
58and gbe.interface_name not like '%.%')
59where isis.INTERFACE not like '%.%' and isis.INTERFACE not like '%-T%';
60
61 FOR DEV IN (SELECT ID, DEVICE_IP, VERSION, DECODE(MODEL,'NE40E-X3','NE40E-X3','NE5000E','NE5000E','NE40E-8') MODEL , NAME ,
62 DECODE(MODEL,'NE40E-X3','NE40E','NE5000E','NE5000E','NE40E') DEV_TYPE
63 FROM EJ_HU_MPLS_VERSION_OUT
64-- PID IN (SELECT PID FROM EJ_HUAWEI_MPLS_CARDS WHERE LVL = 0) AND
65 -- WHERE DEVICE_IP IN ( '10.25.86.39')
66 WHERE ID = 7003
67 ) LOOP
68 --V_DEV_INFO := '';
69 V_NMSID := UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||DEV.DEVICE_IP||'}');
70 SELECT COUNT(1) INTO V_COUNT FROM RECONCILE_NODE WHERE NMSID = V_NMSID;
71 IF V_COUNT > 0 THEN -- UPDATE
72 UPDATE RECONCILE_NODE SET
73 NAME = DEV.NAME,
74 EQUIPMENTDEFINITIONNAME = DEV.DEV_TYPE,
75 SITENAME = 'UNKN',
76 IPADDRES = NULL,
77 NETWORKADDRESS = DEV.DEVICE_IP,
78 SERIALNUMBER = DEV.VERSION,
79 COMMENTS = NULL,
80 SOFTWAREVERSION = REGEXP_SUBSTR(DEV.VERSION,'(V[0-9]+R[0-9]+)')
81 WHERE NMSID = V_NMSID;
82 UPDATE EJ_HU_MPLS_VERSION_OUT SET RECON_STATUS = 'SUCCESS: DEVICE INFO UPDATED' WHERE ID = DEV.ID;
83 ELSE -- INSERT
84 INSERT INTO RECONCILE_NODE (NMSID, NAME, EQUIPMENTDEFINITIONNAME, SITENAME, IPADDRES, NETWORKADDRESS, SERIALNUMBER, COMMENTS, SOFTWAREVERSION)
85 VALUES (V_NMSID, DEV.NAME, DEV.DEV_TYPE, 'UNKN', NULL , DEV.DEVICE_IP,NULL, NULL, REGEXP_SUBSTR(DEV.VERSION,'(V[0-9]+R[0-9]+)') );
86 UPDATE EJ_HU_MPLS_VERSION_OUT SET RECON_STATUS = 'SUCCESS: DEVICE INFO INSERTED' WHERE ID = DEV.ID;
87 END IF;
88 -- GET THE AUTO-GENERATED ID BASED ON THE NMSID
89 SELECT ID INTO V_RECON_NODE_ID FROM RECONCILE_NODE WHERE NMSID = V_NMSID;
90
91
92 -- LOAD CARDS, SUBCARDS
93 V_LVL0_PID := DEV.MODEL;
94 V_LVL1_PID := '';
95 V_LVL2_PID := '';
96 V_CURRENT_LEVEL := 0;
97 V_CURRENT_PID := DEV.MODEL;
98 --V_PRNT_CARD_ID := NULL;
99 V_LVL1_CARD_ID := NULL;
100 V_LVL2_CARD_ID := NULL;
101 V_CARD_CODE := NULL;
102
103
104 FOR R IN (SELECT * FROM EJ_HU_ELABEL_BRIEF_OUT WHERE DEVICE_IP = DEV.DEVICE_IP
105 ORDER BY ID) LOOP
106
107 IF SUBSTR(R.BOARDTYPE,-1,1) = '0' THEN
108 V_PID := SUBSTR(R.BOARDTYPE,1,LENGTH(R.BOARDTYPE)-1);
109 ELSE
110 V_PID := R.BOARDTYPE;
111 END IF;
112 V_BOARDTYPE := V_PID;
113-- INSERT INTO EJ_TEST VALUES ('1'|| '-' ||R.ID||'-'||V_PID);
114-- dbms_output.put_line('Before PID' ||DEV.DEVICE_IP || '#V_LVL1_PID = '|| V_LVL1_PID||'#V_PID = '|| V_PID || 'V_CURRENT_LEVEL = ' || V_CURRENT_LEVEL || 'R.SLOT ' || R.SLOT);
115
116 IF V_PID IS NULL AND V_LVL1_PID = 'CR52L4XXB' THEN
117 V_PID := 'LAN_WAN_2X10G_N_CARD';
118-- dbms_output.put_line('After PID' ||DEV.DEVICE_IP || '#V_LVL1_PID = '|| V_LVL1_PID||'#V_PID = '|| V_PID || 'V_CURRENT_LEVEL = ' || V_CURRENT_LEVEL|| 'R.SLOT ' || R.SLOT);
119 END IF;
120 IF R.SLOT LIKE 'PWR%' THEN
121 SELECT BOARDTYPE INTO TEMP FROM EJ_HU_ELABEL_BRIEF_OUT WHERE ID = R.ID+1;
122-- dbms_output.put_line('R.ID' || R.ID );
123-- dbms_output.put_line('TEMP' || TEMP );
124
125 IF TEMP IS NOT NULL THEN
126 IF DEV.MODEL = 'NE40E-X3' THEN
127 V_PID := 'PWR-' || 'X3';
128 ELSIF DEV.MODEL = 'NE40E-8' THEN
129 V_PID := 'PWR-' || '8';
130 END IF;
131 END IF;
132-- dbms_output.put_line('V_PID' || V_PID );
133 END IF;
134
135 IF V_PID IS NOT NULL THEN
136 BEGIN
137 V_SLOT_NUMBER := TO_NUMBER(SUBSTR(REGEXP_SUBSTR(R.SLOT,' ([0-9]*)'),2));
138 EXCEPTION WHEN OTHERS THEN
139 V_SLOT_NUMBER := NULL;
140 END;
141 BEGIN
142 IF R.SLOT LIKE '%PIC%' THEN
143 SELECT UPPER(TYPE)
144 INTO V_PID
145 FROM EJ_HU_DEV_PIC_STATUS_OUT
146 WHERE SLOT = V_LVL1_SLOT_ID
147 AND PIC = V_SLOT_NUMBER
148 AND DEVICE_IP = DEV.DEVICE_IP;
149 ELSE
150-- V_LVL1_SLOT_ID := NULL;
151-- V_PID := NULL;
152 NULL;
153 END IF;
154
155 --SELECT LVL INTO V_CURRENT_LEVEL FROM EJ_HUAWEI_MPLS_CARDS WHERE PID = R.PID AND PRNT_PID = V_CURRENT_PID;
156 --SELECT COUNT(1) INTO V_COUNT FROM EJ_HUAWEI_MPLS_CARDS WHERE PID = R.PID AND PRNT_PID IN (V_LVL0_PID, V_LVL1_PID, V_LVL2_PID);
157-- INSERT INTO EJ_TEST VALUES ('3'|| '##' || DEV.MODEL||'##' || V_PID|| '##' || V_LVL0_PID || '##' || V_LVL1_PID || '##' || V_LVL2_PID);
158 BEGIN
159 SELECT LVL, HARDCODED_SLOTNR, ACCEPT_SFP , SHELF_NAME
160 INTO V_CURRENT_LEVEL, V_HARDCODED_SLOTNR, V_ACCEPT_SFP , V_SHLEF_NAME
161 FROM EJ_HUAWEI_MPLS_CARDS WHERE PID = UPPER(V_PID) AND PRNT_PID IN (UPPER(V_LVL0_PID), UPPER(V_LVL1_PID), UPPER(V_LVL2_PID))
162 AND DEVICE_MODEL = DEV.MODEL;
163 EXCEPTION
164 WHEN OTHERS THEN
165 UPDATE EJ_HU_ELABEL_BRIEF_OUT SET RECON_STATUS = 'NOT EXIST IN THE MODELING TABLE = ' || V_PID WHERE ID = R.ID;
166 GOTO END_LOOP;
167 END;
168
169 V_PID_FOUND := 'Y';
170 EXCEPTION WHEN NO_DATA_FOUND THEN
171 NULL;
172 END;
173 IF V_CURRENT_LEVEL = 2 THEN
174 IF R.SLOT LIKE '%PIC%' THEN
175 V_CARD_NMSID := UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||DEV.DEVICE_IP||';LPU'||V_LVL1_SLOT_ID||';'||R.SLOT||'}');
176 ELSIF R.SLOT LIKE '%PEM%' THEN
177 V_CARD_NMSID := UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||DEV.DEVICE_IP||';PWR'||V_LVL1_SLOT_ID||';'||R.SLOT||'}');
178 END IF;
179
180 ELSE
181 V_CARD_NMSID := UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||DEV.DEVICE_IP||';'||R.SLOT||'}');
182 END IF;
183-- INSERT INTO EJ_TEST VALUES ('6'|| '-' ||V_CARD_NMSID ||'-'|| V_CURRENT_LEVEL);
184
185 IF V_CURRENT_LEVEL = 1 THEN
186 V_PRNT_CARD_ID := NULL;
187 V_LVL1_PID := V_PID;
188 ELSIF V_CURRENT_LEVEL = 2 THEN
189 V_PRNT_CARD_ID := V_LVL1_CARD_ID;
190 V_LVL2_PID := V_PID;
191 ELSIF V_CURRENT_LEVEL = 3 THEN
192 V_PRNT_CARD_ID := V_LVL2_CARD_ID;
193 END IF;
194 V_SLOT_NUMBER := NVL(V_SLOT_NUMBER, V_HARDCODED_SLOTNR);
195-- dbms_output.put_line('V_LVL1_CARD_ID');
196
197-- INSERT INTO EJ_TEST VALUES ('7'|| '-' ||V_CARD_NMSID || '-' ||V_SLOT_NUMBER|| '-' ||V_SHLEF_NAME);
198
199 IF V_SLOT_NUMBER IS NOT NULL THEN
200 IF V_SHLEF_NAME IS NOT NULL THEN
201 V_SHLEF_NMSID := UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||DEV.DEVICE_IP||';'||V_SHLEF_NAME||'}');
202 SELECT COUNT(1) INTO V_COUNT FROM RECONCILE_SHELF WHERE NMSID = V_SHLEF_NMSID;
203 IF V_COUNT > 0 THEN -- UPDATE
204 UPDATE RECONCILE_SHELF SET
205 RECONCILE_NODE_NMSID = V_NMSID,
206 SHELFDEFINITIONNAME = V_SHLEF_NAME,
207 NAME = V_SHLEF_NAME,
208 SITENAME = 'UNKN'
209 WHERE NMSID = V_SHLEF_NMSID;
210 ELSE -- INSERT
211 INSERT INTO RECONCILE_SHELF ( RECONCILE_NODE_NMSID,NMSID, SHELFDEFINITIONNAME, "NAME", SITENAME)
212 VALUES( V_NMSID, V_SHLEF_NMSID,V_SHLEF_NAME, V_SHLEF_NAME, 'UNKN' );
213 END IF;
214 ELSE
215 V_SHLEF_NMSID := NULL;
216 END IF;
217 UPDATE RECONCILE_SHELF SET NAME = V_SHLEF_NAME WHERE NMSID = V_SHLEF_NMSID;
218 IF R.BOARDTYPE IN ('CR52LPUK21') THEN
219 V_PID := 'LPU';
220 V_BOARDTYPE := 'LPU';
221 V_CARD_CODE := R.BOARDTYPE;
222 ELSE
223 V_BOARDTYPE := R.BOARDTYPE;
224 V_CARD_CODE := NULL;
225 -- dbms_output.put_line('V_BOARDTYPE '||V_BOARDTYPE || 'V_CARD_CODE ' || V_CARD_CODE);
226 END IF;
227
228 SELECT COUNT(1) INTO V_COUNT FROM RECONCILE_CARD WHERE NMSID = V_CARD_NMSID;
229 IF V_COUNT > 0 THEN -- UPDATE
230 UPDATE RECONCILE_CARD SET
231 RECONCILE_NODE_ID = V_RECON_NODE_ID,
232 RECONCILE_NODE_NMSID = V_NMSID,
233 PARENT_RECONCILE_CARD_ID = V_PRNT_CARD_ID,
234 SLOTNR = V_SLOT_NUMBER,
235 "NAME" = V_PID,
236 CODE = V_CARD_CODE , -- THE XSF PID
237 SERIALNR = R.BARCODE,
238 COMMENTS = V_BOARDTYPE,
239 DESCRIPTION = NVL(R.DESCRIPTION,R.SLOT),
240 RECONCILE_SHELF_NMSID = V_SHLEF_NMSID
241 WHERE NMSID = V_CARD_NMSID;
242-- INSERT INTO EJ_TEST VALUES ('BEFORE UPDATE - ' || R.ID);
243
244 UPDATE EJ_HU_ELABEL_BRIEF_OUT SET RECON_STATUS = 'SUCCESS: CARD INFO UPDATED'|| '; LEVEL = '||V_CURRENT_LEVEL||'; SLOT: '||V_SLOT_NUMBER WHERE ID = R.ID;
245 ELSE -- INSERT
246-- INSERT INTO EJ_TEST VALUES ('BEFORE INSERT - ' || R.ID);
247--if V_PID is null THEN
248-- dbms_output.put_line('PID is null');
249-- dbms_output.put_line('DEVICE=' ||DEV.DEVICE_IP || 'PID = '|| V_PID||'CODE = '||V_CARD_CODE);
250--ELSE
251 --dbms_output.put_line('done');
252
253 INSERT INTO RECONCILE_CARD (RECONCILE_NODE_ID, RECONCILE_NODE_NMSID, NMSID, PARENT_RECONCILE_CARD_ID, SLOTNR, "NAME", CODE, SERIALNR, DESCRIPTION, COMMENTS ,RECONCILE_SHELF_NMSID)
254 VALUES(V_RECON_NODE_ID, V_NMSID, V_CARD_NMSID, V_PRNT_CARD_ID, V_SLOT_NUMBER, V_PID , V_CARD_CODE, R.BARCODE, NVL(R.DESCRIPTION,R.SLOT),V_BOARDTYPE ,V_SHLEF_NMSID);
255 UPDATE EJ_HU_ELABEL_BRIEF_OUT SET RECON_STATUS = 'SUCCESS: CARD INFO INSERTED'|| '; LEVEL = '||V_CURRENT_LEVEL||'; SLOT: '||V_SLOT_NUMBER WHERE ID = R.ID;
256-- INSERT INTO EJ_TEST VALUES ('BEFORE INSERT - ' || R.ID);
257 UPDATE RECONCILE_CARD SET SLOTNR = V_SLOT_NUMBER WHERE NMSID = V_CARD_NMSID;
258END IF;
259
260
261 -- UPDATE RECONCILE_CARD SET SLOTNR = V_SLOT_NUMBER WHERE NMSID = V_CARD_NMSID;
262
263 SELECT ID INTO V_CURRENT_CARD_ID FROM RECONCILE_CARD WHERE NMSID = V_CARD_NMSID;
264 IF R.SLOT LIKE '%PIC%' THEN
265-- INSERT INTO EJ_TEST VALUES ('Before DEVICE' ||DEV.DEVICE_IP || '#V_LVL1_SLOT_ID = '|| V_LVL1_SLOT_ID||'#SLOTNR = '|| V_SLOT_NUMBER);
266-- dbms_output.put_line('Before DEVICE' ||DEV.DEVICE_IP || '#V_LVL1_SLOT_ID = '|| V_LVL1_SLOT_ID||'#SLOTNR = '|| V_SLOT_NUMBER);
267
268 V_ADD_CARD_RESULT := ADD_CARD_INTERFACES(DEV.DEVICE_IP , V_LVL1_SLOT_ID , V_SLOT_NUMBER, V_SHLEF_NMSID ,V_CURRENT_CARD_ID, V_NMSID );
269-- dbms_output.put_line('After DEVICE' ||DEV.DEVICE_IP || '#V_LVL1_SLOT_ID = '|| V_LVL1_SLOT_ID||'#SLOTNR = '|| V_SLOT_NUMBER);
270-- INSERT INTO EJ_TEST VALUES ('After DEVICE ' || DEV.DEVICE_IP || '#V_LVL1_SLOT_ID = '|| V_LVL1_SLOT_ID||'#SLOTNR = '|| V_SLOT_NUMBER);
271 END IF;
272-- END IF;
273-- END IF;
274 ELSE
275-- INSERT INTO EJ_TEST VALUES ('8');
276 UPDATE EJ_HU_ELABEL_BRIEF_OUT SET RECON_STATUS = 'ERROR: SLOT NUMBER NOT FOUND'|| '; LEVEL = '||V_CURRENT_LEVEL||'; SLOT: '||V_SLOT_NUMBER WHERE ID = R.ID;
277 END IF;
278 IF V_CURRENT_LEVEL = 1 THEN
279 V_LVL1_CARD_ID := V_CURRENT_CARD_ID;
280-- dbms_output.put_line(V_LVL1_CARD_ID);
281
282 V_LVL1_SLOT_ID := V_SLOT_NUMBER;
283 ELSIF V_CURRENT_LEVEL = 2 THEN
284 V_LVL2_CARD_ID := V_CURRENT_CARD_ID;
285 END IF;
286 V_CURRENT_PID := V_PID;
287 ELSE
288-- INSERT INTO EJ_TEST VALUES ('9');
289 UPDATE EJ_HU_ELABEL_BRIEF_OUT SET RECON_STATUS = 'INFO: P_ID which is Boardcode is null' WHERE ID = R.ID;
290 END IF;
291-- INSERT INTO EJ_TEST VALUES ('9 R');
292 <<END_LOOP>> -- NOT ALLOWED UNLESS AN EXECUTABLE STATEMENT FOLLOWS
293-- INSERT INTO EJ_TEST VALUES ('9 RR');
294 NULL; -- ADD NULL STATEMENT TO AVOID ERROR
295 END LOOP;
296 END LOOP;
297
298END LOAD_PHYSICAL_MODEL;
299
300-------------------------------------------------------------------------------------------------
301-------------------------------------------------------------------------------------------------
302
303procedure LOAD_PHYSICAL_CIRCUITS is
304 v_NMSID RECONCILE_CIRCUIT.NMSID%TYPE;
305 v_CIRCUITTYPE RECONCILE_CIRCUIT.CIRCUITTYPE%TYPE;
306 v_count NUMBER;
307 v_CUSTOMER RECONCILE_CIRCUIT.CUSTOMER%TYPE;
308 v_PRODUCTCODE RECONCILE_CIRCUIT.PRODUCTCODE%TYPE;
309 v_VENDOR RECONCILE_CIRCUIT.VENDOR%TYPE;
310 v_PROTECTION_TYPE RECONCILE_CIRCUIT.PROTECTION_TYPE%TYPE;
311 v_recon_circuit_id RECONCILE_CIRCUIT.ID%TYPE;
312 v_SERVICE_PARTS RECONCILE_CIRCUIT.SERVICE_PARTS%TYPE;
313 v_NodeA_NMSID RECONCILE_CIRCUITPORT.NODENMSID%TYPE;
314 v_NodeZ_NMSID RECONCILE_CIRCUITPORT.NODENMSID%TYPE;
315 v_SEQNR RECONCILE_CIRCUITPORT.SEQNR%TYPE;
316begin
317 v_CIRCUITTYPE := 0; -- bidirectional (1: Unidirectional)
318 v_CUSTOMER := 'HUAWEI';
319 v_PRODUCTCODE := 'MPLS';
320 v_VENDOR := 'HUAWEI';
321 v_PROTECTION_TYPE := 'S-A';
322 v_SERVICE_PARTS := 'HUAWEI';
323 for r_circuit in (select * from EJ_PHYSICAL_CIRCUITS
324 WHERE CIRCUIT_ID is not null
325-- WHERE CIRCUIT_ID = '1GBE-TWRN-NE40E-01-GE4/0/0-TWRN-NE40E-02-GE4/0/0'
326--AND deva_ip in('10.1.212.34','10.1.212.35','10.73.212.21' ,'10.66.212.14') and devz_ip in ('10.1.212.34','10.1.212.35','10.73.212.21' , '10.66.212.14')
327-- and circuit_id like '40G%'
328-- and deva_interface_agg is null
329 order by DEVA_IP) loop
330 v_NMSID := UPPER(r_circuit.CIRCUIT_ID); -- unique identifier for physical circuit (DevA_PortA_DevZ_PortZ)
331 select count(1) into v_count from RECONCILE_CIRCUIT where NMSID = v_NMSID;
332 if v_count = 0 then -- physical circuit is not in RECONCILE_CIRCUIT, insert it
333 insert into RECONCILE_CIRCUIT (NMSID, CIRCUITTYPE, SPEED, NAME, CUSTOMER, PRODUCTCODE, VENDOR, PROTECTION_TYPE, SERVICE_PARTS, SITEA, SITEB)
334 values(v_NMSID, v_CIRCUITTYPE, r_circuit.SPEED, r_circuit.CIRCUIT_ID, v_CUSTOMER, v_PRODUCTCODE, v_VENDOR, v_PROTECTION_TYPE, v_SERVICE_PARTS, 'UNKN', 'UNKN');
335 else -- physical circuit is in RECONCILE_CIRCUIT, update it
336 update RECONCILE_CIRCUIT set
337 CIRCUITTYPE = v_CIRCUITTYPE,
338 SPEED = r_circuit.SPEED,
339 NAME = r_circuit.CIRCUIT_ID,
340 CUSTOMER = v_CUSTOMER,
341 PRODUCTCODE = v_PRODUCTCODE,
342 VENDOR = v_VENDOR,
343 PROTECTION_TYPE = v_PROTECTION_TYPE,
344 SERVICE_PARTS = v_SERVICE_PARTS,
345 SITEA = 'UNKN',
346 SITEB = 'UNKN'
347 where NMSID = v_NMSID;
348 end if;
349 COMMIT;
350 select id into v_recon_circuit_id from RECONCILE_CIRCUIT where NMSID = v_NMSID;
351 -- circuit ports
352 begin
353 select NMSID into v_NodeA_NMSID from RECONCILE_NODE where networkaddress = r_circuit.DEVA_IP;
354
355 exception when no_data_found then v_NodeA_NMSID := null;
356 end;
357 begin
358 select NMSID into v_NodeZ_NMSID from RECONCILE_NODE where networkaddress = r_circuit.DEVZ_IP;
359 exception when no_data_found then v_NodeZ_NMSID := null;
360 end;
361
362 if v_NodeA_NMSID is not null then
363 v_SEQNR := 1;
364 select count(1) into v_count from (
365 select 1 dummy from RECONCILE_CIRCUITINTERNALPORT
366 where NODENMSID = v_NodeA_NMSID and CIRCUITNMSID = v_NMSID and INTERNALPORT = upper(r_circuit.DEVA_INTERFACE)
367 union all
368 select 2 dummy from RECONCILE_CIRCUITPORT
369 where NODENMSID = v_NodeA_NMSID and CIRCUITNMSID = v_NMSID and PORT = upper(r_circuit.DEVA_INTERFACE));
370
371 if v_count = 0 then -- circuit port not in reconcile tables, insert it
372 if r_circuit.DEVA_INTERFACE like '%Tru%' then -- link aggregation (Port Channel) --> circuit internal ports
373 insert into RECONCILE_CIRCUITINTERNALPORT (NODENMSID, CIRCUITNMSID, INTERNALPORT, SEQNR, RECONCILE_CARD_NMSID , SHELFNMSID)
374 values(v_NodeA_NMSID, v_NMSID, r_circuit.DEVA_INTERFACE, v_SEQNR , null,null);
375 else -- normal port --> circuit ports
376 insert into RECONCILE_CIRCUITPORT (NODENMSID, CIRCUITNMSID, PORT, SEQNR, RECONCILE_CARD_NMSID , SHELFNMSID)
377 values (v_NodeA_NMSID, v_NMSID, r_circuit.DEVA_INTERFACE, v_SEQNR, null,null);
378 end if;
379 else -- circuit port in reconcile tables, update it
380 if r_circuit.DEVA_INTERFACE like '%Tru%' then -- link aggregation (Port Channel) --> circuit internal ports
381 update RECONCILE_CIRCUITINTERNALPORT set
382 NODENMSID = v_NodeA_NMSID,
383 CIRCUITNMSID = v_NMSID,
384 INTERNALPORT = r_circuit.DEVA_INTERFACE,
385 SEQNR = v_SEQNR
386 where NODENMSID = v_NodeA_NMSID and CIRCUITNMSID = v_NMSID and INTERNALPORT = r_circuit.DEVA_INTERFACE;
387 else -- normal port --> circuit ports
388 update RECONCILE_CIRCUITPORT set
389 NODENMSID = v_NodeA_NMSID,
390 CIRCUITNMSID = v_NMSID,
391 PORT = r_circuit.DEVA_INTERFACE,
392 SEQNR = v_SEQNR
393 where NODENMSID = v_NodeA_NMSID and CIRCUITNMSID = v_NMSID and PORT = r_circuit.DEVA_INTERFACE;
394 end if;
395 end if;
396 end if; -- v_NodeA_NMSID is not null
397
398 if v_NodeZ_NMSID is not null then
399 if v_NodeA_NMSID is not null then v_SEQNR := 2; else v_SEQNR := 1; end if;
400 select count(1) into v_count from (
401 select 1 dummy from RECONCILE_CIRCUITINTERNALPORT
402 where NODENMSID = v_NodeZ_NMSID and CIRCUITNMSID = v_NMSID and INTERNALPORT = upper(r_circuit.DEVZ_INTERFACE)
403 union all
404 select 2 dummy from RECONCILE_CIRCUITPORT
405 where NODENMSID = v_NodeZ_NMSID and CIRCUITNMSID = v_NMSID and PORT = upper(r_circuit.DEVZ_INTERFACE));
406 if v_count = 0 then -- circuit port not in reconcile tables, insert it
407 if r_circuit.DEVZ_INTERFACE like '%Tru%' then -- link aggregation (Port Channel) --> circuit internal ports
408 insert into RECONCILE_CIRCUITINTERNALPORT (NODENMSID, CIRCUITNMSID, INTERNALPORT, SEQNR , RECONCILE_CARD_NMSID , SHELFNMSID)
409 values(v_NodeZ_NMSID, v_NMSID, r_circuit.DEVZ_INTERFACE, v_SEQNR, null,null);
410 else -- normal port --> circuit ports
411 insert into RECONCILE_CIRCUITPORT (NODENMSID, CIRCUITNMSID, PORT, SEQNR, RECONCILE_CARD_NMSID , SHELFNMSID)
412 values (v_NodeZ_NMSID, v_NMSID, r_circuit.DEVZ_INTERFACE, v_SEQNR, null,null);
413 end if;
414 else -- circuit port in reconcile tables, update it
415 if r_circuit.DEVZ_INTERFACE like '%Tru%' then -- link aggregation (Port Channel) --> circuit internal ports
416 update RECONCILE_CIRCUITINTERNALPORT set
417 NODENMSID = v_NodeZ_NMSID,
418 CIRCUITNMSID = v_NMSID,
419 INTERNALPORT = r_circuit.DEVZ_INTERFACE,
420 SEQNR = v_SEQNR
421 where NODENMSID = v_NodeZ_NMSID and CIRCUITNMSID = v_NMSID and INTERNALPORT = r_circuit.DEVZ_INTERFACE;
422 else -- normal port --> circuit ports
423 update RECONCILE_CIRCUITPORT set
424 NODENMSID = v_NodeZ_NMSID,
425 CIRCUITNMSID = v_NMSID,
426 PORT = r_circuit.DEVZ_INTERFACE,
427 SEQNR = v_SEQNR
428 where NODENMSID = v_NodeZ_NMSID and CIRCUITNMSID = v_NMSID and PORT = r_circuit.DEVZ_INTERFACE;
429 end if;
430 end if;
431 end if; -- v_NodeZ_NMSID is not null
432
433 end loop;
434end LOAD_PHYSICAL_CIRCUITS;
435
436PROCEDURE FIX_IP_VPM_INTERFACES IS
437 TEMP NUMBER;
438 INTERFACES VARCHAR(2000);
439BEGIN
440 DELETE FROM EJ_HU_IP_VPN_INST_IF_OUT_TMP;
441
442 FOR X IN (SELECT * FROM EJ_HU_IP_VPN_INST_IF_OUT
443--WHERE ID = 4937
444 ) LOOP
445 INTERFACES := X.INTERFACE_LIST || ',';
446 WHILE INSTR(INTERFACES,',') > 0 LOOP
447 TEMP := INSTR(INTERFACES,',');
448 INSERT INTO EJ_HU_IP_VPN_INST_IF_OUT_TMP (ID,DEVICE_IP,VPN_INSTANCE_NAME,VPN_INSTANCE_ID,INTERFACE_NUMBER,INTERFACE_LIST)
449 VALUES (EJ_HU_IP_VPN_INST_IF_OUT_SEQ.NEXTVAL, X.DEVICE_IP,X.VPN_INSTANCE_NAME,X.VPN_INSTANCE_ID,X.INTERFACE_NUMBER,SUBSTR(INTERFACES,1,TEMP-1));
450 INTERFACES := SUBSTR(INTERFACES , TEMP+2);
451 END LOOP;
452 END LOOP;
453END FIX_IP_VPM_INTERFACES;
454
455PROCEDURE ADD_VLAN_CIRCUITS IS
456 v_ID RECONCILE_CIRCUITPORT.ID%TYPE;
457-- v_PRNT_CIRCUITNMSID RECONCILE_CIRCUITPORT.CIRCUITNMSID%TYPE;
458
459 v_NMSID RECONCILE_CIRCUIT.NMSID%TYPE;
460 v_COUNT NUMBER;
461 v_CIR_SPPED VARCHAR2(200);
462 v_CIRCUITTYPE RECONCILE_CIRCUIT.CIRCUITTYPE%TYPE;
463 v_CUSTOMER RECONCILE_CIRCUIT.CUSTOMER%TYPE;
464 v_PRODUCTCODE RECONCILE_CIRCUIT.PRODUCTCODE%TYPE;
465 v_VENDOR RECONCILE_CIRCUIT.VENDOR%TYPE;
466 v_PROTECTION_TYPE RECONCILE_CIRCUIT.PROTECTION_TYPE%TYPE;
467 v_SERVICE_PARTS RECONCILE_CIRCUIT.SERVICE_PARTS%TYPE;
468
469BEGIN
470 v_CIRCUITTYPE := 0; -- bidirectional (1: Unidirectional)
471 v_CUSTOMER := 'HUAWEI';
472 v_PRODUCTCODE := 'MPLS';
473 v_VENDOR := 'HUAWEI';
474 v_PROTECTION_TYPE := 'S-A';
475 v_SERVICE_PARTS := 'HUAWEI';
476
477
478 FOR X IN (SELECT DEVICE_IP , INTERFACE_NAME , 'GIGABITETHERNET' || SUBSTR(REGEXP_SUBSTR(INTERFACE_NAME,'et(([0-9]+/?)+)'),3) MAIN_INTERFACE
479 FROM EJ_HU_MPLS_IF_GBE_OUT
480 WHERE INTERFACE_NAME LIKE '%.%'
481 AND DEVICE_IP = '10.1.212.34'
482 ) LOOP
483 BEGIN
484 SELECT ID
485 INTO v_ID
486 FROM RECONCILE_CIRCUITPORT
487 WHERE PORT = X.MAIN_INTERFACE
488 AND NODENMSID = UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||X.DEVICE_IP||'}');
489
490 EXCEPTION
491 WHEN NO_DATA_FOUND THEN
492 BEGIN
493 SELECT PORT_BW
494 INTO v_CIR_SPPED
495 FROM EJ_HU_MPLS_IF_GBE_OUT
496 WHERE DEVICE_IP = X.DEVICE_IP
497 AND UPPER(INTERFACE_NAME) = X.MAIN_INTERFACE;
498 EXCEPTION
499 WHEN OTHERS THEN
500 v_CIR_SPPED := NULL;
501 END;
502 IF v_CIR_SPPED IS NULL THEN
503 v_CIR_SPPED := EJ_HUA_MPLS.get_circuit_speed(X.DEVICE_IP,X.INTERFACE_NAME);
504 ELSE
505 v_CIR_SPPED := v_CIR_SPPED ||'BE';
506 END IF;
507
508 v_NMSID := EJ_HUA_MPLS.get_circuit_id(v_CIR_SPPED,X.DEVICE_IP,X.MAIN_INTERFACE,NULL,NULL) ;
509 insert into RECONCILE_CIRCUIT (NMSID, CIRCUITTYPE, SPEED, NAME, CUSTOMER, PRODUCTCODE, VENDOR, PROTECTION_TYPE, SERVICE_PARTS, SITEA, SITEB)
510 values(v_NMSID, v_CIRCUITTYPE, v_CIR_SPPED, v_NMSID, v_CUSTOMER, v_PRODUCTCODE, v_VENDOR, v_PROTECTION_TYPE, v_SERVICE_PARTS, 'UNKN', 'UNKN');
511 insert into RECONCILE_CIRCUITPORT (NODENMSID, CIRCUITNMSID, PORT, SEQNR, RECONCILE_CARD_NMSID , SHELFNMSID)
512 values (UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||X.DEVICE_IP||'}'), v_NMSID, X.MAIN_INTERFACE, 1, null,null);
513
514 END;
515
516-- GET PARENT CIRCUIT
517 SELECT ID
518 INTO v_ID
519 FROM RECONCILE_CIRCUITPORT
520 WHERE PORT = X.MAIN_INTERFACE
521 AND NODENMSID = UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||X.DEVICE_IP||'}');
522
523 UPDATE RECONCILE_CIRCUITPORT SET SEQNR = SEQNR WHERE ID = v_ID;
524
525-- v_CIR_SPPED := EJ_HUA_MPLS.get_circuit_speed(X.DEVICE_IP,X.INTERFACE_NAME);
526 v_CIR_SPPED := 'V-LAN';
527 v_NMSID := EJ_HUA_MPLS.get_circuit_id(v_CIR_SPPED,X.DEVICE_IP,X.MAIN_INTERFACE,NULL,NULL) || '-SUB-' || SUBSTR(REGEXP_SUBSTR(X.INTERFACE_NAME,'\.([0-9]*)'),2) ;
528 SELECT COUNT(1) INTO V_COUNT FROM RECONCILE_CIRCUIT WHERE NMSID = v_NMSID;
529 IF V_COUNT = 0 THEN
530 insert into RECONCILE_CIRCUIT (NMSID, CIRCUITTYPE, SPEED, NAME, CUSTOMER, PRODUCTCODE, VENDOR, PROTECTION_TYPE, SERVICE_PARTS, SITEA, SITEB)
531 values(v_NMSID, v_CIRCUITTYPE, v_CIR_SPPED, v_NMSID, v_CUSTOMER, v_PRODUCTCODE, v_VENDOR, v_PROTECTION_TYPE, v_SERVICE_PARTS, 'UNKN', 'UNKN');
532 insert into RECONCILE_CIRCUITPORT (NODENMSID, CIRCUITNMSID, PORT, SEQNR, RECONCILE_CARD_NMSID , SHELFNMSID,PARENT_RECONCILE_PORT_ID)
533 values (UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||X.DEVICE_IP||'}'), v_NMSID, X.INTERFACE_NAME, 1, null,null,v_ID);
534
535 ELSE
536 UPDATE RECONCILE_CIRCUITPORT SET SEQNR = 1 WHERE CIRCUITNMSID = v_NMSID;
537 END IF;
538
539
540 END LOOP;
541
542END ADD_VLAN_CIRCUITS;
543
544-------------------------------------------------------------------------------------------------
545-------------------------------------------------------------------------------------------------
546 function ADD_CARD_INTERFACES (P_DEVICE_IP VARCHAR2, P_LPU NUMBER , P_PIC NUMBER, P_SHLEF_NMSID VARCHAR2,
547 P_PRNT_CARD_ID RECONCILE_CARD.ID%TYPE , P_NMSID RECONCILE_NODE.NMSID%TYPE
548
549) return NUMBER is
550 V_LONG_NAME NUMBER;
551 V_CARD_NMSID RECONCILE_CARD.NMSID%TYPE;
552 V_COUNT NUMBER;
553 V_SLOT_NUMBER NUMBER;
554 v_BOARDTYPE VARCHAR2(200);
555 V_CODE VARCHAR2(200);
556 begin
557 FOR REC IN (SELECT * FROM EJ_HU_ELABEL_OPT_MOD_OUT
558 WHERE DEVICE_IP = P_DEVICE_IP AND PORT LIKE '%' ||P_LPU || '/' || P_PIC || '/%'
559 AND BOARDTYPE IS NOT NULL
560 ORDER BY ID ) LOOP
561 V_CARD_NMSID := UPPER('{EMS;HUAWEI}{MANAGEDELEMENT;'||P_DEVICE_IP||';'||REC.PORT||'}');
562 V_SLOT_NUMBER := TO_NUMBER(SUBSTR(REGEXP_SUBSTR(REC.PORT,'/([0-9]*$)'),2));
563 SELECT COUNT(1) INTO V_COUNT FROM RECONCILE_CARD WHERE NMSID = V_CARD_NMSID;
564 /****************************START : TO FIX FMODULE ISSUE *******************************************/
565 IF REC.BOARDTYPE IN ('MXPD-033S','SCP6F01-H1-BNE','FTLF1323P1BTR-HW','04050097','552650006','FTLF1319P1BTL','FTLF1318P2BTL-HW',
566 'FTLF8519P3BTL-HW','SCP6G44-H2-BWE','2GSPWWA-93G-EN','04050098','2GSPWWA-BSG-EN','2GSPWWX-95G-EN','VAHS-28-0033','04050100','552650005',
567 '2GSPWWA-BKG-EN','VAHS-28-0029','74797-5151','2GSPWWA-BMG-EN','74797-4202','2GSPWWC-93G-EN','2006980-4','VAHS-28-0030','VAHS-24-0035',
568 '04050122','2GSPWWA-BLG-EN','04050036','VAHS-24-0010','04050123','HFBR-5710L','FTRJ8519P1BNL-HW','D09181-1A','D09181-2A','FTLF8519P3BTLHW1',
569 'VAHS-30-0153','AFBR-57J7APZ','FTLF8524P3BNL-HW','FTLF8526P3BNL-HW','JSHR62S1DA1HU1','210-25935','VAHS-24-0297','LTD8542-BE+','RTXM139-B-D',
570 'LRXPLVESG4HWN','FTLF8524P3BNL-H','VAHS-24-0039','FTLF8526P3BNL-H','RTXM192-404','VAHS-30-0285','74742-0020','SPP10ELRIDFPHW',
571 'RTXM191-404','SCP6G44-H5-BWE','SPP8FLRIDFBHW','FTLF8526P3BNL','LTF1303-BH+1','ABCU-5710RZ','FTLX1471D3BTL-HW','LTD1302-BC+1','MXPD-243SI',
572 'AFBR-57R5APZ','FTRJ8519P1BNL-C5','MXPD-483II','SPMRSR1IDFBHW','FTLF8524P3BNL','JSH-62S1DA1-001','D09181-5A','LTD1302-BH+1') THEN
573 V_BOARDTYPE := 'FMODULE';
574 V_CODE := REC.BOARDTYPE;
575-- ELSE
576-- V_BOARDTYPE := REC.BOARDTYPE;
577-- V_CODE := NULL;
578-- dbms_output.put_line('V_BOARDTYPE: '||V_BOARDTYPE|| 'V_CODE: '||V_CODE);
579-- END IF;
580 /****************************START : TO FIX FMOUDLE ISSUE *******************************************/
581 ELSIF REC.BOARDTYPE IN ('HFBR-57E0PZ','RTXM139-400','RTXM191-400','MXPD-243S','FTLF8519P2BNL-HW','PT7320-31-1W','PT7320-51-1W-KHW','FTLF8524P2BNL','PLRXPLVESG462N','PLRXPL-VI-S24-HW') THEN
582 V_BOARDTYPE := 'FMOUDLE';
583 V_CODE := REC.BOARDTYPE;
584 --dbms_output.put_line('V_BOARDTYPE: '||V_BOARDTYPE|| 'V_CODE: '||V_CODE);
585 ELSE
586 V_BOARDTYPE := REC.BOARDTYPE;
587 V_CODE := NULL;
588 -- dbms_output.put_line('V_BOARDTYPE: '||V_BOARDTYPE|| 'V_CODE: '||V_CODE);
589 END IF;
590
591 /****************************END OF : TO FIX FMODULE ISSUE *****************************************/
592 IF V_COUNT > 0 THEN -- UPDATE
593 UPDATE RECONCILE_CARD SET
594 RECONCILE_NODE_NMSID = P_NMSID,
595 PARENT_RECONCILE_CARD_ID = P_PRNT_CARD_ID,
596 SLOTNR = V_SLOT_NUMBER,
597 "NAME" = V_BOARDTYPE,
598 CODE = V_CODE , -- THE XSF PID
599 SERIALNR = REC.BARCODE,
600 COMMENTS = REC.VENDORNAME,
601 DESCRIPTION = REC.DESCRIPTION,
602 RECONCILE_SHELF_NMSID = P_SHLEF_NMSID
603 WHERE NMSID = V_CARD_NMSID;
604 UPDATE EJ_HU_ELABEL_OPT_MOD_OUT SET RECON_STATUS = 'SUCCESS: CARD INFO UPDATED' WHERE ID = REC.ID;
605 ELSE -- INSERT
606 INSERT INTO RECONCILE_CARD ( RECONCILE_NODE_NMSID, NMSID, PARENT_RECONCILE_CARD_ID, SLOTNR, "NAME", CODE, SERIALNR, DESCRIPTION, COMMENTS ,RECONCILE_SHELF_NMSID)
607 VALUES(P_NMSID, V_CARD_NMSID, P_PRNT_CARD_ID, V_SLOT_NUMBER, V_BOARDTYPE, V_CODE, REC.BARCODE, REC.DESCRIPTION, REC.VENDORNAME ,P_SHLEF_NMSID);
608 UPDATE EJ_HU_ELABEL_OPT_MOD_OUT SET RECON_STATUS = 'SUCCESS: CARD INFO INSERTED' WHERE ID = REC.ID;
609 END IF;
610 END LOOP;
611 return 1;
612 end;
613
614---------------------------------- functions for the Circuits Views ----------------------------------------------
615
616
617 function get_circuit_speed (P_IP varchar2, P_PORT_SHORT_NAME varchar2) return varchar2 is
618 v_speed varchar2(50);
619 v_parent_slot VARCHAR2(10);
620 begin
621 v_speed := '';
622 v_parent_slot := '';
623
624 if SUBSTR(P_PORT_SHORT_NAME, 1, 2) = 'GE' THEN v_speed := '10GBE';
625 elsif SUBSTR(P_PORT_SHORT_NAME, 1, 4) = '40GE' THEN v_speed := '40GBE';
626 elsif SUBSTR(P_PORT_SHORT_NAME, 1, 5) = '100GE' THEN v_speed := '100GBE';
627 ELSIF SUBSTR(P_PORT_SHORT_NAME, 1, 2) = 'Gi' THEN v_speed := '10GBE';
628 else v_speed := '0';
629 end if;
630 return v_speed;
631 end;
632
633 function get_circuit_id (p_speed varchar2, p_ipa varchar2, p_ifa varchar2, p_ipz varchar2, p_ifz varchar2) return varchar2 is
634 v_deva_name varchar2(100);
635 v_devz_name varchar2(100);
636 v_result varchar2(300);
637 begin
638 v_deva_name := null;
639 v_devz_name := null;
640
641 v_result := p_speed;
642
643 if p_ipa is not null then
644 begin
645 select d_info.NAME into v_deva_name from EJ_HU_MPLS_VERSION_OUT d_info where d_info.DEVICE_IP = p_ipa;
646 exception when no_data_found then
647 v_deva_name := null;
648 end;
649 if v_deva_name is not null then
650 v_result := v_result||'-'||v_deva_name;
651 end if;
652-- dbms_output.put_line('v_deva_name: '||v_deva_name);
653 end if;
654
655 if p_ifa is not null then
656 v_result := v_result||'-'||p_ifa;
657 end if;
658
659 if p_ipz is not null then
660 begin
661 select d_info.NAME into v_devz_name from EJ_HU_MPLS_VERSION_OUT d_info where d_info.DEVICE_IP = p_ipz;
662 exception when no_data_found then
663 v_devz_name := null;
664 end;
665 if v_devz_name is not null then
666 v_result := v_result||'-'||v_devz_name;
667 if p_ifz is not null then
668 v_result := v_result||'-'||p_ifz;
669 end if;
670 end if;
671-- dbms_output.put_line('nnn');
672 end if;
673
674 if v_devz_name is not null /*and p_ifz is not null */ then
675 if p_ifz is null then
676 v_result := p_speed||'-'||LEAST(v_deva_name||'-'||p_ifa , v_devz_name)||'-'||GREATEST(v_deva_name||'-'||p_ifa , v_devz_name);
677 else
678 v_result := p_speed||'-'||LEAST(v_deva_name||'-'||p_ifa , v_devz_name||'-'||p_ifz)||'-'||GREATEST(v_deva_name||'-'||p_ifa , v_devz_name||'-'||p_ifz);
679 end if;
680 else
681 v_result := p_speed||'-'||v_deva_name||'-'||p_ifa;
682 end if;
683
684 return v_result;
685
686 end;
687
688
689END EJ_HUA_MPLS;