Table of Contents Index NMS Glossary Previous Page Next Page Version


Chapter 3

Configuring the Board


3.1 Introduction
3.2 Adding Board Configurations to the NMS OAM Database
3.3 Configuring and Starting the System with oamsys
3.3.1 Creating a System Configuration File for oamsys
3.3.2 Running oamsys
3.4 Changing Configuration Parameter Settings
3.4.1 Board Keyword Files
3.5 Configuring Board Clocking
3.5.1 Clocking References
3.5.2 Clocking Capabilities
3.5.3 Clock Fallback
3.5.4 Configuring CT Bus Clocks with CG Keywords
3.5.5 Example: Multiple Board System
3.5.6 NETREF Clocking
3.6 TDM Switch Streams and DSP Physical Layouts
3.7 Sample Board Keyword Files
3.7.1 No Call Control Configuration
3.7.2 Line Interface Configuration
3.7.3 Setting Up Resource Management for Multiple Pools
3.7.4 MFC Protocol for 20 DSP Cores with 16 Trunks
3.7.5 MFC Protocol and Voice for 20 DSP Cores with 8 Trunks
3.7.6 Assigning and Using Pooled Resources
3.7.7 ISDN Protocol and Voice for 36 DSP Cores with 16 Trunks
3.8 Using DSP Resource Management Keywords
3.8.1 Resource Management Keywords
3.8.2 Resource Definition String Syntax
3.8.3 DSP Files
3.8.4 Resource Definitions
3.8.5 Specifying Conditional Relationships Between DSP Functions
3.8.6 Echo Cancellation

3.1 IntroductionTop of Page

This chapter:

3.2 Adding Board Configurations to the NMS OAM DatabaseTop of Page

To configure and start your boards appropriately, you must specify configuration parameters in the NMS OAM board keyword file for each board. In board keyword files, each parameter and value is expressed as a keyword name/value pair (for example, Country = USA).

To update NMS OAM with board keyword file information, use the oamsys utility supplied with the NMS OAM software. oamsys configures and starts boards based on the parameters specified in a system configuration file and board keyword files.

Note: Applications can use OAM service functions to retrieve and modify configuration parameters. For more information, refer to the NMS OAM Service Developer's Reference Manual.

For more information about NMS OAM utilities, refer to your NMS OAM System User's Manual.

3.3 Configuring and Starting the System with oamsysTop of Page

To configure a system using the oamsys utility:

  1. Install the boards and software as described in Chapter 2.

    
    
  2. Create a CG 6100C board keyword file (or edit one of the sample CG 6100C board keyword files) so it specifies the appropriate configuration information for your board.

    
    
  3. Determine the CompactPCI bus and slot locations of the boards, using the pciscan utility.

    
    
  4. Create a system configuration file (or edit the sample oamsys.cfg system configuration files) that points to all the board keyword files for your system. In this file, give each board a unique name and board number.

    
    
  5. Use oamsys to set up managed objects in the NMS OAM database based on the system configuration file, and to start all installed boards (ctdaemon must be running when you use oamsys).

Use the pciscan utility to identify any NMS PCI boards installed in the system, and return each board's bus, slot, interrupt, and board type. For more information about pciscan, refer to the NMS OAM System User's Manual.

3.3.1 Creating a System Configuration File for oamsysTop of Page

The NMS OAM system configuration file provides a reference to all of the boards in your system. oamsys creates records in the NMS OAM database for your boards based on this file.

The system configuration file is typically named oamsys.cfg and is located in the \nms\oam\cfg directory (/opt/nms/oam/cfg for UNIX). By default, oamsys looks for a file with this name when it starts up.

Refer to your NMS OAM System User's Manual for specific information on the syntax and structure of this file. The following chart describes the CG board-specific settings to include in the file for each CG board:
Keyword

Description

[name]

The name of the board to be used to refer to the board in software. The board name must be unique.

Product

The name of the board product. For CG 6100C boards, this is CG_6100C, CG_6100C_8, or CG_6100C_16 for zero trunk, eight trunk, and 16 trunk boards respectively.

Number

The board number you will use in your Natural Access application to refer to the board.

Bus

The PCI bus number. The bus:slot location for each board must be unique.

Obtain with pciscan.

Slot

The PCI slot number. The bus:slot location for each board must be unique.

Obtain with pciscan.

File

The name of the board keyword file containing settings for the board.

Several board keyword files are installed with the CG software, one for each country or region.

Sample System Configuration FileTop of Page

The following system configuration file provides configuration information for all the CG 6100C boards on a particular chassis. Each board has its own section in this file. Each is delimited by a user-defined board name in square brackets. All board names and numbers must be unique.

Modify the bus and slot numbers for each board to match your chassis configuration. You may also need to add more board sections.

[Board_VT_C5420_0]
  Product = CG_6100C_16
  Number  = 0
  Bus     = 1
  Slot    = 7
      #-------------------------------------------------------------
      # Detailed board settings are in the following board keyword files.
      # Uncomment one of the following board  keyword files,
      # or add a new one.  You may need to modify the board keyword file
      # for your particular application.
      #------------------------------------------------------------
File = c61nocc.cfg
#  File = c6wnk.cfg
#  File = c6fgd.cfg
#  File = c6gds.cfg
#  File = c6ops.cfg
#  File = c6ss5.cfg
#  File = cgi6t1.cfg
#  File = cgi6e1.cfg


#------------------------------------------------------
# Uncomment the following section to boot another board
#-------------------------------------------------------
#[BoardName1]
#  Product = CG_6100C
#  Number = 1
#  Bus    = 2
#  Slot   = 14
#  File   = c61nocc.cfg


3.3.2 Running oamsysTop of Page

To run oamsys, enter oamsys from the command line.

If you invoke oamsys without command line options, it searches for a file named oamsys.cfg in the paths specified in the AGLOAD environment variable.

When invoked with a valid filename, oamsys does the following:

ctdaemon must be running for oamsys to operate. For more information about the Natural Access Server (ctdaemon), refer to the Natural Access Developer's Reference Manual.

3.4 Changing Configuration Parameter SettingsTop of Page

When you run oamsys, the parameter settings specified in the board keyword files are stored in the OAM database. All boards are then started in their specified configurations.

Parameters are communicated as keyword name/value pairs, such as:

Clocking.HBus.ClockMode = MASTER_A

To change board keyword parameter settings, you can:

You may wish to make some changes to:

3.4.1 Board Keyword FilesTop of Page

Sample board keyword files are installed during the CG 6100C installation. The following table describes the naming conventions used in these files:
File name component...

Represents...

c61

CG 6100C board

v

Voice

m

MFC

i

ISDN

lc

Line Interface

10

Number of DSP cores (the first set of numbers)

16

Number of trunks (the second set of numbers)

The following table describes the sample board keyword files for the digital protocols:
File

Description

c61nocc.cfg

No call control configuration file

c61elc.cfg

Line interface board configuration file

c61m2016.cfg

MFC protocol for 20 dsp cores with 16 trunks configuration file

c61mv208.cfg

MFC protocol and voice for 20 dsp cores with 8 trunks configuration file

c61iv3616.cfg

ISDN protocol and voice for 36 dsp cores with 16 trunks configuration file

Section 3.7 provides sample board keyword files. These board keyword files have many keywords in common. For example, there are default keywords specified for one set of Resource keywords.

For more information about board keyword files, refer to the NMS OAM System User's Manual.

3.5 Configuring Board ClockingTop of Page

When multiple boards are connected to the CT bus, you can set up a bus clock to synchronize timing between them. In addition, you can configure alternative (or fallback) clock sources to provide the clock signal if the primary source fails.

For detailed information about clocking, refer to the NMS OAM System's User Manual.
Caution:

NMS strongly recommends that you do not mix H.100/H.110 systems with MVIP systems when doing clock fallback.

Refer to Section 3.5.2 for more information about clocking capabilities.

Boards in a CT bus system can be configured in one of the following modes:
Board Mode

Description

Primary clock master

Drives the primary timing reference for boards connected to the CT bus. It can switch between its two specified timing sources in order to maintain the primary timing reference. However, if both of its timing references fail, the primary clock master stops providing a timing source (and the secondary master then provides bus synchronization).

Secondary clock master

Drives the secondary timing reference. When the primary clock fails, the secondary master continues to drive the secondary clocks using a network timing source as its timing reference.

Clock slave

References its timing from the primary clock master and uses the secondary clock master as a fallback source of clock timing.

Standalone

Does not reference the primary or secondary master and, consequently, cannot make switch connections to the CT bus.

CT bus clock fallback establishes a redundant system of timing references for the CT bus. It does not create an autonomous clock timing environment. When clock fallback occurs, your application must intervene to reset system clocking before other clocking changes occur. The secondary master will drive the fallback clock even if the source fails.

Certain board models have more flexible and reliable clocking capabilities than other models. In a mixed board system, choose the boards with the best capabilities as your primary master and secondary master. To determine which boards to use as masters, refer to the NMS OAM System User's Manual.

3.5.1 Clocking ReferencesTop of Page

Primary clock masters can synchronize their own timing signals and fallback signals from the following sources:

Secondary clock masters are hybrid systems. Their primary timing source must be A_CLOCK or B_CLOCK. Their fallback timing source must be one of the following sources:

Clock slaves must use A_CLOCK or B_CLOCK as their primary timing and fallback sources.

For further information about configuring clocks on the H.110 bus, refer to the NMS OAM System User's Manual or the ECTF H.110 Hardware Compatibility Specification: CT Bus R1.0.

3.5.2 Clocking CapabilitiesTop of Page

When a CG 6100C board is configured as the system primary clock master:

When a CG 6100C board is configured as the system secondary clock master:

When a CG 6100C board is configured as a clock slave:

The following tables summarize the CT bus clocking capabilities of the CG 6100C board:

Clocking Capabilities as Primary Master
Capability

Yes/No

Comments

Serve as primary master

Yes

Drive A_CLOCK

Yes

Drive B_CLOCK

Yes

Available primary timing references:

Local trunk

Yes

NETREF1

Yes

NETREF2

Yes

OSC

Yes

Fallback to secondary timing reference

Yes

Available secondary timing references:

Local trunk

Yes

NETREF1

Yes

NETREF2

Yes

OSC

Not recommended.

Slave to secondary master if both references fail

Yes

Top of Page

Note: If a CG 6100C board is required to master NETREF signals at the same time as it is required to master the clocks, restrictions will apply. For more information on these restrictions, refer to Section 3.5.6, NETREF Clocking.

Clocking Capabilities as Secondary Master
Capability

Yes/No

Comments

Serve as secondary master

Yes

Drive A_CLOCK

Yes

If the primary master drives B_CLOCK, the secondary master drives A_CLOCK.

Drive B_CLOCK

Yes

If the primary master drives A_CLOCK, the secondary master drives B_CLOCK.

Available secondary timing references:

Local trunk

Yes

NETREF1

Yes

NETREF2

Yes

OSC

Yes

Top of Page

Note: If a CG 6100C board is required to master NETREF signals at the same time as it is required to master the clocks, restrictions will apply. For more information on these restrictions, refer to Section 3.5.6, NETREF Clocking.

Clocking Capabilities as Slave
Capability

Yes/No

Comments

Serve as slave

Yes

Slave to A_CLOCK

Yes

Slave to B_CLOCK

Yes

Available fallback timing references:

A_CLOCK

Yes

B_CLOCK

Yes

Top of Page

Other Clocking Capabilities
Capability

Yes/No

Comments

Drive NETREF1

Yes

This board can drive either NETREF1 or NETREF2, but not both at once.

Drive NETREF2

Yes

This board can drive either NETREF1 or NETREF2, but not both at once.

Operate in standalone mode

Yes

Top of Page

Note: If a CG 6100C board is required to master NETREF signals at the same time as it is required to master the clocks, restrictions will apply. For more information on these restrictions, refer to Section 3.5.6, NETREF Clocking.

3.5.3 Clock FallbackTop of Page

The CT bus supports a system of clock fallback that allows the system to use alternate timing references when one or more sources fail.

To enable clock fallback, set Clocking.HBus.AutoFallBack = YES. If clock fallback is disabled, the application must perform all clocking changes.

To implement clock fallback:

  1. Configure all slave boards to specify the primary clock master as the first timing reference.

    
    
  2. Configure a primary clock master to drive the CT bus clock (A clock or B clock) based on a network timing reference.

    
    
  3. Specify a fallback network timing reference for the primary clock master to use in the event the primary clock master fails.

    
    
  4. Configure a secondary clock master to use the signal from the primary clock to drive the alternate CT bus clock (if the primary master drives the A clock, configure the secondary master to drive the B clock based on the A clock, or vice versa).

    
    
  5. Specify a fallback network timing reference for the secondary clock master to use in the event the primary clock master fails.

    
    
  6. Configure all slave boards to specify the primary clock master as the first timing reference.

    
    
  7. Configure all slave boards to specify the secondary clock master as the clock fallback source. All slave boards will synchronize their timing to the primary clock master.

When the boards are configured in this way, the secondary clock master continues to drive the secondary clock (based on its own network timing reference) if the primary clock master fails. Slave boards within the system fall back to synchronize their timing from the secondary clock master.

For more information about setting up clocking on CG 6100C boards, refer to Section 3.5.2. For more information about configuring the primary clock master, refer to Configuring the Primary Clock Master.

3.5.4 Configuring CT Bus Clocks with CG KeywordsTop of Page

CG 6100C board keywords allow you to configure the board in the following ways:

You can also use board keywords to establish clock fallback sources. The following sections describe how to use board keywords to specify clocking configurations on multiple-board or multiple-chassis systems.

Configuring the Primary Clock MasterTop of Page

Use the following keywords to configure the primary clock master:
Keyword

Description

Clocking.HBus.ClockSource

Specifies the source from which this board derives its timing. Set this keyword to a network source (NETREF, NETREF2, or NETWORK).

Clocking.HBus.ClockMode

Specifies the CT bus clock that the board drives. This keyword must reference either the A clock (MASTER_A) or the B clock (MASTER_B).

Clocking.HBus.ClockSourceNetwork

(optional) Specifies the number of a trunk that the board uses as an external network clocking source for its internal clock (trunk numbering is 1-based).

Clocking.HBus.AutoFallBack

Enables or disables clock fallback on the board.

Clocking.HBus.FallBackClockSource

Specifies an alternate timing reference to use when the master clock source fails. Set this keyword to a network timing source (NETREF, NETREF2, or NETWORK).

Clocking.HBus.FallBackNetwork

(optional) Specifies the trunk from which a fallback network timing source (for the clock fallback reference) can be derived when Clocking.HBus.FallBackClockSource= NETWORK.

Trunk numbering in this case is 1-based.

Note: If the primary master's first source fails and then returns, the board's timing reference switches back to the first timing source (this is not true for the secondary timing master or slaves).

Configuring the Secondary Clock MasterTop of Page

Use the following keywords to configure the secondary clock master:
Keyword

Description

Clocking.HBus.ClockSource

The source from which this board derives its timing. Set this keyword to the clock driven by the primary clock master. For example, if the primary master drives the A clock, set this keyword to A_CLOCK.

Clocking.HBus.ClockMode

Specifies the CT bus clock that the secondary master drives. This keyword must reference the clock (MASTER_A or MASTER_B) not driven by the primary clock master.

Clocking.HBus.AutoFallBack

Enables or disables clock fallback on the board. Set this keyword to YES.

Clocking.HBus.FallBackClockSource

Specifies an alternate timing reference to use when the master clock does not function properly. Set this keyword to reference a network source (NETREF, NETREF2, or NETWORK).

Clocking.HBus.FallBackNetwork

(optional) The trunk from which a fallback network timing source (for the clock fallback reference) can be derived.

Note: Trunk numbering in this case is 1-based.

Note: If the primary bus fails, all boards will reference the secondary clocks. If the clocks return to the primary clock signals, all boards will continue to use the fallback clock sources until the program intervenes.

Configuring Clock SlavesTop of Page

Use the following keywords to configure the clock slaves:
Keyword

Description

Clocking.HBus.ClockMode

The CT bus clock from which the board derives its timing. Set this keyword to SLAVE to indicate that the board does not drive any CT bus clock (although the board may still drive NETREF or NETREF2).

Clocking.HBus.ClockSource

Specifies the source from which this clock derives its timing. This keyword must reference the clock driven by the primary clock master.

Clocking.HBus.AutoFallBack

Enables or disables clock fallback on the board.

Clocking.HBus.FallBackClockSource

Specifies the alternate clock reference to use when the master clock does not function properly. For clock slaves, set this keyword to reference the clock (A clock or B clock) driven by the secondary clock master.

Configuring Standalone BoardsTop of Page

To configure a board in standalone mode so the board references its own clocking information, set Clocking.HBus.ClockMode to STANDALONE. The board can use either its own oscillator or a signal received from a digital trunk as a timing signal reference. However, the board cannot make switch connections to the CT bus.

For more information about setting up clocking on CG 6100C boards, refer to Section 3.5.2, Clocking Capabilities.

3.5.5 Example: Multiple Board SystemTop of Page

The following example assumes a system configuration where four CG 6100C boards reside on a single chassis. The boards are configured in the following way:
Board

Configuration

0

System primary bus master (driving the A clocks)

1

System secondary bus master (driving the B clocks)

2

Clock slave (clock fallback enabled)

3

Clock slave (clock fallback enabled - drives the NETREF clock)

This configuration assigns the following clocking priorities:
Timing Reference

Timing reference

First

Board 0, digital trunk 1.

A network signal from a digital trunk provides the primary master clock source.

Second

Board 3, digital trunk 3.

The NETREF signal driven by a digital trunk (on Board 3) acts as the primary master clock fallback source.

Third

Board 1, digital trunk 2.

A network signal from a digital trunk provides the secondary master clock fallback source.

Figure 20 shows an example of a multi-board system with a primary and secondary clock master:


chap30.gif

Figure 20. Sample Board Clocking Configuration


The following table shows keywords used to configure the boards according to the configuration shown in Figure 20.
Board

Role

Clocking Keyword Settings

0

Primary clock master

Clocking.HBus.ClockMode = MASTER_A

Clocking.HBus.ClockSource = NETWORK

Clocking.HBus.ClockSourceNetwork = 1

Clocking.HBus.AutoFallBack = YES

Clocking.HBus.FallBackClockSource = NETREF

Clocking.HBus.NetRefSpeed = 8K

1

Secondary clock master

Clocking.HBus.ClockMode = MASTER_B

Clocking.HBus.ClockSource = A_CLOCK

Clocking.HBus.AutoFallBack = YES

Clocking.HBus.FallBackClockSource = NETWORK

Clocking.HBus.FallBackNetwork = 2

2

Clock slave

Clocking.HBus.ClockMode = SLAVE

Clocking.HBus.ClockSource = A_CLOCK

Clocking.HBus.AutoFallBack = YES

Clocking.HBus.FallBackClockSource = B_CLOCK

3

Slave driving NETREF

Clocking.HBus.ClockMode = SLAVE

Clocking.HBus.ClockSource = A_CLOCK

Clocking.HBus.AutoFallBack = YES

Clocking.HBus.FallBackClockSource = B_CLOCK

Clocking.HBus.NetRefSource = NETWORK

Clocking.HBus.NetRefSourceNetwork = 3

Clocking.HBus.NetRefSpeed = 8K

In this configuration, Board 0 is the primary clock master and drives the A clock. All slave boards on the system use the A clock as their first timing reference. Board 0 references its timing from a network timing signal received on its own trunk 1. Board 0 also uses the NETREF signal (driver based on digital signal received on trunk 3 of Board 3) as its clock fallback source. If the network timing signal derived from its own digital trunks fails, Board 0 will continue to drive the A clocks based on NETREF timing reference.

If both of the clocking signals used by Board 0 (the network timing signal and the NETREF signal) fail, Board 0 stops driving the A clock. The secondary clock master (Board 1) then falls back to a timing reference received on its own trunk 2, and uses this signal to drive the B clock. The B clock then becomes the timing source for all boards that use the B clock as their backup timing reference.

For this to take effect, all the clock slaves must specify the A clock as their clock source and the B clock as their clock fallback source.

3.5.6 NETREF ClockingTop of Page

The following table shows the four trunk groups that cannot be used for clock source timing references and NETREF sources at the same time. If this occurs, the clock configuration command will fail.
Trunk Group

Trunks

A

1, 2, 5, 6

B

3, 4, 7, 8

C

9, 10, 13,14

D

11, 12, 15, 16

Note: The timing reference and the NETREF selection must be in different trunk groups. However, the fallback source can in the same trunk group.

The following table provides sample clock configurations showing how the timing references work in relation to the NETREF setting. Refer to the notes below the table for additional information.
Clock Source

Fallback Timing Reference

NETREF 1 Source

NETREF 2 Source

Pass/Fail

Note Reference

Trunk 1

Trunk 2

Not used.

Not used.

Pass

6

Trunk 1

Trunk 2

Trunk 5

Not used.

Fail

4

Trunk 4

Trunk 2

Trunk 1

Not used.

Fail

5

Trunk 1

Trunk 2

Trunk 3

Not used.

Pass

6

A_Clock

B_Clock

Trunk 1

Not used.

Pass

2

A_Clock

B_Clock

Trunk 1

Trunk 2

Fail

1

A_Clock

B_Clock

Not used.

Trunk 3

Pass

2

Notes:

  1. You cannot source NETREF1 and NETREF2 from a single card.

    
    
  2. Because there are no trunks being used for clocks, there are no restrictions to using trunks for NETREF.

    
    
  3. There are no restrictions when you are configuring the main clocks. Because there are no trunks being used for NETREFs, there are no restrictions to using trunks for clocks.

    
    
  4. The NETREF and primary trunk conflict because of trunk group restrictions.

    
    
  5. The NETREF and clock fallback conflict because of trunk group restrictions.

    
    
  6. Although the trunks are in the same trunk group, the trunks are not used at the same time.

    
    
  7. There are no trunk group conflicts between the clocks and the NETREF.

3.6 TDM Switch Streams and DSP Physical LayoutsTop of Page

The following images show the TDM switch streams and DSP physical layouts for the CG 6100C board and their logical DSP numbers.
chap32.gif

Figure 21. TDM Switch Stream and DSP Physical Layout for 20 DSP Cores on the Main Board and 16 DSP Cores on the Daughterboard



chap31.gif
Figure 22. TDM Switch Streams and DSP Physical Layout with 10 DSP Cores and 5 DSP Chips



chap33.gif

Figure 23. TDM Switch Streams and DSP Physical Layout Showing Four DSP Cores and Two DSP Chips

3.7 Sample Board Keyword FilesTop of Page

The following sample configuration files are provided with Natural Access software.

3.7.1 No Call Control ConfigurationTop of Page

The c61nocc.cfg file shown below is a sample board keyword file provided with Natural Access software. It is located in the \nms\cg\cfg (or /opt/nms/cg/cfg for UNIX) subdirectory under the Natural Access installation directory. This file shows a typical set of board keywords necessary to configure and start a CG 6100C board.

#
#     c61nocc.cfg
#     CG 6100C configuration file
#
#     This file configures the board to run Voice with NOCC (E1 CAS mode by default) on
#     CG6100C/1000MIPs-16 board (10 dsp cores/5 dsp chips)
#
#     See NOTE to adjust to your configuration
#      
#
#*******************************************************************************************
#  NOTE: Adjust clocking mode accordingly
#*******************************************************************************************
Clocking.HBus.ClockMode                          = STANDALONE
Clocking.HBus.ClockSource                        = OSC
Clocking.HBus.ClockSourceNetwork                 = 1

TCPFiles                                         = nocc
#*******************************************************************************************
#  NOTE: T1 configuration is commented out.  If you want T configuration, uncomment below, 
#        and comment/remove E1 configuration
#  NOTE: Adjust idle code and TCP Files for the country you are using accordingly
#*******************************************************************************************
#DSPStream.VoiceIdleCode[0..15]                                                  = 0x7F                                                                                                         
#DSPStream.SignalIdleCode[0..15]                                    = 0x00                                                                               

#NetworkInterface.T1E1[0..15].Type                 = T1
#NetworkInterface.T1E1[0..15].Impedance            = DSX1
#NetworkInterface.T1E1[0..15].LineCode             = B8ZS
#NetworkInterface.T1E1[0..15].FrameType            = ESF
#NetworkInterface.T1E1[0..15].SignalingType        = CAS

#DSP.C5x[0..9].Libs[0]                             = cg6klibu
#DSP.C5x[0..9].XLaw                                = MU_LAW   

#*******************************************************************************************
#  E1 configuration
#*******************************************************************************************
DSPStream.VoiceIdleCode[0..15]                                                = 0xD5                                                                                                         
DSPStream.SignalIdleCode[0..15]                                       = 0x09                                                                                          

NetworkInterface.T1E1[0..15].Type                 = E1
NetworkInterface.T1E1[0..15].Impedance            = G703_120_OHM
NetworkInterface.T1E1[0..15].LineCode             = HDB3
NetworkInterface.T1E1[0..15].FrameType            = CEPT
NetworkInterface.T1E1[0..15].SignalingType        = CAS

DSP.C5x[0..9].Libs[0]                             = cg6kliba
DSP.C5x[0..9].XLaw                                = A_LAW   

DSP.C5x[2..9].Files                               = voice tone dtmf rvoice callp ptf mf
DSP.C5x[0..1].Files                               = 8tsignal

#=====================#
# Resource management #
#=====================#
Resource[0].Name                                 = RSC1
Resource[0].Size                                 = 20
Resource[0].TCPs                                 = nocc

############################################################################################
#  NOTE: If DSP functionality are added to and removed from Resource[0].Definitions, port
#        count might be affected.  Please refer to the CG6100C Installation and Developers
#        Manual for more details.
#############################################################################################
Resource[0].Definitions         = ( dtmf.det_all & ptf.det_2f & tone.gen & \
    callp.gnc & ptf.det_4f & \
    ( (rvoice.rec_mulaw & rvoice.play_mulaw) | \
    (rvoice.rec_alaw & rvoice.play_alaw) | \
    (rvoice.rec_lin & rvoice.play_lin) | \
    (voice.rec_16 & (voice.play_16_100 | voice.play_16_150 | voice.play_16_200)) | \
    (voice.rec_24 & (voice.play_24_100 | voice.play_24_150 | voice.play_24_200)) | \
    (voice.rec_32 & (voice.play_32_100 | voice.play_32_150 | voice.play_32_200)) | \
    (voice.rec_64 & (voice.play_64_100 | voice.play_64_150 | voice.play_64_200))))

#*******************************************************************************************
# NOTE: DLMs to download
#
#*******************************************************************************************
DLMFiles[0]                                      = cg6100run

DebugMask                                        = 0x0


                                                                                                                                                                                                    

3.7.2 Line Interface ConfigurationTop of Page

The c61elc.cfg file shown below is a sample board keyword file provided with Natural Access software. It is located in the \nms\cg\cfg (or /opt/nms/cg/cfg for UNIX) subdirectory under the Natural Access installation directory. It shows the set of board keywords necessary to configure and start a CG 6100C board.

#
#     c61elc.cfg
#     CG 6100C configuration file 
#
#     This file configures the board to run E1 line Interface card
#     
#
                                                                                                                                                                                                    
#*******************************************************************************************
#  NOTE: Adjust clocking mode accordingly
#*******************************************************************************************
Clocking.HBus.ClockMode                        = STANDALONE
Clocking.HBus.ClockSource                      = OSC
Clocking.HBus.ClockSourceNetwork               = 1

TCPFiles                                       = nocc
NetworkInterface.T1E1[0..15].Type              = E1
NetworkInterface.T1E1[0..15].SignalingType               =     RAW                                                                                                                                                                                                    

#*******************************************************************************************
# DLMs to download
#
#*******************************************************************************************
DLMFiles[0]                                    = cg6100run

DebugMask                                      = 0x0

3.7.3 Setting Up Resource Management for Multiple PoolsTop of Page

The CG6100C board has two switch devices. Each switch device has a group of DSPs connected to it and a group of eight associated trunks. To support this design, the CG6100C board requires logical timeslots to be mapped to logical DSPs for port densities over 256.

Multiple groups, or pools, of DSP resources are specified in the board configuration file. Two pools of the same DSP resources are used to eliminate potential inter-switch blocking conditions that could occur with port densities over 256. These two pools in the configuration file are specified by the keyword groups of Resource[0] and Resource[1].

To map logical timeslots to resource pools, use the Resource[x].StartDspTimeslot keyword to specify the start timeslot for a pool. Use Resource[x].TimeslotRange to specify the number of timeslots associated with that pool. Each pool supports up 256 timeslots, but only 240 resource objects are allocated to each of these two pools.

To provide a uniqueness between Resource[0] pool and Resource[1] pool, two data processing modules (DPMs), unique0 and unique1, are provided for the DSPs. Both of the unique0 and unique1 DPMs have only one data processing function (DPF). These two DPFs are used by the on-board resource manager to differentiate between two pools containing the same resources. These two DPFs use a very small amount of memory.

In some configurations, a third pool of 120 ports of IVR is created. In this scenario, the IVR resources are located on the daughterboard. Because there are only 120 ports of IVR, there is no potential inter-switch blocking.

Refer to Section 5.1.1, Switch Blocking for more information on switch blocking.

The following table provides an example of this functionality:
Keyword

Setting

Resource[0].Name

Pool0

Resource[0].Size

240

Resource[0].TCPs

nocc isd0

Resource[0].Definitions

(unique0.unique0)

Resource[0].StartDspTimeSlot

0

Resource[0].TimeSlotRange

240

Resource[1].Name

Pool1

Resource[1].Size

240

Resource[1].TCPs

nocc isd0

Resource[1].Definitions

(unique1.unique1)

Resource[1].StartDspTimeSlot

240

Resource[1].TimeSlotRange

240

Pool Resource[0] is made up of two trunk control protocols. This pool's StartDspTimeSlot and TimeSlotRange keywords specify that it is associated with timeslots 0 through 239. Because Resource[1] pool will be made up of the same resources, the unique0.unique0 DPF is placed in the Resource[0].Definitions keyword to create a uniqueness about this pool. The unique0 DPM is loaded on the logical DSP associated with the trunks that will be switched to logical timeslots 0 through 239.

Pool Resource[1] is made up of the same two trunk control protocols as Resource[0]. Resource[1]'s StartDspTimeSlot and TimeSlotRange keywords specify that it is associated with timeslots 240 through 479. Because Resource[0] is the default pool, it must always be listed first in the list of pools that are to be loaded to the board. It will always be the first pool loaded to the board and the first to lock up its resources. As long as this is the case, Resource[1] will select its resources from the resources that remain after Resource[0] locks up its resources. Assuming the DSPs have been loaded correctly, Resource[1]'s resources will be locked up on the correct DSPs.To avoid a pool order problem, the second DPM can be loaded to the remaining DSPs and the unique1.unique1 DPF can be placed in the Resource[1].Definition.

When 120 ports of IVR are required, a third pool is created. This pool, specified in Resource[2].Definition, contains IVR data processing functions (DPFs) with data processing modules (DPMs) that are loaded only on the daughterboard. Because the DPMs are loaded only on the daughterboard, the DSP resource manager will locate and allocate the DSP resources on the daughterboard DSPs.

When the board is booted, all of the Resource[x] keywords except for StartDspTimeslot and TimeSlotRange are sent to the on-board resource manager. Once the on-board resource manager has completed its initialization, the plug-in sends the two remaining keywords to it. The on-board resource manager uses StartDspTimeslot and TimeSlotRange keywords to associate timeslots to the pools it manages.

If Resource[x].StartDspTimeslot and Resource[x].TimeSlotRange keywords are omitted from the configuration file, no logical timeslot to resource pool association will take place on the board. Therefore, only one pool must be specified in the configuration file since only one pool will be used by the on-board resource manager.

Because the CG 6100C requires logical timeslot mapping to logical DSPs, you must pay careful attention when switching logical timeslots to trunks.

For a more detailed explanation of how resource management works and the other resource keywords, see Appendix B - DSP Resource Management.

3.7.4 MFC Protocol for 20 DSP Cores with 16 TrunksTop of Page

The c61m2016.cfg file shown below is a sample board keyword file provided with Natural Access software. It is located in the \nms\cg\cfg (or /opt/nms/cg/cfg for UNIX) subdirectory under the Natural Access installation directory. It shows the set of board keywords necessary to configure and start a CG 6100C board.

#
# c61m2016.cfg
#               CG 6100C configuration file
#
#     This file configures the board to run with 480 ports of NOCC and MFC
#     for CG6100C/2000MIPs 16 trunks (20 dsp cores/10 dsp chips)
# 
#
#   See NOTE to adjust to your configuration
#  E1 CAS mode by default
#      
#
#*******************************************************************************************
#  NOTE: Adjust clocking mode accordingly
#*******************************************************************************************
Clocking.HBus.ClockMode                            = STANDALONE
Clocking.HBus.ClockSource                          = OSC
Clocking.HBus.ClockSourceNetwork                   = 1

#*******************************************************************************************
#  NOTE: T1 configuration is commented out.  If you want T configuration, uncomment below, 
#        and comment/remove E1 configuration
#  NOTE: Adjust idle code and TCP Files for the country you are using accordingly
#*******************************************************************************************
#TCPFiles                                          = wnk0 nocc
#DSPStream.VoiceIdleCode[0..15]                    = 0x7F
#DSPStream.SignalIdleCode[0..15]                   = 0x00

#NetworkInterface.T1E1[0..15].Type                 = T1
#NetworkInterface.T1E1[0..15].Impedance            = DSX1
#NetworkInterface.T1E1[0..15].LineCode             = B8ZS
#NetworkInterface.T1E1[0..15].FrameType            = ESF
#NetworkInterface.T1E1[0..15].SignalingType        = CAS

#DSP.C5x[0..19].Libs[0]                            = cg6klibu
#DSP.C5x[0..19].XLaw                               = MU_LAW

#*******************************************************************************************
#  E1 configuration
#*******************************************************************************************
TCPFiles                                          = mfc0 nocc
DSPStream.VoiceIdleCode[0..15]                    = 0xD5
DSPStream.SignalIdleCode[0..15]                   = 0x09

NetworkInterface.T1E1[0..15].Type                 = E1
NetworkInterface.T1E1[0..15].Impedance            = G703_120_OHM
NetworkInterface.T1E1[0..15].LineCode             = HDB3
NetworkInterface.T1E1[0..15].FrameType            = CEPT
NetworkInterface.T1E1[0..15].SignalingType        = CAS

DSP.C5x[0..19].Libs[0]                            = cg6kliba 
DSP.C5x[0..19].XLaw                               = A_LAW


#*******************************************************************************************
#  NOTE: HMIC local streams operate at 8 MHz and have 128 timeslots.
#        CG6100C/2000MIP-16 has 5 dsp cores hanging off each HMIC local stream.
#        to accomplish 496 timeslots (16 trunks * 31 timeslots)
#        You must assign each non-signalling dsp cores with 32 timeslots
#        and Signalling and unused dsps 0..3 with 0 timeslots  
#
#        Please refer to the CG6100C Installation and Developers Manual
#        for more details. 
#
# Because of limitation in timeslots, dsp 2,3 are not used in this configuration  
#*******************************************************************************************
DSP.C5x[4..19].NumTxTimeslots = 32
DSP.C5x[4..19].NumRxTimeslots = 32

DSP.C5x[0..3].NumRxTimeslots = 0
DSP.C5x[0..3].NumTxTimeslots = 0

#*******************************************************************************************
# NOTE: To ensure deterministic system with resource management for ports above 256,
#       you must use multi-pool resource management.
#       
#     Pool #   DSPs     DSP functions                        
#     ======   ======   =============================
#       0      4..11    240 ports of isd0
#       1      12..19   240 ports of isd0
#
#      To distinguish 2 identical resource pools, you must specify unique# f54 to each group
#      of dsps
#
#*******************************************************************************************

DSP.C5x[4..11].Files                             = unique0 tone mf dtmf ptf callp
DSP.C5x[12..19].Files                            = unique1 tone mf dtmf ptf callp

# ** Signalling DSPs
DSP.C5x[0..1].Files                              = 8tsignal


#=====================#
# Resource management #
#=====================#

#*******************************************************************************************
# NOTE: To ensure deterministic system with resource management for ports above 256,
#       you must use multi-pool resource management.
#
#     Resource[X].StartDspTimeSlot is the starting timeslot for each pool
#     Resource[X].Size is the number of channels/ports managed by on-board resource manager
#     Resource[X].TimeSlotRange is the number of timeslots associated with each pool
#
#*******************************************************************************************

#============================#
# Resource management Pool 0 #
#============================#
Resource[0].Name                                 = RSC0
Resource[0].Size                                 = 240
# T1 Configuration commented out
# Resource[0].TCPs                               = nocc wnk0
Resource[0].TCPs                                 = nocc mfc0
Resource[0].StartDspTimeSlot                     = 0
Resource[0].TimeSlotRange                        = 240




#*******************************************************************************************
#  NOTE: dtmf.det_all is included in the resource definition because it is used in the demo.
#        If your application does not require dtmf functionality, you can remove dtmf.det_all
#        from the Resource[x].Definitions
#
#  NOTE: If additional DSP functionality are added to Resource[x].Definitions, port count
#        might decrease.  Please refer to the CG6100C Installation and Developers Manual
#        for more details.
#*******************************************************************************************
Resource[0].Definitions                          = (unique0.unique0 | dtmf.det_all)

#============================#
# Resource management Pool 1 #
#============================#
Resource[1].Name                                 = RSC1
Resource[1].Size                                 = 240
# T1 Configuration commented out
# Resource[1].TCPs                               = nocc wnk0
Resource[1].TCPs                                 = nocc mfc0
Resource[1].StartDspTimeSlot                      = 240
Resource[1].TimeSlotRange                        = 240

#*******************************************************************************************
#  NOTE: dtmf.det_all is included in the resource definition because it is used in the demo.
#        If your application does not require dtmf functionality, you can remove dtmf.det_all
#        from the Resource[x].Definitions
#
#  NOTE: If additional DSP functionality are added to Resource[x].Definitions, port count
#        might decrease.  Please refer to the CG6100C Installation and Developers Manual
#        for more details.
#*******************************************************************************************
Resource[1].Definitions                          = (unique1.unique1 | dtmf.det_all)

#*******************************************************************************************
# NOTE: DLMs to download
#
#*******************************************************************************************
DLMFiles[0]                                      = cg6100run

3.7.5 MFC Protocol and Voice for 20 DSP Cores with 8 TrunksTop of Page

The c61mV208.cfg file shown below is a sample board keyword file provided with Natural Access software. It is located in the \nms\cg\cfg (or /opt/nms/cg/cfg for UNIX) subdirectory under the Natural Access installation directory. It shows the set of board keywords necessary to configure and start a CG 6100C board.

This configuration allows you to run 240 ports of MFC and voice ports that are not managed by resource management. To lock up resources for other DSP functions, you must trade off the number of ports you are going to use above Resource[x].Size and modify the configuration file as shown at the end of this example.

#
# c61mV208.cfg
#
#               CG 6100 configuration file
#
#  This file configures the board to run with 240 ports of NOCC and MFC with 64 ports of voice
#  for CG6100C/2000MIPs 8 trunks
#
#     10 dsp chips/20 dsp cores on main board
#
#     See NOTE to adjust to your configuration
#         E1 CAS mode by default
#
#*******************************************************************************************
#  NOTE: Adjust clocking mode accordingly
#*******************************************************************************************
Clocking.HBus.ClockMode                           = STANDALONE
Clocking.HBus.ClockSource                         = OSC
Clocking.HBus.ClockSourceNetwork                  = 1

#*******************************************************************************************
#  NOTE: T1 configuration is commented out.  If you want T configuration, uncomment below, 
#        and comment/remove E1 configuration
#  NOTE: Adjust idle code and TCP Files for the country you are using accordingly
#*******************************************************************************************
#TCPFiles                                         = wnk0 nocc
#DSPStream.VoiceIdleCode[0..7]                    = 0x7F
#DSPStream.SignalIdleCode[0..7]                   = 0x00

#NetworkInterface.T1E1[0..7].Type                 = T1
#NetworkInterface.T1E1[0..7].Impedance            = DSX1
#NetworkInterface.T1E1[0..7].LineCode             = B8ZS
#NetworkInterface.T1E1[0..7].FrameType            = ESF
#NetworkInterface.T1E1[0..7].SignalingType        = CAS

#DSP.C5x[0..19].Libs[0]                           = cg6klibu
#DSP.C5x[0..19].XLaw                              = MU_LAW

#*******************************************************************************************
#  E1 configuration
#*******************************************************************************************
TCPFiles                                          = mfc0 nocc
DSPStream.VoiceIdleCode[0..7]                     = 0xD5
DSPStream.SignalIdleCode[0..7]                    = 0x09

NetworkInterface.T1E1[0..7].Type                 = E1
NetworkInterface.T1E1[0..7].Impedance            = G703_120_OHM
NetworkInterface.T1E1[0..7].LineCode             = HDB3
NetworkInterface.T1E1[0..7].FrameType            = CEPT
NetworkInterface.T1E1[0..7].SignalingType        = CAS

DSP.C5x[0..19].Libs[0]                           = cg6kliba
DSP.C5x[0..19].XLaw                              = A_LAW

#*******************************************************************************************
#  NOTE: HMIC local streams operate at 8 MHz and have 128 timeslots.
#        CG6100C/2000MIP-16 has 5 dsp cores hanging off each HMIC local stream.
#        to accomplish 496 timeslots (16 trunks * 31 timeslots)
#        You must assign each non-signalling dsp cores with 32 timeslots
#        and Signalling and unused dsps 0..3 with 0 timeslots  
#
#        Please refer to the CG6100C Installation and Developers Manual
#        for more details. 
#
# Because of limitation in timeslots, dsp 2,3 are not used in this configuration  
#*******************************************************************************************
DSP.C5x[4..19].NumTxTimeslots = 32
DSP.C5x[4..19].NumRxTimeslots = 32

DSP.C5x[0..3].NumRxTimeslots = 0
DSP.C5x[0..3].NumTxTimeslots = 0


#*******************************************************************************************
# NOTE: To ensure deterministic system with resource management for ports above 256,
#       you must use multi-pool resource management.
#       
#     Pool #   DSPs     DSP functions                        
#     ======   ======   =============================
#       0      4..11    240 ports of isd0
#       1      12..19   64 ports of voice
#
#*******************************************************************************************
DSP.C5x[4..11].Files                             = tone mf dtmf ptf callp
DSP.C5x[12..19].Files                            = voice tone dtmf rvoice

# ** Signalling DSPs
DSP.C5x[0..1].Files                              = 8tsignal

#=====================================#
# Resource management Pool #0 for CAS #
#=====================================#

Resource[0].Name                                 = RSC0
Resource[0].Size                                 = 240
# T1 Configuration commented out
# Resource[0].TCPs                               = nocc wnk0
Resource[0].TCPs                                 = nocc mfc0
Resource[0].StartDspTimeSlot                     = 0
Resource[0].TimeSlotRange                        = 240

#*******************************************************************************************
#  NOTE: dtmf.det_all is included in the resource definition because it is used in the demo.
#        If your application does not require dtmf functionality, you can remove dtmf.det_all
#        and set Resource[0].Definitions = 0
#
#  NOTE: If additional DSP functionality are added to Resource[0].Definitions, port count
#        might decrease.  Please refer to the CG6100C Installation and Developers Manual
#        for more details.
#*******************************************************************************************


Resource[0].Definitions                          = (dtmf.det_all)

#=======================================#
# Resource management Pool #1 for voice #
#=======================================#

Resource[1].Name                                 = RSC1
Resource[1].Size                                 = 64
Resource[1].TCPs                                 = nocc
Resource[1].StartDspTimeSlot                     = 240
Resource[1].TimeSlotRange                        = 64
#*******************************************************************************************
#  NOTE: If additional DSP functionality are added to Resource[x].Definitions, port count
#        might decrease.  Please refer to the CG6100C Installation and Developers Manual
#        for more details.
#*******************************************************************************************
Resource[1].Definitions         = ( tone.gen & \
    ((voice.rec_64 & (voice.play_64_100 | voice.play_64_150 | voice.play_64_200))))




#*******************************************************************************************
# DLMs to download
#
#*******************************************************************************************
DLMFiles[0]                                      = cg6100run


3.7.6 Assigning and Using Pooled ResourcesTop of Page

When developing applications to support 16 trunks of call control and 120 ports of IVR, you must:

  1. Create DSP resource pools and assign logical DSP timeslots.

    
    
  2. Implement a Resource Sharing Algorithm to share the pooled 120 IVR resources over the 480 possible requesting trunk ports.

    
    
  3. Use the Natural Access switching services (SWI or PPX) to connect:

    • Trunk interfaces to and from call processing DSPs

      
      
    • Other trunk interfaces

      
      
    • IVR resources

      
      
    • H.110 CT Bus timeslot resources

      
      
    • IVR resources to and from trunk interfaces

      
      
    • H.110 CT Bus timeslot resources

    Creating DSP Resource PoolsTop of Page

    Note: The example used in this section describes how to assign and use pooled resources for E1 support of 480 ports of call control (16 trunks) and 120 ports of IVR. For T1 support, use 384 ports of call control, 120 ports of IVR, and adjust accordingly.
    To support 480 ports of trunk control protocol and 120 ports of IVR resources, specify resource management among multiple DSP pools in the board configuration file. This will avoid a switch blocking scenario (refer to Section 5.1.1, Switch Blocking).

    For the 480 Trunks/120 IVR port configuration, the CG 6100C requires the first eight trunks (1..8) to be associated with DSP logical timeslots 0..239 and the second eight trunks (9..16) to be associated with DSP logical timeslots 240..479.

    The following board resource configuration settings assume the ISDN trunk control protocol.

    First resource pool definition:

       Resource[0].Name         = CallControlForFirst8Trunks
    Resource[0].Size = 240
    Resource[0].TCPs = nocc isd0
    Resource[0].Definitions = (unique0.unique0)
    Second resource pool definition:

    Resource[1].Name = CallControlForSecond8Trunks
    Resource[1].Size = 240
    Resource[1].TCPs = nocc isd0
    Resource[1].Definitions = (unique1.unique1)

    Third resource pool definition:

    Resource[2].Name = CallControlForIVR
    Resource[2].Size = 120
    Resource[2].TCPs = nocc
    Resource[2].Definitions = ( dtmf.det_all & echo.ln20_apt25 & \
    (voice.rec_64 & (voice.play_64_100 | voice.play_64_150 | \
    voice.play_64_200))))

    Assignment of resources to logical timeslots:

    Resource[0].StartDspTimeSlot = 0
    Resource[0].TimeSlotRange = 240

    Resource[1].StartDspTimeSlot = 240
    Resource[1].TimeSlotRange = 240

    Resource[2].StartDspTimeSlot = 480
    Resource[2].TimeSlotRange = 120

    Note: The Resource[x].TimeSlotRange and the Resource[x].Size keyword settings should be the same. Refer to ISDN Protocol and Voice for 36 DSP Cores with 16 Trunks for more information.

    Implementing a Resource Sharing AlgorithmTop of Page

    To share the pooled 120 IVR resources over the 480 possible requesting trunk ports (and possibly H.110 CT Bus interface timeslots), a resource sharing algorithm must implement the functionality shown in Figure 24 and Figure 25.

    The application monitors incoming trunks and uses switching to connect the logical DSP call control resources to the trunks as shown in the following illustration.
    chap34.gif

    Figure 24. Connecting Logical DSP Call Control Resources

    
    
    When an incoming call comes in, the application uses the next available logical DSP timeslot from the IVR pool. The application can use the Switching service to connect the IVR ports to the incoming call port.
    chap35.gif

    Figure 25. Connecting IVR Ports to the Incoming Call Port

    
    
    When the IVR resource is no longer being used, the resource returns to the IVR resource pool for the next time. The c6t2tivr demo demonstrates how to transfer a signal call received over an incoming line to an outgoing call placed over an outgoing line. Refer to Appendix D - Multiple Pool Demonstration Program: c6t2tivr for more information.

    3.7.7 ISDN Protocol and Voice for 36 DSP Cores with 16 TrunksTop of Page

    The c61iV3616.cfg file shown below is a sample board keyword file provided with Natural Access software. It is located in the \nms\cg\cfg (or /opt/nms/cg/cfg for UNIX) subdirectory under the Natural Access installation directory. It shows the set of board keywords necessary to configure and start a CG 6100C board.

    This configuration allows you to run 480 managed ports of ISDN on the main board and 120 unmanaged ports of IVR on the daughterboard. To lock up resources for other DSP functions, you must trade off the number of ports you are going to use above Resource[x].Size and modify the configuration file as shown at the end of this example. You also need to download the appropriate DLM file for your country.

    #
    #
    # c61iV3616.cfg
    #               CG 6100C configuration file
    #
    #     This file configures the board to run with NOCC and ISDN
    #     for CG6100C/3600MIPs 16 trunks with 120 voice and echo
    #
    #     10 dsp chips/2000MIPs on main board, 8 dsp chips/1600MIPs on daughtercard
    #
    #     See NOTE to adjust to your configuration
    #         E1 ISDN configuraton by default
    #      
    #
    #*******************************************************************************************
    #  NOTE: Adjust clocking mode accordingly
    #*******************************************************************************************
    Clocking.HBus.ClockMode                            = STANDALONE
    Clocking.HBus.ClockSource                          = OSC
    Clocking.HBus.ClockSourceNetwork                   = 1
    
    TCPFiles                                           = nocc isd0
    #*******************************************************************************************
    #  NOTE: T1 configuration is commented out.  If you want T configuartion, uncomment below, 
    #        and comment/remove E1 configuration
    #  NOTE: Adjust idle code and TCP Files for the country you are using accordingly
    #*******************************************************************************************
    #DSPStream.VoiceIdleCode[0..15]                    = 0x7F
    #DSPStream.SignalIdleCode[0..15]                   = 0x00
    
    #NetworkInterface.T1E1[0..15].Type                 = T1
    #NetworkInterface.T1E1[0..15].Impedance            = DSX1
    #NetworkInterface.T1E1[0..15].LineCode             = B8ZS
    #NetworkInterface.T1E1[0..15].FrameType            = ESF
    #NetworkInterface.T1E1[0..15].SignalingType        = PRI
    #NetworkInterface.T1E1[0..15].D_Channel            = ISDN
    
    #Hdlc[0..15].Boot                                  = YES
    #Hdlc[0..15].Comet.TxTimeSlot                      = 23
    #Hdlc[0..15].Comet.RxTimeSlot                      = 23
    
    #DSP.C5x[0..35].Libs[0]                            = cg6klibu
    #DSP.C5x[0..35].XLaw                               = MU_LAW
    
    #*******************************************************************************************
    #  E1 configuration
    #*******************************************************************************************
    DSPStream.VoiceIdleCode[0..15]                   = 0xD5
    DSPStream.SignalIdleCode[0..15]                  = 0x0D
    
    Hdlc[0..15].Boot                                 = YES
    Hdlc[0..15].TxTimeSlot                           = 16
    Hdlc[0..15].RxTimeSlot                           = 16
    
    NetworkInterface.T1E1[0..15].Type                = E1
    NetworkInterface.T1E1[0..15].Impedance           = G703_120_OHM
    NetworkInterface.T1E1[0..15].LineCode            = HDB3
    NetworkInterface.T1E1[0..15].FrameType           = CEPT
    NetworkInterface.T1E1[0..15].SignalingType       = PRI
    NetworkInterface.T1E1[0..15].D_Channel           = ISDN
    
    DSP.C5x[0..35].Libs[0]                           = cg6kliba
    DSP.C5x[0..35].XLaw                              = A_LAW
    
    #*******************************************************************************************
    #  NOTE: HMIC local streams operate at 8 MHz and have 128 timeslots.
    #        CG6100C/2000MIP-16 has 5 dsp cores hanging off each HMIC local stream.
    #        to accomplish 496 timeslots (16 trunks * 31 timeslots)
    #        You must assign each non-signalling dsp cores with 32 timeslots
    #        and Signalling and unused dsps 0..3 with 0 timeslots  
    #
    #        Please refer to the CG6100C Installation and Developers Manual
    #        for more details. 
    #
    # Because of limitation in timeslots, dsp 2,3 are not used in this configuration  
    #*******************************************************************************************
    DSP.C5x[4..19].NumTxTimeslots = 32
    DSP.C5x[4..19].NumRxTimeslots = 32
    
    DSP.C5x[0..3].NumRxTimeslots = 0
    DSP.C5x[0..3].NumTxTimeslots = 0
    
    #*******************************************************************************************
    #  DSPStream Slotcount by default is 512.  With this configuration, we are running      
    #  480 ports of ISDN and 120 voice with echo, as a result, we increase the DSPStream.Slotcount
    #  to 600.
    #*******************************************************************************************
    DSPStream.SlotCount = 600
    
    #*******************************************************************************************
    # NOTE: To ensure deterministic system with resource management for ports above 256,
    #       you must use multi-pool resource management.
    #       
    #     Pool #   DSPs     DSP functions
    #     ======   ======   =============================
    #       0      4..11    240 ports of isd0
    #       1      12..19   240 ports of isd0
    #       2      20..35   120 ports of voice with echo
    #
    #      To distinguish 2 identical resource pools, you must specify unique# f54 to each group
    #      of dsps
    #
    #*******************************************************************************************
    # ** DSPs on main board
    DSP.C5x[4..11].Files                             = unique0 tone dtmf
    DSP.C5x[12..19].Files                            = unique1 tone dtmf
    
    # ** DSPs on daughtercard
    DSP.C5x[20..35].Files                            = voice dtmf echo
    
    # ** Signalling DSPs
    DSP.C5x[0..1].Files                              = 8tsignal 
    
    #=====================#
    # Resource management #
    #=====================#
    
    #*******************************************************************************************
    #    To ensure deterministic system with resource management for ports above 256,
    #       you must use multi-pool resource management.
    #
    #     Resource[X].StartDspTimeSlot is the starting timeslot for each pool
    #     Resource[X].Size is the number of channels/ports managed by on-board resource manager
    #     Resource[X].TimeSlotRange is the number of timeslots associated with each pool
    #
    #*******************************************************************************************
    
    #============================#
    # Resource management Pool 0 #
    #============================#
    Resource[0].Name                                 = RSC0
    Resource[0].Size                                 = 240
    Resource[0].TCPs                                 = nocc isd0
    Resource[0].StartDspTimeSlot                     = 0
    Resource[0].TimeSlotRange                        = 240
    #*******************************************************************************************
    #  NOTE: dtmf.det_all and tone.gen are included in the resource definition 
    #        because they are used in the demo during the connected state.
    #        If your application does not require tone generation and dtmf functionalities, 
    #        you can remove tone.gen and dtmf.det_all from the Resource[x].Definitions
    #
    #  NOTE: If additional DSP functionalities are added to Resource[x].Definitions, port count
    #        might decrease.  Please refer to the CG6100C Installation and Developers Manual
    #        for more details.
    #*******************************************************************************************
    Resource[0].Definitions                          = (unique0.unique0 | tone.gen | dtmf.det_all)
    
    #============================#
    # Resource management Pool 1 #
    #============================#
    Resource[1].Name                                 = RSC1
    Resource[1].Size                                 = 240
    Resource[1].TCPs                                 = nocc isd0
    Resource[1].StartDspTimeSlot                     = 240
    Resource[1].TimeSlotRange                        = 240
    
    #*******************************************************************************************
    #  NOTE: dtmf.det_all and tone.gen are included in the resource definition 
    #        because they are used in the demo during the connected state.
    #        If your application does not require tone generation and dtmf functionalities, 
    #        you can remove tone.gen and dtmf.det_all from the Resource[x].Definitions
    #
    #  NOTE: If additional DSP functionalities are added to Resource[x].Definitions, port count
    #        might decrease.  Please refer to the CG6100C Installation and Developers Manual
    #        for more details.
    #*******************************************************************************************
    Resource[1].Definitions                          = (unique1.unique1 | tone.gen | dtmf.det_all)
    
    #===========================#
    # Resource management Pool 2#
    #===========================#
    Resource[2].Name                                 = RSC2
    Resource[2].Size                                 = 120
    Resource[2].TCPs                                 = nocc
    Resource[2].StartDspTimeSlot                     = 480
    Resource[2].TimeSlotRange                        = 120
    
    ############################################################################################
    #  NOTE: If DSP functionality are added to and removed from Resource[x].Definitions, port
    #        count might be affected.  Please refer to the CG6100C Installation and Developers
    #        Manualfor more details.
    #############################################################################################
    Resource[2].Definitions         = ( dtmf.det_all & echo.ln20_apt25 & \
        ((voice.rec_64 & (voice.play_64_100 | voice.play_64_150 | voice.play_64_200))))
    
    
    #*******************************************************************************************
    # NOTE: DLMs to download - modify isdn for the country you are working with
    #*******************************************************************************************
    DLMFiles[0]                                       = cg6100run
    DLMFiles[1]                                       = isdnetsi
    #DLMFiles[1]                                      = isdn4ess
    #DLMFiles[1]                                      = isdndms
    #DLMFiles[1]                                      = isdnni2
    #DLMFiles[1]                                      = isdn5ess
    #DLMFiles[1]                                      = isdnvn6
    #DLMFiles[1]                                      = isdnaus1
    #DLMFiles[1]                                      = isdnhkt
    #DLMFiles[1]                                      = isdnkor
    #DLMFiles[1]                                      = isdnntt
    #DLMFiles[1]                                      = isdntwn
    #DLMFiles[1]                                      = isdnqsig
    
    

    3.8 Using DSP Resource Management KeywordsTop of Page

    CG 6100C DSP resource management is configured to operate on a per-port basis. A port is associated with a circuit-switched call (for PSTN-based applications) or another type of media stream. DSP resource management determines the DSPs on which particular DSP functions run and can ensure that the DSP resources required to support a call are available when needed.

    CG 6100C DSP programs are distributed in files known as Data Processing Modules (DPMs). These files use the extension .f54, and contain executable code for a family of algorithms. Each algorithm in that family is known as a Data Processing function (DPF) and can be referenced by a unique string generated by combining the DPM ID with a function ID string.

    This section describes the keywords used to control DSP resource management on CG 6100C boards.
    Caution:

    The standard set of board keyword files provided with CG 6100C software contains DSP resource management settings suitable for most applications. Therefore, in most cases you do not need to modify these resource definitions and can skip this section.

    However, if your application requires resources not specified in the sample board keyword files, you may need to customize the CG 6100C DSP resource management settings. You should understand how the CG 6100C DSP resource manager allocates resources before modifying the standard DSP resource definitions. For more information about how CG 6100C resources are calculated and how to set up CG 6100C DSP resource management, refer to Appendix B.

    3.8.1 Resource Management KeywordsTop of Page

    The following keywords are used to configure CG 6100C DSP resource management:
    Keyword

    Description

    DSP.C5x[x].files

    Specifies the data processing function modules (DPMs) to load to a specified CG 6100C board DSP.

    TCPFiles[x]

    Specifies the trunk control programs (TCP) loaded to the board.

    Resource[x].TCPs

    Specifies the TCPs the resource manager uses with the resource definition.

    Resource[x].Name

    Associates a name (character string) with a particular resource definition.

    Resource[x].Definitions

    Specifies a relational string of Data Processing Functions (DPFs), describes the functionality that can occur on a single port, and describes how and when functions execute in relation to each other.

    Resource[x].Size

    Specifies the number of channels or ports managed by the on-board resource manager.

    The following sections describe in detail how to use the DSP.C5x[x].Files and Resource[x].Definitions keywords. For more information about these and other CG 6100C DSP resource management keywords, refer to Chapter 6.

    3.8.2 Resource Definition String SyntaxTop of Page

    When specifying resource definitions, you can use a set of logical operators in board keyword files to combine DPFs and define the relationships between them.

    The following operators are supported in board keyword files:
    Operator

    Description

    &

    And

    |

    Exclusive Or

    ()

    Inclusion and the beginning and end of the resource string.

    \

    Line break.

    Note: Resource[x].Definitions strings always start with an open-parenthesis, and end with a close-parenthesis.

    3.8.3 DSP FilesTop of Page

    The DSP.C5x[x].Files keyword specifies the DPMs that are loaded to particular DSPs.

    Note: In general, most configuration files load DSPs 0-(n-1) with the same DSP files (where n equals the total number of DSP cores available).

    The CG 6100C DSP resource manager recognizes and manages only DPFs that are specified with the Resource[x].Definitions keyword. The DSP resource manager only recognizes DPFs if the DPMs in which they reside have been loaded to board DSPs. Load DPMs to the CG 6100C board by specifying the DPM name in a DSP.C5x[x].Files keyword string, where x represents a DSP or range of DSPs.

    If the DSP resource manager is allocating resources but finds that a DPF is not loaded to any DSP, it returns the error:
    Board Error 0xa0e: Function 0xXXXXXXXX not found on any engine.

    Where XXXXXXXX is the value of the DPF not found.

    Signaling and Voice DSPs

    The CG 6100C board contains two signaling DSPs (logical DSP 0 and logical DSP 1). Specify the following information in the configuration file to use these DSPs as signaling DSPs:

    DSP.C5x[0,1],Files = 8tsignal

    To use these DSPs as voice DSPs, specify (in the board keyword file) to load a non-signaling DPM onto these DSPs. If you are using them as signaling DSPs, you must use both of them as signaling DSPs.

    Example: Configuring Available DSP ResourcesTop of Page

    Use the DSP.C5x[x].Files keyword to load a particular DPMs functionality to specific DSPs on the CG 6100C board. Specify DPM files to load by using the following format:

    DSP.C5x[x].Files = dpmfilename dpmfilename dpmfilename...

    Where x refers to the DSP core or a range of DSP cores to load, and dpmfilename refers to a DPM to load to the corresponding DSP cores.

    For example, the string:

    DSP.C5x[1,5,11].Files = echo dtmf

    indicates to load cores DSP[1], DSP[5], and DSP[11] with the DPMs echo and dtmf.

    You can also specify to load the DPM files to a range of DSPs, as in the following:

    DSP.C5x[1..31].Files = echo dtmf ptf

    In this case, the string indicates to load cores DSP[1] through DSP[31] with the DPMs echo, dtmf, and ptf.

    3.8.4 Resource DefinitionsTop of Page

    The following sections provide several examples of Resource[x].Definitions strings that use the DPFs echo.ln20_apt100, dtmf.det_all, ptf.det_2f, and voice.rec_32. These examples specify which DPFs run on a specific DSP as well as the relationship between these DPFs (that is, which DPFs can run simultaneously and which can not).

    Example: All DPFs Running ExclusivelyTop of Page

    In the following example all the DPFs specified in the resource definition string run exclusively (in other words, only one DPF can run at a time). In this case, you would set the Resource[x].Definitions keyword string to:

    Resource[1].Definitions = ( dtmf.det_all | ptf.det_2f | voice.rec_32)

    Example: All DPFs Execute SimultaneouslyTop of Page

    In the following example all of the DPFs specified in the resource definition string can run at the same time. In this case, you would set the Resource[x].Definitions keyword string to:

    Resource[1].Definitions = ( echo.ln20_apt100 & dtmf.det_all & \

    ptf.det_2f & voice.rec_32 )

    3.8.5 Specifying Conditional Relationships Between DSP FunctionsTop of Page

    The following examples show definitions that specify conditional relationships between DPFs using the AND, OR operators and parenthesis to combine DPF string IDs. In these examples some DPFs or groups of DPFs run simultaneously while others run exclusively.

    Example 1Top of Page

    In the following example, any one OKI play DPF runs simultaneously with:

    You can run simultaneous 24 kbps OKI ADPCM play and record functions by specifying the following Resource[x].Definitions string:

    Resource[1].Definitions = ( dtmf.det_all & echo.ln20_apt25 &   \
    ptf.det_2f & (( oki.rec_24 & (oki.play_24_100 | oki.play_24_150 | \ oki.play_24_200 ) ) )
    This resource definition string reserves DSP resources so that one of the OKI play functions (oki.play_24_100, oki.play_24_150, or oki.play_24_200) is able to run simultaneously with the OKI record function (oki.rec_24).

    Example 2 Top of Page

    In this example, OKI play, OKI record, or tone functions run in the connected state, but not at the same time. Functions that execute simultaneously with OKI play, OKI record, or tone functions include:

    You can run a 24 Kbps ADPCM OKI play function or a 24 Kbps ADPCM OKI record function (a 24 Kbps ADPCM OKI play function never runs at the same time as 24 Kbps ADPCM OKI record function) by specifying the following Resource[x].Definitions string:

    Resource[1].Definitions = ( dtmf.det_all & echo.ln20_apt25 & \
    ptf.det_2f & ( oki.rec_24 | oki.play_24_100 | oki.play_24_150 \ |oki.play_24_200 | tone.gen ))

    This resource definition string allows either the record functions, one of the play functions, or the tone generator to run at the same time as the DTMF detection, echo cancellation, and precise tone detection functions.

    3.8.6 Echo CancellationTop of Page

    Only one echo canceller runs per call. Therefore, there should be only one occurrence of echo cancellation in the Resource[x].Definitions string.

    Note: Echo cancellation is supported only on IVR streams.



    Table of Contents Index NMS Glossary Previous Page Next Page Version


    Want to send us feedback on our documentation? Email: Tech_Pubs@nmss.com
    Copyright © 2001, NMS Communications Corporation. All rights reserved.