Table of Contents Index NMS Glossary Previous Page Next Page (Page 10 of 29 in this chapter) Version


Mtp3InitLinkCfg

Description

Initializes the provided data link configuration structure with default values and the link number, link type, and destination point code specified.

Prototype

MTP3_STATUS Mtp3InitLinkCfg (U8 board,
MTP3LinkCfg *pLinkCfg,
S16 linkNo,
U8 linkType,
U32 dpc)

board TX board number on which the desired MTP 3 task resides. Valid range is 1 to MAXBOARD (currently 8).

pLinkCfg Pointer to the MTP3LinkCfg structure to be initialized.

linkNo The link number to assign to this data link. Valid range is 0 to the maximum number of links - 1 configured with the Mtp3SetGenCfg function.

linkType The type of link. Must be either MTP3LNK_ANSI, MTP3LNK_ANSI88, or MTP3LNK_CCITT.

dpc Point code of the remote end point of this link.

Return values

Details

This function is provided as a quick way for an application to initialize an MTP3LinkCfg structure before calling Mtp3SetLinkCfg to set the data link configuration parameters. This function sets the link number, link type, and destination point code as specified and initializes all other fields in the Mtp3SetLinkCfg structure to their defaults. Refer to the MTP3LinkCfg structure for more information about its fields and their default values.

Note: There is a single transmit queue for delivery to the next lower layer (MTP 2). This queue will build up if the application is sending faster than MTP 2 can transmit data over the link. The pxQlen fields represent the queue length thresholds at which the internal transmit congestion priority is raised to the next level. For example, the default for p1Qlen is 32. This means that when the transmit queue size reaches 32 messages, the internal transmit congestion priority is raised from 0 to 1. 0 is the lowest priority, 3 is the highest. The congestion priority in combination with the discard priority (discPrior field) is used to determine what to do with new messages from an application when the stack is backed up. If a new message has a priority less than the congestion priority and less than the discard priority, the message is discarded. Otherwise MTP 3 attempts to queue the message for transmission to MTP 2 (assuming buffer space exists). Therefore a discard priority of 0 means that all messages will attempt to be queued regardless of the internal congestion priority.

The following structures are used for individual data link configuration in the MTP 3 task. Typically a pointer to an MTP3LinkCfg structure is passed to Mtp3InitLinkCfg where default values are set. These defaults are specified in the following table. If there is no default, either the field is unused or its value is passed as a parameter to Mtp3InitLinkCfg. In the latter case the parameter name is specified below. After initialization, an application may override zero to all of these values and then pass the pointer to the Mtp3SetLinkCfg function, which actually sets the configuration.

Most of the default values provided by Mtp3InitLinkCfg are be adequate for most applications.

typedef struct _MTP3LinkCfg
{
  U16 lnkSetId;           /* link set ID                                */
  U16 lnkId;              /* signalling link identity                   */
  U32 adjDpc;             /* Adlacent Destination Point Code            */
  U8  lnkPrior;           /* link priority within the link set          */
  U8  usePrior;           /* use message priority, or blast zero for
                           * all priorities                             */
  U16 msgSize;            /* message length                             */
  U8  msgPrior;           /* management message priority                */
  U8  lnkType;            /* link type ANSI or CCITT                    */
  U8  maxSLTtry;          /* maximun times to retry SLTM                */
  U8  spare1;             /* alignment                                  */
  S16 p0QLen;             /* size of the priority 0 Q                   */
  S16 p1QLen;             /* size of the priority 1 Q                   */
  S16 p2QLen;             /* size of the priority 2 Q                   */
  S16 p3QLen;             /* size of the priority 3 Q                   */
  U8  discPrior;          /* discard priority                           */
  U8  ssf;                /* sub service field                          */
  U8  lnkTstSLC;          /* link selection code for link test          */
  U8  tstLen;             /* link test pattern length                   */
  U8  tst[MTP3LNKTSTMAX]; /* link test pattern                          */
  MTP3LinkTimerCfg tmr;   /* timer configuration                        */
  U16 dstProcId;          /* destination processor id                   */
  U8  dstEnt;             /* entity                                     */
  U8  dstInst;            /* instance                                   */
  U8  prior;              /* priority                                   */
  U8  route;              /* route                                      */
  U8  selector;           /* lower layer selector                       */
  U8  spare2;             /* alignment                                  */
  MemoryId mem;           /* memory region and pool id                  */
  U8  dpcLen;             /* dpc or opc length                          */
  U8  lnkIndex;           /* Index into link array.  0 to n-1 in order
                           * defined in config                          */
  S16 spId;               /* service provider id                        */
   U8 dis;                /* initial link state (enabled/disabled) JMK  */
   U8 portType;           /* port type - T1/E1/MVIP or Serial - TEK     */
   U8 traceData;          /* trace data flag                            */
   U8 spare3;             /* End structure on even 4-byte boundardy     */
} MTP3LinkCfg;
Fields that do not appear in the following table are either unused or for internal use only. Those fields should not be modified by the user. Field names in bold indicate that the field can be updated on subsequent calls to Mtp3SetLinkCfg with the same linkNo.
Field Name

Description

lnkSetId

Link set number of which this link is a member. Valid range is 1 - 16, and defaults to 1.

adjDpc

Adjacent Destination Point Code. Must be specified via the dpc parameter.

lnkPrior

Link priority within the link set.

It is crucial that priorities are not skipped. A single link must always be zero. Two links can be assigned priorities 0,0 or 0,1, etc... Default value is 0.

msgSize

Maximum message length across this link.
Default value is 272 octets (Recommended).

msgPrior

Management message priority on this link.
Default value is 3 (highest)

lnkType

Protocol variant used on this link. Must be specified via the linkType parameter.

maxSLTtry

Maximum times to retry SLT message. Default value is 2.

p0Qlen

Transmit queue length threshold at which the congestion priority is raised to 0. Default value is 16.

p1Qlen

Transmit queue length threshold at which the congestion priority is raised to 1. Default value is 32.

p2Qlen

Transmit queue length threshold at which the congestion priority is raised to 2. Default value is 64.

p3Qlen

Transmit queue length threshold at which the congestion priority is raised to 3.

discPrior

Discard priority. Default value is 0.

lnkTstSLC

Link selection code for link test. This must match the configured value at the adjacent SP.
Default value is spId (linkNo) -1.

tstLen

Link test pattern length. Default value is 3.

tst

Link test pattern.

ssf

Subservice field. Default based on lnkType as shown here:

· MTP3SSF_NAT - LNK_ANSI or LNK_ANSI88

· MTP3SSF_INTL - LNK_CCITT

· MTP3SSF_RESERVE - Never defaulted to this.

· MTP3SSF_SPARE - Never defaulted to this.

tmr

Timer configuration structure. Refer to the MTP3LinkTimerCfg structure.

dpcLen

DPC and OPC length. Defaults based on lnkType as shown here:

· 24 - LNK_ANSI or LNK_ANSI88

· 14 - LNK_CCITT

dis

Initial link state. Default value is 0 (Enabled).

portType

Physical port type. PORT_TYPE_REMOTE indicates the link is physically present on the redundant board. Use PORT_TYPE_SERIAL for V.35 links. Use PORT_TYPE_TDM for T1/E1/MVIP/H.100/H.110 links.

typedef struct _MTP3LinkTimerCfg
{
  TimerCfg t1;   /* t1 - delay to avoid missequencing on
                  * changeover                                */
  TimerCfg t2;   /* t2 - waiting for changeover ack           */
  TimerCfg t3;   /* t3 - delay to avoid missequencing on
                  * changeback                                */
  TimerCfg t4;   /* t4 - waiting for first changeback ack     */
  TimerCfg t5;   /* t5 - waiting for second changeback ack    */
  TimerCfg t6;   /* t6 - delay to avoid missequencing on
                  * rerouting                                 */
  TimerCfg t7;   /* t7 - waiting for link connection ack      */
  TimerCfg t11;  /* t11 - transfer restricted timer           */
  TimerCfg t12;  /* t12 - waiting for uninhibit ack           */
  TimerCfg t13;  /* t13 - waiting for forced uninhibit        */
  TimerCfg t14;  /* t14 - waiting for inhibition ack          */
  TimerCfg t17;  /* t17 - delay to avoid oscillation of
                  * initial alignment failure                 */
  TimerCfg t22;  /* t22 - local inhibit test timer            */
  TimerCfg t23;  /* t23 - remote inhibit test timer           */
  TimerCfg t24;  /* t24 - stabilizing timer                   */
  TimerCfg t31;  /* t31 - BSN requested timer                 */
  TimerCfg t32;  /* t32 - SLT timer                           */
  TimerCfg t33;  /* t33 - connecting timer                    */
  TimerCfg t34;  /* t34 - periodic signalling link test timer */
  TimerCfg t40;  /* Redundancy bind timer                     */
  TimerCfg t41;  /* Redundancy disconnect request timer       */
  TimerCfg t42;  /* Redundancy flow control request timer     */
  TimerCfg t43;  /* Redundancy local processor status timer   */
  TimerCfg t44;  /* Redundancy unbind timer                   */
} MTP3LinkTimerCfg;

Fields that do not appear in the following table are either unused or for internal use only. Those fields should not be modified by the user. Field names in bold indicate that the field can be updated on subsequent calls to Mtp3SetLinkCfg with the same linkNo. Unless otherwise specified, the timer names correspond to the CCITT specification. Differences from the ANSI and/or CCITT specification are noted in parentheses in the description.
Field Name

Range
(in tenth/secs)

Description

t1

1 - 65535

Delay to avoid mis-sequencing on changeover.
Default value is 10.

t2

1 - 65535

Waiting for changeover acknowledgement. Default value is 10.

t3

1 - 65535

Time controlled diversion - Delay to avoid mis-sequencing on changeback. Default value is 10.

t4

1 - 65535

Waiting for first changeback acknowledgement.
Default value is 10.

t5

1 - 65535

Waiting for second changeback acknowledgement.
Default value is 10.

t6

1 - 65535

Delay to avoid mis-sequencing on controlled rerouting.
Default value is 10.

t7

1 - 65535

Waiting for data link connection acknowledgement.
Default value is 20.

t11

1 - 65535

Transfer restricted timer. Default value is 600.

t12

1 - 65535

Waiting for uninhibit acknowledgement. Default value is 12.

t13

1 - 65535

Waiting for forced uninhibit. Default value is 10.

t14

1 - 65535

Waiting for inhibition acknowledgement. Default value is 30.

t17

1 - 65535

Delay to avoid oscillation of initial alignment failure.
Default value is 10.

t22

1 - 65535

Local inhibit test timer (ANSI timer T20). Default value is 1100.

t23

1 - 65535

Remote inhibit test timer (ANSI timer T21).
Default value is 1100.

t24

1 - 65535

Stabilizing timer (ANSI timer N/A). Default value is 40.

t31

1 - 65535

BSN requested timer (internal timer, N/A to ANSI or CCITT specs). Default value is 50.

t32

1 - 65535

SLT timer (internal timer, N/A to ANSI or CCITT specs).
Default value is 100.

t33

1 - 65535

Connecting timer (internal timer, N/A to ANSI or CCITT specs). Default value is 200.

t34

1 - 65535

Periodic signaling link test timer (internal timer, N/A to ANSI or CCITT specs). Default value is 600.

t40

1 - 65535

Time to wait for a bind confirm from MTP 2 before sending another bind request. Default value is 30.

t41

1 - 65535

Time to wait for a disconnect confirm from MTP 2 before sending another disconnect request. Default value is 30.

t42

1 - 65535

Time to wait for a flow control confirm from MTP 2 before sending another flow control request. Default value is 30.

t43

1 - 65535

Time to wait for a status confirm from MTP 2 before sending another status request. Default value is 30.

t44

1 - 65535

Time to wait for an unbind confirm from MTP 2 before sending another unbind request. Default value is 30.

LINK_TRACE_DATA

TRUE, FALSE

TRUE starts tracing of all data between MTP 2 and MTP 3 on this link. Default value is FALSE.

See Also

Mtp3MgmtInit, Mtp3SetGenCfg, Mtp3SetLinkCfg



Table of Contents Index NMS Glossary Previous Page Next Page (Page 10 of 29 in this chapter) Version


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