Subject: Washington Issue 22 - Root Package

From: Brian Rosen <[email-masked]>
Date: Mon, 15 Nov 1999 17:37:44 -0500

A number of issues were raised in the Washington meeting that
were "send to the list".  This is one of these issues, with the
problem and my suggested fix.

Problem

Base package annex does not specify the base Root package
Need a definition of this package

Proposed Solution:
Base Root Package
PackageID: root (0x00??)
Version: 1
Extends: None
Description:
This package defines Gateway wide properties.

Properties
        MaxTerminationsPerContext
                PropertyID: maxTerminationsPerContext (0x0001)
                The maximum number of allowed terminations in a context
                See section 6.1
                Type: Integer
                Possible Values: any integer
                Defined In: TerminationState

        normalMGExecutionTime
                PropertyId: normalMGExecutionTime
                Settable by the MGC to indicate the interval within
                        which the MGC expects a response to any
                        transaction from the MG
                Type: Integer
                Possible Values: any integer, represents milliseconds
normalMGCExecutionTime
                PropertyId: normalMGCExecutionTime
                Settable by the MGC to indicate the interval within
                        which the MG should expects a response to any
                        transaction from the MGC
                Type: Integer
                Possible Values: any integer, represents milliseconds
ProvisionalResponseTimerValue
                PropertyId: ProvisionalResponseTimerValue
                Indicates the time within which to expect a Pending
                        Response if a Transaction cannot be completed.
                        Initially set to normalMGExecutionTime or
                        normalMGCExecutionTime as appropriate, but
                        may be lowered.
Events
        None
Signals
        None
Statistics
        None
Procedures
        None

Brian

---

From: Christian Groves <[email-masked]>
Date: Tue, 23 Nov 1999 14:58:23 +0100

G'Day Brian,

Isn't there a situation where?

The MGC sends a transaction (transID 123)[time 0ms]
The MG sends transaction reply (transID 123)[time 990]
The MGC repeats transaction (transID 123)[time 1000] because
normalexecution [1000] timer in MGC expires.
The MGC receives (transID 123) at time 1005ms.
The MG receives (transID 123) at time 1015ms.

We've just had signalling cross over.

Should the MG treat transID123 as a new transaction or should it
consider that the transaction has been repeated?

I'd say for the that for a certain X period of time then it should
consider it to be the same and discard the 2nd Transaction request.
After this time then it should be a new transaction ID.

Should there be a timer between the sending of a reply and the
determination that a transaction containing the same transID is a new
transaction not a repeated one?

This won't occur often, probably only when timers are stuffed up but no
the less it can occur and may cause some pretty "interesting" behaviour
in the MG and MGC. But being 'good' protocol designers we should
probably fix this.

Therefore I propose:
> TransactionExpiryTimerValue
>                 PropertyId: TransactionExpiryTimerValue
>                 When an duplicate transactionID is received it
>                 indicates the period of time that the transaction
>                 shall be discarded. After this time the transaction
>                 is treated as a new transaction.

Cheers, Christian

---

From: Harpreet Singh Anand <[email-masked]>
Date: Thu, 25 Nov 1999 17:18:16 +0530

Hello Brian,

A few questions on normalExecutionTime and ProvisionalResponseTimerValue:

1. The purpose of having normalMgExecutionTime is to tell MG, how much time MGC
expects MG to take for executing a transaction. Therefore, if MG would take more
time then, the MG should send a TransPending.

The same purpose is being served by ProvisionalResponseTimerValue, whereby, MGC
tells MG to send a provisional response every ProvisionalResponseTimerValue
millisecs.

MG would *always* be using ProvisionalResponseTimerValue to start a provisional
timer.

When would MG use normalMgExecutionTime ? I believe only
ProvisionalResponseTimerValue is sufficient.

>                         normalMGCExecutionTime as appropriate, but

How can ProvisionalResponseTimerValue be initialised to either
normalMGExecutionTime  or normalMGCExecutionTime  ?

It has only one meaning and should be initialised to normalMGExecutionTime.

Regards,
Harpreet

_________________________________
Harpreet Singh Anand
Ficon Technology
E-mail :  mailto:[email-masked]
Web    :  http://www.ficon-tech.com