报告控制块存储结构,状态机

来源:互联网 发布:windows vista 安装ssd 编辑:程序博客网 时间:2024/06/15 14:06

     图1中显示的是报告控制块在ACSI中的存储结构,对于一个配置中的RCB视为RCB类型,根据配置的max值,程序中将一个RCB类型实例化为maxRCB实例,每个RCB的实例名称程序中定义为cbName+index的组合。关于命名规则,有两种方式:第一种是上述描述的,但是前提是RCB中的属性indexed=true(目前标准中没有这个属性设置,下一个版本标准考虑的,默认为true);第二种情况,当indexed=false,所有实例名称都定义为cbName,此时这种程序架构不可取,因为出现了一个BR/RP节点下有多个重名DO,违反唯一性原则。表1是对图1中控制块在MMS中的映射情况。

 

 

 

 

                               表1 BRCB/URCBMMS类型定义映射表

 

 

BRCBMMS类型定义的映射

ACSI组件名称

MMS有名组件名称

MMS类型

说明

RptID

RptID

Visable String(8.1.2.5)

RptEna=true时,不能被写

RptEna

RptEna

Bool

 

DatSet

DatSet

Object Refenence(8.1.3.2)

RptEna=true时,不能被写

ConfRev

ConfRev

Int16U

不能被写

OptFlds

OptFlds

BitString(Table38)

RptEna=true时,不能被写

BufTm

BufTm

Int16U

c1 c2 RptEna=true时,不能被写

SqNum

SqNum

Int32U

不能被写

TrgOps

TrgOps

BitString

(TriggerConditions8.1.3.8)

 c1 c2 RptEna=true时,不能被写

IntgPd

IntgPd

Int32U

RptEna=true时,不能被写

GI

GI

bool

 

PurgeBuf

PurgeBuf

bool

RptEna=true时,不能被写

EntryID

EntryID

EntryID(8.1.3.4)

RptEna=true时,不能被写

TimeofEntry

TimeofEntry

EntryTime(8.1.3.6)

不能被写

 ResvTms(in endition 2) ResvTmsINT16  C3 RW RptEna = True时不能被写

 

Notes and Conditions

Note:  An attribute that is marked “r” indicates that the BRCB attribute may be obtained (e.g. read) through the use of the GetBRCBValues service.    An attribute that is marked “w” indicates that the BRCB attribute may be set (e.g. written) through the use of the SetBRCBValues service. 
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

c1: These attributes may only be set when RptEna = FALSE.  If a SetBRCBValues service is executed against these attributes and causes a change of value, the implementation shall execute a purge of the buffered events as if PurgeBuf had been set to TRUE.
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

c2: These attributes may only be set when RptEna = FALSE.  A SetBRCBValues of these parameters, when RptEna=TRUE, shall fail.


c3: This attribute is optional.  If the attribute is not present, then the reservation of the control block shall occur based upon pre-configuration or the client that performs the first SetBRCBValues with RptEna=TRUE.

------------------------------------------------------>Tissue 322

 

 

URCBMMS类型定义的映射

ACSI组件名称

MMS有名组件名称

MMS类型

说明

RptID

RptID

Visable String(8.1.2.5)

RptEna=true时,不能被写

RptEna

RptEna

Bool

 

Resv

Resv

Bool

RptEna=true时,不能被写

DatSet

DatSet

Object Refenence(8.1.3.2)

RptEna=true时,不能被写

ConfRev

ConfRev

Int32U

不能被写

OptFlds

OptFlds

BitString(Table38)

RptEna=true时,不能被写

BufTm

BufTm

Int16U

RptEna=true时,不能被写

SqNum

SqNum

Int16U

不能被写

TrgOps

TrgOps

BitString

(TriggerConditions8.1.3.8)

RptEna=true时,不能被写

IntgPd

IntgPd

Int32U

RptEna=true时,不能被写

GI

GI

bool


 

disabled: the BRCB is available. No reports shall be issued.

Upon power-up, buffering shall be started if the BRCB’s DatSet attribute contains a reference to an existing DataSet .  If the DatSet attribute contains a NULL value or a reference to an invalid DataSet, then no tranisition shall be allowed from the disabled state.

When a client uses SetBRCBValues to set the  EntryID attribute value and the set EntryID does not exist within the queue of entries, a ServiceError of parameter-value-inappropriate shall be returned.

If the EntryID value, in the SetBRCBValues, is zero(0), this value is reserved to be used by the client to resync to the first entry  in the queue, a transition from disabled to resync shall occur.

 If the set value of the EntryID exists within the queue of entries, a SetBRCBValues response+ is returned and the BRCB state shall transition from disabled to resync

When a client uses SetBRCBValues to set RptEna=TRUE, the state shall transition to the enabled state.

resync: the BRCB is available. No reports shall be issued.

When a client uses SETBRCBValues to set an EntryID attribute value and the EntryID value exists within the queue of entries, a SetBRCBValues response+ is returned and the BRCB state shall remain resync.

If the value of the set EntryID does not exist within the queue of entries, a ServiceError of parameter-value-inappropriate shall be returned and the BRCB state shall transition to disabled.

If the EntryID value, in the SetBRCBValues, is zero(0), this value is reserved to be used by the client to resync to the first entry  in the queue, the state shall transition from resync to disabled.

When an association is lost  the state shall transition to disabled.

When a client uses SetBRCBValues to set RptEna=TRUE the state shall transition to enabled.

enabled: the BRCB shall generate reports for the buffered events and new events as specified in the BRCB.

When an association is lost the state shall transition to disabled.

When a client uses SETBRCBValues to set RptEna=FALSE the state shall transition to disabled and reporting shall cease

These attributes determine the service procedures of the Report service. The impact of the various values shall be as defined in the following attribute definitions.

Logically, the Report Handler has a queue of entries that are used to sequence the formatting and “transmission” (e.g. queuing to the N-1 layer) reports.  The Report Handler, logically, has a pointer to the next entry to be queue for formatting and transmission.

<!--[if !supportAnnotations]-->

 

 

 

A SetReportControlValues of the attribute TrgOps shall have the same effect as setting purgeBuf to TRUE.  if the attribute value changes.

------------------------------------>Tissue 322
The parameter BufOvfl shall indicate to the client that entries within the buffer may have been lost..  The detection of possible loss of information occurs when a client requests a resync to a non-existent entry or to the first entry in the queue. 
The Report Handler shall set BufOvfl = TRUE in the first report that is sent  after the transition from disabled to enabled.  Subsequent reports shall have BufOvfl = FALSE.
Information can also be lost if there are resource constraints that are encountered during the enabled state (e.g. bandwidth, memory due to a high influx of notifications, etc..). Implementations shall discard  the oldest Entry(s) in tbe queue in order to accept new notifications.  If one of Entrys discarded causes the Report Handler to move the pointer to the Next Entry for transimission, the implementation shall indicated BufOvfl=TRUE in the next entry that is formatted and transmitted only. 
 
 
Figure 8 shows an example where an entry is discarded that has already been formatted and queued for transmission and therefore BufOvfl shall not be set TRUE.
Figure 9 shows an example where an entry is discarded that has not been formatted and queued for transmission.  Therefore, BufOvfl shall be set TRUE in the next report genereated for transmission.

 

原创粉丝点击