41 lines
13 KiB
XML
41 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="529.251px" preserveAspectRatio="none" style="width:513px;height:529px;" version="1.1" viewBox="0 0 513 529" width="513.7567px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="248.7235" x="131.7011" y="17.7441">A5 FLOW — three notification protocols on one target slot</text><line style="stroke: #A80036; stroke-width: 0.8154868882467008; stroke-dasharray: 5.0,5.0;" x1="33.435" x2="33.435" y1="50.5306" y2="497.9966"/><line style="stroke: #A80036; stroke-width: 0.8154868882467008; stroke-dasharray: 5.0,5.0;" x1="191.2317" x2="191.2317" y1="50.5306" y2="497.9966"/><line style="stroke: #A80036; stroke-width: 0.8154868882467008; stroke-dasharray: 5.0,5.0;" x1="359.222" x2="359.222" y1="50.5306" y2="497.9966"/><line style="stroke: #A80036; stroke-width: 0.8154868882467008; stroke-dasharray: 5.0,5.0;" x1="428.5384" x2="428.5384" y1="50.5306" y2="497.9966"/><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="54.6376" x="6.5239" y="26.0808"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="43.2208" x="12.2323" y="41.3785">Sender p3</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="54.6376" x="6.5239" y="497.1811"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="43.2208" x="12.2323" y="512.4788">Sender p3</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="60.346" x="161.0587" y="26.0808"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="48.9292" x="166.7671" y="41.3785">Receiver p2</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="60.346" x="161.0587" y="497.1811"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="48.9292" x="166.7671" y="512.4788">Receiver p2</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="66.8699" x="325.787" y="26.0808"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="55.4531" x="331.4954" y="41.3785">TCB notify[0]</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="66.8699" x="325.787" y="497.1811"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="55.4531" x="331.4954" y="512.4788">TCB notify[0]</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="56.2686" x="400.8118" y="26.0808"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="44.8518" x="406.5202" y="41.3785">Verifier p0</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="56.2686" x="400.8118" y="497.1811"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="44.8518" x="406.5202" y="512.4788">Verifier p0</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="68.0932" y1="75.796" y2="75.796"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="68.0932" x2="68.0932" y1="75.796" y2="86.3973"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="34.6582" x2="68.0932" y1="86.3973" y2="86.3973"/><polygon fill="#8095A1" points="42.8131,83.1354,34.6582,86.3973,42.8131,89.6592,39.5511,86.3973" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="145.9722" x="39.5511" y="71.5367">02 arm; wait for phase 1 + Blocked</text><polygon fill="#8095A1" points="349.4361,106.7697,357.591,110.0316,349.4361,113.2936,352.6981,110.0316" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="191.2317" x2="354.3291" y1="110.0316" y2="110.0316"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="148.4186" x="196.9401" y="105.7724">03 ulTaskNotifyTake(clear); Blocked</text><polygon fill="#8095A1" points="349.4361,130.4041,357.591,133.666,349.4361,136.9279,352.6981,133.666" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="354.3291" y1="133.666" y2="133.666"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="73.3938" x="39.5511" y="129.4067">give + give + give</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="68.0932" y1="157.3003" y2="157.3003"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="68.0932" x2="68.0932" y1="157.3003" y2="167.9017"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="34.6582" x2="68.0932" y1="167.9017" y2="167.9017"/><polygon fill="#8095A1" points="42.8131,164.6397,34.6582,167.9017,42.8131,171.1636,39.5511,167.9017" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="138.6328" x="39.5511" y="153.0411">04 receiver was Blocked; value=3</text><polygon fill="#8095A1" points="200.202,188.2741,192.0472,191.536,200.202,194.798,196.9401,191.536" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008; stroke-dasharray: 2.0,2.0;" x1="195.3091" x2="358.4065" y1="191.536" y2="191.536"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="97.8584" x="205.095" y="187.2768">05 return 3; clear value</text><polygon fill="#8095A1" points="349.4361,211.9084,357.591,215.1704,349.4361,218.4323,352.6981,215.1704" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="191.2317" x2="354.3291" y1="215.1704" y2="215.1704"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="126.4005" x="196.9401" y="210.9111">06 probe zero; wait overwrite</text><polygon fill="#8095A1" points="349.4361,235.5428,357.591,238.8047,349.4361,242.0667,352.6981,238.8047" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="354.3291" y1="238.8047" y2="238.8047"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="132.1089" x="39.5511" y="234.5455">overwrite 0x11; overwrite 0x22</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="68.0932" y1="262.4391" y2="262.4391"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="68.0932" x2="68.0932" y1="262.4391" y2="273.0404"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="34.6582" x2="68.0932" y1="273.0404" y2="273.0404"/><polygon fill="#8095A1" points="42.8131,269.7785,34.6582,273.0404,42.8131,276.3024,39.5511,273.0404" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="101.1204" x="39.5511" y="258.1798">07 receiver was Blocked</text><polygon fill="#8095A1" points="200.202,293.4128,192.0472,296.6748,200.202,299.9367,196.9401,296.6748" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008; stroke-dasharray: 2.0,2.0;" x1="195.3091" x2="358.4065" y1="296.6748" y2="296.6748"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="112.5372" x="205.095" y="292.4155">08 return 0x22; clear value</text><polygon fill="#8095A1" points="349.4361,317.0472,357.591,320.3091,349.4361,323.5711,352.6981,320.3091" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="191.2317" x2="354.3291" y1="320.3091" y2="320.3091"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="100.3049" x="196.9401" y="316.0498">09 probe zero; wait bits</text><polygon fill="#8095A1" points="349.4361,340.6815,357.591,343.9435,349.4361,347.2054,352.6981,343.9435" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="354.3291" y1="343.9435" y2="343.9435"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="104.3823" x="39.5511" y="339.6842">setBits 0x04; setBits 0x20</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="68.0932" y1="367.5778" y2="367.5778"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="68.0932" x2="68.0932" y1="367.5778" y2="378.1791"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="34.6582" x2="68.0932" y1="378.1791" y2="378.1791"/><polygon fill="#8095A1" points="42.8131,374.9172,34.6582,378.1791,42.8131,381.4411,39.5511,378.1791" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="101.1204" x="39.5511" y="363.3185">10 receiver was Blocked</text><polygon fill="#8095A1" points="200.202,398.5515,192.0472,401.8135,200.202,405.0754,196.9401,401.8135" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008; stroke-dasharray: 2.0,2.0;" x1="195.3091" x2="358.4065" y1="401.8135" y2="401.8135"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="112.5372" x="205.095" y="397.5542">11 return 0x24; clear value</text><polygon fill="#8095A1" points="419.1603,422.1859,427.3151,425.4478,419.1603,428.7098,422.4222,425.4478" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="191.2317" x2="424.0532" y1="425.4478" y2="425.4478"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="44.8518" x="196.9401" y="421.1886">completed</text><polygon fill="#8095A1" points="419.1603,445.8202,427.3151,449.0822,419.1603,452.3441,422.4222,449.0822" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="424.0532" y1="449.0822" y2="449.0822"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="44.8518" x="39.5511" y="444.8229">completed</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="428.9461" x2="463.1966" y1="472.7165" y2="472.7165"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="463.1966" x2="463.1966" y1="472.7165" y2="483.3179"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="429.7616" x2="463.1966" y1="483.3179" y2="483.3179"/><polygon fill="#8095A1" points="437.9165,480.0559,429.7616,483.3179,437.9165,486.5798,434.6545,483.3179" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="69.3164" x="434.6545" y="468.4573">12 PASS + digest</text><!--MD5=[98448483023c1b518592316e659d3a37]
|
||
@startuml
|
||
scale 520 height
|
||
skinparam backgroundColor transparent
|
||
skinparam shadowing false
|
||
skinparam defaultFontName Monospace
|
||
skinparam defaultFontSize 11
|
||
skinparam sequenceArrowColor #8095a1
|
||
title A5 FLOW — three notification protocols on one target slot
|
||
participant "Sender p3" as S
|
||
participant "Receiver p2" as R
|
||
participant "TCB notify[0]" as N
|
||
participant "Verifier p0" as V
|
||
S -> S : 02 arm; wait for phase 1 + Blocked
|
||
R -> N : 03 ulTaskNotifyTake(clear); Blocked
|
||
S -> N : give + give + give
|
||
S -> S : 04 receiver was Blocked; value=3
|
||
N - -> R : 05 return 3; clear value
|
||
R -> N : 06 probe zero; wait overwrite
|
||
S -> N : overwrite 0x11; overwrite 0x22
|
||
S -> S : 07 receiver was Blocked
|
||
N - -> R : 08 return 0x22; clear value
|
||
R -> N : 09 probe zero; wait bits
|
||
S -> N : setBits 0x04; setBits 0x20
|
||
S -> S : 10 receiver was Blocked
|
||
N - -> R : 11 return 0x24; clear value
|
||
R -> V : completed
|
||
S -> V : completed
|
||
V -> V : 12 PASS + digest
|
||
@enduml
|
||
|
||
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
|
||
(GPL source distribution)
|
||
Java Runtime: OpenJDK Runtime Environment
|
||
JVM: OpenJDK 64-Bit Server VM
|
||
Java Version: 25.0.4-ea+4-1-Debian
|
||
Operating System: Linux
|
||
Default Encoding: UTF-8
|
||
Language: en
|
||
Country: null
|
||
--></g></svg> |