You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue summarizes the functionality of the existing Fault Injection Code in ETISS and lists existing problems with it:
1.1 Functionality
The core concept is that a VirtualStruct, aka an Injector, checks whether one of its assigned Triggers is satisfied and then applies the corresponding Actions through the static Stressor that manages all Fault s registered through ETISS' configuration.
A Fault has a set of Triggers and a set of Actions.
BITFLIP: Flips the target bit of the target Field equal to exclusive or of Field word with newval = newval ^ (1<<bit);
Command: Calls the Injectors applyCustomAction with the given string as an argument.
INJECTION: Injects a new Fault into the simulation, e.g., see TIMERELATIVE Trigger
NOP: No Action operation - invalid
1.2 Existing Problems / Todos
To allow Action being applied by the Stressor all VirtualStructs, e.g., the CPUCore, have to be mounted to the static VirtualStruct::root(). This is needed to allow the Stressor to resolve all Injectors when a faults schedule, e.g., faults.xml, is configured.
Field has constant access flags denying fault injection to itself. A Field must be constructed as injectable otherwise it is not.
NOP type Triggers and Actions lead to simulation errors instead of "don't care"s.
This issue summarizes the functionality of the existing Fault Injection Code in ETISS and lists existing problems with it:
1.1 Functionality
The core concept is that a
VirtualStruct
, aka anInjector
, checks whether one of its assignedTrigger
s is satisfied and then applies the correspondingAction
s through the staticStressor
that manages allFault
s registered through ETISS' configuration.A
Fault
has a set ofTrigger
s and a set ofAction
s.Existing
Trigger
types are:META_COUNTER
: TheTrigger
has a sub trigger which has to fire a certain number (count) of times until theTrigger
firesVARIABLEVALUE
: The trigger condition is satisfied if the associated variableField
is equal to a constant valueTIME
: The trigger condition is satisfied, if ETISS simulation time has reached the given constant time value of the triggerTIMERELATIVE
: On the first check of theTrigger
condition the given time value is added to the current simulation time to make aTIME
type triggerNOP
: No trigger operation - invalidExisting
Action
types are:BITFLIP
: Flips the target bit of the targetField
equal to exclusive or ofField
word withnewval = newval ^ (1<<bit);
Command
: Calls theInjector
s applyCustomAction with the given string as an argument.INJECTION
: Injects a newFault
into the simulation, e.g., seeTIMERELATIVE
TriggerNOP
: No Action operation - invalid1.2 Existing Problems / Todos
Action
being applied by theStressor
allVirtualStruct
s, e.g., the CPUCore, have to be mounted to the staticVirtualStruct::root()
. This is needed to allow theStressor
to resolve allInjector
s when a faults schedule, e.g.,faults.xml
, is configured.Field
has constant access flags denying fault injection to itself. A Field must be constructed as injectable otherwise it is not.NOP
typeTrigger
s andAction
s lead to simulation errors instead of "don't care"s.Stressor::firedTrigger
callingStressor::addFault
inINJECTION
typeAction
s result in deadlock because both take same mutex.Field
fault capability with only supportingBITFLIPS
The text was updated successfully, but these errors were encountered: