View Issue Details

IDProjectCategoryView StatusLast Update
000536710000-004: ServicesSpecpublic2023-06-19 14:16
ReporterV. Monfort Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionreopened 
Product Version1.03 
Summary0005367: Subscribtion services: KeepAliveCounter shall be decremented in state #9
Description

Hello,

As it was already raised in description of https://apps.opcfoundation.org/mantis/view.php?id=33 there is an issue with the KeepAliveCounter management regarding the description of the MaxKeepAliveCount parameter in the service:

  • requestedMaxKeepAliveCount (table 86 of part4 v1.03): "When the publishing timer has expired this number of times without requiring any NotificationMessage to be sent, the Subscription sends a keep-alive Message to the Client."
  • Table 83 part 4 v1.03 state changes (on publishing timer expiration) are:
    • #9: NORMAL -> KEEP ALIVE: no notification to send => keep alive timer reset
    • #15: KEEP ALIVE -> KEEP ALIVE: no notification to send && KeepAliveCounter == 1 => send a keep alive + keep alive timer reset
    • #16: KEEP ALIVE -> KEEP ALIVE: no notification to send && KeepAliveCounter > 1 => KeepAliveCounter decremented

Example of execution using the above definition:
Init: state = NORMAL && MaxKeepAliveCount = 2
Cycle 1: transition #9 => state = KEEP ALIVE && KeepAliveCounter = 2
Cycle 2: transition #16 => state = KEEP ALIVE && KeepAliveCounter = 1
Cycle 3: tranisition #15 => SEND KEEP ALIVE && state = KEEP ALIVE && KeepAliveCounter = 2
Cycle 4: transition #16 => state = KEEP ALIVE && KeepAliveCounter = 1
Cycle 5: transition #15 => SEND KEEP ALIVE && state = KEEP ALIVE && KeepAliveCounter = 2

As you can see, starting from NORMAL state there is 3 publishing timer expiration (cycles 1-2-3) before a KeepAlive is sent whereas starting from KEEP ALIVE state we only have 2 publishing timer expiration (cycles 4-5) before a KeepAlive is sent as expected due to MaxKeepAliveCount value configured.

Therefore to be compliant with the description of requestedMaxKeepAliveCount in table 86, the state transition #9 shall reset the KeepAliveCounter but it shall also decrement it after the reset in the same transition.

Best regards

Steps To Reproduce

See example in description

TagsNo tags attached.
Commit Version
Fix Due Date

Relationships

related to 0006828 closedPaul Hunkar CTT UA Scripts SubscriptionService - Subscription Basic - test cases 17, 18 and 20 

Activities

V. Monfort

2020-01-23 13:44

reporter   ~0011470

In case KeepAlive is decremented in #9, the conditions in #15 and 0000017 shall also be modified to be KeepAliveCounter <= 1 instead of KeepAliveCounter = 1 to manage the case in which MaxKeepAliveCount = 1.

Matthias Damm

2020-09-16 11:58

developer   ~0012850

5.13.1.2 State table

#9
Added 'KeepAliveCounter--' to Action

#15
Conditions
Changed
KeepAliveCounter == 1
to
KeepAliveCounter <= 1

Changed in
OPC 10000-4 - UA Specification Part 4 - Services 1.05.0 Draft10.docx

Jim Luth

2020-09-16 14:32

administrator   ~0012855

Last edited: 2020-09-16 14:33

Agreed to changes in Virtual F2F.
Needs 1.04 Errata to close.

Jim Luth

2020-09-17 15:02

administrator   ~0012907

Agreed to changes in Errata in Virtual F2F.

Paul Hunkar

2021-04-22 14:32

developer   ~0014238

This should also have had an errata for 1.03 not just to 1.04

(see related CTT issue)

Matthias Damm

2023-06-19 13:42

developer   ~0019510

Created errata for 1.03

Jim Luth

2023-06-19 14:16

administrator   ~0019512

Agreed to 1.03 Errata in Virtual F2F.

Issue History

Date Modified Username Field Change
2020-01-06 17:37 V. Monfort New Issue
2020-01-23 13:44 V. Monfort Note Added: 0011470
2020-05-19 18:03 Jim Luth Project UA Specification => 10000-004: Services
2020-05-19 18:03 Jim Luth Assigned To => Matthias Damm
2020-05-19 18:03 Jim Luth Status new => assigned
2020-09-16 11:58 Matthias Damm Status assigned => resolved
2020-09-16 11:58 Matthias Damm Resolution open => fixed
2020-09-16 11:58 Matthias Damm Note Added: 0012850
2020-09-16 14:32 Jim Luth Note Added: 0012855
2020-09-16 14:33 Jim Luth Note Edited: 0012855
2020-09-17 15:02 Jim Luth Status resolved => closed
2020-09-17 15:02 Jim Luth Fixed in Version => 1.05
2020-09-17 15:02 Jim Luth Note Added: 0012907
2021-04-22 10:56 Alexander Allmendinger Relationship added related to 0006828
2021-04-22 14:32 Paul Hunkar Status closed => feedback
2021-04-22 14:32 Paul Hunkar Resolution fixed => reopened
2021-04-22 14:32 Paul Hunkar Note Added: 0014238
2021-04-27 16:22 Jim Luth Status feedback => assigned
2023-06-19 13:42 Matthias Damm Status assigned => resolved
2023-06-19 13:42 Matthias Damm Note Added: 0019510
2023-06-19 14:16 Jim Luth Status resolved => closed
2023-06-19 14:16 Jim Luth Note Added: 0019512