Subject: RE: [Megaco] context ALL and requests for wildcard response

From: Frank Reno <[email-masked]>
Date: Tue, 22 Nov 2005 11:32:08 -0800 (PST)

Hello,

Option 3 seems pretty ugly to me. Do we really want the reply to an action request for one context to be scattered amnongst multiple action replies?
What if the request were:

TRANSACTION = 81573 {
 CONTEXT = * {
  MODIFY = a/*,
  W-MODIFY = b/*,
  MODIFY = c/*,
  W-MODIFY = d/*,
  MODIFY = e/*
 }
}

Is this the suggested reply?

REPLY = 81573 {
 CONTEXT = 1 {
  MODIFY = a/1,
  MODIFY = a/2
 },
 CONTEXT = 2 {
  MODIFY = a/3,
  MODIFY = a/4
 },
 CONTEXT = * {
  MODIFY = b/*  
 },
 CONTEXT = 1 {
  MODIFY = c/1,
  MODIFY = c/2
 },
 CONTEXT = 2 {
  MODIFY = c/3,
  MODIFY = c/4
 },
 CONTEXT = * {
  MODIFY = d/*  
 },
 CONTEXT = 1 {
  MODIFY = e/1,
  MODIFY = e/2
 },
 CONTEXT = 2 {
  MODIFY = e/3,
  MODIFY = e/4
 }
}

This, following Option 2, seems cleaner and more in line with the general behavior of the protocol.
Is this not allowable?

REPLY = 81573 {
 CONTEXT = 1 {
  MODIFY = a/1,
  MODIFY = a/2,
  MODIFY = b/*,
  MODIFY = c/1,
  MODIFY = c/2,
  MODIFY = d/*,
  MODIFY = e/1,
  MODIFY = e/2
 },
 CONTEXT = 2 {
  MODIFY = a/3,
  MODIFY = a/4,
  MODIFY = b/*,
  MODIFY = c/3,
  MODIFY = c/4,
  MODIFY = d/*,
  MODIFY = e/3,
  MODIFY = e/4
 }
}

The idea that the merging of action replies is based on a command-level flag seems pretty bad.

If there are numerous commands and some in the middle lead to errors, it's possible that several contexts
could be processed before the wildcarded response flag was ever encountered. Is the MG supposed
to go back and try to merge these responses?

Frank

-----Original Message-----

Option 3 would be the way to go.  Note that wildcarded action requests
generally expect multiple action replies, so going with option 3 should
not cause any problems.

Kevin 

-----Original Message-----
From: megaco-bounces at ietf.org [mailto:megaco-bounces at ietf.org] On Behalf
Of John Fisher
Sent: Tuesday, November 08, 2005 1:23 AM
To: megaco at ietf.org
Subject: [Megaco] context ALL and requests for wildcard response

Dear Megaco members,

Suppose an action for all contexts contains two commands, one command
requests a wildcard response, and the other does not. For example
TRANSACTION = 81573 {
  CONTEXT = * {
    W-SUBTRACT = rtp/* { <descriptors omitted> },
    MODIFY = al/* { <descriptors omitted> }
  }
}

I can think of a few different ways for an MG to handle this situation.

1. Perhaps it could be argued that the action contradicts itself, that
commands in an action for all contexts should either all request the
wildcard response or none of them request the wildcard response, so the
appropriate response would be an error code perhaps REPLY = 81573 {
  CONTEXT = * { ERROR = 443 }
}

2. Honour the request for the wildcard response only at the command
level and not at the action level in this situation.
REPLY = 81573 {
  CONTEXT = 1 {
    SUBTRACT = rtp/* { <descriptors omitted> },
    MODIFY = al/1 { <descriptors omitted> },
    MODIFY = al/2 { <descriptors omitted> }
  },
  CONTEXT = 2 {
    SUBTRACT = rtp/* { <descriptors omitted> },
    MODIFY = al/3 { <descriptors omitted> }
  }
}

This would mean that the entire action would need to be examined before
building the response to any particular command.

3. Start a new action in the response for each change in wildcard
response requested/wildcard response not requested in the list of
commands: eg.
REPLY = 81573 {
  CONTEXT = * {
    SUBTRACT = rtp/* { <descriptors omitted> }
  },
  CONTEXT = 1 {
    MODIFY = al/1 { <descriptors omitted> },
    MODIFY = al/2 { <descriptors omitted> }
  },
  CONTEXT = 2 {
    MODIFY = al/3 { <descriptors omitted> }
  }
}

What is the recommendation?

---------------------------------
 Yahoo! FareChase - Search multiple travel sites in one click.  

_______________________________________________
Megaco mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/megaco

---

From: "John Fisher" <[email-masked]>
Date: Wed, 23 Nov 2005 15:37:38 +1100

I like option 1, why would anyone want an action to contain two commands,
one requesting a wildcard response, and one not? Why not just write two
actions?

To me this example highlights a conceptual problem with the protocol as it
stands. The wildcard response has been requested using a syntactic element
of the command, but potentially applies at the action level as well as the
command level.

I think a different syntax should have been invented for a request for a
wildcard response at the action level: the existing syntax only makes good
sense for a request for a wildcard response at the command level.

CONTEXT = * {} is supposed to be the same as context = x {}, context= y{}
... where x,y ... are all the contexts in the MG. (1)

The request for wildcard response violates that.
If we had something like CONTEXT = W-* {} which would carry it with an
implied W- for each command in the action, and requests for wildcard
response with the existing syntax were only honoured at the command level,
the response to commands such as CONTEXT = * {command = W-*} would not
violate (1).

Carrying on this chain of reasoning, perhaps one could consider that a W- in
any command in a context all action carries an implied W- for the entire
action, and so every command in the action, giving us option 4

REPLY = 81573 {
  CONTEXT = * {

-----Original Message-----
From: [email-masked] [mailto:[email-masked]]On Behalf Of
Frank Reno
Sent: Wednesday, 23 November 2005 6:32 AM
To: [email-masked]
Subject: RE: [Megaco] context ALL and requests for wildcard response

Hello,

Option 3 seems pretty ugly to me. Do we really want the reply to an action
request for one context to be scattered amnongst multiple action replies?
What if the request were:

TRANSACTION = 81573 {
 CONTEXT = * {
  MODIFY = a/*,
  W-MODIFY = b/*,
  MODIFY = c/*,
  W-MODIFY = d/*,
  MODIFY = e/*
 }
}

REPLY = 81573 {
 CONTEXT = 1 {
  MODIFY = a/1,
  MODIFY = a/2
 },
 CONTEXT = 2 {
  MODIFY = a/3,
  MODIFY = a/4
 },
 CONTEXT = * {
  MODIFY = b/*
 },
 CONTEXT = 1 {
  MODIFY = c/1,
  MODIFY = c/2
 },
 CONTEXT = 2 {
  MODIFY = c/3,
  MODIFY = c/4
 },
 CONTEXT = * {
  MODIFY = d/*
 },
 CONTEXT = 1 {
  MODIFY = e/1,
  MODIFY = e/2
 },
 CONTEXT = 2 {
  MODIFY = e/3,
  MODIFY = e/4
 }
}

This, following Option 2, seems cleaner and more in line with the general
behavio!
 r of the protocol.
Is this not allowable?

REPLY = 81573 {
 CONTEXT = 1 {
  MODIFY = a/1,
  MODIFY = a/2,
  MODIFY = b/*,
  MODIFY = c/1,
  MODIFY = c/2,
  MODIFY = d/*,
  MODIFY = e/1,
  MODIFY = e/2
 },
 CONTEXT = 2 {
  MODIFY = a/3,
  MODIFY = a/4,
  MODIFY = b/*,
  MODIFY = c/3,
  MODIFY = c/4,
  MODIFY = d/*,
  MODIFY = e/3,
  MODIFY = e/4
 }
}

The idea that the merging of action replies is based on a command-level flag
seems pretty bad.

If there are numerous commands and some in the middle lead to errors, it's
possible that several contexts
could be processed before the wildcarded response flag was ever encountered.
Is the MG supposed
to go back and try to merge these responses?

Frank

-----Original Message-----

Kevin

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf
Of John Fisher
Sent: Tuesday, November 08, 2005 1:23 AM
To: [email-masked]
Subject: [Megaco] context ALL and requests for wildcard response

Dear Megaco members,