15. Signals tracing on APZ

Ericsson’s APZ is used for development of cellular telephony software. The programming language used on the APZ is PLEX-C.

PLEX-C is a protocol-like programming language. Developers or testers couldn’t debug software by using break-point as other programming languages to view data and how system behaved.

Testers used a tool called Test System. When this test system activated, all signals [similar to procedure calls with data going in or out of a program (block)] showed with data in order of execution. Testers could perform simple programs to filter out of unwanted signals or to capture interested data with test system. I didn’t try all of that functionality.

The issues with test system were

-         On a live switch, too many signals flying due to many calls by many mobile users happened at once. In the lab, we have used only one test phone, thus data was clean and easy to follow and debug.

-         The language used in test system for filtering seems to be too primitive to create a good program, and it takes lots of time.

I thought about having a simple command with a few parameters to initiate trace of signals flying for a specific mobile phone. It’d be useful for a trouble shooter at a live switch. [There was a problem with identifying the specific data in a signal that contains the MSNB or SNB pointer/individual.]

Otherwise trouble shooter could run a command like [a few samples below]

1.      TRACE msnb or snb [IN BlockName_1] [OUT OF BlockName_2]

This would show all signals in Blockname_1 or out of Blockname_2

2.      If we wanted to specify a data value in a signal data, it would be more complicated. We must know the specific position of a signal data of a signal, and in/out of a block name.

-         TRACE msnb or snb [D2 OF HNBCLEAR OUT OF Blockname_3 EQUAL 6]

In this case, we wanted system showed the signal HNBCLEAR if its signal data, D2, equals 6 going out of Blockname_3. Of course, we would need to combine with other parameters showing of other signals in order to analyze issues.

-         TRACE msnb or snb [D2 OF HNBCLEAR IN Blockname_4 GREATER THAN 6]

This is another example for capturing incoming signal HNBCLEAR to Blockname_4 if D2 of signal HNBCLEAR is greater than 6.

3.      TRACE msnb or snb [IF D2 OF HNBCLEAR IN Blockname_5 EQUAL 6 SHOW IN BlockName_1, Blockname_2, Blockname_n AND OUT OF Blockname_5, Blockname_m].

In this case, we wanted all signals coming in BlockName_1, Blockname_2, Blockname_n AND signals going out of Blockname_5, Blockname_m IF D2 of HNBCLEAR signal going in Blockname_5 equals 6. 

4.      It would be nice if the new test system also supports showing of variable values if it triggers by an msnb or snb. 

5.      If a trouble shooter prepared a file of many trace statements, then it would be useful to list the trace command that triggers tracing before listing traces, i.e. easier to read.


It is back to the issue how system identifies the snb or msnb embedded in those signal data. Perhaps using a special trigger?

There was another issue with many signals weren’t associated with a msnb or snb. Whenever a signal associated to an msnb or snb showed, we also wanted all signals related to this mobile phone, i.e. signals with or without msnb or snb embedded.
--------------

P.S. APZ is a good plat form with PLEX-C programming language, which is easy to understand and debug. APY is better with introduction of database. Of course, a new PLEX language would be introduced with additional statements for database handling. Another good thing of APZ was to allow us loading assembly fixes on a live switch to fix a bug in some cases, i.e. we don’t need to load those fixes on a standby side and then switch side. If APZ or APY allows tracing as above on a live switch, it would be a very good product. I would say user friendly to debuggers.

No comments:

Post a Comment