Re: offer/answer rollback issue - draft-sipping-offeranswer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, all
Unfortunately a disproof was shown by Gao.
    A                   B  S0|  reINVITE/18x     |S0    |<----------------->|  S1|                   |S1    |  UPDATE           |  O2|------------------>|O2    |                   |    |       200(UPDATE) |    |         /---------|A2=S2    |        /          |    |       /      4xx  |  S0|<-----/------------|S0    |     /             |    |    /              |  S2|<--/               |    |                   |
The both state is NOT sync.
Regards,
Shinji
OKUMURA Shinji <shin@xxxxxxxxxxxxxxx>>Gao,>>Thank you for the chart.>I like these whiteboard discussion. :)>but an attached images may be refused by a security server >for some domain. >>I see your chart, it is interesting and very unfortunate network.>>    A                 P-CSCF                B>    |                   |                   |>  S0|  reINVITE/18x   S0|S0  reINVITE/18x   |S0>    |<----------------->|<----------------->|>  S1|                 S1|S1                 |S1>    |                   |               4xx |>    |   UPDATE          |             /-----|>    |------------------>|  UPDATE    /      | rollback to S0>  O2|                O2 |-----------/------>|>    |                   | O2       /        |O2>    |                   |         /         |>    |                   |  200   /          |>    |                   |<------/-----------|>    |              /----| S2   /            |answer2=S2>    |   4xx       /  S2 |     /             |>    |<-----------/------|<---/              |>  S0|           /    S0 | S0                |>    |          /        |                   |>    |   200   /         |                   |>  S2|<-------/          |                   |>    |                   |                   |>>there is a problem in the right side dialog.>this problem is just related to not b2bua but UAC(a part of P-CSCF).>>>4. UAS should reject UPDATE received between 4xx and ACK.>>   UAC should NOT send UPDATE between 4xx and ACK.>>By Ian's suggestion, I thought the above rule was meaningless, >but it seems to be still effective.>>According to this rule, B reject the UPDATE request.>>    A                 P-CSCF                B>  S0|  reINVITE/18x   S0|S0  reINVITE/18x   |S0>    |<----------------->|<----------------->|>  S1|                 S1|S1                 |S1>    |                   |               4xx |>    |   UPDATE          |             /-----|>    |------------------>|  UPDATE    /      | rollback to S0>  O2|                O2 |-----------/------>|>    |                   | O2       /        |O2>    |                   |         /         |>    |                   |  4xx   /          |>    |                   |<------/-----------|>    |              /----| S1   /            |S0>    |   4xx       /  S1 |     /             |>    |<-----------/------|<---/              |>  S0|           /    S0 | S0                |>    |          /        |                   |>    |   4xx   /         |                   |>  S0|<-------/          |                   |>    |                   |                   |>>all states of entities are in synch.>>Another scenario.>UPDATE request was later than ACK...>>    A                   B>  S0|  reINVITE/18x     |S0>    |<----------------->|>  S1|                   |S1>    |                   |>    | UPDATE            |>  O2|-----\             |>    |      \       4xx  |>  S0|<------\-----------|>    |        \          | rollback to S0>    |         \         |>    | ACK      \        |>    |-----------\------>|>    |            \      |>    |             \---->| O2>    |               200 |>  S2|<------------------| answer2=S2>    |                   |>>This is no problem too.>>Newer rule>>UAC Behavior>    After receiving 4xx, if UAC receive 200 response with answer>    to UPDATE that sent before receiving 4xx, UAC SHOULD treat it>    as if UAC sent the UPDATE after sending ACK.>    (UAC should NOT send UPDATE between 4xx and ACK.)>>UAS Behavior>    UAS SHOULD reject UPDATE received between 4xx and ACK.>>This rule seems to be suitable for draft-sipping-sip-offeranswer/6.2.>>I want to hear the opinion of Paul Kyzivat.>>Regards,>>Shinji>>gao.yang2@xxxxxxxxxx>>1. Chart>>By your rule, in A/B's view, UPDATE/200OK is after 4xx(/failure of>>Re-INVITE).>>>>But in P-CSCF's view, UPDATE/200OK is before 4xx.>>>>2. My proposal has no such problem.>>Because: even if A/B/P-CSCF has different view of the order, but the state>>is decided by the property of Offer/Answer in UPDATE/200OK.>>>>If the Offer/Answer is just "refresh precondition state table", it has no>>influence on the final session state.>>If the Offer/Answer has modification, it is committed.>>>>OKUMURA Shinji <shin@xxxxxxxxxxxxxxx>>>发件人:  sipping-bounces@xxxxxxxx>>2009-03-06 00:10>>>>收件人>>gaoyang <gao.yang.seu@xxxxxxxxxxx>, christer.holmberg@xxxxxxxxxxxx,>>sipping@xxxxxxxx>>抄送>>>>主题>>Re:  My proposal has no racing condition>>>>Gao,>>>>AFAIK, providing aspecific service, P/S-CSCF and AS are defined as B2BUA.>>>>>Yes. I agree with you.>>>>>>But I tried to give you one example(P-CSCF).>>>>>>The order of signals in P-CSCF's view can be different with UAC's view.>>>>>>For example, UPDATE and 200OK before 4xx. Then P-CSCF can have different>>>session state.>>>>>>>>>>>>> Christer,>>>>>>>> >Hi,>>>> >>>>> >There are also "B2BUAs acting as proxies", that do not terminate the>>>> >dialogs.>>>>>>>> "B2BUAs acting as proxies" is a terrible entities !>>>> It should behave as B2BUA.>>>>>>>> Regards,>>>>>>>> Shinji_______________________________________________Sipping mailing list  https://www.ietf.org/mailman/listinfo/sippingThis list is for NEW development of the application of SIPUse sip-implementors@xxxxxxxxxxxxxxx for questions on current sipUse sip@xxxxxxxx for new developments of core SIP


[Index of Archives]     [IETF Announce]     [IETF Discussion]     [Linux SCSI]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Big List of Linux Books]

  Powered by Linux