home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 1 / HACKER1.ISO / phrk3 / phrk26_6.txt < prev    next >
Text File  |  1992-09-26  |  21KB  |  385 lines

  1. _______________________________________________________________________________
  2.                                 ==Phrack Inc.==
  3.  
  4.                      Volume Three, Issue 26, File 6 of 11
  5.  
  6.          +-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
  7.  
  8.                          Basic Concepts of Translation
  9.  
  10.                                Brought to you by
  11.  
  12.                                  The Dead Lord
  13.                                       and
  14.                          The Chief Executive Officers
  15.  
  16.                                February 17, 1989
  17.  
  18.          +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-+
  19.  
  20. This tutorial is meant for the hardcore hackers who have entered the world of
  21. ESS switches.  The information here is useful and valuable, although not
  22. invaluable.  You can easily reap the benefits of access to a switch even if you
  23. only know RC:LINE, but to really learn the system in and out, the concepts
  24. about translation are ones that need to be mastered.
  25.  
  26. In electromechanical switches, switching was directly controlled by whatever
  27. the customer dialed.  If a 5 were dialed, the selector moved across 5
  28. positions, and so on. There were no digit storing dvices like registers and
  29. senders.  As the network grew larger, this became inefficient and switching
  30. systems using digit storage and decoding devices were put into use.  In this
  31. type of setup, the customer dials a number, which is stored in a register, or
  32. sender.  The sender then uses a decoder and gives the contents of the register
  33. as input.  The decoder translates the input into a format that can be used to
  34. complete the call, and sends this translation back to the digit storage device.
  35. This is a simplified example of translation, since the only input was dialed
  36. digits and the only output was routable information, but it shows what
  37. translation is:  The changing of information from one form to another.
  38.  
  39. When 1 ESS was first tested in Morris, Illinois in 1960, it introduced a
  40. switching metod called Stored Program Control.  Instead of switching and logic
  41. functions being handled by hardware, it was done through computer programs.
  42. This greatly expanded the translation function.  Because calls are handled by
  43. many programs, information must be provided for each program.  For example,
  44. when a customer picks up a phone, the switch needs to know if outgoing service
  45. is being denied, if the line is being observed, line class, special equipment
  46. features, etc.  The line equipment number is given to the translation program
  47. as input. The translator translates the LEN and produces the answers to these
  48. and other pertinent questions in a coded form that can be used by the central
  49. processor of the switch.
  50.  
  51. If the call is an interoffice call, the first three dialed digits are given to
  52. a translator as input and they translate into a route index and, possibly,
  53. other information.  The route index, in turn, is given as input to another
  54. translator, which translates into:  Which trunk to use (trunk identity),
  55. transmitter identity, the alternate route, etc.  So actually, in early systems,
  56. translation was a single shot thing, and in Stored Program Control Systems
  57. (SPCS), the translation function is used many many times.
  58.  
  59. In the 1 ESS, translation data is stored on magnetic memory cards in the
  60. program store.  However, since translation data is constantly being changed,
  61. there is a provision made to store the changes in an area of the call store
  62. memory.  The area of call store is called the recent change (RC) area.  The
  63. changes are eventually transcribed from the call store into the program store
  64. by a memory card writer.
  65.  
  66. In the 1A ESS, translation data is stored in the unduplicated call store, with
  67. backup in the form of disk memory called file store.  Additionally, magnetic
  68. tapes are made of the translation area of call store.  When a change in
  69. translation is made, the change is entered in a duplicated copy of call store.
  70. After checks are made as to the validity of the change (format and everything),
  71. the change is then placed in the unduplicated copy of call store. After that,
  72. the change is also written to a set of disk files in file store.  Before the
  73. new data is written, the old data is written to a part of the disk file called
  74. "rollback."
  75.  
  76.                   |------------|-------------|-------------|
  77.                   |    DATA    |  1 ESS      |   1A ESS    |
  78.                  |------------|-------------|-------------|
  79.                   | Transient  | Duplicated  | Duplicated  |
  80.                   |Information | Call Store  | Call Store  |
  81.                   |------------|-------------|-------------|
  82.                   |  Generic   | Duplicated  |Program Store|
  83.                   |  Program   |Program Store|             |
  84.                   |------------|------------|-------------|
  85.                   | Parameter  | Duplicated  |Unduplicated |
  86.                   |   Table    |Program Store| Call Store  |
  87.                   |------------|-------------|-------------|
  88.                   |Translation | Duplicated  |Unduplicated |
  89.                   |Information |Call Store + | Call Store  |
  90.                   |            |Program Store|             |
  91.                   |------------|-------------|-------------|
  92.  
  93.  
  94. Transient Information:    Telephone calls or data messages in progress; present
  95.                           state of all lines, junctors, and trunks in the
  96.                           office.
  97.  
  98. Generic Program:          The operating intelligence of the system.  It
  99.                           controls actions like line and trunk scanning,
  100.                           setting up and taking down connections, etc.
  101.  
  102. Parameter Table:          Informs the generic program of the size and makeup of
  103.                           the office.  This information includes equipment
  104.                           items (frames and units), call store allocation (call
  105.                           registers, hoppers, queues, etc.) and office options
  106.                           (days AMA tapes will be switched, etc.).
  107.  
  108. Translation Information:  Day to day changeable info which is accessed by
  109.                           translator programs.  Also includes form tables,
  110.                           lists called "translators" which are linked in an
  111.                           hierarchical pattern.
  112.  
  113. This is a quote from Engineering and Operations in the Bell System, pages
  114. 415-416:
  115.  
  116.      "The 1 ESS includes a fully duplicated No. 1 Central Processor Unit
  117.      (Central Control includes the generic program), program store bus,
  118.      call store bus, program stores, and call stores.  The 1 ESS uses
  119.      permanent magnet twister program store modules as basic memory
  120.      elements.  These provide a memory that is fundamentally read only,
  121.      and have a cycle time of 5.5 microseconds.  The call store provides
  122.      "scratch pad," or temporary duplicated memory.
  123.  
  124.      As with the 1 ESS, the 1A CPU has a CPU, prog store bus, and call
  125.      store bus that are fully duplicated.  However, the 1A processor uses
  126.      readable and writable memory for both prog and call stores, and has
  127.      a cycle time of 700 nanoseconds.  However, the program stores aren't
  128.      fully duplicated, but 2 spare stores are provided for reliability.
  129.      A portion of the call store is duplicated, but only one copy of
  130.      certain fault recognition programs, parameter information, and
  131.      translation data is provided.  An extra copy of the unduplicated
  132.      prog and call store is provided for in file store."
  133.  
  134. The program store translation area in the 1 ESS and the unduplicated call store
  135. translation area in the 1A ESS contain all the info that can change from day to
  136. day for that office.  Here is a list of things that are stored in the
  137. translation area:
  138. + Line Equipment Number (LEN), Directory Number (DN), trunk assignments (all
  139.   explained later).
  140. + Office codes.
  141. + Rate and route information.
  142. + Traffic measurement information.
  143. + Associated miscellaneous info for call processing and charging.
  144.  
  145. Call store can be thought of as RAM; it is filled as long as the ESS is
  146. powered.
  147.  
  148. Program store is like ROM; it is physically written onto magnetic cards.  File
  149. store is simply information stored on magnetic tapes (or disk drives).  All
  150. data that's changeable (rate and route, customers' features, trunk selection,
  151. alternate paths, etc.) is called translation data and is stored in the
  152. translation area.
  153.  
  154. Changes in translation are called recent changes and are stored in an area
  155. called the recent change area.
  156.  
  157. Once again, I stress that this article is sort of a "masters" file for hackers
  158. who are interested in ESS.  If the concepts are too difficult, don't panic.
  159. Knowledge comes with time.  Don't feel bad if you don't catch on right away.
  160.  
  161. Translation data is stored in the form of tables or lists.  Each table is
  162. linked in a hierarchical pattern.  Tables high in the hierarchy contain
  163. pointers (addresses) to the lower tables.  Tables low in the hierarchy contin
  164. the actual data.
  165.  
  166. Most translators are broken down into subtranslators, which are linked by a
  167. Head Table, or "HT".  The HT points to the different ST's stored in memory, in
  168. the same way that a table of contents in a book points to the pages of each
  169. chapter. This way, when a new feature is added, it's just a matter of adding a
  170. new entry in the HT, and having the entry point to a newly stored ST.
  171.  
  172. Translation input is divided into 2 parts: the selector and the index.  The
  173. selector determines which ST to access, and the index determines which item
  174. (word number) in that particular ST to access.  In some cases, the translation
  175. information may not fit into the space allotted to an ST, so pointers to
  176. auxiliary blocks and/or expansion tables may have to be given.  You can think
  177. of a BASIC program, where a GOSUB points to a subroutine at location 4000.
  178. Now, if the subroutine is 100 bytes long, but you only have room for 75,
  179. another GOSUB must be issued to point to the rest of the subroutine.  So a full
  180. translator is quite a large unit -- it can have a head table, subtranslators,
  181. auxiliary blocks, abbreviated codes, lists, subauxiliary blocks and expansion
  182. tables.  The example below shows a custom calling feature that exists on 5 ESS:
  183. Dog Control Frequency, "DCF".  In the e below diagram, DCF represents the Head
  184. Table, and has a list of pointers that identify the location of subtranslators
  185. "A" through "D".  The data field "2" in subtranslator "D" is too small to store
  186. the entire subroutine, so an expansion table "2A" was produced to house the
  187. entire program.
  188.  
  189.     *  D.C.F. *  head table
  190.     |
  191.     |
  192. |------|-----------|--------|
  193. |      |           |        |
  194. A      B           C        D  subtranslators
  195.     |
  196.     ---1  data: tables
  197.     |or
  198.     ---2 ---->| lists
  199.     |         |
  200.     ---3      |
  201.     |         |
  202.    etc       \ /  expansion
  203.  2-Atable
  204.  
  205. ESS programs access translators by locating their octal address in the Master
  206. Head Table, which is also called the Base Translator.
  207.  
  208. 1 ESS MHT
  209. ~~~~~~~~
  210. The 1 ESS has 2 copies of the MHT:  One in program store, and one in call
  211. store.  The copy in call store is the one that's used normally, since call
  212. store memory has a faster ccle time.  The one in program store is there for
  213. backup.  The MHT is 338 bytes long (23 bit bytes), and as we mentioned, is used
  214. as a sort of directory for locating translators.  The MHT can point to starting
  215. addresses of Head Tables (which point to translators), or to tables and lists.
  216. Head Tables point to subtranslators.  Subtranslators can point to auxiliary and
  217. expansion blocks, lists, or tables.
  218.  
  219. There is another Master Head Table called the Auxiliary Master Head Table,
  220. which points to other translators.  There are 2 copies of the AMHT, one in
  221. program and one in call store.  The AMHT is found by accessing the MHT, and for
  222. those interested, the address of the AMHT is located in the 28th byte of the
  223. MHT.  The MHT is fixed; meaning that the first byte will ALWAYS be the address
  224. of the DN translator.  The last byte will ALWAYS be the address to the JNNL to
  225. JNNT/JCN Head Table (explained later).  ESS needs a table to read this table.
  226. Otherwise, how would it know what byte leads where?  There is a "T-reading
  227. octal program" located at (octal address) 1105615 in the parameter area in the
  228. program store.This address is stored in the generic program and is used to read
  229. the Master Head Table.
  230.  
  231. 1A ESS
  232. ~~~~~
  233. A 1A ESS switch call store byte contains 26 bits, named 0 through 25, which is
  234. a lot more than I can say about an Apple... Bits 24 and 25 are used for parity,
  235. and are not used for data.  This leads to what is known as a K-code.  No, a
  236. K-code is not used by lowly software K-rad pirates, but it is used by us ESS
  237. hackers.  Each call store K-code contains 65,536 bytes, and can be thought of
  238. as a "page" of memory.
  239.  
  240. Anyway, translation data is stored in the unduplicated call store.  Remember,
  241. we're still talking about 1A ESS.  In generic 1AE6 and earlier, unduplicated
  242. call store starts at K-code 17, and as more translation data is fed into the
  243. system, it pushes down into K-code 16, 15, 14, etc.  In generic 7 and above,
  244. call store has been increased by a great deal, because of a huge memory
  245. expansion unit.  On the early generics, the entire call store and program store
  246. had to fit in 38 K-codes.  In the later generics, there are 38 K-codes assigned
  247. to call store (that's split between duplicated and unduplicated), and another
  248. 38 K-codes for program store.
  249.  
  250. Not all K-codes may be used, so it's not really a full 38 K-codes, but hey, you
  251. can't have all your memory and use it too.  Anyhow, because generics 1A E7 and
  252. higher have such huge call store memories, it's convenient to divide call store
  253. into 3 parts:  The "duplicated call store" (DCS), which is located at the very
  254. top of the memory map, the "low unduplicated call store," (LUCS), which is
  255. located in the middle of call store, and the "high unduplicated call store,"
  256. (HUCS).  The LUCS area starts at K-code 17 and goes down as it fills up (being
  257. very watchful about not going into the DCS area.  The HUCS area starts at
  258. K-code 37 and goes down as it fills up to K-code 20, being mindful not to step
  259. on LUCS's toes.  Translators are classified as being either HUCS or LUCS
  260. translators, (but not both).
  261.  
  262. LUCS translators aren't fixed; they can exist anywhere in the area as long as
  263. they're identified by the MHT.  HUCS translators can either be fixed or not
  264. fixed.  Note that in generics 1AE6 and earlier, there is no such distinction,
  265. because there's not enough memory to make such a distinction feasible.  As for
  266. the location of the MHT, in generic 1AE6 and earlier, it's located in K-code 17
  267. at octal address 3724000, and is 1376 bytes long.  The later MHT's were moved
  268. to K-code 37 at octal address 7720000, and is 3424 bytes long.
  269.  
  270. Translator Types
  271. ~~~~~~~~~~~~~~~
  272. As I said, translators take data as input and change it into another form for
  273. output.  All translators exist in the form of hierarchical lists and tables.
  274. They reside in call store on 1A's and program store on 1's.  The higher data in
  275. a translator points to the location of the lower data.  The lower data contains
  276. the actual information.  The different translators are located by the Master
  277. Head Table, which contains pointers to all the translators in the system.  The
  278. kind of data that needs to be translated is changeable data.
  279.  
  280. For example:
  281.  
  282. o  line equipment number
  283. o  directory number
  284. o  3/6 digit codes
  285. o  trunk network number to trunk group number
  286. o  trunk network number to peripheral equipment number
  287.  
  288. Now, there are two types of translators:  Multilevel and expansion.  The
  289. multilevel translators contain a maximum of six levels of information in the
  290. form of linked hierarchical tables:
  291.  
  292. 1- Head Table
  293. 2- Subtranslator
  294. 3- Primary translator word
  295. 4- Auxiliary block or expansion table
  296. 5- List
  297. 6- Subauxiliary block
  298.  
  299. (1) Head Table:  The HT is the "directory" for the translator.  It contains
  300.     addresses or pointers to each subtranslator.
  301.  
  302. (2) Subtranslator:  The ST's are the main subdivisions, so as an office grows
  303.     larger, or as more features are added, the number of ST's grows larger.
  304.     For example, there is a translator for every 1,000 directory numbers, so if
  305.     an office grows from 3,000 to 8,000 lines, an extra 5 subtranslators must
  306.     be added.  Input for translation must contain 2 things:  A selector and an
  307.     index.  The selector contains the information as to which subtranslator to
  308.     use (in the case of DCF, the selector would either be an A, B, C, or D).
  309.     The index shows which item or word in that particular subtranslator to
  310.     access.  In the DCF example, if the selector were "D", the index could be
  311.     1, 2, 3, etc.
  312.  
  313. (3) Primary Translation Word (PTW):  Each index points to a PTW, which is a
  314.     byte of information.  Often, all you need is 1 byte of information
  315.     (remember that each byte is 23 bits!).  If the data isn't stored in the
  316.     PTW, an address will be there to point to an auxiliary block or expansion
  317.     table, where the data will be found.  The ESS can recognize whether the
  318.     byte contains data or an address by:
  319.  
  320.     1 ESS)   The 3 most significant bits will be 0.
  321.     1A ESS)  The 4 most significant bits will be 0.
  322.  
  323.     So, if all the 3 (or 4 for 1A) most significant bits contain 0's, the word
  324.     will be interpreted as an address. (Anyone want to throw the ESS switch
  325.     into an endless loop????)
  326. (4) Auxiliary Block:  The first byte in the AB contains the length of the
  327.     block.  This byte is called the word number (WRDN), and is used by the ESS
  328.     so it knows where the auxiliary block ends. Remember that when the ESS
  329.     reads data, all it sees is:
  330.  
  331.     110001011000101010100100101110010010101000101010100100101111
  332.  
  333.     So, in order to stop at the end of the block, the WRDN number must be
  334.     present.
  335.  
  336. (5) List:  The list is used when additional information other than the standard
  337.     found in the auxiliary block is needed.  The list, like the ST, has an
  338.     associated index.  The address of the list is found in the AB and the index
  339.     shows which item of data in the list should be looked at.  A good example
  340.     of what kind of information is found in the list would be a speed calling
  341.     list.
  342.  
  343. (6) Subauxiliary Block:  The list is only large enough to hold a 7 digit phone
  344.     number, and if more information has to be stored (like a 10 digit phone
  345.     number or a trunk identity), an address is stored in the list that points
  346.     to an SB, which acts very much like an AB.
  347.  
  348. Expansion Translator
  349. ~~~~~~~~~~~~~~~~~~~
  350. The expansion translator has one table (called an expansion table).  This type
  351. of translator gets only n index as input, since this type of translator is
  352. only a bunch of words.  It could have auxiliary blocks, if the space allocated
  353. to a word is too small.
  354.  
  355. RECENT CHANGE AREA OF CALL STORE (1 ESS)
  356. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  357. The recent change area consists of:
  358.  
  359. + primary recent change area
  360. + auxiliary recent change area
  361. + customer originated recent change (CORC)
  362.  
  363. The starting and ending addresses for these rc areas are stored in the MHT.
  364. The primary recent change area is used to store changes affecting primary
  365. translation words.  Each change is stored in a primary RC register, which
  366. consists of two 23 bit bytes.  These two bytes contain status bits, primary
  367. translation address in the program store, and the primary translation word
  368. (PTW) address in call store.  The first byte in the register is the "address
  369. word" (AW) and the second is the new primary translation word.  When looking
  370. through the AW, bits 22 and 21 can tell you what kind of recent change is being
  371. implemented:
  372.  
  373. 11: temporary (not to be put into PS)
  374. 10: permanent (to be put into PS)
  375. 01: delayed (not active yet)
  376. 00: deleted (this space is available)
  377.  
  378. The PTW (abbreviatins make things SO much easier) contains the translation
  379. data or the address of the auxiliary RC (TAG).  You can tell whether the data
  380. is an RC or an address by looking at bits 22 to 18.  If they are 0, then this
  381. byte contains an address, which is stored in bits 17 to 0.
  382.  
  383.  
  384. Downloaded From P-80 International Information Systems 304-744-2253 12yrs+
  385.